作者回复: 非常好的补充!
作者回复: 你们做得很好
作者回复: 你把自己当做码农,你就是码农;你把自己当做优秀的程序员,你就是优秀的程序员。心理学上称之为皮格马利翁效应。
作者回复: 对,你说的确实符合大部分做设计的方式。这种设计的关注点在于实现功能,而非构建模型。 这种做法容易让人忽略掉哪个东西是核心的,是模型,还是流程。流程是容易调整的,而模型如果变了,这个软件整个就变了。做设计的关键是,找到不变的东西。
作者回复: 《10x 程序员工作法》在先,《软件设计之美》在后。
作者回复: 先去学《10x程序员工作法》,先别让人给自己捣乱,有一个合理的工作计划。如果你没时间学习,没时间做改进,别的东西都不用说了。 有了一个合理的安排之后,才是说要怎么改进,要怎么做得更好,消除欠下的技术债。
作者回复: 把 DDD 当做一个模板,这个理解方式本身是没有问题的,它就是告诉你,如何把设计中的模型分门别类的放置,后面我们讲 DDD,差不多也是这个思路。 对于任何一个系统而言,需求都是一点一点增加的,前期不做设计,后期改动起来,难度就非常大了。所以,核心的点在于,设计要做好,别看它现在简单。分层不是你的设计,而构建出你的模型才是设计。 我不是特别理解你们按照 DDD 思想的开发模板到底是个什么东西,是一个开发框架,还是一个思维工具,所以,不敢妄加判断。 对于一个团队而言,开发的一致性比个性要重要,因为没有人可以保证一直在一个团队工作下去。 如果你真的有不错的理念,去做规范和框架的级别的优化、去做算法上的优化,不要在小的地方体现创造力,意义不大。
作者回复: 非常感谢你的补充! 我不会为 Hello,World 做设计,因为它真的“用完即焚”,在开篇词里我说过,设计是应对需求规模的算法。需求越来越多,设计和不设计的差别就会体现出来。但是,你不学习软件设计的话,想直接应对复杂软件是不可能的。 关于软件的设计过程,我们后面会讲到 DDD,你可以关注一下。 软件设计和架构设计,其实是没有区别的,只不过,通常把高层一些的设计称为架构设计,但我们这里所学的设计原则同样适用于架构设计。
作者回复: 首先,要分清楚哪些是人为的问题,哪些是设计的问题。赶工绝对是人为的问题,需要设置正确的预期,这是《10x 程序员工作法》讨论的范畴。 其次,如果是设计问题,需要把分清楚哪些是变的部分,哪些是不变的部分。不变的部分花力气去设计,变的部分需要等一等,等它相对稳定一些,再花大力气去设计。 规范主要是针对你需要花力气去设计的部分,混乱的部分,就先混乱着。让子弹飞一会儿。
作者回复: 应该说是独立“实现”了一个项目。