4

一个关于软件工程的往事--代码整洁

 1 year ago
source link: https://blog.51cto.com/u_10725691/5801385
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一个关于软件工程的往事--代码整洁

精选 原创

jackdongting 2022-10-27 15:50:39 博主文章分类:职业感想 ©著作权

文章标签 抽象层次 软件工程 复杂度 文章分类 IT业界 其它 yyds干货盘点 阅读数263

小注:曾经有一次,实在不知道如何体现我们软件开发的辛苦,就给甲方要了一笔钱,费用名称就叫 软件工程费。现在,想想也是多年以前的值得会心一笑的事情。后来,买了一些书,实在是看不进去,这不有人专门讲了一下,就非常开心,简单回顾一下。

软件工程的敌人就是复杂度

复杂度的一个基本标准就是代码整洁。

所以为了能够控制话题,只说 Clean Code.

二、指导原则

以下多半是口耳相传 多年的经验之谈,自己搬运一下,整理一下,便于自己强化理解和记忆

什么是好代码?

局部干净,核心逻辑清晰

指导原则:

消除重复,分离关注点,统一抽象层次

三、原则分说

分开来说,

1.消除重复

一句话解释:减少心智负担,重复过程中把自己整晕了,因为变化的点藏在云里雾里。

例子:代码重复,结构重复

解决方法:继承体系(有时候也多是使用组合),泛型(比较不错的发明),模板方法(这个快用烂了,mvc思想或者说Template),高阶函数(流水化,毕竟函数式编程还是曾经很流行的)

2.关注分离点

一句话解释:关注点一致的代码,应该高内聚,低耦合,使用空间换取心智思考的时间。那么,关注点不一样的代码,应该互相之间没有任何关联。

议论:就是物以类聚,人以群分,抱成一个团。但是,这是一个方法论,是为了在设计和意识层面对于细节的把握。锻炼自己的抽象能力,并不是为了处处分开。代码是一点点写的,也是总结出来的,如果很多事情直接做好了,那是非常好的,很多时候总是有各种妥协,但是还是可以每次改正一点点。

批注:心有猛虎,细嗅蔷薇。

3.统一抽象层次

一句话解释:同一抽象层次的对象可以直接对话,并且存在着紧密合作。

议论:抽象是人类最伟大的发明,区别与其他智人。

这里非常想提一点的就是 命名与注释:

之前总是整不明白为何要有一个领域专家的词。

现在知道了它是为何出现,解决什么问题。

就是一个在实践上面三个原则的过程中,发现,天然有一个职场分工的分包分层。需求,产品,设计,开发,测试.....

例子:大家对于清洗苹果这个业务,其中苹果这个概念可能表达不同:

需求说,一个红色的果子

产品说,吃着不错,还是很健康,这个历史很悠久....

设计不说话,画了一个自己心中的物件

开发不说话,整了一个Apple

测试不说话,TestXxx就结束了

所以,统一术语,应该就是领域专家的核心内容。

这种能够沉淀下来的东西才会成为技术财富。

关于上述三个原则的编程tips,是不讨论的,因为技巧是说不完的,有了深刻的理解,就会源源不断地创造属于自己的技巧和编程习惯。实在需要就可以去看阿里的武侠秘籍,什么黄山版,嵩山版....Tencent也有白皮书...

小结:希望带来一点开心

  • 打赏
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK