了解一个软件的设计可以从三个部分着手:模型、接口和实现
来自:04 | 三步走:如何了解一个软件的设计?
9 人划过
第三步就是找出与事件和命令相关的实体或聚合
来自:27 | 领域驱动设计:如何从零开始设计一个软件?
7 人划过
我们再来看纯函数。编写纯函数的重点是,不修改任何字段,也不调用修改字段内容的方法。因为在实际的工作中,我们使用的大多数都是传统的程序设计语言,而不是严格的函数式编程语言,不是所有用到的量都是值。所以,站在实用性的角度,如果要使用变量,就使用局部变量。
来自:19 | 函数式编程之不变性:怎样保证我的代码不会被别人破坏?
6 人划过
理解了 DIP,再来看一些关于依赖的讨论,我们也可以看到不同的角度。比如,循环依赖,有人会说从技术上要如何解决它,但实际上,循环依赖就是设计没有做好的结果,把依赖关系弄错了,才可能会出现循环依赖,先把设计做对,把该有的接口提取出来,依赖就不会循环了。
来自:24 | 依赖倒置原则:高层代码和底层代码,到底谁该依赖谁?
6 人划过
如果我把这段代码重写一遍,我该怎么做
来自:结束语|那些没讲的事儿
5 人划过
当你纠结于技术时,先想想自己是不是解错了问题。
来自:29 | 战术设计:如何像写故事一样找出模型?
5 人划过
防腐层是最具防御性的一种关系,简言之,就是指我们要在外部模型和内部模型之间建立起一个翻译层,将外部模型转化为内部模型。
来自:28 | 战略设计:如何划分系统的模块?
5 人划过
很多产品经理以为很重要的功能实际上是没什么用的
来自:26 | 简单设计:难道一开始就要把设计做复杂吗?
5 人划过
在真实的项目中,你可能很难一眼就看出当前场景是否适合使用某个模式,更实际的做法就是这样遵循着设计原则一点点去调整代码
来自:25 | 设计模式:每一种都是一个特定问题的解决方案
4 人划过
通常是先有程序库,再有语法;如果语法不够好,新的程序库就会出现,新一轮的编程模型就开始孵化。
来自:09 | 语言的接口:语法和程序库,软件设计的发力点
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容

编辑推荐

讲师的其他课程



包含这门课的学习路径

后端工程师
27门课程 184.1w人学习
看过的人还看了





