程序员

如何进行架构设计(一):制定战略性指导方案

2018-07-25  本文已影响0人  长风几厘米

1. 引言:代码未动,架构先行

  假如你是一名研发主管,有一个软件产品的项目派到了你的团队,你需要调动你的团队开始攻克这个项目,当项目的启动计划书摆在你的面前的时候,立刻就有一大堆问题冒了出来,需要你去解决:

以上这三个问题是你首要必须考虑解决的问题,假如这个项目是一个互联网应用项目,那么你还必须要考虑解决如下问题:

要想解决这些问题,其中一个必要的手段就是设计良好的软件架构,当然设计良好的软件架构不能保证我们解决所有这些问题,但可以帮助我们解决相当一部分问题,并且能够辅助解决其他依靠软件架构无法解决的问题。
  因此在进行开发之前,先进行架构设计是一个良好的开端,一上来就一头扎进代码中,不但无法解决上述的问题,并且没有架构约束的开发过程将会不受控制的产生新的问题并且积累下来,这些不断累积的问题有一个很形象的称谓:技术债,当然无论多么优秀的架构都无法完全避免技术债的产生,但是良好的架构可以控制技术债的产生速度、规模以及范围,同时可以降低我们偿还技术债务(通常是通过重构的方式)的成本。
  那么如何进行架构设计呢?接下来,让我们进入正题,通过一步步制定架构设计的行动方案来讲解架构设计的过程。

2. 制定战略性指导方案

  如何进行架构设计呢?首先我们需要制定一个行动方案,在制定方案之前我们先来尝试着回答一下这个问题:

如何进行架构设计:通过分析应用系统的上下文环境,选择使用合适的架构模式或者设计新的架构模式一步一步勾划出整个应用系统的架构模型。

这个答案给出了一个大体的思路,这个思路提供了制定方案的依据,通过这个思路,我们可以初步制定出一个包含三个步骤的行动方案:

行动方案初版:战略性指导方案

  1. 分析应用系统的上下文环境;
  2. 根据具体的上下文环境选择合适的架构模式或者设计新的架构模式;
  3. 使用选择的架构模式逐步勾画出应用系统的架构模型;

到了这里,虽然已经有了一个方案,但是我们仍然会感到很困惑:这个方案到底如何执行,架构到底如何设计?这是因为这个方案只是一个初步的方案,具有一定的抽象性、概括性,不够明确,不够具体,因此还不具备可行性,只具有战略性的指导作用,是一个战略性指导方案。通常情况下,这种方案是老板交给下属的方案,个人认为,理想的上下级协作模式就是由上级提供战略性指导方案给下级,下级明确化、具体化成战术性可执行方案后交给上级,上级审核后交由下级执行;当然,能够遇到一个擅长提供战略性指导方案的老板,说明你的运气还不错,因为很多老板在分派任务的时候只是会下达诸如:我要xxx、给我做个xxx之类的指令,他们期望你是那种听到指令就能立刻明白怎么做,然后马上开始执行,很快就做出成果的超人员工。当然在这次学习之旅中,我们就是我们自己的老板,同时,我们又是自己的下属,我们给自己下达任务,然后自己执行;我们已经给自己提供了战略性指导方案了,下面就让我们将他明确化、具体化成为战术性可执行方案。

上一篇下一篇

猜你喜欢

热点阅读