zoukankan      html  css  js  c++  java
  • 一线架构师实践指南阅读笔记1

    读了一线架构师实践指南的前边两个章节,开篇绪论作者指出了一线架构师经常面对的6个经典实践困惑,包括四个实际问题困惑:将系统划分模块,如何更合理?大系统架构设计,如何起步?总觉需求很糟糕,影响了架构设计!非功能需求重要,但如何设计?两个职业困惑:架构新手:缺乏指导,架构设计不知所措!架构老手:缺乏总结,仍“怕”下个项目!在后文中使用三个阶段和一个方法论来解决这几个疑惑。之后引出了本书主张,方法体系是大趋势;质疑驱动的架构设计;多阶段方法;内置最佳实践的方法。

    方法体系必然是软件界未来发展的重大趋势之一,单一方法已经捉襟见肘,架构师真正需要的是综合了不同方法优点的方法体系。质疑驱动的架构设计,架构师的头脑才是架构设计全过程的发动机。质疑意识是架构师最宝贵的意识之一。

    作为架构师,首先要面对的风险就是需求。既要关注功能需求,又要平衡相互矛盾的质量属性需求,还不能遗漏各方面的约束性需,这已成为合格架构师必需的基本功。作者通过三个故事:外籍人员管理系统、嵌入式OS的剪裁、放弃C++,用C重写计费系统,来进行阐释这一观点。架构设计不仅要考虑支持功能、满足质量要求,还要重视各种约束性需求。

    软件架构师不必是需求捕获专家,也不必是编写《软件需求规格说明书》的专家;但他一定应在需求分类、需求折衷和需求变更的研究方面是专家,否则他和优秀软件架构师相比就输在了“起跑线”上。

    后面继续讲解Pre- architecture阶段内容的展开部分,功能需求、质量属性及约束共同决定了架构,对这3类需求的把握是否到位、设计决策是否对路,是架构设计成败的关键所在!在这一阶段明确的提供了指导——四步法:1.需求结构化2.分析约束影响3.确定关键质量4.确定关键功能。这一阶虽然是铺垫性质的阶段,但是对架构时间的意义重大。

    软件需求=功能需求+质量属性+约束。架构设计之初,要是制定了错误的质量属性目标(包括遗漏重要的质量属性),将面临的痛苦可能是客户不满、项目返工、同事抱怨……

    在“需求结构化”的基础上,“确定关键质量” 着重完成如下两项任务:

    根据系统所在 领域的特点及系统规模等因素,确定架构设计重点支持哪些质量属性(例如重点支持高性能、可扩展性)

    分析上述质量属性之间的制约关系,第一时间指定权衡折衷的具体策略(例如明确高性能是第一位的,可扩展性与高性能相矛盾时应照顾高性能要求,是否引入支持可扩展性的设计须经架构组评审)。

  • 相关阅读:
    88250 的“一分钟想法”
    88250 的“一分钟想法”
    有关在对话框上创建视图上的再探索
    jmap命令(Java Memory Map) 51CTO.COM
    要么滚回家里去,要么就拼
    悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!
    对研发经理这一岗位的个人理解
    Linux Soho 兼 职 系统工程师 Email: yufeixiaoyu@gmail.com
    9月1日机器学习与自然语言处理精品班开班现场_培乐资讯_北京培乐园科技咨询有限公司
    简单的Memory leak跟踪
  • 原文地址:https://www.cnblogs.com/lixv2018/p/13110420.html
Copyright © 2011-2022 走看看