首先说一下什么是架构,参考维基百科的解释,软件架构指的是软件系统的基础结构,创造这些基础结构的准则,以及对这些结构的描述。
个人理解:对一个系统的合理模块划分以及定义个模块的任务及关联关系,最终组合成这个系统。这个架构可以涉及到软件模块架构、服务器负载、数据库集群、中间件的架构,各个层级都有各自的架构,最终在组合在一起就是整个系统的架构。
架构设计要做什么,从上面可以看出架构师有综合性的也有某方面比较专长的,比如擅长数据库或者服务器等。忽略这些细分,所有架构设计都是解决某一个系统的瓶颈或者一个系统中复杂的问题,参考一些其它文章和朋友的讨论,后面的文章统一称之为复杂度,每个系统都有自己的复杂度,如果没有找对系统真正的复杂度在哪里,而单纯的为了架构而架构,最终可能会得到本末倒置的结果。
常见的系统瓶颈又有哪些呢,主要有:高性能、高可用、可扩张、规模(业务复杂度、代码复杂度)等
想自己边学习边把自己的理解写成一个关于对架构学习的系列,今天是第一篇,有理解错误的欢迎指出