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

开心一笑

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

提出问题

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

解决问题

励志图片

解耦与得墨忒耳法则

编写羞怯代码

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

好篱笆促成好邻居

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

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

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

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

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

例如:

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设计模式的核心思想。

黑板

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

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

读书感悟

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

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

其他

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,079评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 大家好,我是Bill。 今天想和大家谈谈我为什么开简书,目的非常简单,就是想通过写来锻炼自己的思维。 大家知道,我...
    二十少阅读 296评论 0 5
  • 把过往塞进船舱 供奉起父亲的灵位启航 我溯江而上 从浑水里网出鱼 在江风刺杀情欲的夜里 低语向它问我的生命 我身体...
    Joker橙小K阅读 275评论 4 5
  • 今年是一级消防师资格考试开考的第三年。为了不让自己有时间能空下来,虽然身为一枚理工白痴,还是毫不犹豫的报了名。 交...
    鑫悦阁阅读 673评论 1 3