一、架构的定义。
所谓一千个架构师中有一千种最好的架构模式。
结构是我们行业中一个非常常见的词,这表明它必须是经过长时间打磨而形成的一个词。这个词的结构意味着什么?要解决什么问题?只有理解这两个问题,我们才能设计出一个良好的项目结构。
我认为这个结构类似于绘制房屋设计图纸。一开始,当我们建造一栋小房子时,我们拍了拍额头,想了想。我们脑子里有一个大概的样子,就开始工作了。我们可以随心所欲地建造它。在大多数情况下,它不会出现。但是当你想建一栋楼的时候,虽然拍拍额头的方式可能还是有效的,但是由于没有经过深思熟虑的多方考虑,建造出来的一定是很多问题。此外,建造建筑和建造一层小屋所需的团队规模肯定不同,每个人心中的标准也不同。如果没有统一的规范,最终的结果可想而知。因此,结构是制定规则和限制,是权衡各方得失后的最合理决策,指导团队中每个人的思想一致性,使最终产品达到一个人做的效果。此外,还具有控制复杂性、提高团队合作能力、降低成本等功能。
在软件开发中,架构的意义不仅仅是让团队达成协议,因为我们工作的本质是做出更好的软件产品来支持业务发展的需要,所以架构也是基于业务架构。我认为一个好的架构可以提前预测业务发展1~2年。这样可以付出更合理的代价,真正达到技术引领业务增长的效果。我相信大多数在中小企业工作过的人都应该经历过被企业推动的时代。他们每天都在这里被卡住,挂在这里,报错等等。当我们遇到这些问题时,是时候花费成本来考虑当前架构是否存在问题了?
二、如何开始设计架构。
做架构最重要的一点就是上面提到的适合业务,任何不基于业务做异想天开的架构都是耍流氓~。
架构不像通常的代码,是对是错,它没有对或错,是一个选择的过程。当我们从0开始做架构时,真的很困难。虽然一切都很困难,但一个好的开始相当于成功的一半,这将为我们的下一项工作奠定坚实的基础。
以下是个人应如何从头开始做一个架构,供大家参考学习:
1.架构是一个整体->部分的过程。首先要明确整个公司/组织提供的服务是什么?这是最高的战略结构,一旦确定就很难甚至无法改变。
2.将解决方案划分为每个部分(如SOA的服务)。例如,根据公司的组织结构或产品。
3.找到每个解决方案的核心功能和支撑功能。并形成业务总结图。
4.结合当前实际资源情况做出最终决策,是整个过程中最耗时的一点,决定了结构的复杂性和开发成本。方法包括但不限于提取可重用功能、功能组合、拆分粒度更细功能、提高可重用性等。所有这些决定都应该是正确的。不要盲目跟随微服务的趋势!不要盲目跟随微服务的趋势!不要盲目跟随微服务的趋势!不要盲目跟随微服务的趋势!重要的事情要说三遍。服务粒度越细,呼叫环节越复杂,开发成本是否适合团队是建筑师需要考虑的一点。
5.建立各功能块之间的合作模式,包括但不限于通信模式、通信协议、依赖关系等。
6.最后,我们应该形成最终的结构概述图,这可以帮助我们从更高的角度考虑结构的演变。如果我们重新构建现有的项目,我们需要整理现有的项目结构,作为上述思维过程中的一部分参考信息。
三、良好结构的特点。
首先,我们必须有工匠精神,因为软件架构和房子建设是不同的。它不是一步到位的。好的设计必须经过反复修改,从简单到复杂的循环验证,不断打磨。
我认为方向分为以下几点:
1.文档化:无论是整个生命周期还是部分生命周期,都必须做好文档化工作。变化的来源包括但不限于bug和需求。
2.高可用性:为了尽可能提高软件的可用性,我认为每个操作人员都不愿意看到自己的工作不能正常进行。黑盒白盒测试、单元测试、自动化测试、故障注入测试、提高测试覆盖率等。
3.安全:组织运行过程中产生的数据具有商业价值,确保数据安全也是当务之急。以避免XX门等丑闻。加密、https等是一种常见的手段。
4.可扩展性:软件设计坚持低耦合的概念,注意在合理的地方抽象。方便功能新技术迭代和应用,支持及时重建架构。
5.快速迭代:拥抱变化,占据战略机遇。
6.高度自治:为了更好地支持第四点和第五点,每个功能高度自治的优点是可以快速迭代,并尽量减少功能迭代和技术迭代对整个系统的影响。
7.高重用:为了避免重复劳动,降低成本,我们希望重用之前的代码和之前的设计。这是对结构环境最大的依赖。
8.可验证:一个好的框架需要考虑各种特殊情况,并且可以进行特殊验证。
第四,做架构上的误区。
做任何事情都需要不断跳出原来的思维角度重新审视,以免陷入泥潭。列出一些误解:
误解1-架构是专门由架构师完成的,业务开发人员不需要注意:无论结构有多好,最终都需要代码来实现,组织越大,实现的难度就越大。不仅是系统架构,每个解决方案和每个项目都有自己的架构,如分层、设计模式等。如果每块砖都不够坚固,那么整个系统仍然有崩溃的风险。所谓的数千英里的堤坝,崩溃在蚁巢。
误区2-架构师确定架构蓝图后,任务就结束了:架构不是空中楼阁,最后还是要落地,但是架构师根本不深入一线。他们怎么知道地在哪里?如何才能稳步落地?
误解3-不要做完美的架构设计,不要开始:世界上没有最好的架构,只有最合适的架构。我们需要的不是一下子造一辆车,而是从单轮车->自行车->摩托车,最后到汽车。想象一下两年后才能生产出来的产品。市场还存在吗?
五,结语
架构之路还有很长的路要走。程序设计和架构设计是每个人都可以从设计一个程序向设计一个系统架构前进。