| 话题1
1946年阿兰图灵写下第一行代码,到现在各种高级语言层出不穷,期间发生了天翻地覆的变化,工具变了、硬件编了。但又有些东西有没有变,现在我们写程序和几十年前写的程序,无一例外都是顺序结构、循环结构、分支转移这几种组合组成,无可增加,也缺一不可。
当然,有的同学也会提到,其实我们还有变化,我们现在有SOLID这样的设计原则,也有23种设计模式来指导我们编程。实际上这些原则和模式正是在指导我们怎样把代码的结构,分支顺理成章。
比如我们用SOLID这样的设计原则来指导我们写代码,它是将设计和实现完美的进行了融合。为什么这样说呢,好比建造一所房子,我们设计好了图纸,然后需要用砖头来垒砌。如果砖头的质量不好,那么我们房子的设计图纸再好,最后房屋的质量也堪忧。同样,我们写的每一行代码就是那块砖头,熟悉这五种设计原则的同学都知道:
SOLID原则可以直接紧贴于具体的代码逻辑之上,这些原则是用来帮助我们定义软件架构中的组件和模块的。
让我们的软件做到:
可容忍被改动。
更容易被理解。
构建可在多个软件系统中复用的组件。
当谈到改动、变化和复用的时候,我们的软件架构师应该着力于将大部分处理逻辑都归于不可变组件中,可变状态组件的逻辑应该越少越好。如何做到这一点,也正是设计原则和设计模式它们要发挥的作用,可以指导我们将应用程序的状态要修改的部分和不需要修改状态的部分隔离成单独的模块,然后再用合适的机制来保护那些可变量。
在软件架构中重点关注的重点之一是“组织结构”,当我们讨论类、函数、模块、服务等等的时候都是在无形中讨论组织结构,一个良好的代码设计首先是看结构,其次是看逻辑。
“但是真实世界中的许多软件项目并不完全按照我们的信念和愿望生长。”
我们还受到很多现实的制约条件,“CPU速度和网络带宽往往在很大程度上决定了系统的性能,而内存和存储空间的大小也会大幅影响代码的设计野心。”
所以有的人也会说,软件设计像极了爱情。
女士,这就是爱情的穷凶极恶之处,人的意愿是无穷的,而实际行动却处处受限。人的欲望是无止境的,行为却不得不遵从现实的限制。
——威廉·莎士比
| 话题2
关于共识,这里分享一下,有时候我们经常在开会的时候说大家先形成一个共识,共识的本意是尽可能让多的人在限定的时间里达成一致。但是,“很多人误以为共识就是投票,让少数服从多数。其实不然。投票是个表面公平,但其实非常暴力的决策方式。它是在参与者无法达成共识的情况下,依然要获得一个决策的办法。而共识的目标并不是达成一个决策,而是让尽可能多的参与方认可一个决策。”
| 话题3
关于运气,在池老师专栏,让时间为你证明里面看到一段介绍,分享一下。
| 话题4
释迦牟尼说: “无论你遇见谁,他都是你生命该出现的人, 绝非偶然,他一定会教会你一些什么”。
| 话题5
人处在一种默默奋斗的状态, 精神就会从琐碎的生活中得到升华。 ——路遥
参考资料:
《架构整洁之道》
----END----
这里记录,我每周碰到的,或想到的,引起触动,或感动的,事物的思考及笔记。不见得都对,但开始思考记录总是好的。