
什么是架构
|
之前说了架构的价值在于让软件更易于变化,更易于应对未来的需求。但易于变化这个属性和软件的功能代码本身是矛盾的。所以架构本身是矛盾的。如果我什么都没有,此时根本就没有任何代码,那么在这种情况下我其实是最能易于变化的,因为什么都没有,以后要写什么,怎么写,怎么样都可以。相反如果我已经有了一个很重的软件,

不做的艺术
|
几十年以前,当人们还在用汇编语言的时候,对怎么写代码几乎是没有什么限制的,因为汇编只是机器码的翻译。我觉得汇编里最有趣的就是JMP 这个命令,你可以随意跳到任何地方,做任何事情,在编程世界里拥有无限的自由。然后我们有了高级语言,倍增了我们的生产率。但是高级语言有带来了什么新功能吗?它能做的事情和汇编

软件开发的根本矛盾
|
之前学习了bob大叔的《clean architecture》,可以说写的十分的精妙了,里面很多理念跟我的认知是一致的。因为现在我的存货也没有了,所以接下来准备基于此book写一些关于架构的文章。首先所有的一切的出发点是基于这个判断:软件开发的成本主要是人力资源成本。然而这两者又不是成线性比例的,当

RESTful的2个根本问题
|
RESTful这个东西大家都谈的很多了。然而这里面还是有些东西可以深挖。经常面试的时候,问什么是RESTful,很多人都大谈特谈怎么建立一套RESTful的API,这很好,但是这并不是RESTful的核心,正如RESTful这个名字一样,其核心是服务端的stateless概念。第一个根本问题,如何理

MVVM的优劣
|
MVVM,也就是传说中的Model,ViewModel,View结构。自AngularJS开始大红大紫。自MVC横空出世以来,对MVC的改进一直都没有停止过,MVC2, MVP, MVVM都号称是对MVC的改进,但其实MVC真的有什么问题要改进吗?MVC本身其实并没有什么缺陷,只不过是针对不同的应用

贫血模型与充血模型
|
Martin Fowler很早以前就写过一篇文章,题目叫"贫血模型"。文章里面批判贫血的领域模型是不够优雅、不够OO的,提倡使用充血的领域模型。在Java世界里这是一直争论的话题。到底什么是贫血什么是充血呢?贫血模型:是指领域对象里只有get和set方法,或者包含少量的CRUD方