zoukankan      html  css  js  c++  java
  • 《架构整洁之道》阅读笔记01

    我阅读的第一本名著是电子版的《架构整洁之道》,网上对这本书的评价很好,阅读后我总结了自己的一些阅读笔记和心得体会,按点论述一下:

    1.程序员三个层次

    1.1普通程序员:就是正确处理业务和数据计算,让代码跑起来

    1.2工程师:写的代码易读、易维护、易扩展、可重用、效率高

    1.3架构师:权衡、决策、简化、灵活、应对复杂度

    2.软件开发需要解决的问题

    1.微观:代码

    2.宏观:架构

    3.分离控制与逻辑

    控制:对程序流转,与业务逻辑无关,如:多线程、异步、服务发现、消息中间件等,另外还有业务逻辑中的判断(if else) ,  是否可以去掉if else ,  变为根据一定规则进行路由到不同逻辑, 这样也便于扩展, 职责分离,同时也便于测试

    逻辑:实实在在的业务逻辑,解决用户问题的逻辑

    控制、逻辑构成了整体的软件复杂度,有效分离得到最大简化

    3.架构对软件开发的影响

    一个好的软件架构需要考虑以下四点:

    3.1人力成本:可以大大节省软件项目构建与维护的人力成本

    3.2变更成本:让每次变更都短小简单,易于实施

    3.3风险:并且避免缺陷

    3.4扩展性:最大程度地满足功能性和灵活性要求

    4.设计与架构的关系

    作者的观点是二者之间没有区别。我认为一般的软件设计与架构设计差别还是很大的,面临的问题,思考的方式都是不一样的。底层设计细节和高层架构信息是不可分割的。

    5.复杂软件开发的思想

    要想跑得快,先要跑得稳

    6.软件架构的目标

    支撑软件系统的全生命周期,设计良好的架构让系统便于理解、易于修改、方便维护,并能轻松部署

    开发阶段:组件不要使用大量复杂的脚手架;不同团队负责不同的组件,避免不必要的协作

    部署阶段:部署工作不要依赖成堆的脚本和配置文件;组件越多部署工作越繁重,而部署工作本身是没有价值的,做的越少越好,所以要减少组件数量

    运行阶段:架构设计要考虑到不同的吞吐量、不同的响应时长要求;架构应起到揭示系统运行的

    维护阶段:减少探秘成本和风险。探秘成本是对现有软件系统的挖掘工作,确定新功能或修复问题的最佳位置和方式。风险是做改动时,可能衍生出新的问题

     
  • 相关阅读:
    拓端tecdat|R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
    拓端tecdat|R语言资产配置策略量化模型:改进的移动平均线策略动态回测
    拓端tecdat|R语言量化:合成波动率指数移动平均策略分析标准普尔500波动率指数(VIX)
    拓端tecdat|Python中的多项式回归拟合非线性关系实例
    从集团管控到集团赋能
    性能之巅-优化你的程序
    3个小时,从学到做,我用低代码平台搭了一套管理系统
    Hadoop架构原理
    硬核操作系统讲解
    一文弄懂什么是DevOps
  • 原文地址:https://www.cnblogs.com/cuijunfeng/p/13056461.html
Copyright © 2011-2022 走看看