目录前言1.迈向单体地狱的漫长旅程1.1FTGO应用程序单体架构1.2单体架构的好处1.3FTGO应用程序单体地狱1.4什么是单体地狱2.为什么本书与你有关2.1阅读门槛3.你会在本书中学到什么3.1需要重点关注的知识3.2其他技术4.拯救之道:微服务架构4.1扩展应用程序的三个维度(扩展立方体)[微服务的定义]4.2微服务的基本特性4.3FTGO的微服务架构4.4微服务架构与SOA的异同5.微服务架构的好处与弊端5.1微服务架构的好处5.2微服务架构的弊端6.微服务架构的模式语言6.1一些概念(模式、模式语言等)6.2常用的模式结构包括三个重要部分6.3微服务架构模式语言6.4微服务的主要几
目录前言1.迈向单体地狱的漫长旅程1.1FTGO应用程序单体架构1.2单体架构的好处1.3FTGO应用程序单体地狱1.4什么是单体地狱2.为什么本书与你有关2.1阅读门槛3.你会在本书中学到什么3.1需要重点关注的知识3.2其他技术4.拯救之道:微服务架构4.1扩展应用程序的三个维度(扩展立方体)[微服务的定义]4.2微服务的基本特性4.3FTGO的微服务架构4.4微服务架构与SOA的异同5.微服务架构的好处与弊端5.1微服务架构的好处5.2微服务架构的弊端6.微服务架构的模式语言6.1一些概念(模式、模式语言等)6.2常用的模式结构包括三个重要部分6.3微服务架构模式语言6.4微服务的主要几
1.“new”有什么不对劲?在我们没有接触到工厂模式(简单工厂、工厂方法模式、抽象工厂模式)之前,我们实例化对象唯一的方法就是通过“new”关键字来完成。但是,大量的使用“new”关键字来实例化对象会违背一些设计原则,因为代码与具体的类型绑在一起,从而导致过多的依赖于细节而非抽象,这样代码就很难适应需求变化。在面向对象编程中我们大量的使用到了继承、多态的特性,但是在使用这些特性时往往会延申出一些新的问题。例如在一个有继承模块的代码当中,如果子类发生新增或删除,这就不得不去使用类的“调用层”做出相应的修改,因为你new的都是具体的类型,当下层发生变动就不得不去上层进行修改。对于这样的场景来说,实
1.“new”有什么不对劲?在我们没有接触到工厂模式(简单工厂、工厂方法模式、抽象工厂模式)之前,我们实例化对象唯一的方法就是通过“new”关键字来完成。但是,大量的使用“new”关键字来实例化对象会违背一些设计原则,因为代码与具体的类型绑在一起,从而导致过多的依赖于细节而非抽象,这样代码就很难适应需求变化。在面向对象编程中我们大量的使用到了继承、多态的特性,但是在使用这些特性时往往会延申出一些新的问题。例如在一个有继承模块的代码当中,如果子类发生新增或删除,这就不得不去使用类的“调用层”做出相应的修改,因为你new的都是具体的类型,当下层发生变动就不得不去上层进行修改。对于这样的场景来说,实
从Android转向Flutter后,受不了没有ConstraintLayout的日子,更反感嵌套地狱,网上的优化方法都治标不治本。于是继2016年开源MagicIndicator(9100+star)以后,我只能再次发力了。https://github.com/hackware1993/Flutter_ConstraintLayout,欢迎试用并给我反馈。FlutterConstraintLayout一个超级强大的Stack,使用约束构建极为灵活的布局,和Android下的ConstraintLayout和iOS下的AutoLayout类似。但代码实现却高效得多,它具有O(n)的布局时间复杂
从Android转向Flutter后,受不了没有ConstraintLayout的日子,更反感嵌套地狱,网上的优化方法都治标不治本。于是继2016年开源MagicIndicator(9100+star)以后,我只能再次发力了。https://github.com/hackware1993/Flutter_ConstraintLayout,欢迎试用并给我反馈。FlutterConstraintLayout一个超级强大的Stack,使用约束构建极为灵活的布局,和Android下的ConstraintLayout和iOS下的AutoLayout类似。但代码实现却高效得多,它具有O(n)的布局时间复杂