摘要: 学过C的同学都知道,在X86平台上调用函数时,系统会在运行时栈中创建新的栈帧用于函数执行,其中包括函数参数入栈,运行指令,调用现场恢复(取决于函数调用方式),Python中同样也是这个过程。CPython中PyFrameObject对象就是一个栈帧的模拟,所以Python的虚拟机在执行函数调用时会动态的创建新的PyFrameObject对象,随着函数调用链的增长,这些object之间也会连接成一条PyFrameObject对象链。在Python中,任何东西都是一个对象,函数也不列外。函数的这种抽象机制是通过一个Python对象:PyFunctionObject来实现的,一下是Python 2. 阅读全文
posted @ 2011-09-15 10:04 盐抡酱油 阅读(548) 评论(0) 推荐(0)
摘要: 一、Django式的MVC设计模式当前最为成功最为常用的设计架构之一当属MVC-即模型-视图-控制器设计模式了。它将应用软件的各类职能很好的分离开来,Django大致上遵循这一设计理念。当然比起Java框架里的MVC,它略微有些不同。1、模型(model)主要负责管理数据和核心的业务逻辑2、视图(view)负责将数据展示给用户。3、控制器(Controller)接收用户输入并执行应用程序逻辑层面的工作。在很多领域这一思路非常高效,不过Django的设计者们不是简单的照搬这一模式,而且试图构建一个更适合Web应用程序开发的思路,因为django最初是用在新闻出版类的网站上,对新闻事件的快速反应要 阅读全文
posted @ 2011-09-13 23:32 盐抡酱油 阅读(1560) 评论(0) 推荐(0)
摘要: 关于如何实现sns平台的即时聊天功能自己一直没有自己满意的方案。用tornado吧,它没有大项目的案例,至少我没有发现,而且没有自己的测试套件,这对于一门动态语言来说太不讲究了;orbitted吧,很担心它的横向扩展问题。ejabberd当初也在考虑之列,它是xmpp协议的erlang实现,支持集群,性能不俗。但是对于一个项目来说,开发技术是一方面,维护问题也需要考虑,开发的时候上蹿下跳,维护的时候说不定就傻眼了。erlang这语言过于冷门,而且是函数式的编程语言,按Mr. Shao的说法,它就像是无字天书,不会“武功”的人才看得懂,像我们这些已经习惯了面向对象面向过程思维方式的人很可能难以掌 阅读全文
posted @ 2011-09-13 23:26 盐抡酱油 阅读(1424) 评论(1) 推荐(0)