沐鸣测速登录地址这个12因素应用程序是为傻瓜开发的云本地应用

Yegor Bugayenko前几天写了一篇有趣的博客,标题为“SOLID是面向傻瓜的OOP”。好吧,如果SOLID是面向对象编程的假人,我想知道他是否同意我的断言,即12因素应用的咒语是假人等同于云本地开发?沐鸣测速登录地址
我喜欢Bugayenko的文章,尽管他似乎在评论中受到了不少抨击。但我完全同意他的前提。对我来说,告诉软件开发人员他们的应用程序应该遵循坚实的原则,就像告诉马拉松运动员最好的前进策略是循环地移动一条腿到另一条腿。当然,这句话是对的,但是从本质上来说不言自明的东西真的可以算作建议吗?
再次回顾SOLID原则
很快,坚实的原则如下:
·职责单一
·面向对象(O)
·使用多态性,或Liskov替换原则(L)
·利用接口(I)
·使用依赖倒置原则(D)对代码进行抽象
所以我将看到Bugayenko固体的五个原则的批评,让他一个类似的批评世界12-factor原生云应用。(顺便说一下,如果你不熟悉所有的最新的口头禅,肯•欧文斯的定义提供了一个很好的进行本文将敏捷,DevOps, 12-factor应用和原生云计算在一起)
重新访问12因应用程序
对于外行来说,以下是云本地计算这款12要素应用的12条原则:
- 代码库:一个代码库在修订控制中被跟踪,许多代码库被部署
- 依赖关系:显式地声明和隔离依赖关系
3.配置:在环境中存储配置
- 支持服务:将支持服务视为附加资源
- 构建、发布、运行:严格分离构建和运行阶段
- 进程:作为一个或多个无状态进程执行应用程序
- 端口绑定:通过端口绑定导出服务
- 并发性:通过流程模型向外扩展
- 一次性:快速启动和优雅关机,最大限度地增强健壮性
- 开发/产品等值:使开发、阶段和生产尽可能相似
- 日志:将日志视为事件流
- 管理进程:作为一次性进程运行管理/管理任务
不证自明的真理
严肃地说,我们真的需要告诉软件开发人员保持生产、开发和登台环境尽可能的相似吗?坦白地说,我不记得有哪个项目团队会说‘嘿,让我们让DEV和PROD完全不同吧’。比如,让我们在开发中使用MongoDB,在生产中使用DB2。”
打破了牢不可破的
老实说,有些原则我甚至不知道如何去违背。应用因素四表示支持服务应该被视为附加资源。我甚至不知道如何编写一个不将支持服务作为附加资源的云本地应用程序。这句话是不是太重复了,因为它是一个后端资源,而不是附加到你的云本地应用程序?
也许是因为我在过去的20年里一直在Spring和Java EE平台上进行开发,所以这些观点似乎是多余的。应用程序因素三指示本地云开发人员将配置细节存储在环境中,而不是作为一组常量或if-then-else语句,散布在整个代码库的各种不同类中。坦率地说,我看不到有经验的专业人士会添加这样的Java代码:在每个类中加入条件语句,根据当前承载代码的环境改变运行时行为。此外,将配置存储在应用程序之外并抽象出依赖关系一直是Spring和Java EE的基本原则。这正是资源引用和JNDI绑定存在的原因。
不成熟的想法
如果不是Spring或Java EE执行这些最佳实践,那么是应用服务器本身执行这些最佳实践。应用程序因素11指出,日志应该由执行环境捕获,并与云本地应用程序使用的所有其他日志流进行比较。老实说,我不记得WebSphere什么时候没有这样做。也许IBM可以吞并本地云计算行业中的所有小公司,创建一个新的、本地云应用服务器,并向业界展示如何进行日志记录?即使您只是在使用System,这种类型的功能也一直被正确地置于应用服务器运行时中。调用out,而不是像slf4j这样的日志框架。
这款名为12 factor的应用确实提供了一些值得思考的东西,大部分智力上可以吃的东西都来自于一种坚持,即使用一个过程(而不是线程)是衡量规模的最佳方式。尽管我认为这只是一个语义上的论证,而不是基于实践的论证。虽然传统的Java应用程序服务器确实运行一个具有多个线程的进程,但Java微服务往往是单处理的,甚至在微服务中,也会有多个利用线程的功能,因此它并不是一种非此即的事情。如果有的话,作为流程执行应用程序和使用流程模型向外扩展的因素6和8,确实可以归结为这样一个断言:大块是不好的,而将大块分解成更小的块是好的。我想我们最近已经听够了这个咒语了。是的,我们知道了。杏耀注册平台官网
Facebook分享和网络迷因
在我看来,这款12要素应用程序的每一条格言,就像你挂在全国各地办公室里那些恼人而鼓舞人心的海报上的一样。我几乎能想象到一张意大利跑车的海报,上面写着“一次性”,下面写着“快速启动和优雅关机,最大化稳健性”。我们生活在这样一个时代,为了被消费,每条信息都必须以模因的形式传播,或者以Facebook帖子或140个字符的推文的形式传播。也许这个12要素应用的咒语是为新开发人员、社交媒体的千禧一代服务的?
12因子应用和云原生模因
这款12元素的应用已经成为了网络流行语
告诉我少吃多运动来减肥是很没用的建议。告诉我按时缴税,避免利息和罚款也是没用的建议。我的意思是,这些陈述是正确的,但没有什么是我不知道的,这使得陈述这些重复的陈述是浪费时间。你可以把这些陈述框定为建议,但如果它们没有提供新的、没有增加价值、没有特别可执行的东西,那就真的不是建议。我不禁觉得关于创建12元素应用程序的所有讨论都属于同一类别。我不知道耶戈尔·布加连科是否会同意我的观点?沐鸣平台