之前分析过wxWidgets事件表的具体实现,为了理解事件表的核心原理,简化事件处理模型,我们所有的讨论都是基于静态事件表, 忽略了动态事件表和事件表栈,这里我们来讨论下动态事件表和事件表栈。
主页
博文列表
Django 里面的model主要是数据访问的一个抽象层,隔离了具体的数据库操作,提供了高层访问接口,看看这么用吧。
在前面的例子的中,我们会了简化view工作原理,直接在view函数中嵌入HTML代码,然后返回HttpResponse对象然而真实的web程序这样做很糟糕的, 想想该有多难维护呢,而且大web应用是页面设计人员和程序开发人员的分工协作的,这样搅合在一起, 还有什么灵活性和可维护性可言呢。 Django框架的设计的一个核心就是要松耦合, 即一个模块的改变应该不去影响另一个模块, 好了,就是这个道理,把页面设计的东西分离出来吧,这就是Django里面的template了。
项目中一些工具需要提供web接口,所以抽时间看了看web开发, 好久之前在学校的时候接触过ASP, PHP ,但感觉太过繁琐,要自己设计前台页面和又要处理后台逻辑然后又代码又混在一起。显然,对于我们这种非专业web开发的人员的快速的开发需求,还有需要借组强大web开发框架的。看了下框架很多很多,有基于PHP的,也有基于python的。Diaogo就是这么一个很火的Python web 框架,之前的项目组用到的开源工具Review board, OSQA都是基于Diango开发的,自己也凭着感觉简单改过些源码,看来是时候看看Diango了,那么就从环境搭建开始吧。
早就听说过了对于复杂的系统一般会结合多种语言进行开发,最近摸索了下C++和Python混合编程,在此总结一下,做为笔记。
早就听说过了对于复杂的系统一般会结合多种语言进行开发,最近摸索了下C++和Python混合编程,在此总结一下,做为笔记。
判断大小端
‣
网络编程中有时需要考虑大小端,大小端主要是指数据内部的字节顺序,Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端(像数据流一样填充)。TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。
Python语言接触也有些时间,但平常主要是写写完成某些功能命令行的脚本。然后对于图形界面开发呢,考察了下,python的GUI toolkit主要有:内置的Tkinter库, pyQt, wxPython等。平时项目中wx用的比较多,那就探索下wxPython吧,正如名字一样,由开源的C++跨平台图形库wxWidgets,加上python语言绑定而成。结合python语言的简洁强大与wx的丰富的图形界面,我们可以快速的开发python GUI程序。
在用C/C++日常编程中,我们经常面临的一个问题,就是要分配一些资源(比内存,网络连接等),然后我们必须负责这些资源的生存期管理,因为这些资源是属于动态资源必须程序员自己负责分配和释放的,要不能可能造成内存泄露。 C/C++中指针和所指向的动态内存,我们使用的时候必须慎之又慎就是因为这个原因,首先我们得确认指针所指向的动态资源是否分配,然后才能使用,使用完后,还得记住去释放。更麻烦的是,如果程序中有多个指针指向同一个动态对象,我们还得确认所有的指针使用完毕才是真正的释放动态对象的时机。总之呢,必须密切关注当前这个对象出于何种状态,有多少个指针在指向它。
由C程序编译流程,我们知道,一个C程序分为若干程序文件,每个程序文件单独编译生成目标文件,最后将所有目标链接,如果所有的函数符号和变量符号都找到正确地址则编译成功,生成可执行文件。那就有个问题了,如果目标文件过多,则必须记住,主程序文件涉及了那些模块,用到了其中的变量或函数,要把那些目标文件链接进来,才能正确编译。为了解决这个问题,C程序引入了库的概念,所谓库就是一组已经编译好的目标文件集合,链接的时候只要把这个库文件指示给链接程序,链接程序会自动从文件中查找符号要求的函数和变量进行链接,整个查找过程根本不需要我们担心。
接着上篇继续对C语言做一些探索,这篇主要分析C语言中一些基本特性的实现。包括全局变量,静态变量,以及他们是否初始化以及链接属性做一些解析
C语言算是大学里接触的最早,用的最"多"的语言了,对于大部分学习计算机的学生基本上是从开始学习C语言起,凭借着一句经典的"hello, world!"迈入了计算机的世界的,初体味了一把这个世界还有个叫编程的活。作为系统级的开发首选语言,只诞生以来就屹立不倒,C语言的重要性是不言而喻的。就是怀着这种对C的无比敬意开始了我的伪程序之旅。然而大学里面没写过什么像样的东西,说来惭愧,什么课程设计,或是自称为项目的东西大都由些蹩脚的程序拼凑而成。做为一个菜鸟级别的程序员,使用C有些年,但对于C没有有真正的了解。我想有必要从新了解这门古老的语言背后的东西,知其然还要知其所以然,才能更好的使用这门语言。当然语言是工具,但了解工具的强项、陷阱与缺陷,对于工具威力的发挥 ,对于你去驾驭工具的娴熟程度是那是大有裨益啊。C语言的设计哲学就是给你一把锤子嘛, 用不好可是会砸自己的脚。
上一部分分析了wxWidgets事件机制实现时一些基本概念,和所涉及到的数据结构。基于此继续讨论事件哈希表的建立,事件表相关宏处理的背后触发事件处理的方式,以及事件在不同平台的分发过程。
wxWidgets是一款开源的跨平台图形界面程序开发框架,其中的事件机制是GUI程序开发的一个重要环节,本文通过阅读源代码分析wx中事件机制的实现。理解事件的定义、分发、处理以及跨平台的实现机制。
使用git+github+jekyll+markdown写博客果然是爽哈,简单干净,专注于博客内容,并且可控性好。博客搭好了,开始博客之旅吧