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

解耦与得墨忒耳法则
好篱笆促成好邻居
对象间直接得横贯关系有可能很快带来依赖关系得组合爆炸:如果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.用黑板协调工作流

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值