名为万物之始,万物始于无名,道生一,一生二,二生三,三生万物。——《易经》定名常常被认为是编程中的细节题目,其紧张性往往被低估。而所谓的工匠精神,往往就是体如今细节之处,就日本的“煮饭仙人”50年专注于做好1碗米饭。一个名字虽然并不影响程序的实行,但是却对代码的表达力和可读性有着紧张的影响。
离娄之明,公输子之巧,不以规矩,不能成方圆。——孟子《离娄上》复杂体系的前沿科学家Mitchell Waldrop在《复杂》一书中,提出一种用信息熵来举行复杂性度量的方法。所谓信息熵,就是一条信息的信息量大小和它的不确定性之间的关系。举个例子,假设消息由符号A、C、G和T组成,如果序列高度有序,例如“A A A A A A A … A”,则熵为零。完全随机的序列,熵可能最大。
把简单的事情做到极致,功到自然成,最终“止于至善”。——秋山利辉《匠人精神》函数作为程序中最小的、最紧张的逻辑单元,其在软件开辟中的紧张性不言而喻。如果将数据比作一道菜,那么函数就是菜谱,程序员就是厨师。相同的菜,有不同的做法,由不同的厨师做出来,味道会截然不同。
每个人都有义务捍卫、遵守或完善原则。原则可以修正,但是不能肆意妄为。——瑞•达利欧《原则》所谓原则,就是一套前人通过经验总结出来的,可以有效解决题目的指导头脑和方法论。遵从原则,可以事半功倍;反之,则有可能带来麻烦。
使用模式,我们可以让一个解决方案重复使用,而不是重复造轮子。设计模式(Design Pattern)是一套代码设计经验的总结,而且该经验必须能被反复使用,被多数人认可和知晓。设计模式描述了在软件设计过程中的一些不绝重复发生的题目,以及该题目的解决方案,具有肯定的普遍性,可以反复使用。其目标是进步代码的可重用性、可读性和可靠性。
(With patterns, you can use the solution a million times over, without ever doing it the same way twice.)
——克里斯托佛•亚历山大
建模的艺术就是去除着实中与题目无关的部分。在软件工程中,有两个高阶工作分别是架构和建模。如果把写代码比喻成“施工”,那么架构和建模就是“设计图纸”。相比于编码,建模简直是对设计经验和抽象本领要求更高的一种技能。例如,在当前热门的人工智能和呆板学习领域,建模是难度很大但非常紧张的工作。
——利普•沃伦•安德森(1977年诺贝尔物理学奖得主)
你可以,不代表你应该。在第6章中,我们简要绍了什么是模型、模型在软件开辟中的紧张性,以及一些常用的建模方式在软件工程中的应用。本章将重点解说领域驱动设计(Domain Driven Design,DDD),包括DDD的紧张概念,以及如何举行领域建模。
(Just because you can, doesn’t mean you should.)——施莉琳•凯尼恩
若想捉大鱼,就得潜入深渊。深渊里的鱼更有力,也更纯净。硕大而抽象,且非常美丽。——大卫•林奇软件行业有一个概念,对其了解越深入,我就越会感叹之前的理解是多么肤浅。在很长一段时间里,对这个概念的一知半解拦阻了我对面向对象技术,甚至是软件架构的深层次理解。
要把大象装冰箱,拢共分几步?——小品《钟点工》分治和抽象一样,都是人类进化过程中形成的伟大智慧,也是我们解决复杂题目的不二选择。人的思维要从一个字节大幅跨越到几百兆字节,也就是9个数量级(现阶段,背面还要再加N个零)。如此复杂的题目域,如果不举行分治,是远远超出人类智力范围的。
未经审视的人生不值得过。——苏格拉底在我的工作经历中,会发现有一些技术人员成长很快,可以或许迅速成为团队的骨干,也有一些技术人员总是在原地踏步,工作十年和工作一年的区别并不大。徐徐地,我发现这些良好的技术人员都有一些共同的特质和素养,从而资助他们不绝进步,脱颖而出。
Leader,就是走在队伍的最前面,带领者,领路人。——金一南《胜者思维》从我开始带团队的第一天起,有几个题目就一直在等我答复。
软件的紧张技术使命:管理复杂度。——史蒂夫•迈克康奈尔《代码大全(第2版)》工程师的紧张技术使命就是控制复杂度。整齐面向对象分层架构(Clean Object-oriented and Layered Architecture,COLA)是我地点团队自主研发的应用架构,是我们过去两年在复杂治理之路上的一个里程碑。
工匠平台,技术人自己的舞台!——“工匠平台”的宣传语本章将通过工匠平台的项目实战先容如何使用COLA框架开辟一个业务项目,从而更好地理解COLA,并使用COLA举行企业级应用开辟。
欢迎光临 创意电子 (https://wxcydz.cc/) | Powered by Discuz! X3.4 |