InfoQ 论精简代码,细节中有上帝( 二 )
“上帝在细节中” , 建筑师:路德维希·密斯·凡德罗
如前所述 , 精益是一种方法论 , 是一组旨在组织人类活动以在消除浪费的同时提供更多价值的规范 。 但是 , 你无法整理和约束看不见的东西 , 而要真正能"看到"代码 , 代码就必须是可读的 。 你无法改进看不见(无法阅读)的内容 。 所以我们先来讨论整洁(精益)代码原则的第一个支柱 。
可读性
文章图片
下面可读性的完美定义:
清晰 。 “如果想快速执行 , 如果想快速完成 , 如果想让代码易于编写 , 请让代码易于阅读”——RobertC.Martin
简单 。 不要过度设计 。
表达的密度 。 使用最少的资源和交互以获得最多结果的艺术 。
有意义的名称:
可以揭示意图的名称(为什么存在 , 其用途以及使用方式) 。
使用动词表示函数名称 , 使用名词表示类和属性 。
变量应表达自身的创建目的 。 (避免使用varx , 而应使用varcustomersIndex)
命名约定:
?一定要选择易于理解的标识符名称 。
?一定要先考虑可读性再考虑简洁 。
?一定要使用语义上有意义的名称 , 而不要使用特定于编程语言的关键字来写类型名称 。 例如 , GetLength就比GetInt更好 。
X请不要将缩写用作标识符名称的一部分 。 比如应该使用GetWindow而不是GetWin 。
X请不要使用与广泛使用的编程语言的关键字冲突的标识符 。
X请不要使用任何不被广泛接受的首字母缩写词 , 就算它们被广泛接纳 , 也只在必要时才使用它们 。
小方法:
一个方法应该是一个只做一件事情的可测试单元 。
保持在10到15行代码之内 。
如果你的方法更大 , 那么它可能正在做很多不该它来负责的事情 。
“尽早返回” 。
接下来 , 我们继续讨论整洁(精益)代码原则的第二大支柱 。
组织由于我们在谈论的是代码 , 因此我们将专注于开发人员的工作 , 而开发人员会经常使用类 。 架构师的工作位于更高的层次上 , 不涉及代码 , 而是处理项目或服务(也称为域 , 微服务等)等等 。 因此我们将专注谈类 。

文章图片

文章图片
源文件就像报纸的标题 , 其名称应该简单明了 , 光看名称就知道是什么模块 。 源文件的顶部应该提供关于高级概念和算法的信息 , 往下走逐渐展开细节 , 最后则是底层函数和细节 。
3C原则:

文章图片
耦合:软件模块之间的关联性 。

文章图片
内聚:模块内部元素结合在一起的紧密程度 。

文章图片

文章图片
组合:类应该根据其组合而非继承来实现多态 。 例如 , 一辆车不是一个发动机 , 而是集成了一个发动机 , 所以发动机之类的组件通过外部API组合起来形成高级抽象 。
最后 , 我们来谈整洁(精益)代码原则的第三大支柱 。
纪律能力=纪律+技能
拥有良好的态度胜过拥有多年经验 。
良好的态度是有感染力的 。 它会激励整个团队 。
“你的态度 , 而不是你的才能 , 将决定你的高度 。 ”——ZigZiglar
纪律是一套标准、规则、试探法、原则和实践等 。 下面我来定义一些保持你的代码整洁的最佳方法:
童子军规则 。 离开营地时先打扫干净 。 每次编写代码时 , 我们应该稍微清理一下旧代码 , 是否是别人编写的都没关系 。 整理一下就可以做出一点贡献 。 只是不要疯狂清洗一大堆东西 , 否则你可能会破坏某些内容 。
推荐阅读
- 轻拔琴弦|Reactor如何规定,混淆保护需正确命名!看.NET代码保护工具.NET
- 不能忍,1行代码竟然改了10天......
- ECCV 2020 | 空间-角度信息交互的光场图像超分辨,性能优异代码已开源
- 快芯网|【一周热点芯闻】苹果重夺市值全球第一!传华为、联发科、高通等50多家科技公司源代码被泄露
- 刚刚发布了2.0版本,只需要写上几行Python代码
- [dior迪奥]DIOR迪奥烈艳蓝金唇膏派对上海举办、贝嫂精简公司运营模式
- InfoQ Vue、React和Angular:该选择哪个框架?
- InfoQ 22款好用的CLI工具
- InfoQVue、React和Angular:该选择哪个框架?
- InfoQ去Oracle实录:如何在线更换金融核心场景中的数据库?
