加入收藏 | 设为首页 | 会员中心 | 我要投稿 淮南站长网 (https://www.0554zz.cn/)- 管理运维、图像技术、智能营销、专属主机、5G!
当前位置: 首页 > 站长资讯 > 动态 > 正文

了解零信任

发布时间:2021-02-06 11:16:17 所属栏目:动态 来源:互联网
导读:成为10倍开发人员有捷径可走吗? 是否有这样一个神奇的秘密,可以帮助我们打开一个全新的软件开发精通和生产力世界?怀疑者们通常会说:当然没有捷径可走! 每个人都需要不断的练习才能变得更好! 的确如此,但是软件生产力实践的专家是什么?有没有一件可以产生

成为10倍开发人员有捷径可走吗? 是否有这样一个神奇的秘密,可以帮助我们打开一个全新的软件开发精通和生产力世界?怀疑者们通常会说:“当然没有捷径可走! 每个人都需要不断的练习才能变得更好!”

的确如此,但是软件生产力实践的专家是什么?有没有一件可以产生巨大变化的关键事情?答案是有的!但是,即使我现在拿出来分享,一字一句讲给你听,可能你还是需要要花10年才能有足够多的经验来领悟它极致的简单性。

是的,这就是发生在我身上的事情。 我上学时候的程序设计老师用通俗易懂的话给我讲过一遍,并且用一些示例代码一步步教我如何去运用它。 然而直到10年后,我才真正理解。 但是现在,凭借过往的经验,我深深地体会到了这堂课的意义,我现在就分享给你。

这个秘密是平均生产率和10倍生产率之间的关键区别,如同杠杆一般,可以让我们把效率提高几个数量级。

生产率提高10倍的秘诀是学会如何抽象(Abstraction)。 许多开发人员将“抽象”视为一个脏话。 也许你会经常听到这样的建议,例如“不要过早抽象”或 Python 之禅中著名的“显式胜于隐式”,这意味着具体(Concrete)要胜于抽象。 这些建议都是很有价值的,不过也得看问题的上下文。

现代应用程序的代码量普遍很大。 如果我们把现代十大应用程序的源代码打印出来,那么这些纸叠起来的高度将可以比得上一座摩天大楼,由此可以想象软件的维护成本有多高。 也就是说,写的代码越多,成本就越高。

抽象是简单代码的关键

正确的抽象可以隐藏对当前上下文不重要的细节,并减少执行相同工作所需的代码量(通常减少几个数量级),从而使代码更具可读性,适应性和可维护性。

简单就是去掉显而易见的,加上有意义的。——John Maeda《简单的法则》

抽象并不是一条单向路。 它实际上是由两个互补的概念构成的:

  • 泛化(Generalization)——删除重复的部分(显而易见的部分)并将其隐藏在抽象后面。
  • 特化(Specialization)——将抽象应用于特定用例,仅添加需要不同的内容(有意义的内容)。

考虑以下代码:
 

我想不需要再强调什么了吧,你觉得这两种写法哪个更容易理解,代码更容易维护呢?

博主有幸曾经维护过这种类型的代码,不得不说每次增加新功能的时候恨不得自己化为两个分身,一个不得不去重读一边代码;另一个在一旁骂自己为什么当初选择维护这个项目。

异步回调代码稍不留意就会跌到回调陷阱中,那么有没有一种更好的办法既能结合异步回调的高效又能结合同步编码的简单易读呢?

幸运的是,答案是肯定的,我们会在后续文章中详细讲解这一技术。

总结

在这篇文章中,我们从一个实际的例子出发详细讲解了回调函数这种机制的来龙去脉,这是应对高并发、高性能场景的一种极其重要的编码机制,异步加回调可以充分利用机器资源,实际上异步回调最本质上就是事件驱动编程,这是我们接下来要重点讲解的内容。
 

其中X是服务调用方制定的,区别在于谁来执行。

为什么异步回调越来越重要

在同步模式下,服务调用方会因服务执行而被阻塞暂停执行,这会导致整个线程被阻塞,因此这种编程方式天然不适用于高并发动辄几万几十万的并发连接场景,

针对高并发这一场景,异步其实是更加高效的,原因很简单,你不需要在原地等待,因此从而更好的利用机器资源,而回调函数又是异步下不可或缺的一种机制。

回调地狱,callback hell

有的同学可能认为有了异步回调这种机制应付起一切高并发场景就可以高枕无忧了。

实际上在计算机科学中还没有任何一种可以横扫一切包治百病的技术,现在没有,在可预见的将来也不会有,一切都是妥协的结果。

那么异步回调这种机制有什么问题呢?

实际上我们已经看到了,异步回调这种机制和程序员最熟悉的同步模式不一样,在可理解性上比不过同步,而如果业务逻辑相对复杂,比如我们处理某项任务时不止需要调用一项服务,而是几项甚至十几项,如果这些服务调用都采用异步回调的方式来处理的话,那么很有可能我们就陷入回调地狱中。

举个例子,假设处理某项任务我们需要调用四个服务,每一个服务都需要依赖上一个服务的结果,如果用同步方式来实现的话可能是这样的:

 

(编辑:淮南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读