编码知识首页

引言

对想表达的东西做个索引,方便检索。

代码原理

编码知识首页

 

如上图所示包含了个人在思考代码的一些思考点:

  • 利益驱动

思考一个方案或者代码的写法,不能靠经验或者习惯,或者权威,而是应该从利益驱动的角度出发,分析每种方案的收益,选择最有利的方案;很多不同的写法只是适用场景不同,并无优劣之分。  所谓收益是实际的收益,不能只是感觉。

  • 表驱动法

在代码Review中,我们经常会发现代码中大量if-esle结构应该使用Map数据结构取代,数据和逻辑有时是相通的;《代码大全》对此起名是表驱动法,表驱动法可以解决很多问题,比如《使用面向行为编程解除项目耦合》也可以认为是一种表驱动的应用。

文章:【使用面向行为编程解除项目耦合】

传统的分层一般是:用户界面层 -》 应用服务-》 领域服务 -》基础设施层(存储);严格意义的上层依赖下层对复杂业务并不是很有效,如果采用依赖倒转,会变为基础实施层依赖于领域层提供的基础实施定义;采用更重视业务【六角形架构】,可能更符合复杂业务的发展,你会发现分层被拍平了。

文章:【DDD导论-依赖反转-六边形架构】

Command Query Responsibility SegregationCQRS

说白了就是读写分离,分别为读写设计,可以通过数据分发冗余数据抗读流量,不用受写业务影响读设计,可参考《常用互联网架构》的抗量部分。

文章【常用互联网架构】

为80%设计简易途径,特殊需求采用麻烦途径。比如互联网架构中我们缓存中有100个字段,其中一个客户访问占80%流量,但只访问其中的10几个字段,那么我们就可以为这个客户专门异构一个缓存集群;再比如我们在某个业务中对写没有性能要求,但读的流量非常大,我们可以对数据结构按抗读流量来设计,写的时候可以麻烦点或者冗余部分数据。

尽量通过简单的办法来达到目的,技术本身并无优劣之分,关键是要识别面对的问题,分析出当中的痛点,选用合适的技术解决。

文章:【尽量简单与简单的相对性】

  • 代码表现力

提升代码的表现力。

文章:【 通过新版JDK获取更强的代码的表现力】

  • 业务驱动

写代码不应该直接想代码怎么写,应该先假设自己是业务人员,从业务的角度怎么描述业务,能说的清楚,再用代码描述。写代码的过程是业务到代码的映射过程;所以写代码要建立业务和代码间的思维映射。

文章:【先考虑逻辑再写代码】

文章:【搞懂DDD在说什么】

  • 业务中台建设

在中台业务组价积累的基础上,快速响应前台业务。

文章:【 中台化建设】

  • 学习的过程

总结知识的获取过程。

文章:【 知识的学习过程与沉淀梳理】