春天来了,7月第7班必发777元红包
我从来就不擅长营销。我有点老派穷知识分子的架子。我内心深处认为好东西不需要过多的修饰,吹嘘太多会让我感到尴尬。
但我的一个朋友很肯定地说,这是一个浮躁的时代,你要善于制造焦虑,夸大效果,什么都要学,不学就落后,落后就挨打。
无论如何,课程不是药物,不会杀死你。
按照这个理论,长远来看,每个人都会像苏东坡一样,既是音乐家,又是书法家、画家、文学家、美食家,在计算机领域,要求你能做人工智能、操作系统。
但世上只有一个苏东坡,人还是要认识自己,如果随波逐流,什么都学,就会被贴上半吊子标签。
所以认清自己的现状,理性选择要学的知识尤为重要。没有那么多学不会的知识,也不要指望上一门课就能脱胎换骨,达到Px、Tx。下棋书画要3年,入门要5年,小成要10年,大成要20年。为什么编程可以学得快?
这个世界缺乏的是清晰度。
如今营销强调“以德服人”,但我认为知识不能盲目相信权威,而必须以理服人,理智正是这则广告的“独特气质”。
新课程讲的是 Node.js Koa。那么问题来了,借用姜文的话来说:你说我该不该学 Node.js?我学不下去了。
没办法,这个行业就是这样,不学 Vue 就没法去学 / 小程序 / 算法和数据结构 / TS,不断学习是必然的。一旦进入编程,就如同深海,女神不在身边。所以关键是把时间投入到更划算、能带来最大收益的事情上。用经济学的角度考虑问题,兼顾短期、中期和长期利益才是最佳策略。
明确地表达我的观点,学习前端node.js,短期内收益不大,中期收益很高,长期来看是必然趋势。
说实话,一个前端开发者学习服务端编程短期内不会有太大的收获。但从中长期考虑,在一门课程上投入时间还是会带来相当可观的收益的——关键是它预留了你未来晋升/转型的可能性,而且只需要花费你大约 18 个小时的时间。
短期内,对于大多数前端开发者来说,直接将服务端技术应用到工作中的可能性不大。但我认为短期内最大的好处是可以让你独立完成一个项目,比如自己开发一个完整的小程序。
不用求助他人的感觉真好。想想看,以前接一个外包项目,你分一半给别人,现在全部自己做,是不是很棒?如果你有一个好主意,你就可以撸起袖子开始做,是不是很棒?
开玩笑啦。不过独立完成一个项目对于每个开发者来说确实意义重大。这不是外包只拿一半的问题,而是程序员的价值问题。能独立开发意味着你有能力在未来独立工作、创业,不依赖别人,不被别人限制。独立开发也能让你践行自己的想法,不再因为对服务器不了解而有好的想法无法实现。独立开发也能提升你编程的成就感。一个只有假数据的项目还有什么意义?
能够独立完成一个完整的web项目的感觉就像一个连续几晚没睡的人,洗了个热水澡,伸了个懒腰,浑身舒坦极了。
从中期来看,学习服务端编程是顺应了前端要消灭“传统后端”的势头的。消灭“传统后端”是不可能的,数据和高并发架构设计还是传统服务端开发者的地盘。但前端现在的发展,确实逼迫Web开发呈现出“后端在后,前端在中”的趋势。服务端已经退化(不是退化,这种转变是良性的)成为数据提供者,大量的业务和数据被合并交给前端来处理。这也是三大框架火爆的一个因素,前端的重要性越来越明显。
如今前后端的界限已经非常模糊,在中大型项目中,整体架构都是三层的,而不是典型的前后端两层。“后端更后端”意味着传统的后端将退化为纯粹的数据管理角色,也就是我们所说的“服务”角色,它只提供相对干净的数据,而数据的整合以及最终传输到前端的数据模型将由前端开发人员自己定义。
简单来说,前端开发者需要会写“API”接口。前端开发者最清楚前端需要什么数据结构,所以让前端开发者自己定义业务数据结构是比较好的做法。这也是为什么很多中大型项目都有“中间层”的概念。后端是微服务,注重并发、性能、数据一致性;中间层整合业务数据,向前端提供API输出数据。
你一直说服务器接口很垃圾。好吧!自己写吧!
从长远来看,30 岁,别说 35 岁,都是一个困难的时期。这对于前端开发人员来说尤其不确定。
30 岁还能写代码,努力跟很多年轻人竞争的人不多了。别听那些跟你说 50 岁还能写代码的人。50 岁写代码可以是因为兴趣,但绝对不能是为了生活。就像我没事的时候画点画,是为了陶冶情操。如果靠画画谋生,恐怕要饿死了。
对于一个程序员来说,逐渐走向技术管理/技术总监是一条比较靠谱的程序员之路。并不是说35岁以后就不能写代码了,而是35岁以后,如果只写代码,不做其他事情,你贡献的价值肯定达不到你35岁时的薪资要求。如果薪资都不够,你怎么平衡一个三十多岁“老人”的自尊心,怎么承担沉重的家庭负担?这个年龄段的人需要成为团队的决策者,为团队提供技术以外的价值。
别拿它和尤达这种大牌人物相比,因为很少见,换个角度想,那些打出名堂,干得不错的人,谁不懂服务端的?
行业里有一条不成文的规定,谁离数据更近,谁就有话语权。掌控一家公司整体技术的人,一定是“后进生”。所以我们可以看到,大部分公司的核心技术管理者都是服务端出身,很少有纯前端出身、对服务端一无所知的CTO/技术总监。但有很多技术总监只懂服务端,根本不知道三大框架是什么。这是否不公平?但这就是现状。
不是前端开发者不能做技术总监/CTO,而是前端开发者独立发展的时间太短,过去没有纯前端编程,大部分30岁以上的人都是用Java/C#/PHP开始编程,因此纯前端开发者能否做全球化技术管理者,还未得到有效验证。
所以前端开发者如何跨过 35 岁这个坎还是个未知数,能靠服务器就尽量靠服务器是个不错的选择,反正不是要求你精通服务器开发,也不是要求你做高并发、分布式,而是必须懂并且能独立做中小型项目。
即使我们退一步来说,熟悉服务器端 API 开发对于面试来说绝对是一个加分项。
以上建议只针对追求技术职业的同学,未来打算经商或者搞艺术的,或者家里有矿的,不在本建议范围之内。

另外,学习服务端编程并不局限于 Node.js。其实如果你思想更开放一些,我觉得它比 Node.js 更好。反正两兄弟差不多,服务端处理不了 Java。但如果你不想学其他语言,Node.js 是你进阶服务端开发最低成本的选择。学习一门语言并没有你想象的那么容易。如果你懂了,选择继续依赖这门语言也是不错的,至少不用担心它“消亡”。
前端框架竞争太激烈,却独霸市场;服务端语言竞争太激烈,昨天还是“世界上最好的语言”,今天却莫名其妙地被诟病,不知道为什么,弟子不如师父,但大概是新一代比老一代要好。
好了,最后我们来详细说一下课程吧。《纯商业应用——微信小程序后端之Node.js Koa2开发》到底讲了什么?Node.js有三大应用,前端工程化,Web开发,中间层。本课程主要讲最实用的Koa Web开发,会讲解中间层(不是重点)的概念和意义。前端工程化和Node.js原生接口基本不讲。
1.新课程将与我去年的小程序课程《纯商业应用-微信小程序开发实践》在业务方面配套,完成“老岛示例”小程序的服务端开发,帮助学员完成一个完整的项目。前后端分离,不需要一起购买,但前端课程讲授的知识点在新课程中不会重复讲。比如回调,以及一些ES语法。如果JS基础不太好,建议先看看前端课程。
当然,这些都是商业方面的。但熟悉我课程的同学应该知道,我的课程从来都不是商业导向的。编程思维、高质量代码、更好的应用框架才是课程的核心。
2.新的课程中,我们会重新开发KOA。说实话KOA简直就是赤身裸体,精简得离谱。当然我们也不能裸奔,要穿上漂亮的衣服,舒舒服服地去逛街。二次开发是很有必要的。我说的二次开发不只是用koa-body-、koa-、koa-这些常用的、必备的中间件。我们要巧妙地利用koa-分离的路由;要做到路由的自动加载才能偷懒;要写lin-中间件搭建验证层;要写全局的异常处理中间件;要对每个错误进行编码,还要写权限的中间件。
很多同学应该都知道egg.js这个著名的Koa框架,但是这门课程解决的问题却不是egg.js能解决的。egg.js其实只提供了企业级的框架,却没有提供TP、框架中专门针对API优化的极其好用的工具类、验证器、异常处理,甚至ORM层也没有提供示例代码。因为目标不同,egg.js提供的是宏大的框架,代码怎么写没有限制,而我的新课程提供的是小而优雅的Web API解决方案。我始终相信,对于项目开发来说,没有选择就是最好的选择,让自己更高效才是第一要务。有兴趣的同学以后可以把这门课程中的代码编写和工具类移植到egg.js中,以达到两全其美的效果。
3. 在这门课程中,你必须对 Koa 的三个部分有深刻的理解:中间件、洋葱模型和。这应该已经讲了很多了,但在新课程中,你将了解:
相信大家听完课程之后会有一些不同的理解。
4. 异步编程模型。除去语言门槛,Node.js 其实比 PHP 等动态语言的同步框架编程难度更大。虽然降低了异步编程的难度,但异步编程还是很容易出错,尤其是在链式嵌套调用和异步异常处理方面。这也是本课程的重点。
5、Node.js中间层的概念。虽然新课程并不是一个基于中间层的项目,但是Node.js中间层的重要应用还是必须讲一下的。由于新课程需要调用后端的数据服务,所以刚好体现了中间层的概念。
6. 用ORM模式操作。没有选择,公司不可能招一个只懂关系型数据库的后端开发人员。你可以选择不学,但不能选择关系型数据库。如果不懂关系型数据库,服务器端就没法入门了。当然,如果你文艺范儿就更好了。
7.JSON序列化。如果要做API,必须给出灵活的JSON序列化方案。新课程给出了几个层次的序列化方案,包括层、、Koa层。
8、与微信小程序对接方案涉及处理、无感知登录方案,小程序中的无感知方案与Web端不同,更简单。
9.加强对JS语言的应用和理解。异步编程能充分体现JS的特点;原型链的理解也是本课程的重点。
最后,也是最重要的一点。整个课程的 Koa 核心库的搭建思路,其实来自于开源项目 Lin-CMS-Koa。也就是说,学完这个课程,你基本上就进入了 Lin-CMS 的服务端开发了,因为从界面到编写方式,新课程都是和 Lin-CMS 同步的。其实我们推出 Lin-CMS-KOA 就是为了让前端开发者能够独立完成一整套 CMS,一定是集成的 JS 技术栈。
当然,Lin-CMS的前端是用Vue搭建的,如果你还不了解Vue,慕课网黄毅教授及其老师讲授的Vue课程是个不错的选择。
在新课程上线前一天,我们发布了 Lin-CMS Vue/Koa/ 的 beta 稳定版本,新版本重写了路由机制,优化了 UI 布局方案,新 UI 看起来更加清爽整洁,未来的 Java 版本也已提上日程。
演示门户:
门户网站:
最后,我毫不掩饰地表示我希望这门课程能够大受欢迎。
那么你能帮我推广它吗?
我就假装你同意了。
其实两年来,我很感谢购买我课程的同学,支持我把7月份的课程做完7门课,我不会做任何猫腻,文章最后会发一个777元的红包,感谢同学们的支持。
以下是课程推广二维码,长按扫码即可购买新课程,请务必在MOOC网站课程页右上角生成此二维码,推广成功后可获得31.6的返现,点击右下角【阅读原文】即可进入课程页面。
然后是红包:
777元无套红包,共177份。点击此处进入抽奖。点击此处进入抽奖。
红包主要回馈公众号粉丝,抽奖已设置不允许转发,请谅解。
感谢大家一路以来的支持!祝大家前程似锦,生活幸福!