软件设计实践

本文首发于个人微信公众号《andyqian》, 期待你的关注!

前言

  拿破仑曾经说过:“不想当将军的士兵不是好士兵”。而在软件行业中,几乎每个程序员心里都有一个成长为架构师的梦想。程序员与架构师之间,不仅仅是角色的转变,更多的是知识的积累,以及架构,设计能力的转变。最近有幸参与了一些设计工作,系统算不上复杂,庞大。但在这过程中将自己的不足暴露的淋漓尽致,如同裸奔,有着凉飕飕的感觉。记录这篇文章,算是一次小结,同样也给自己之后系统设计时留下一丝指引。

愿景

  愿景二字其字面意思是:希望看到的场景。这一词在潘加宇老师的《软件方法》中解释为:我们希望新系统 / 服务 是怎样的 ?也就是为以下几点:

  1. 我们为谁编写系统?也就是寻找到业务 “老大”,可以理解为解决XX的问题?这个 XX 就是老大。

  2. 我们编写该系统的目的是什么?

  3. 希望通过它能够解决什么问题?

  4. 没有该系统前,业务是怎样运行的?(现状)

  5. 有该系统后,业务会发生怎么样的变化 ?(改进后)

     

在愿景中,个人建议添加适量的可量化值,以及图(交互图)等更直观的表达体来体现两者之间的差异。例如:

  1. 改进前:TPS 是 1000,改进后:TPS 是 2000 等。

  2. 改进前:对接新产品需要 40天, 改进后:对接新产品只需要 20 天。

业务用例

   技术人员一直有个不愿承认的事实是:技术是为业务服务的,而技术是一种业务实现的手段/工具。在这样的前提下,我们在做新系统设计时,优先需要理清业务,先做业务分析设计。在进行业务分析设计时,我们以组织为研究对象。组织提供的价值称之为业务用例,组织外部与系统交互的人或组织称之为业务执行者,组织内的人称之为业务工人,组织内非人系统称之为业务实体。

进行业务设计分析时,常用工具有:用例图, 时序图

  1. 用例图

其表达的核心价值是:业务组织向业务执行者提供哪些价值,而这些价值通常用业务用例表示。在用例图中用到的元素有:业务执行者,组织,业务用例。例如:腾讯这个组织,向微信支付用户,提供小程序支付这个价值的业务用例。如下图所示:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 译者序 前言 第1章 风格 1 1.1 名字 2 1.2 表达式和语句 4 1.3 一致性和习惯用法 8 1.4 函数宏 14 1.5 神秘的数 15 1.6 注释 18 1.7 为何对此费心 22 第2章 算法与数据结构 23 2.1 检索 23 2.2 排序 25 2.3 库 27 2.4 一个Java快速排序 29 2.5 大O记法 31 2.6 可增长数组 33 2.7 表 35 2.8 树 39 2.9 散列表 43 2.10 小结 46 第3章 设计与实现 48 3.1 马尔可夫链算法 48 3.2 数据结构的选择 50 3.3 在C中构造数据结构 51 3.4 生成输出 54 3.5 Java 56 3.6 C++ 59 3.7 Awk和Perl 61 3.8 性能 63 3.9 经验教训 64 第4章 界面 67 4.1 逗号分隔的值 67 4.2 一个原型库 69 4.3 为别人用的库 72 4.4 C++实现 79 4.5 界面原则 82 4.6 资源管理 84 4.7 终止、重试或失败 86 4.8 用户界面 90 第5章 排错 93 5.1 排错系统 94 5.2 好线索,简单错误 95 5.3 无线索,难办的错误 98 5.4 最后的手段 101 5.5 不可重现的错误 103 5.6 排错工具 105 5.7 其他人的程序错误 107 5.8 小结 108 第6章 测试 110 6.1 在编码过程中测试 110 6.2 系统化测试 114 6.3 测试自动化 118 6.4 测试台 120 6.5 应力测试 123 6.6 测试秘诀 125 6.7 谁来测试 126 6.8 测试马尔可夫程序 127 6.9 小结 129 第7章 性能 130 7.1 瓶颈 130 7.2 计时和轮廓 135 7.3 加速策略 138 7.4 代码调整 140 7.5 空间效率 144 7.6 估计 145 7.7 小结 147 第8章 可移植性 149 8.1 语言 149 8.2 头文件和库 154 8.3 程序组织 156 8.4 隔离 159 8.5 数据交换 160 8.6 字节序 161 8.7 可移植性和升级 164 8.8 国际化 165 8.9 小结 167 第9章 记法 169 9.1 数据格式 169 9.2 正则表达式 174 9.3 可编程工具 180 9.4 解释器、编译器和虚拟机 182 9.5 写程序的程序 186 9.6 用宏生成代码 189 9.7 运行中编译 190 后记 195 附录:规则汇编 197 索引 200

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值