{"componentChunkName":"component---src-templates-blog-post-js","path":"/blog/2020-06-04-architecture-method/","result":{"data":{"markdownRemark":{"id":"fd26775e-9cea-577c-b962-b3bb567ae1aa","html":"<p><img src=\"/img/chemex.jpg\" alt=\"chemex\"></p>\n<h2></h2>\n<blockquote>\n<p><code>凡见诸相非相，即见如来～《金刚经》</code><br>\n<code>凡事不拘泥于具体的形式，而是要理解表相背后的设计原理和思想</code></p>\n</blockquote>\n<h2>什么是软件架构</h2>\n<h3></h3>\n<p>软件架构（software architecture）就是软件的基本结构。\n图片来自维基百科。</p>\n<p><img src=\"/img/software-architecture.png\" alt=\"Software Architecture\"></p>\n<h3>软件架构</h3>\n<ul>\n<li>架构元素：软件系统的组成部分，子系统/组件/模块等。</li>\n<li>\n<p>元素关系：</p>\n<ul>\n<li>静态关系：组合/关联/泛化等</li>\n<li>动态关系：架构元素如何依赖交互</li>\n</ul>\n</li>\n</ul>\n<p>软件架构是软件系统的基本结构，也是软件设计最核心的部分。软件架构包含架构元素和元素间关系，架构文档是最终交付的产物。\n不同相关方的关注点不同，针对不同相关方在不同的阶段架构师会输出不同的架构视图。</p>\n<h2>四种核心架构思维</h2>\n<p>架构的本质是管理复杂度。抽象、分层、分治和演化是应对和管理复杂度的四种最基本武器。</p>\n<h2>如何成为架构师</h2>\n<h3>什么是架构师</h3>\n<p>架构师是做架构设计、对系统架构负责的那个人。\n架构师是一顶帽子,而不是一把椅子;架构师是一个角色而不是一个职位。</p>\n<h3>架构师应该有的重要思维</h3>\n<ul>\n<li>分析思维（analytical thinking）</li>\n<li>批判性思维（critical thinking）</li>\n<li>不教条</li>\n<li>机构化思维</li>\n<li>工具化思维</li>\n</ul>\n<h3>如何成为架构师</h3>\n<ul>\n<li>打好基本功，找准方向，砥砺前行。</li>\n<li>承担架构职责。</li>\n</ul>\n<h2>框架</h2>\n<p>框架是用来实现某一类应用的结构性的程序,是对某一类架构方案可复用的设计与实现。</p>\n<p>框架设计时应遵循设计原则，定义好接口、规范，是架构师约束开发的主要手段。</p>\n<h3>框架 VS 类库</h3>\n<p>框架调用应用程序代码</p>\n<p>应用程序代码调用类库的工具代码</p>\n<p><code>架构师用框架保证架构的落地</code><br>\n架构师用工具提高开发效率 </p>","frontmatter":{"date":"June 04, 2020","title":"软件架构（software architecture）","description":"初识软件架构设计  ","tags":["Architecture"]}}},"pageContext":{"id":"fd26775e-9cea-577c-b962-b3bb567ae1aa"}}}