Skip to content

软件设计

软件设计的基础意义是根据实际的业务需求编写软件进行实现。但是,在实际的环境中,事情往往没有想象中的那么简单,我们需要额外面临更多考验。例如:可行性问题、成本问题、可维护问题、质量问题等。如何解决这些附加问题是研究软件设计的根本动力。

理论概览

在众多的经典范式理论中,我们感到了百家争鸣般的喧闹。有的是宏观理论,为我们提供方向性指导,有的是专精细分领域,为不同的领域提出可实践的意见。

成熟大派,更是在特殊的领域内独占山头,为开发者提供一个稳定的栖息之地:

笔者总结面向时空是为了破除这些理论的隔阂,从一个更高更全面的维度去理解这些理论的本质,总结概括杂乱的理论商品,减少选择困难。并走到实践中去,提出具体的实践方案,让理论变得可行。

对于任意一个 IT 行业的技术,我们在学习它的时候,可以从使用者和实现者两个层面去学习,如果我们只是简单使用,那么可以从使用者的角度上去学习,如果我们需要自定义它,那么我们需要从实现者的角度上去学习。以此角度,一个人对于一个技术的掌握程度可以分为

  • 使用:作为技术的使用者,掌握基础的使用方法
  • 调优:作为技术的深度使用者,初步理解了其外观结构,能够根据实际业务进行调优
  • 设计:作为技术的设计者,整体掌握了技术的架构
  • 实现:作为技术的实现者,整体掌握技术架构,并且熟悉技术实现中的特定细节

某个技术点,如果市面上存在着多个同类型的技术或者解决方案,那么作为其使用者,考虑如何选型是最基础的考量。