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.软件架构的目标

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

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

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

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

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

     
  • 相关阅读:
    C#利用反射动态调用类及方法
    系统程序监控软件
    SQL server 2008 安装和远程访问的问题
    sql server 创建临时表
    IIS 时间问题
    windows 2008 安装 sql server 2008
    sql server xml nodes 的使用
    Window 7sp1 安装vs2010 sp1 打开xaml文件崩溃
    CSS资源网址
    Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0
  • 原文地址:https://www.cnblogs.com/cuijunfeng/p/13056461.html
Copyright © 2011-2022 走看看