编码的最后一公里

  对于编码,有些人把它看的太简单.或者有些人根本就没意识到编码还应该有一定的章法.不少人在编码实现自己的逻辑算法的时候,率意而为,以为自己能够掌控代码的全局,写出既简洁又优雅,完美表达自己思想的代码.这样想的人,往往最终都被编码实现折腾的死气沉沉,心中充满了挫败感.这样的现象,有时候表现在不知道自己思想的重心,去写辅助性的代码,结果在后面才发现自己思想的实现根本就用不到自己花了大力气写好的边角料代码.另外一些,表现在代码在最终组合实现自己思想的时候,发现要完成这样的任务简直就是不可能!为什么?因为为了组合这些零碎,飘忽的代码,自己不得不写大量的glue来组合所有的功能.当然有毅力的coder不在少数,最终终于完成了所有的粘合编码.结果,自己再一次审视自己代码的结构,发现自己写的代码是那么的丑陋!自己却在百思不得其解的自问:组合之前单个代码片段看起来没那么丑陋啊,怎么现在看起来古里古怪的?这样写出来的代码系统,的确是表达了自己的思想,但是看起来就像是一栋房子全部是用胶水粘出来那么奇怪,摇摇欲坠.

   我想,大量的难看的代码就是这么来的.我想肯定的是,每个人,每个团队在一开始编码之前都是知道自己要实现什么样的逻辑算法思想的.这是最重要的最核心的部分.然而,在编码实现的时候不少人就又会晕头晕脑的不知道自己在写什么了.我清楚的知道这样迷糊着去写的人都是太关注于现实了,太急切于要实现具体的功能.然后,他就会在脑袋里面想:要实现这个功能,我需要拆成a,b,c三个子功能,要实现a子功能,我还要拆成e,d,f几个子功能...如此下去,直到不能再拆为止.然后,他就开始写最后不能拆了的原子功能.这样做的人对自己的分析能力是绝对的自信,结果自信过头了.自己根本没把握到思想的核心,反而像无头苍蝇一般挑一个原子功能就写.最后写出来的代码还能用还真是奇迹了.

   我看来思想的编码实现,必须逐步求精,分层细化.一开始是绝对不能写最原子化的代码片段的.不这样做的后果前面已经提到了,如果你不介意,那请自便.现在就归结到如何逐步求精,分层细化.其实说白了就是自顶而下的编码.把编码想象成一棵树.根节点就是最核心的最抽象的逻辑算法思想.它应该是在你大脑里面已经有了的.从根节点往下细分,第一层会有分支节点也可能会有叶子节点.这个时候叶子节点是可以开始编码实现的,而对于分支节点,则需要进行抽象.对这一层完成抽象和叶子节点的编码后,对这一层的分支节点的抽象和叶子节点的具体实现来进行组合,完成对父节点(对于第一层是根节点)的逻辑实现.当然这个时候肯定不能实际运行的.每一层都这样对分支节点抽象和对叶子节点实现,再进行组合,完成对父节点的逻辑实现.最终,到最后一层完成对父节点的逻辑实现后,整个代码系统就完成了对核心的思想算法(根节点)进行了实现.这样子讲,估计很多人会不明白我说的什么.

tree


这棵树根节点A就是你想实现的逻辑算法.那么在第一次自顶向下的分层细化时候,只有两个抽象的B,C逻辑算法.这个时候再对B细化求精,得到另一个抽象D和一个具体实现.在这个时候就可以编码具体实现了.可能还会有人不明白怎么算是抽象.只写声明不写实现就算是抽象了.每一层都不要忘了把抽象和实现进行组装来完成对父节点的抽象实现.如此编码,得到的最终结果,必定是设计优良,牢固可靠的对逻辑思想算法完整表达的软件系统.比之随意妄为的编码,好了不少.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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,073评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,947评论 4 60
  • 初次跨入圆珠笔画真的感觉有点吃力,因为很喜欢小爽这张微笑的照片,所以选择了这一张开始绘画。2.前期打形打稿的时候都...
    喃七月阅读 2,061评论 36 34
  • 07月07日,从武汉再一次出发,我们始终没有动摇走完318全程的决心。 郑哥,浙江杭州人,八九年生,比我大四岁。他...
    福马阅读 636评论 1 2
  • 小城大爱。 这样的标题也许有点俗套了,可是今天的事还是挺戳中我的玻璃心。 在146的公交车上,我拎着些东西坐在靠着...
    请叫我刘花花儿阅读 149评论 0 1