Go 进阶 · 分布式爬虫实战
郑建勋
Go 语言技术专家,《Go 语言底层原理剖析》作者
15839 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 58 讲
Go 进阶 · 分布式爬虫实战
15
15
1.0x
00:00/00:00
登录|注册

05|全局视野:洞悉项目开发流程与规范

你好,我是郑建勋。
上节课,我讲解了大型互联网产品开发流程中的需求阶段和设计阶段。这节课,我们继续看看后面五个阶段:研发实现阶段、测试阶段、上线部署阶段、运维阶段和运营阶段。
首先让我们从研发实现阶段说起。

研发实现阶段

确定了设计方案和开发排期之后,我们终于可以进行实际的代码开发了。在大公司,开发过程并没有那么随意,需要遵循多种开发规范,包括编码规范、接口规范、日志规范、测试规范、Commit 规范、版本控制规范、发布规范等等。开发规范能够帮助团队更好地协作,同时也能提高代码的质量、提高程序的性能、规避低级的错误、发现隐含的问题。
我们重点看看其中几个规范。

编码规范

编码规范是最受重视的规范,它是团队在程序开发时需要遵守的约定。这种约定在统一代码风格的同时,也为团队定义了什么是好的代码。阅读好的代码就像一本小说,读者脑海中的文字被图像取代,你仿佛看到了角色,听到了声音,体验到了悲怆或幽默。
当我们阅读一段代码时,发现它简单清晰、难以挑出毛病,那我们基本可以断定这段程序是被精心设计过的。相反,如果我们瞥一眼代码就能够发现很多命名问题、无效代码和注释问题,我们也可以预测这种不严谨或者错误已经渗透到了程序的其他角落。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了大型互联网产品开发中的研发实现阶段及其相关规范,包括编码规范、接口规范、日志规范、版本控制规范等。编码规范有助于提高代码质量、性能和团队协作;接口规范定义了系统与外界交互方式的协议;日志规范的好处包括打印调试、问题定位、用户行为分析和监控;版本控制规范使得团队可以轻松地拥有各个历史阶段代码的快照。此外,文章还介绍了Git的分布式版本控制系统及其工作流模式,包括Gitflow工作流和GitHub Flow工作流。另外,文章还提到了Commit规范的重要性以及测试阶段的六类测试。文章内容丰富,涵盖了项目开发流程中的多个关键环节,对于开发人员和项目管理者具有重要的参考价值。 在上线部署阶段,文章介绍了代码自动检查、代码评审、CI/CD流程以及上线部署的流程和注意事项。在运维阶段,SRE工程师的角色和工作重点得到了详细阐述,包括减少人工介入、服务稳定性指标的量化、SLO的定制与执行等。最后,文章还提及了运营阶段对新功能上线后的评估和决策依据的获取。 总的来说,本文详细介绍了大型互联网产品开发流程中的各个关键阶段和相关规范,以及运维和运营阶段的重要工作内容,为读者提供了全面的技术指导和实践经验。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 进阶 · 分布式爬虫实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • 抱紧我的小鲤鱼
    这个快照并不是这次 commit 时项目中所有文件的复制,而是一种索引,通过这个索引可以找到这次 commit 时的所有文件,而 git 在每次 commit 时对项目中所有文件进行扫描,如果某文件发生变化则会对应生成一个新的文件 blob,记录当前 commit 时该文件的文件内容,而文件名是对文件内容的一次 SHA-1 运算得到的 40 位字符串,如果该文件内容没有发生变化,就不会产生新的 blob 对象(因为相同内容的 SHA-1 hash值唯一),而快照就是记录所有这次提交 commit 时 blob 文件名 SHA-1 hash 字符串集合,所以就可以通过某次 commit 的快照找到当时所有文件的 blob 对象文件 hash 字符串集合从而找到所有的文件,加载所有文件后就还原到了当时 commit 的项目状态。时间久了blob过多还会进行压缩 pack,只保存diff信息。

    作者回复: 👏🏻有点细呀,更详细的推荐《Version Control with Git, 2rd Edition》

    2022-10-20归属地:北京
    2
    12
  • G55
    回答下第二个问题吧: 就我工作的情况看 1. 业务迭代太快,大家都是完成任务为第一要素,对于质量和可维护性往往不那么看重。 2. code review机制不严格 对于代码风格可维护性检查不够 只检查能不能实现功能。 3. 大量实验性的代码堆砌在项目中,即使某些模块已经无效了但是代码没有被删掉, 导致出现一个文件几千行的情况。维护困难,新人接手成本高。

    作者回复: 理想和现实的差距呀

    2022-10-20归属地:北京
    2
    7
  • 徐石头
    思维导图有错别字,函数与线(栈),接口动调(态)调用,思维导图是不是少了网络部分?期待实战更有深度,前面几讲偏理论

    作者回复: 👍🏻你说的是03讲的学习路线哈,看得非常细致,我会修复一下。学习路线里面更多的是与Go自身有关的知识进阶,包括网络、文件系统等标准库很多涉及到了对系统调用API的封装,也涉及到原生协程的使用,所以我暂时没放上去。实际上这个项目07、16、17会对Go网络部分进行深入的介绍,涉及到标准库的实现和操作系统的实现,可以关注一下。

    2022-10-21归属地:北京
    3
  • 文经
    郑老师,请教一下,你所在的团队tdd和code review做得怎样,有什么方法我们小公司可以借鉴的?

    作者回复: 可以看看我后面的代码规范哈,一般用一些自动化工具例如golangci-lint进行检查

    2022-11-25归属地:广东
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部