很多人觉得cleancode基础,cleancode那本书很容易读完,cc是啥也容易理解,似乎一次培训就能解决。但是并非基础就容易做到。
好像世间很多事相通,拿写字来和我们写程序做个对照。程序能用对应没写错别字,cleancode就对应“横平竖直”。
“横平竖直”是学写字时的第一个要求,基础不,是最基础的了。虽然基础,但却要求一定的功力,要花一定的努力。有多少人写了一辈子字,横竖未必直。

为什么要cleancode呢?还拿写字比喻,有人说了,我写字不好看未必影响到我的工作生活,我不靠写字吃饭。 确实是的,因为多数人写字还写不到连自己都不认识的程度,但是写代码可不一样了。
自己写完代码后来自己都看不懂的可是经常出现。为啥呢,因为字是祖先创造好的,不需要我们创新设计,而代码经常是自己设计,怎么写、设计意图只有自己知道,而且当时怎么想的会忘!
所以写代码至少有两个要求,一是实现功能,二是容易看懂。看不懂没法维护啊。这里说的看懂是强调让人看懂,机器看不看懂编译器会告诉我们。自己能看懂还不够,要让别人容易看懂。
所以从这个角度弱弱的讲一句,“能跑就行了,这么写那么写都行”常有这种想法的就未必是好攻城狮啦~~

那么啥样子就是clean的code了呢? 我理解他更多的是一种感性上的东西,无法从物理上去度量。比如桌子的clean可以看上面有没有污渍,厕所的clean可以看每平米内有几只苍蝇^_^,
代码的clean怎么度量呢。 就像写字一横一样,没人会拿个尺子来量一下直不直来告诉你好不好看,但是实际上一横直否、好看否,却是很容易判断出来的,因为你有那个审美能力。
那代码怎么审美呢,提到审美有点虚无缥缈了(我写到这也不知道怎么提到审美这个词了,但是我找不到其他词来概括这个意思)。 其实大家都有这个判断能力,比如乱七八糟的命名,
一坨一坨的、不知道啥意思的变量,好多层的循环,一会说东一会说西的代码(功能不单一),或者一会概括一会细节的代码(抽象层级混乱)。。。。
这些代码研究一会就让你头脑发涨四肢无力,肯定算不上clean了。

怎么做到cleancode就不写了,这类材料很多。 本文的目的主要是强调这个观点: cleancode很重要,知道cleancode是怎么回事很容易,但做到他并不容易,需要沉淀。
所谓老生常谈,知易行难。 共勉!

为什么cleancode相关推荐

  1. Clean-Code: 注释

    别给糟糕的代码加注释-----------------重新写吧 这是书中的关于注释一章的第一句话,怎么说呢,这句话个人感觉很对,但是实际上却很少这么做, 有几个原因: 糟糕的代码不是自己写的,别人写的 ...

  2. 聊聊clean code

    clean code,顾名思义就是整洁的代码,或者说清晰.漂亮的代码,相信大多数工程师都希望自己能写出这样的代码. 也许这是个千人千面的话题,每个工程师都有自己的理解.比如我,从一个天天被骂代码写得烂 ...

  3. Golang精编100题

    能力模型 级别 模型 初级 primary 熟悉基本语法,能够看懂代码的意图: 在他人指导下能够完成用户故事的开发,编写的代码符合CleanCode规范: 中级 intermediate 能够独立完成 ...

  4. 细思极恐,你真的会写 Java 吗

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:牛人 20000 字的 Spring Cloud 总结,太硬核了~ 非常非常不错的一篇文章,文中提到的很多实践都 ...

  5. python最小公倍数 菜鸟_最小公倍数 golang + python

    描述 给定两个正整数,计算这两个数的最小公倍数. 输入描述 输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数. 输出描述 对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行 ...

  6. 同步阻塞、同步非阻塞、异步阻塞、异步非阻塞与 I/O 多路复用、Java NIO 之间的联系

    同步阻塞.同步非阻塞.异步阻塞.异步非阻塞与 I/O 多路复用.Java NIO 之间的联系 先验知识 此处的异步指的是什么 同步.异步.阻塞.非阻塞 同步阻塞.同步非阻塞.异步阻塞.异步非阻塞 一个 ...

  7. (4opencv)OpenCV PR 成功的收获和感悟

    2018-09-12,第一次对OpenCV PR成功 https://github.com/opencv/opencv/pull/12206 <find innercircle of conto ...

  8. 如何在shell单元建立washer_如何成为一个优秀的工程师

    如何成为一个优秀的工程师: 1.普通工程师: 项目压力大.业绩一般.需要频繁加班 BUG不断事故不断 焦头烂额,秃头 2.优秀工程师: 更多机会 更多锻炼(很多知识光靠理论学习是没法学会的) 马太效应 ...

  9. Beta版本冲刺第二天

    队伍CleanCode 031302505 黄晓辉 031302223 翁瀚帅 031302511 林培兴 031302632 张衍坤 031302536 苏丽玲 一.完成的情况: 继续熟悉了gith ...

最新文章

  1. 机器学习算法基础——逻辑回归
  2. Freemarker介绍
  3. JSP-Servlet中文乱码
  4. 认识JVM--第一篇-对象分配回收算法
  5. php+swoole
  6. Android or iOS 运行 meteor App 屏幕一片空白 White screen的解决方法
  7. Jquerymobile 简单安装
  8. Java的新项目学成在线笔记-day14(四)
  9. 现代通用计算机的雏,1834年巴贝奇设计的( )是现代通用计算机的雏形 答案:分析机...
  10. Java: IE Firefox下载文件中文乱码的兼容代码
  11. halocn标定找旋转中心_机器人工具坐标系标定原理
  12. pppoe linux 配置文件,linux PPPOE服务端配置
  13. phpcmsV9 用seotitle后面的小横杠分隔符自定义
  14. java导出sas_[转载]SAS Proc Export导出文件
  15. HTML页面多个平行四边形,平行四边形奥数题
  16. paip.数组以及集合的操作uapi java php python总结..
  17. mysql中的rm语句用法_SQLMap部分命令用法详解
  18. 新媒体营销渠道大盘点
  19. HTML+JS 实现监控切屏
  20. InnoSetup 使用

热门文章

  1. php gd平涂,水彩画基本技法教学:平涂法
  2. IMEI、iccid、MDN、MSIN、IMSI
  3. 【ESP 保姆级教程】 自定义库篇 ——FeiShuMessageIoTSDK,支持简单快速接入飞书消息提醒,方便接入告警服务(模拟西游记经典对白)
  4. 10种绝对不能娶的IT女孩
  5. Java-Map集合
  6. HTML之表格,表单的使用
  7. 第一个PWA程序-聊天室
  8. 华为鸿蒙系统怎么退出,鸿蒙系统准备就绪,华为将退出安卓联盟,进度能赶超安卓吗?...
  9. 专注与拓展-向携程学习
  10. MYSQL5.7设置账号密码复杂度、密码有效期、账号锁定等策略