诚实的微服务

2021-03-26 20:14:22

最近在科技界讨论,"为什么扎实是错误的,而#34;我们每年左右都有这些讨论,以及创造技术的每个可想象的方面。

你见过这个新的东西叫x吗?它' y只是更酷的y。

我们重新品牌相同的旧主题不同的方式,然后回到同一讨论,只使用不同的术语和略有不同类型的x。(但是这个x就像那个旧的x。这实际上是y。)

我从未见过我们经历这样一个循环,事情变得更简单。每个周期都始终涉及新的书籍,新顾问,新会议,新用户组。无论解决的问题是大的还是小,无论平均开发人员是否需要新的修复,每个循环都会始终变得更加复杂。

双曲线,咆哮关于爱或讨厌的东西被注意到的东西。随着时间的推移,讨论的讨论不会。这就是网的方式。作为一个观察者,"我完成了标题'我尝试了微服务和它毁了我的婚姻!'"" '太多的戏剧,当你试图把人们放在基础上,那里有太多的手摇"只是写简单的代码"和"保持您的代码清洁"。这些是陈词滥调,而不是应用技术系统的基础理论。

如果你和书籍和博客散文一起举行了,你就会知道我们的理论基础,为分析和设计构建了一个理论基础,这两个方法都是关于编码的方式,并组织代码本身的过程。有一件事自然地导致另一件事,并且在你知道它之前,你有一种编码方式,既不涉及口号也不是荷兰。

一般来说,它' s是信息 - ops i(建立什么),其次是INFO-OPS 2(如何构建它)。他们都使用了相同的潜在理论。 INFO-OPS 2引入了代码认知负载。这自然导致增量强大打字。无论您如何代码如何,都可以使用CCL。 IST可以在大多数环境中使用,但自然会将您推入某种程度的编码。一个逻辑上遵循另一个,我们最终得到诚实的微服务。

关键点:我没有开始发明或谈论任何新的东西。我只是想要一个潜在的自我一致的逻辑理论,将涵盖技术发展的各个方面。在这里强迫我的发展。 (很多反对我的意志)

为什么这个词"诚实"在标题中?因为曾经是流行语"微服务和#34;很长一段时间后,废话的周期开始了。到目前为止,这个术语如此污染,祝你有关于它的对话。以下是不是诚实的微服务:

将您部署到容器中的开发模式。你想要集装箱,做容器。我都可以。部署决策无需微服务。如果您'将代码耦合到架构中紧密,重新读取#2。

一些酷语言的东西。再一次,如果你喜欢很酷的语言,请使用它们。听起来很有趣。它'与微服务无关。

拥有数千个小小的代码的系统散落在整个地方,使其无法理解任何东西。你'喜欢死亡的想法。你'除了另一种方式走得太远了。 "微"和#34;服务"部分同样重要。*

五个特别有趣,正如他们在这里最终结束的地方,那么许多微服务的许多同意者。那个'为什么增量强大的打字要求诚实的微服务:它教授适当的范围,并解释了代码内的东西类型(物品类型,哈哈哈哈。我整个星期,人们在这里,人们都在这里,人们!)直接相关并推动你的范围 - 而反之亦然。这是不是#39; T"做微服务,因为它们'重新酷"这是"你做了ccl吧,你做得对,你'重申实际上开始写诚实的微兽和#34; (虽然许多人抵制了这一程序一段时间)没有销售俯仰或凉爽。它只是。

一个无法崩溃的应用程序。它有一种方式,优雅地失败,但这不涉及一些下游编码器通过呼叫堆栈戳戳。

一个App,它只有一个且只有一个有用的业务功能。那是什么'见Ist。

一个应用程序,可以在几年内从现在或没有准备的情况下使用维护程序员所遵守,修改或完全替换。

这些测试存在于从应用程序本身分开的编译单元中,并且无法耦合到它。

如有疑问,请将编译的应用程序视为在程序内运行的纯功能。该程序是平原,vanilla,默认操作系统。

以下规则直接迫使代码变为易于理解,管理,重构和与商业伙伴讨论的形状。这样做涉及没有特殊的硬件或部署要求。您可以在全球范围内或全部在本地计算机上部署相同的应用程序集。部署对代码具有零影响,反之亦然。恭喜。你' ve达到了Devsecops是三个平等概念的地方,而不是每个人都战斗,以控制其他两个。

如果有人在十年前告诉我这一点,那么#39;究竟是什么。 (我的第二个反对意见是它听起来像是一个苦差而且根本没有乐趣。我喜欢玩得开心的编码,这可能很有趣,但是讨论了另一天的讨论)

这里的事情:如果你'在上面的规则之后,你'你解决了你编写了系统的复杂性问题。测试与实现它们的应用程序分离。当MicroService A Feeds MicroServices B和C然后馈送十几个微服务时,可以作为整体测试那些未键入的动态文本源。输出必须使用输入。错误路径可以' t存在没有测试。

编译器做什么?他们做了很多东西,但基本上他们组织了逻辑符号及其关系以及所需的数据,使得计算机有需要执行程序员希望它的资源。

没有理由导致单个部署单元。事实上,'一直是我们的整个小嘴巴;如果我们只用小单位脱钩并工作,我们可以以任何方式重新安排这些单位。我们还可以保持这些单位更容易。

如果正常编译器编译为可执行文件,则超级媒体将编译为云部署。所有这些考虑因素,如数据库引擎,可伸缩性,负载平衡,运行状况检查,证书,豆科码,边缘计算策略,CDN等都将作为Supercompiler选项和配置文件存在。

我们甚至得到了编译器内部应该如何工作的模型,如何以热插拔,灵活的方式组装功能:Erlang OTP模型。没有理由与实时代码一起使用的一般方式'现在我们与其他语言一起使用,我们将事物分开。超级媒利员甚至给我们很多其他东西,就像一个在TLA +中螺栓的地方,所以我们不达到并发问题。

我们应该查看一些示例代码。我们应该建立一个原始的超级媒体。我们应该谈谈OO和扎实的地方,以及其他善良都在发挥之中(绝对是这样)。但是,如果我们通过认识到基本原则可以从想法推动部署的技术开发,而不涉及一千个上下文交换,那么这些讨论都不会有任何共同之处。我知道这个是因为它第一次发生这种情况。第二次让' s这样做,所以我们在十年内再次通过这里循环。

保持简单,写清洁的代码,刷牙,让你的代码可测试:在我们的业务中我们从未缺乏着名的智能人,给我们做正确的言论。它们意味着好。据他们所以,这些事情是真实的。他们只是不要走得太远。

我的帅哥。我们必须突破这种无限循环。每个循环通过我们只是继续制作东西(为平均用户)不必要地越来越复杂。请更多的东西让人们想要和少量一堆书呆子营销酷东西到另一个束。未来几代人会感谢我们。**

*您可能认为其他概念,例如域驱动设计(DDD)或普遍的语言(UL)也属于此列表。虽然我相信和每天使用的概念和事物,但我们&#39的过程;重新使用的过程是从CCL和IST开始的自下而上。我们' ll到达ddd和ul,但我们'重申得出结论,改变你使用它们的方式。它们'在这里不需要,并将它们放在这里会炸毁文章的范围。

**它'是一个公平的警察"丹尼尔,你' re' re' re' refure at' refure at' ref of the complate的计算模式,并向他们添加新标签。 you'重新开始在#1&#34中再次启动废话循环;这里的差异:编译器类比意味着平均初学者程序员只能在他们发现自己的任何环境中创建一个简单的IDE来创建解决方案。它们键入了一行代码以使IDE运行,然后开始制作人们想要的东西。其余部分消失,但与所有编译过程同时一样,在不改变该人的发展经验的情况下也会变得非常复杂。这是我对我描述的内容的验收测试。做那个工作,你可以称之为你的任何东西' d喜欢。但是对于伟大的南瓜和棕色的所有东西的爱,挑选一些标签并坚持下去。