agile-engineering-practices / Thoughts

Clean Code, Refactor, TDD, OOP, Automation Test, Code organization, etc.
MIT License
0 stars 0 forks source link

可读性代码 #12

Open aikin opened 1 year ago

aikin commented 1 year ago

对象的内部结构,应该隐藏,外部调用不应该关注该对象的内部细节。 每个函数只做一件事。 所有的系统都是演变过来的。没有很多具象的前提下的抽象都是耍流氓 对象是过程的抽象,线程是调度的抽象 性能 和 整洁代码的妥协

aikin commented 1 year ago

规矩 :光把代码写好可不够。必须时时保持代码整洁。

一个项目代码,应该要随着时间流逝而越变越好。 持续改进不是专业性的内在组成部分。

aikin commented 1 year ago

代码是机器运行,同时也是需要人维护的。为了让生活更加美好,请不要不美的代码,恶心你的队友。

aikin commented 1 year ago

古人说,拥有美丽心灵的人,写出来的代码也很美。

aikin commented 1 year ago

代码坏味道,怎么样的才算坏味道?可读性,可扩展性,可维护性.... 然而这个如何量化?

代码坏味道的修改成本,随着时间的增加, 修改成本会越来越高。特别是那种基础设施的代码,牵一发而动全身。

怎么样才算基础设施类型的代码? 按照生命周期阶段考虑,产品的生命周期,功能的生命周期,数据生命周期,请求的生命周期等。比如说:架构,功能抽象设计,数据库设计等。 对于一个 web 的请求来说, request -> security -> controller ...-> service ->service ...-> repository->repository ...-> DB

比如:如果修改的是数据库层,修改的辐射面, 就是从下往上。如果修改的是,security,辐射面,就是整个横向面,加上如果是微服务架构,整个 auth 层 都需要修改。

aikin commented 1 year ago

一开始的抽象层次就不对,比如说,不该在基类的放在了基类里面。