优雅编程之这样编写代码,你就“正常”了(十五)

开心一笑

【昨天晚上我做了一个梦:上帝告诉我,我今生注定孤独。破解的方法只有给十个傻子发短消息。我当时就哭了:天哪,我只认识你一个,我完了。】

提出问题

项目开发中编写代码需要注意的一些习惯???

解决问题

优雅编程之这样编写代码,你就“正常”了(十五)_第1张图片
励志图片

解耦与得墨忒耳法则

编写羞怯代码

把你的代码组织成最小单元(模块),并限制它们的交互。

好篱笆促成好邻居

建好方法之间的篱笆,不要让它们相互影响。

墨忒耳法则规定:某个对象的任何方法都应该只调用属于以下情况的方法:

  • 这个对象自己拥有的方法;
  • 传入该方法的参数的方法;
  • 该方法创建的对象的方法;
  • 该对象直接拥有的对象的方法;

墨忒耳法则使任何给定程序中的模块之间的耦合减至最少。

编写极可能遵守的墨忒尔法则的代码。

例如:

class A{
    private B b = new B();
    private void methodE(){}
    public void methodA(C c){
        D d = new D();
        methodE(); //1这个对象自己拥有的方法,可调用 
        c.print(); //2传入该方法的参数的方法,可调用 
        d.invert(); //3该方法创建的对象的方法,可调用 
        b.kill(); //4该对象直接拥有的对象的方法,可调用 
        F f = b.getF();
        f.rock(); //该对象依赖对象的实现的模块,不可调用。
    }
}

元程序设计

再好的天才也无法胜过对细节的专注

我们可以让我们的代码变得高度可配置和“软和”,也就是容易适应变化 。

要配置,不要集成

目标就是把我们的系统变得高度可配置,诸如算法,数据库产品,界面风格之类都作为配置选项供选择配置。

将抽象放进代码,细节放进元数据

元数据(metadata)是关于数据的数据,是对任何对应用进行描述的数据。最常见的例子可能是数据库schema或数据字典。

不要让你的项目(或你的职业生涯)走上渡渡鸟的道路(毛里求斯岛上的渡渡鸟不能适应人类和他们的家畜的出现,很久就灭绝了。这是人类记载的第一起物种灭绝)

时间耦合

时间是软件架构的一个常常被忽视的方面。

时间有两个方面对我们很重要:并发(事情在同一时间发生)和次序(事情在时间中的相对位置)

我们需要容许并发,并考虑解除任何时间或次序上的依赖

分析工作流,以改善并发性

总是为并发进行设计

在设计时考虑了并发,到时我们就可以更容易地满足可伸缩性或性能需求。

用服务进行设计

我们需要的不是组件,而是服务,位于定义良好的、一致的接口之后的独立开发的对象。

它只是视图

不要把程序写成一个大块,应该”分而治之“,把程序划分成模块。

模块的一个好定义就是,它具有单一的、定义良好的责任。

使视图与模型分离

其实就是MVC设计模式的核心思想。

黑板

黑板系统让我们完全解除了我们的对象之间的耦合,并提供了一个”论坛“,知识消费者和生产者可以在哪里匿名、异步地交换数据,还能减少我们必须编写的代码的数量。

可以用黑板协调完全不同的事实和因素,同时又使各个参与方保持独立、甚至隔离。

读书感悟

来自林白《一个人的战争》

  • 一个人的战争意味着一个巴掌自己拍自己,一面墙自己挡住自己,一朵花自己毁灭自己,一个人的战争意味一个女人自己嫁自己。
  • 人生的确像一场梦,无数的影像从眼前经过,然后消失了,永远不再回来,你不能确定是不是真正经历过了某些事情。
  • 多米自我总结说:“当初我是不是真正爱过?我爱的是不是他?我想我根本没有爱他,我爱的其实是自己的爱情,在长期平淡单调的生活中,我的爱情是一些来自自身的虚拟火焰,我爱的真实这些火焰。”

其他

如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎转载,点赞,顶,欢迎留下宝贵的意见,多谢支持!

你可能感兴趣的:(优雅编程之这样编写代码,你就“正常”了(十五))