# 结束语|在语言的上升期投入最大热情,是最正确的投资 你好,我是轩脉刃。 课程到这里就正式结束了。小伙伴们,感谢能一起经历这段Golang的Web之旅。 我们这门课理论和实践并存,每一节课都有对应的GitHub代码可以演示和查看,对比其他偏理论的课程,可能你需要花更多的时间进行动手、对比查看代码,但是相信我,经历过这门课这么多知识点的动手学习之后,你的开发思维和技能一定会得到提升。 看完整个系列,你会知道,我们最终会收获两个项目,一个是hade框架,一个是使用hade框架开发的类知乎的bbs项目。因为我知道有很多同学在刚接触Golang的时候,最发愁的有两个点,**一个是开源框架很多,不知道应该学习选择什么框架;另外一个是希望能找到一个业务示例,能演示并参与尝试开发**。 hade框架希望能解决你的第一个问题。它提供的很多命令行工具,能为使用者节省不少的开发效率,并且整个框架一直在灌输“一切皆接口”的设计理念,所有的流程都让你先开发确定好接口,再落实到具体实现,希望能在一开始就帮助你树立良好的开发习惯。 而配套的bbs项目,是一个很好的业务示例,有前端,有后端,具体的业务逻辑也并不复杂,很适合给初学者借鉴和学习。 不过课程虽然结束了,我们的框架之路才刚开始。 所有的框架都需要经过不断迭代打磨的。目前我们的框架正式更新到了1.0版本,后续我会不断优化hade框架,并且在工作中或者工作之外,使用hade开发一些有意思的项目。如果你也有兴趣的话,欢迎一起加入,关注github.com 上的gohade这个[oranizagion](https://github.com/gohade)。 早在开篇词里我解释了为什么要用Go来写Web框架,在课程的最后,我想跟你再聊聊我对Go这门语言及新技术的一些看法和观点。 不管你现在是学习什么前沿的技术,有这么一句话应该是没有错的:“你所掌握的技术,在你有生之年,是会过时的”。这种过时的生命周期是从后端向前端逐渐缩短的。我这里说的后端和前端的方向,是以靠近真实用户的距离计算的。 比如数据库、操作系统这种技术,距离用户最远,用户基本不会感知,它们可能几十年都不会过时,从MySQL、Linux大致就能看出来;再往前,中间件、缓存等技术,大致十几年吧;再往前,后端服务技术,我认为生命周期应该是10年之内。再往前,前端技术,我觉得迭代周期应该是5年之内了。如果有工作超过10年的朋友,估计对我算的这个时间也会有所赞同的。 迭代更新,是伴随着技术红利的,这里的技术红利指的是新技术的培训、人员更新、市场需求。**越是更新换代快的,越容易抢占这个技术红利**。在这个技术红利中,会有一波人才缺口流出,会有一波技术很强的人出现。 论语言来说,一门好的语言,生命周期是非常长的。Java,1995年出现,到现在已经26年了,仍然在很多领域是唯一选择;Golang是从07年诞生的,至今才14年光景。 我大概是在2012年接触的Golang了,但是当时研究Golang这门语言的人还非常少,可以参考借鉴的学习资料少之又少,但是所幸在一个同事们技术品味都很相投的团队,大家对新技术的使用并没有多少的抵触情绪,而且团队能保持一个活跃的讨论氛围,当时那一波人后来也被证明了逐渐成长为各个公司的技术大拿。 而十年后的今天,Golang的生态和参与人数真是以肉眼可见的速度在增长,所有的技术课程、文章真是随处可见。只不过与十年前不同的是,要从这么多资料中筛选出适合你的、描述清晰的资料反而成了一件难事了。 从语言的生命周期这个角度看,我认为所有的语言技术都有几个时期:尝鲜期、上升期、鼎盛期、衰落期。 在尝鲜期,大家对一个语言将信将疑,只有少数极客会学习尝试,在生产环境使用新技术的更是少之又少。而到了上升期,很多新的项目基本上都会选择使用这门语言来开发,随着而来的表现就是语言涉及的领域越来越多。在鼎盛时期,在一些领域,这门语言会由于其生态丰富而成为唯一选择了。当然最后也有可能发展到衰弱期,由于有更好的选择,这门语言用的人越来越少了。 在我看来,Golang这门语言目前正处于上升期,我所见的大厂,腾讯、字节、阿里、滴滴,**都有越来越多的线上服务,选择使用Golang作为其开发语言,甚至会使用它来重构很多的已有业务**。 要知道,引进新技术和重构业务都会产生出足够的职位需求,也会有人员交替的,所以市面上显而易见的Golang工程师的招聘职位也越来越多了。所以恭喜选择这门课程的你,在语言上升期参与到Golang这门语言的使用和研究,是一个非常明智的选择。 在之前加餐聊业务架构和基础架构的时候我说过,技术架构和业务架构,这两个方向基本上代表程序员成长的两个方向。 技术为主,以创建、改变一个新技术为成就感来源,基本上我觉得各个语言的创造者、追随者算是这类人,各种数据库、大型开源项目的创造者、追随者算是这类人。这类人,比如MySQL的精深专家,基本在MySQL这个领域没有什么解决不了的问题,而且对这个领域有持续的贡献能力。 而业务为主的同学,以创建一个最多人使用的、能改变生活的业务为成就感来源,他们每每兴奋的点在于业务PV/UV的增长。诚然很多业务说到底都是如Web业务一般的CURD,但是如果你CURD的代码,能运行在千万甚至亿级别的用户电脑中,这种成就感,完全不亚于任何技术创新。 而以我这十年所见,很多的同学其实更属于这类人。这种属性的同学,会在学习、工作过程中,冒出各种各样的想法、点子。当然这些想法、点子并不稀奇,每个人都会有的,但是这种属性的同学就会不断思考,如何将这些点子变成现实、如何使用这些点子改变我们的生活。 而作为工程师,我们天生的工作就是提升这个能力,**这种业务能力的高低,就是如何快速将想法变为现实,当然,这需要非常顺手的工具**,当我有一个点子的时候,工具能快速将我的点子实现。 这其实就是我在两年前想动手写这个hade框架的初衷。一切皆服务,当我有一个容器,能将我遇到的所有需求都变成容器中的服务,那么后续我想要实现某个点子的时候,就能通过这个容器很快完成了。 这些思路和想法,在这次极客时间的专栏中,点点滴滴我都如实记录了下来。当然里面有的观点和方法或许和你的想法各异,但是如果这些想法和点子,能对你的Golang学习之路有所启发和帮助,也就达到了这门课程的目的了。 总之最后,希望课程看到这里的你,能在自己的技术领域、业务领域不断思考,改变,尽自己的所能影响周边的人和事。 最后的最后,估计很多小伙伴都是“潜水党”,喜欢默默地学习,在专栏要结束的今天,我也非常希望能听到你的声音,听听你学习这个专栏的感受和收获。 这里我还为你准备了一份[毕业问卷](https://jinshuju.net/f/gZTTVA),题目不多,希望你可以花两分钟填一下。谢谢关注,我们仗剑天涯,江湖再见~