zoukankan      html  css  js  c++  java
  • 程序员的灯下黑:“逗到底”的程序员

    二十年前读中学的时候,有一位语文老师特别促狭。有一次上作文课,上来说,“今天我要请一位同学来读一读他自己的作文。不过这次和以前不同,我要求连标点符号也要读出来。小K同学,上讲台来读吧!”
    小K是班里一位成绩较差的学生,不知道为什么被点名念作文,这通常是优秀学生的荣誉啊。难道小K写了一篇美文?
    被点名的可怜的小K慢慢地挪上了讲台,拿着自己的作文本,在手里捏来捏去,半天也没吭气。
    老师一把拿过来,“我来念吧!”
    只听到老师念了头句,“今天我的作文题目是坚持就是胜利,”说“逗号。”,又念了一句,又是“逗号。”
    开始,全体同学没听出什么意思,不过,在老师读到第十个逗号的时候,就开始有人发笑了。待到老师不停的“逗号逗号逗号”时,全面开始笑成一片。小K这篇文章,竟然是从头逗号到尾!直到文章结束,才有一个句号!
    我当时也参与了笑话小K,年纪见长,慢慢有些同情小K,觉得那位老师不该这么刻薄,让小K如此丢脸。不过这老兄的作文,未免有些太离谱。
     
    以作文而论,“逗到底”的文章大概是最糟糕的文字了。
     
    那么,什么是最糟糕的程序员呢?很不幸,如同写文章一样,有“逗到底”的程序员。更不幸的是,小K知道这“逗到底”是不好的文章,很多“逗到底”的程序员还常常自以为高明!
    什么样的代码是“逗到底”呢?
     
    实现一个功能,不分青红皂白,从头到尾一个函数写到底。你打开代码一看,奥,有一个类,有一个函数,再打开函数,天哪,长到你把鼠标的滚轮摩擦烫了都看不到底。然后他(她)还会告诉你,他(她)的模块很复杂,这是为什么改一个简单的Bug要三天的原因。因为定位到错误点得靠搜索关键字,甚至连搜索都要10秒钟呢!
    于是你告诉他(她),你的代码很糟糕。他(她)的回答是:你看,我的代码很整齐啊!
    “不行,你得重构你的代码!”
    过了几天,告诉你,好了。一看,现在有一个类,两个函数了!原先的大函数被齐腰截成两段,分别放在了原来的函数和一个新函数中。昏倒。
     
    “逗到底”的程序员还喜欢非常深的分支。有一次,有位“逗到底”先生向我展示的代码:最上面是一个for循环,里头有个if…else…,每个if从句有for循环,for循环中还有if…else………我看来一会儿,已经完全迷失了,这老兄还向我解释,“你看,排除这个条件后,进入这……”我又晕。用工具一看,竟然有12层之多。我记得大师说过,人类大脑只能立即理解三层嵌套关系,这老兄,我只能佩服啊佩服了。
     
    写出“逗到底”代码的就是“逗到底”程序员。其实就是不会程序设计的程序员。我把设计分成产品设计,系统设计和程序设计。产品设计是有产品经理完成的,描述了产品的特性,系统设计描述了系统框架,不如数据库和应用服务器的关系等,程序设计就是对代码结构的设计。我发现很奇怪的一点,声称要成为构架师的很多人特别重视前面两个设计,但很少有人关心程序设计。大部分程序员拿到需要文档后,立马开工,UI画上去,遇到什么逻辑就临时加上。所有的逻辑是平铺直叙,遇到干同样的事情的代码,也抽象成一个函数,而是直接拷贝代码。时间一长,代码就彻底“逗到底”了。谁也不敢改。
     
    好了,你,会是“逗到底”的程序员吗?
  • 相关阅读:
    Java程序设计:最大连续1的个数(LeetCode:485)
    LeetCode刷题经验2
    LeetCode刷题经验
    Java程序设计:区域和检索—数组不可变(LeetCode:303)
    Java程序设计:在排序数组中查找元素的第一个和最后一个位置(LeetCode:34)
    解决安装python3后yum不能使用情况
    使用shell做数据库备份的时候,遇到了以下问题,原因未知
    使用windows系统编写shell代码,在linux执行后的报错
    Apache URL重写规则
    PHP中的环境变量$_ENV, $_SERVER 及getenv
  • 原文地址:https://www.cnblogs.com/flying_bat/p/785838.html
Copyright © 2011-2022 走看看