聊聊系统设计吧
聊聊系统设计吧
系统设计, 理论上算是计算机工程领域的一个过程. 但是, 就像计算机的大部分领域一样, 并不是科学, 是艺术, 计算机就是披着羊皮的狼, 看上去是科学, 其实不是.
所以, 某些大牛可以吼: 数学没有用.
哦, 无知就是力量. 数学于计算机, 是本质
但是,
一般
__情况下, 不用数学也可以写一般
__的代码.
上面这一段纯属扯淡, 完全没有营养好不好?
###作系统设计, 我一般这么弄:
####阶段目标:
- 纸面阶段, 我一般解决几个问题:
- 草草的草图.
- 各种关系的草图.
- 基础数据和核心数据关系的草图.
- mindmap阶段:
- 核心系统的核心架构
- 核心数据之间的关系
- 信息架构/业务逻辑关系架构
- 泳道图阶段:
- 关键业务逻辑
- 主业务逻辑
- 文本工具阶段:
- 核心逻辑设计
- 接口逻辑设计
- 版本管理贯穿整个过程, 我们使用git作分布式版本管理. 这货太帅了.
####工具
- 最重要的工具是纸, 笔, 电话. 找需要找的人了解情况. 这是最基础的工具, 兵器之王: 拳头.
- 有任何情况没了解到, 就继续找人, 相信我, 那是因为你没有找到合适的人.
- 感谢moto, 高通, 苹果我们现在有了手机, 可以更方便的联系到我们要找的人.
- 虽然最好是当面了解情况, 但是, 在现在社会, 想要当面观摩一个活人有多难, 大家都深有体会吧. 就连做爱, 很多创业o2o公司都嚷嚷着要虚拟化了.
- 所以不要害羞, 打电话, 发微信, 用qq, 旺旺, 丁丁, 陌陌等等你一切知道的手段联系他吧. 顺便说, 不是两字重复的im工具一定会灭亡, 比如
来往
. - 纸面画好的内容, 最好能贴在墙上, 最好拍照存档.
- 不那么重要的工具: freemind.
- 纸笔用的差不多了, 有好几张纸的素材了, 这个时候需要理一下思路.
- 我推荐使用古老的freemind. 这个应该是最早的mindmap工具,
- 虽然不够新潮, 但是, 功能实用, 尤其是快捷键, 非常好.
- 啥时候能够像其他文本编辑器一样, 支持emacs快捷键, 就好了.
- 但是, 我要说的是, 从0.9之后, 可能是换了程序员, 代码质量有严重的下降. 并且包尺寸急剧变大.
- 如果大家要用她, 那么, 有一个要点, 需要先打开程序, 再去双击打开文档.
- 如果大家不想用它, 那么可以使用其他的mindmap工具.
- mindnote, 后起之秀很漂亮, 同样漂亮的还有免费的xmind.
- 不推荐mindmanage, 收费而且丑.
- 纸笔用的差不多了, 有好几张纸的素材了, 这个时候需要理一下思路.
- 不那么重要的工具: atom, macdown, 编辑文本很好用.
- ulysis也很好用, 适合搞连续剧式的系统分析,
- typora也是很好用的markdown, 可惜, 我搞不明白他的黑色背景咋搞.
- 明白了, 可以直接使用themes, 脑子僵化了, 总觉得这种设置应该在配置里面, 结果发下竟然在菜单里面直接有这个一级菜单. 果断切换typora作为主要markdown工具.
- 泳道图工具: omni graffle, 反正这是一个通用的矢量图工具, 包括低保真原型也是他的范畴.
- 原型工具: sketch,
- 这是一个伪装成位图工具的矢量图工具,
- 普遍细致程度超过omni graffle,
- 画的时候要注意多用模板(symbol), 不用symbol, 那么sketch的优势完全发挥不出来.
- 另外, 不要用artboard, 那个货调整起来太烦. 多用group, group配合lock, 效果=artboard, 但是调整方便太多了.
- github, 最好的留在最后, 工具之王, 没有这个工具我就活不下去了.
- 如果, 没有他, 我们之前这些东西放到哪里呢?
- 如果, 没有他, 我们就没有分布式, 支持markdown的wiki用.
- 如果没有他, 我们就没有分布式, 支持markdown的blog用.
- 其实cms也可以用它这套弄.
- 图片, 设计稿等等文件可以git控制,
- 文本直接markdown, 放到wiki控制.
- 现在这个blog也是在github上面.