曾经有同事在讨论需求的时候提过一句话,“你做这个功能的时候,要把用户想成傻子“,我当时的理解是,用户不一定是懂我们设计的产品,我们做出来的产品越简单,他们才能用的越方便。后来看书、学习、工作,慢慢的觉得,我们做事,做产品有很多规律可以遵循。这些规律可以指导我们,少走弯路。以下是我在看书的时候,摘过来的一些软件设计的事实、法则、条例、定义,但这些也只是冰山一角,需要逐渐的学习、积累
事实
- 有可能发生异常的地方一定要打日志,否则出现问题很难排查
- 任何软件都有BUG
- 好程序员和差程序员的差别在于理解力,差劲的程序员不理解自己做的事情,优秀的程序员则相反
- 每个写代码的人都是设计师
- 软件设计是有规则可循的,他们可以被认识,可以被理解,规则是恒久不变的,是基本的事实,而且确实可行
- 如果设计让事情更复杂,而不是更简单,就犯了过度工程的错误
- 简洁是相对的
- 所有可行的简化,其核心问题都是:怎么做,才可以让事情处理或是理解起来更容易
规则
- 软件的目的就是帮助其他人
- 测试定律:你对软件行为的了解程度,等于你真正测试它的程度
条例
- 好程序员应当竭尽全力,把程序写得让其他程序员容易理解
- 直到真正要用了才编写代码,清理掉用不到的代码
- 最好的设计,就是能适应外界尽可能多的变化,而软件自身的变化要尽可能少
- 代码可读性主要取决于字母和符号之间的空白排布
- 名字应当足够长,能够完整表达其意义或描述其功能,但不能太长,以免影响阅读
- 如果你真的希望成功,最好是把产品简化到傻子也能懂
- 简洁离不开设计
- 未来的某些事情,是我们不知道的
- 你可以这样增加复杂性
扩展软件的用途
新增程序员
做无谓的改变
困于糟糕的技术
理解错误
糟糕的设计或者不做设计
重新发明轮子
背离软件设计的用途 - 通常,如果某件事情变得非常复杂,也就意味着深藏在表面的复杂之下,设计出了问题
- 在复杂性面前,问问自己“真正要解决的问题是什么?“
- 要应付系统中的复杂性,可以将系统分解成独立的小部分,逐步重新设计
- 除非亲自测试过,否则你不知道软件是否能正常运行
定义
- 程序就是,给计算机的一系列指令;计算机依据指令进行的操作
摘自《简约之美-软件设计之道》
本文摘录了《简约之美-软件设计之道》中关于软件设计的原则与实践,强调了简洁性和用户友好性的重要性,探讨了好程序员与差程序员的区别,并提出了有效的软件设计方法。
1092

被折叠的 条评论
为什么被折叠?



