| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 读书笔记-架构整洁之道有感 -> 正文阅读 |
|
[游戏开发]读书笔记-架构整洁之道有感 |
👉关于作者
👉前提注意:文章内容有些是书本原句,有些是感悟 👉实践过程在我心中程序员分为三个层次:普通程序员、工程师和架构师。 带着观点和问题我们进入该书的海洋。 观点:无论是微观世界的代码,还是宏观层面的标构,无论是三种编程范式还是微服务架构,它们都在解决一个问题一一分离控制和逻辑。所谓控制就是对程序流转的与业务逻辑无关的代码或系统的控制(如多线程、异步、服务发现、部署、弹性伸缩等),所谓逻辑则是实实在在的业务逻辑,是解决用户问题的逻辑。控制和逻辑构成了整体的软件复杂度,有效地分离控制和逻辑会让你的系统得到最大的简化。 问题:如果你要成为一名架构师,你需要明确地区分几组词语(如何区分它们正是留给你的问题),否则你不可能成为一名合格的工程师或架构师。这几组词语是简单vs.简陋、平衡vs.妄华、迭代Vs.半成品。如果你不能很清楚地定义出其中的区别,那么你将很难做出正确的决定,也就不可有成为一名优秀的工程师或架构师。 按照Bob大叔的说法,所谓架构就是“用最小的人力成本来满足构建和维护系统需求”的设计行为。 文中有一个很有意思的举例:让一个上世纪的人穿越到现代和让现代的人穿越到上世纪,上他们敲写程序,可能需要一定的时间适应新的欢迎,但要不了多久他们就能正常工作了。 虽然这几十年硬件设备的提升可能大的难以想象,但软件结构形式【逻辑的组合】基本没有变化。仔细联想下,现在我们用的很多语言都是继承了上个世纪的思想,虽然我们一直在更新,但本质上可以说我们和上世纪没区别。 😜结构和设计是什么?设计可以说是架构的组成部分,而架构又是经过设计所产生的。他们之间没有明确的区分,甚至都没有区别。 现在我们开发产品,总是想着快速上线,总是“欺骗”自己上线后再想重构的事情,但事实并非如此,一旦上线,频繁的版本迭代根本没时间重构,再加上同类产品的竞争追赶,更加没时间想这些了。 这一点小空是感同身受的,已经不知道这么干了多少回了。 随着编程领域的不断发展,出现了编程范式,共有三种【相继在1960年左右提出】,相信未来短期内也不太可能出现新的。 😜SOLID原则她不是一个单一的原则,而是多个原则的简称。 😜无依赖环原则这是个有头有尾的连环依赖:A依赖类B,类B依赖类C,类C依赖类D,类D依赖类A。这种情况应该很明确ABCD他们应该是同一个大组件内,而不能分开在不同的组件,否则不同的组件又是不同的人负责,你加班加点干完后,第二天一来又不能运行了,调来调去发现同事把你依赖的组件修改了。我靠,小空直接TM想干架。【抱歉,说粗话了】 😜稳定依赖原则我们用公式来作为直观的指标 😜稳定抽象原则这一原则学的时候没绕过弯来,所以小空没有什么举例证明,所以直接引用下阿里云文章的一段话: 小空特别喜欢其中一部分:软件架构师必须是一线程序员,千万不要摆脱代码空空而谈,就像脱离了人民群众的领导,你不亲身体会其中设计带来的麻烦和痛苦,你怎么寻找到正确的方向?怎么能够引导团队最大化生产力不断前进呢? 中间这部分小空读了,说实在的,自己本事没修炼到家,这部分理论性较强读完感觉没什么要点,所以在这也就直接省略这部分了。不过我还是列举出他们的章节名称,有兴趣的自己看原著吧。 😜数据库只是实现细节作者在书中说了一段故事:他和同事争论在项目中要不要使用数据库,而争论的问题点不是该技术对项目的影响,而是市面上人们都在用,有些客户要求用,所以要增加,但你问他为什么又不知道为什么用。 😜Web是实现细节开篇作者就说出了真相:开始Web是简单的展示,资源的计算再服务端,随着时间的推移,人们将很多计算又放到了Web端,又随着技术发展,屁颠屁颠的将计算量又挪回服务端,来来回回,一声叹息。 😜框架是实现细节框架流行是一件非常好的事,能为社区带来很好的活跃性,这点不可否认,你帮我,我帮你,快快乐乐甜甜蜜蜜。 😜结尾剩下的章节是作者的小举例和真实故事,这个不太好总结,有兴趣的去书中看原始真解吧。 👉其他
|
|
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 18:42:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |