如果你想成为 Go 项目开发的专家,并想高效的学习云原生实战营课程。我觉得在真正进入实战之前,还应该从一个更上层的视角去看待如何开发一个高质量的 Go 项目。做到心中有数,手中有方。
本套课程作为实战营主线课程的辅助课程(支线课程),用来给你快速介绍一套完整的 Go 项目开发方法论,旨在让你更好的学习实战营的实战课程,丰富你的 Go 项目开发知识图谱。
本套课程中介绍的方法论,也是实战营主线课程、实战营项目所遵循的方法论。希望通过理论讲解,及配套的实战课程,再次拔高你的能力天花板。
提示:本套课程是一个极速课程,所以每节课的内容量不多,但未来,会持续不断地完善本套课程。另外,本套课程是一套方法论,涉及到 Go 项目开发中的方方面面。考虑到理论体系的完整性,不可避免的会涉及到前面已经介绍过的内容,如果有这部分内容,你就当知识温故了。
低质量 Go 项目会面临哪些痛点?
如果你在项目开发中,有过以下一些痛点,那说明你需要提升你的项目质量了:
- Bug 很多,修补不断:如果你的代码经常出现 Bug,而且一直修修补补,Bug 始终不能有效收敛,说明代码的结构、逻辑和实现方式需要优化,甚至重构;
- 代码难以阅读:因为代码结构混乱、缺乏注释、代码实现臃肿、不清晰等带来的代码阅读和理解困难;
- 新功能集成困难:新增一个功能,却发现无法轻松集成到现有代码中,或者需要大改,甚至重构,才能完成新功能的添加;
- 代码需要重构:项目迭代一段时间后,发现问题很多,最好的方式是重构代码,说明代码问题已经积累到了临界点。
如果你遇到以上问题,说明你的代码质量需要提升。上述问题还会导致开发效率低下,伴随而来的是巨大的时间和人力成本。
为什么要开发高质量的 Go 项目?
本小节,我借助一脉脉上的一个话题,来介绍下,我们为什么要开发一个高质量的 Go 项目。话题如下:
这个话题,在我的读者群中,也有被讨论过,很多群友觉得截图中的观点是对的。当然,我觉得发帖同学可能更多的是一种吐槽,大概率不会真的以为代码质量不重要。姑且不论发帖同学是否是吐槽。这里,单从字面意思来讨论下代码质量的重要性。在我看来上述字面观点是不对的。为什么呢?
首先,我觉得成为嫡系确实能让你的职场发展更顺利,但很多时候,只有保质、保量的把工作完成才能得到领导的赏识,进而成为领导的嫡系。嫡系是结果,但背后可能是领导对这个人能力的肯定。
再者,从事技术岗位,并不需要你花很多精力去搞关系,也就是说,你搞关系所花的时间,其实并不影响你的代码开发时间。开发高质量的代码和成为嫡系,二者不是一个互斥的关系,相反开发高质量的项目,可以让你更容易成为嫡系。
好了,上面讨论了嫡系和代码质量的关系。这里再来介绍下,开发一个高质量的 Go 项目会带来哪些优点。开发一高质量的 Go 项目除了能解决文章开头部分所提到的各种痛点之外,还会带来更多的价值:
- 易阅读:好的代码阅读起来,赏心悦目,轻松愉悦。新人阅读你的代码,你会收获一种发自内心的技术崇拜,自己阅读,可以节省你的宝贵时间,省出来的时间,摸个饿鱼不香吗?
- 易维护:高质量的 Go 项目,可以让你维护起来更加简单。易维护的代码,不仅可以舒坦你的内心,更可以节省你的时间;
- 易扩展:高质量的 Go 项目,可以让你简单、高效的集成一个新的功能。
上面的易阅读、易维护、易扩展带给你最直接的收益便是远离屎山:
- 被领导认可:高质量的工作产出哪个领导不喜欢,领导喜欢了,升职加薪还会远吗?
- 心情愉悦:远离了屎山,心情自然会愉悦很多,工作体验都进阶了;
- 开发效率更高:高质量的 Go 项目可以让你更高效的完成日常的开发工作,高效也意味着你可以花更多的时间陪伴家庭。如果因为众所周知的原因,不能提前下班,那安心摸鱼总可以吧?
所以,为了自己考虑,一定要开发一个高质量的 Go 项目。只有把地基打好,未来的开发迭代才会更轻松。