gitbook/手把手带你写一个Web框架/docs/466057.md
2022-09-03 22:05:03 +08:00

60 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 结束语|在语言的上升期投入最大热情,是最正确的投资
你好,我是轩脉刃。
课程到这里就正式结束了。小伙伴们感谢能一起经历这段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年的朋友估计对我算的这个时间也会有所赞同的。
迭代更新,是伴随着技术红利的,这里的技术红利指的是新技术的培训、人员更新、市场需求。**越是更新换代快的,越容易抢占这个技术红利**。在这个技术红利中,会有一波人才缺口流出,会有一波技术很强的人出现。
论语言来说一门好的语言生命周期是非常长的。Java1995年出现到现在已经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),题目不多,希望你可以花两分钟填一下。谢谢关注,我们仗剑天涯,江湖再见~