标签:item 动手 适用于 linq bdd idt 一点 blog info
首先十分感谢大家购买我的书,在Tommy和Julisa购买我的书的时候,我承诺会开Sharing给大家。我开Sharing的目标就是让像Tommy和Julisa这样的基础比较低的人都能够学会编程。所以我就以Tommy和Julisa为目标制定sharing课程,不再按照书籍章节顺序一章一章的讲。
我这本书最值得学习的地方不是.NET,所以这节sharing我故意不用.NET来演示,而是采用JavaScript来演示。
我这本书最值得学习的地方也不是并发。
我这本书最值得学习的地方是“现代化的编程模式”。也就是如下标黄处
现代化编程模式核心只有一个字,就是 – 快!
为了显示出快,我故意挑选了最慢的JavaScript来做这次sharing的演示语言!
现代化编程模式适用于所有现代化的编程语言,包括.NET/(C#和F#),Java,Python,JavaScript,Scala,Clojure,Swift。所以无论是我书中的C#和F#,还是我这次sharing用的JavaScript,都是通用的。最典型的就是本书第6章所讲的Rx,它就有多个编程语言的版本:Java,JavaScript,.NET,Scala,Clojure,Swift。以下截图取自Rx的官网 http://reactivex.io/
快主要来自两个方面:
从大家的反馈来看,大家不太关注这点,所以我这次sharing先不讲,以后再讲。
所有技术的进步趋势都是越来越容易,门槛越来越低,编程也同样如此!
现在我回首十九年前(2001年)我用C语言写出第一个程序的时候,当时的编程门槛是相当的高。与今天相比真是天壤之别。编程门槛越来越低,编程工具环境越来越完善,当时的Turbo C 2.0还是跑在Dos上的。这些基础设施的完善决定了我们编程速度会越来越快。
在这次sharing我只讲大家最容易理解的几点:
在传统的编程模式中,我们是这样编程的:
大家可以看到,第二步和第三步耗时都是以分钟为单位的。如果unlucky,第三步可能要按小时甚至天为单位。为了加深大家的印象,sharing的时候我会视时间多少而现场演示一遍这个痛苦的传统编程模式。
但是现代化的编程模式是以秒为单位的,比以分为单位的传统编程模式快了一个数量级!!!
Sharing的时候我以JavaScript为编程语言,Visual Studio Code为编程工具,框架选karma + jasmine + AngularJS(我故意没选最近的Angular而是选AngularJS,也是为了证明现代化编程模式是通用的)来演示现代化编程模式是如何以秒为单位进行调试诊断的。
现代化编程模式以秒为单位进行调试诊断的要点在于:
这部分实操内容也是这次Sharing的大头。
传统的编程模式需要程序员去动脑,去思考程序代码的流程,所以需要去if/else/switch/for/foreach等等。然而动脑是很容易累的,同时又是很耗时间的,所以传统的编程模式自然是快不起来的!
“动脑是不可能动脑的啦,做生意又不会,只能跟着感觉走写写代码才能生活这样子”
窃-格瓦拉
现代化编程模式改变了思路,不再去思考程序代码的流程:
|
传统的编程模式 |
现代化编程模式 |
程序员所要做的 |
需要动脑思考如何做,需要明确的指出每一步该怎么做。 |
只需要告诉计算机你的目标即可! |
相关编程语句和库 |
if/else/switch/for/foreach |
LINQ, Promises (不应该再出现if/else/switch/for/foreach) |
专业术语 |
命令式编程 |
声明式编程 |
|
|
|
补充多一句:声明式编程语言通常用作解决人工智能和约束满足问题。哈哈,看到这里大家都懂的啦。
从上面的表格对比中可以看出,“只需要告诉计算机你的目标”的现代化编程模式明显就比“还需要明确的指出每一步该怎么做。”的传统编程模式节省脑子很多!!!
大家可以看看 https://baike.baidu.com/item/%E5%A3%B0%E6%98%8E%E5%BC%8F%E7%BC%96%E7%A8%8B/9939512 来预习一下
自从进入移动互联网时代之后,因为客户端设备的多样化,前后端分离已经成了大趋势。同时也带来了一个大问题:前后端程序员协作的问题!
接着前面“调试诊断快”一节中所share的内容,传统的编程模式对前后端程序员联调的依赖性比较高。而现代化编程模式因为可以通过mock的方式来模拟绝大部分后端的响应,前端程序员不再需要等待后端程序员的工作了,从而节约了这部分时间,导致自身在项目进度中更快更有保障。
在这次sharing中我所使用的Karma(BDD框架)和Jasmine(包含了httpbackend mock库的unit testing框架)在其他编程语言中都有对应的框架和库,再次体现了现代化编程模式是在各种编程语言中是通用的!!!
在这次sharing之前,我请了两位老伙计参观了一下,都得到了好评,希望参加的有经验的程序员也同样会一声惊叹!
当然,非程序员还是不可能只通过这一次sharing就马上学会编程的,所以对于你们来说,这次sharing的目的应该是:你能够识别和分辨出哪些才是编程里正确的道路,从而找到先进的编程资料和避免误读落后的编程资料。关于这点,我总结了口诀如下:
大家下周见!
我的blog文章和我所翻译和所写的书籍不一样:
标签:item 动手 适用于 linq bdd idt 一点 blog info
原文地址:https://www.cnblogs.com/adalovelacer/p/modern-program-pattern.html