学习:
- 世界底层有那么几块积木。基于这几块积木之上, 如何拼装,组装不同层次的工具+实践/场景 = 产品。
- 不同的人对技术有不同层面的认知,在于知道、认识到、体验到的积木多少。
- 学习的本质——反编译:通过知识生产流程生产出来的不同层次的知识—> 反编译 —> 原创者的思路。
- 方法:基于自身的知识和经验判断思路模型的价值,基于自身实际情况trade-off,创造出自己的产品MVP,并不断迭代。
分布式
- 分布式系统就是抽象了一个容器, 基于操作系统原理, 性质如同分布式操作系统。如果抽象的好, 对应用层是透明的,业务逻辑代码和管理的代码实现解耦。应用层只需要处理业务逻辑,一切管理逻辑和协调逻辑在下层都处理,且对上层透明,但目前做不到。 所以在理想到来之前,我们做的就是在抽象和封装不完善的现实下,为系统打补丁。
- 如: 分布式数据库 NewSQL VS 数据库分库分表,数据库Proxy;
Cloud Native——像单机上一样使用云上的分布式;
Service Mesh, 边车模式;
解耦
- 热力学定律,世界不断熵增,即越来越无序,所谓解耦就是熵减,抵抗无序,毕竟生命以负熵为食。
- 程序的耦合包括:代码行耦合 -> 方法级别耦合 -> 类级别耦合 -> 线程级别耦合 —> 进程级别耦合 —> 网络间进程耦合。
- 更简单的使用,需要更高的抽象,需要底层和基础越深;
理解的越深,抽象的越好,产品越容易使用;
对机器理解的越深,才能抽象的更好,产品离人更近; - 设计模式: 扩展性,将未来的熵增提前预判,总结到固定的模式;
架构: 扩展性 (升维思考,时间维度,面向未来,面向变化编程) - 计算机解决问题: 加一层, 拆。
- 编程的本质就是将控制和逻辑分离和解耦,而边车模式也是异曲同工。
网友评论