首页 > 其他分享 >阅读笔记9

阅读笔记9

时间:2023-05-22 16:12:06浏览次数:43  
标签:重构 创新 架构 进化 文化 笔记 软件架构 阅读

第九章:《构建之法》第九章介绍了软件工程中的进化式架构思想,通过历史案例和个人实践经验,讲述了如何使用架构创新、文化变革和持续重构这三个方面来实现软件架构的进化。

  1. 软件架构进化的特殊性
  • 与生物演化不同:生物演化是靠基因突变和自然选择,而软件演化则更依赖于人为介入。
  • 没有确定性算法:没有一种确定性算法可以保证得到正确的软件架构。
  • 不可逆性:软件架构一旦建立,过程中产生的错误和不良设计很难修补或是需要巨大的代价。
  1. 进化式架构的概念
  • 进化式架构是指在软件开发过程中,通过持续创新和改进来推动软件架构的演进。
  • 向量时序图(VTS)是一种可视化的架构演进计划,它反映了软件架构的主要组成部分、模块、接口等信息。
  1. 架构创新
  • 架构创新是指在现有的架构框架内,采用新的、更合理的架构设计方案,以期实现软件架构的优化和升级。
  • 模块化设计是产生架构创新的基础,通过模块化设计可以提高架构的灵活性和可扩展性。
  • 优秀的架构创新需要从业务需求、设计原则、技术选型等多个方面考虑,并且需要进行充分的测试、评估和推广。
  1. 文化变革
  • 文化变革是指在企业或团队层面上,通过改变组织结构、流程、文化等调整,促进软件架构的进化和创新。
  • 开放式文化是实现文化变革的前提,它包括敏捷开发、迭代设计、反馈机制和知识共享等方式。
  • 共同意识对于文化变革的成功起到至关重要的作用,它需要团队成员之间具有相同的目标、信任、沟通和协作能力。
  1. 持续重构
  • 持续重构是指在软件开发过程中,通过不断的修改和改进来优化软件架构,并且强调在保证功能完整性和稳定性的前提下进行架构改进。
  • 持续重构需要制定合理的重构计划、进行充分的评估和测试,并且需要持续关注代码质量和程序性能等方面。
  • 重构的难点在于如何分清哪些地方需要重构,如何掌握好重构的时机和节奏,并且如何保证重构的效果。
  1. 架构进化的实践经验
  • 理性对待新技术:新技术对架构演进起到了重要的推动作用,但是需要在实践中不断摸索和验证才能确定是否适用于当前业务需求。
  • 重视架构的可扩展性:架构需要具备良好的可扩展性,以应对日益变化的业务需求和技术发展。
  • 不断完善文化和流程:组织结构、流程和文化也是推动架构进化的重要因素,需要在实践中不断完善并与架构设计相协调。
  • 保持技术敏感度:保持敏感度可以及时掌握新技术和行业动态,为架构改进和创新提供有力支持。

本章主要讲述了如何通过架构创新、文化变革和持续重构这三个方面来实现软件架构的进化。让我们充分认识到软件架构进化的特殊性,通过实践经验来不断推动软件架构的优化和升级。同时,也需要理性对待新技术,注重保持技术敏感度和文化变革等方面,以提高软件架构的可扩展性和稳健性。

标签:重构,创新,架构,进化,文化,笔记,软件架构,阅读
From: https://www.cnblogs.com/yunbianshangdadun/p/17420896.html

相关文章

  • kindle7插件开发笔记[2]-使用Rust重写插件
    前言上一篇笔记:kindle7插件开发笔记[1]-在折腾中入门代码地址:https://gitee.com/qsbye/kindle-plugin-touch摘要用Rust语言重写在Kindle上显示图片的插件,初步实现了图片完整显示及自动刷新屏幕的功能.说明Kindle7的屏幕信息eips-i结果:Fixedframebufferinfoi......
  • 多方安全计算Secure Multi-Party Computation(SMPC)学习笔记
    引言随着数字化时代的到来,数据的价值变得前所未有的重要。然而,随之而来的是对数据隐私和安全的日益关注。个人和组织都希望能够利用敏感数据进行有益的分析和合作,但又不希望将这些数据暴露给其他人。在这种情况下,安全多方计算(SMPC)崭露头角。SMPC是一种创新的加密技术,它允许多个参与......
  • 网络故障老搞不定,就看这篇笔记
    大家好,我是老杨。做咱们这行,每天遇到的故障千奇百怪什么都有。很多网工每天只是在工作而已,遇到一个问题,就解决一个问题,每天的日子都是一样的,枯燥无趣。但是,就很少有人去汇总问题,登记在册,并且去复盘。这个行为就变成了一个分水岭,会做笔记、复盘的网工,都是聪明人。聪明人,自然升得快,赚......
  • Java笔记(六):锁
    传统的Synchronized锁Synchronized通过为方法或代码块添加互斥锁,来保证线程安全性。持有相同锁的多个线程,同一时间只有一个线程能够拿到锁并执行锁定的代码块或方法。publicsynchronizedvoidrun(){//dosomething}Lock锁接口Lock的实现类:ReentractLockReentractRe......
  • python学习笔记32:操作sqlite数据库
    importsqlite3#1.创建数据库连接#如果test.db存在,则建立连接,返回connect对象#如果test.db不存在,则新建数据库,再建立连接,返回connect对象conn=sqlite3.connect(database='test.db')#2.创建cursor对象cursor=conn.cursor()#SQL指令sql='''......
  • Vue脚手架笔记备注
    笔记脚手架文件结构├──node_modules├──public│├──favicon.ico:页签图标│└──index.html:主页面├──src│├──assets:存放静态资源││└──logo.png││──component:存放组件││└──HelloWorld.vue│......
  • 信息收集学习笔记总结
    1.域名信息(来自csdn)在渗透测试过程中,一般在目标的主站很少有发现漏洞点的存在,这时候我们就要从从主站之外的接口进行渗透测试,这时我们可以从域名出发收集信息。(1)端口一个网站可能会开放多个不同的端口,而我们可以通过同一网站的不同端口进行测试,扫描开放端口的......
  • git学习笔记2
    在提交树上移动在接触Git更高级功能之前,有必要先学习在你项目的提交树上前后移动的几种方法。一旦熟悉了如何在Git提交树上移动,你驾驭其它命令的能力也将水涨船高!HEAD我们首先看一下“HEAD”。HEAD是一个对当前所在分支的符号引用——也就是指向你正在其基础上进行工......
  • 学习笔记-Java8新特性-第四节-StreamAPI
    StreamAPI利用StreamAPI可以像流水线一样操作处理数据源(数组、集合……)Stream自己不会存储元素Stream不会改变数据源,而是会返回一个持有处理结构的新StreamSteam操作时延迟执行的,他们会等到需要结果的时候才执行称为惰性求值Stream操作的三个步骤创建Stream......
  • 学习笔记-Java8新特性-第五节-Optional类
    Optional类Optional<T>是一个容器类代表一个值存在或不存在致力于解决空指针异常问题(NPE)可以快速锁定发生NPE的位置(这东西真的好用吗?)常用方法Optional.of(Tt)创建一个Optional实例不能传入空指针,会报NPE使用Optional,报空指针了,说明就是这里的问题?......