软件架构
文章平均质量分 81
想要写出更容易维护,更少bug的代码。
不问江湖任少侠
这个作者很懒,什么都没留下…
展开
-
mvc_mvp和mvvm
理解MVC、MVP和 MVVM一、简介这是一个逐渐演化的过程。最开始是MVC,后来发展到MVP,最后是MVVM。https://gitee.com/zlgopen/awtk-mvvm/blob/master/docs/8.intro.md 参考了这里的介绍。二、MVCMVC 模式是 (Model-View-Ctrl) 。Model 其实指的是业务流程。不仅仅是数据。用小霸王游戏机来理解的话,这个Model就是我们插的卡。View 就是显示。用小霸王游戏机来理解的话,View就是原创 2021-11-11 21:06:15 · 105 阅读 · 0 评论 -
架构整洁之道(六)-设计一个好维护的软件
一、背景知识简单复习一下前面的知识点。软件架构设计十分重要。否则随着时间推移软件会变得无法维护。怎么就算好?能够降低维护成本,并且能长期维持低成本。这就要程序员每次改代码少做决策,少修改代码。这就要求现在的代码解耦合+易复用。其实只要解耦合,往往就容易复用。所以,好的软件架构要做好三件事,解耦,解耦,还是特么的解耦。解耦合的过程中,往往要使用函数指针。函数指针应该在约定好的情况下,小心使用。因为整个面向对象编程对架构最重要的,就是限制函数指针的使用。二、设原创 2021-06-10 20:31:03 · 158 阅读 · 0 评论 -
架构整洁之道(五)-模块化
一、模块化原则我本来想写基本的设计原则的,但是发现:接口隔离原则 和 依赖倒置原则,我认为在C语言编码中,如果已经成功的划分了模块的边界,而且要尽可能的解耦合,是要自然而然要做的事情。所以,改成写模块化。模块化原则模块化原则展开说,就是:要编写复杂的软件,而且又不至于一败涂地的唯一方法,就是用定义清晰的接口把若干模块组合起来。如此一来,多数问题只会出现在局部,那么还有希望对局部的修改,不会影响到全部。怎样划分模块看你要怎么解决问题。模块化-是要求面向API编程。模块之间,使原创 2021-06-10 18:59:22 · 411 阅读 · 0 评论 -
架构整洁之道(四)-三种编程范式
架构整洁之道(四)-三种编程范式一、三种编程范式简介结构化编程对程序的直接转移做了限制。面向对象编程对程序的间接转移做了限制。函数式编程对变量的赋值做了限制。怎么理解?请往下看。三种编程范式都是为了解决某些问题而出现的。合理利用,能够让代码更好维护。二、结构化编程编程范式什么是结构化编程?结构化程序设计(英语:Structured programming),一种编程典范。它采用子程序、程序码区块(英语:block structures)、fo原创 2021-06-07 21:46:32 · 635 阅读 · 0 评论 -
架构整洁之道(三)-解耦合与复用
一、为什么要解耦合前面说到,好的架构是要花费最少的人力成本来构建和维护软件。对应到写代码上,有两个关键点。维护的时候,每次修改尽可能少的代码。维护的时候,每次修改或者添加功能,工程师要少做决策。而要少改代码,少做决策,对应的两个解决方法。复用。如果之前写的东西总是能复用,那维护的时候要写的代码就变少了。解耦合。因为每次改动,工程师思考的都是在一小块范围内。工程师要考虑的就更少,就不用那么多决策。而如果不符合正交性,到处要改,我们就要花费更多的时间考虑这个,考虑那个。最后纠结了原创 2021-06-04 21:16:43 · 862 阅读 · 0 评论 -
架构整洁之道(二)-好的软件架构如何构造
代码整洁之道(二)- 好的软件架构如何构造一、怎样将软件架构思想应用到代码中?上篇说到,好的软件架构,是要花费最小的人力,实现软件的构建和维护。那对应到代码中是什么样呢?个人理解,就是需求变动的时候,需要改动的代码最少。但是需求就是在不断的变,要改动的代码怎么能少呢?需求的变化不是我们工程师能决定的。但是修改的代码量却是可以减少的。使用合理的方法应对变化,是核心。对于个人而言,如何就能算花费的能量最少了?看《意志力》一书讲了,人在不断做决策的过程中,会消耗大量能量原创 2021-06-03 20:22:57 · 192 阅读 · 0 评论 -
架构整洁之道(一)-良好架构的作用
架构整洁之道(一)-良好架构的作用一、软件架构的目标软件架构的终极目标使用最小的人力成本实现软件的构建和维护。衡量一个架构好不好,其实就是看维护代码需要的成本很低,并且长时间维持比较低的状态。否则,就是不好的架构。技术债务为了容易解决问题,使用短期的方法。而这种方法在长期对软件产生不好的影响。也就是欠下的技术债务。最终总是要偿还的。不好的架构将使得技术债务不断地被积累。不好的软件架构的问题。当你中途加入一个团队,发现他们的代码是一个大型的耦合的系统。你又不了解每一个原创 2021-06-01 20:59:56 · 314 阅读 · 1 评论