您的位置:首页 > 职场人生

程序员修炼之道读后感(五)

2006-09-02 11:54 363 查看
解耦与得墨忒耳法则
好篱笆促成好邻居
对象间直接得横贯关系有可能很快带来依赖关系得组合爆炸:如果n个对象相互了解,那么对一个对象得改动就可能导致其他n-1个对象都需要改动。
函数的得墨忒耳法则
尽可能遵守得墨忒耳法则的“羞涩”代码
Minimize Coupling Between Modules.
使模块间耦合减至最少

元程序设计
再多天才也无法胜过对细节专注;
动态配置:对于算法、界面之类,应该使用配置选项,而不是通过集成或工程实现;
Configure,Don’t Integrate.要配置,不要集成
元数据驱动的应用
Put Abstractions in Code, Details in Metadata.将抽象放进代码,细节放进元数据
在一个复杂工作流系统中,你将通过编写规则,而不是修改代码来配置它。

时间耦合
Analyze Workflow to Improve Concurrency.分析工作流,以改善并发行
在多个消费者进程间进行快速而粗糙的负载平衡的一种途径:饥饿的消费者(hungry consumer)模型
Design Using Services.用服务进行设计
在并发设计时应该注意公共变量,对其加以保护。同时也要保证线程安全
Always Design for Concurrency.总是为并发进行设计

它只是视图
模块具有单一的,定义良好的责任
模块间不需要互相知道太多
一件事件就是一条特殊消息
发布/订阅:Subscriber只对感兴趣的话题向Publisher进行订阅,而Publisher负责监听并分发消息。
MVC架构:
模型:表示目标对象的抽象数据模型。模型对任何视图或控制器没有直接的了解;
视图:解释模型的方式。它订阅模型中的变化和来自控制器的逻辑事件;
控制器:控制视图,并向模型提供新数据的途径。它既向模型,也向视图发布时间;

黑板
黑板系统让我们完全解除了我们的对象之间的耦合,并提供一个“论坛”,只是消费者和生产者都可以在那里匿名、异步地交换数据;
对黑板进行分区并组织上面资料以防止组合爆炸;
黑板方式地编程消除了太多接口需要,从而能带来更优雅、更一致地系统
Use Blackboards to Coordinate Workflow.用黑板协调工作流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: