惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
博客园 - 【当耐特】
量子位
C
Check Point Blog
博客园 - 叶小钗
博客园 - 聂微东
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
The Cloudflare Blog
T
Tailwind CSS Blog
人人都是产品经理
人人都是产品经理
月光博客
月光博客
V
V2EX
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
S
SegmentFault 最新的问题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

iCode

春节到了,送一波 Moon FM 兑换码 马上 2020 了,送一波 zClock 兑换码. 为了收集和整理编程的常用单词,我写了个背单词应用 推荐一个使用的工具集合 MDTools MAC 应用延时录屏 timelapseZ 送 20 个注册码 2017 Apple 设计大奖得主 Lake 涂色兑换码 「艾宾浩斯计划表」¥6 免费放送 50 枚促销代码 视觉图表 for iOS ¥68 分享 50 个促销代码 送 Instastack, OneRadio ,HaloRadio for Windows 等兑换码。 花钱请 ios 码农将几个开源功能组合实现。 问一道 code 题 封装了一个 Markdown 库 - EFMarkdown,求资瓷...QWQ 刚把邮件发送换成 mailgun 了,想测一下激活码邮件的发送情况,发一大波 HaloRadio , PhotoStack(Instastack) ,ONERadio 免费兑换码啦 二维码扫描器 For Mac 在这里再发 50 个兑换码吧 发码了 PhotoStack (Instastack) for Instagram 和 HaloRadio 各 10 个 发一些 MWeb for iOS ( Markdown 编辑器)内购兑换码,共 20 枚,分三次发(主要是分享到 ProductHunt 后没什么人投票,来求一下票票) 发 10 个 Instastack for Instagram 兑换码。 Halo for Radio 上 Windows Store 啦。发 Promotional code. 赠送些 VeXplore 兑换码以及开源计划 上次没抢到的同学,新的一波 Instastack 兑换码来了 QPai :一个扫描、展示并记录二维码、条形码及其所表示内容的小工具,附 20 枚兑换码 奉上 Instastack for Instagram Mac App Store 兑换码 若干个 第一个 Mac App,关于货币汇率,请大家多提意见,谢谢(附送几个兑换码,先到先得) iOS 创意应用“分形的奥秘:朱利亚集合” Beta 公开测试邀请 发一批 ONERadio 兑换码 做了个囚徒健身的 APP,来发下促销码, 放十个码, iOS 通知中心直接翻译剪切版文本 iOS 付费软件 分发兑换码求各位拍砖! 有谁知道 iTunes Window 插件是什么鬼吗,刚好有这个需求。
Code Review 代码审阅初窥门径
CodingNET · 2018-07-20 · via iCode

背景

今时今日,软件工程的开发工作早已不是一个人的单打独斗,而是一个团队的相互配合、共同前进。有位作家写过一句很流行的话,叫“一个人要像一支队伍”,而作为一个组织进行高效率的脑力生产劳动时,更需要追求的反而是“一支队伍要像一个人”,这个人走路不会同手同脚,四肢要协调,前进方向只有一个。 那怎么实现这个目标呢? Code Review,即代码评审,是必不可少的一个环节。

什么是 Code Review (代码评审)?

当一个程序员写完了一段代码后,由另外的程序员花时间来浏览阅读这些代码,并进行审阅。

Code Review 是以轮转的方式进行的,所以参与代码审阅的人有两种,分别是作者( author )以及评审者( reviewer )。当作者将写好的代码提交给评审者后,评审者对这次变动作出反馈,作者根据反馈修改代码,并重新提交,经过一次或多次往返后,评审者**同意( approve )**这次代码变动,允许代码进入仓库保存,Code Review 就完成了。

flowchart

制图来源

此时评审者要考虑的问题包括:

  • [ ] 总体逻辑上的实效效果
  • [ ] 检查是否满足了所有需求
  • [ ] 之前的自动化测试需要额外做修改才能跑通吗
  • [ ] 与其他模块之间有没有程序检查不出来的冲突

由此可见,Code Review 基本上就相当于老师在给学生一字一句地批改作业,学生订正后又交给老师再次检查,如此往复。因此,为了节约精力,以便代码审阅工作可持续性开展,评审者可以交给程序去处理的问题包括:

  • [ ] 发现代码中的 bug 与错误
  • [ ] 代码风格和编码标准的统一

Code Review 的好处

热力学三大基本定律中有一条叫“熵增原理”,即:一个孤立系统总朝着混乱无序的方向发展。软件工程也是如此,如果没有人把控输入的代码,只管一个劲地堆砌,久而久之,这坨代码也就失去秩序,成一团乱麻了,人见人嫌。所以在工程的一开始就引入代码审阅,可以非常有效地提高代码质量。

更重要的是,Code Review 是一个双向的过程,双方借助针对具体代码的交流,得以了解对方的想法,进行互相探讨,这是帮助团队中的成员成长,赋予团队自我管理、良性发展的能力。归根结底,人才是首要的生产力。

高效进行 Code Review 的方法

版本对比 / 文件改动

在“上古”时代,代码作者在开始 Code Review 前,还需要手动做一份变更列表( changelist ),来告诉评审者这一次提交做了什么改动。得益于 Git 的诞生,今天的我们可以借助基于 Git 版本控制系统的平台,来更轻松无痛地开展代码审阅,比如「CODING 企业版」,作为企业级软件研发管理系统,其提供的 Code Review 功能简单好用,能大大提高代码审阅效率:

图片

借助 Git 自动实现精细的文件改动,红色代表删减,绿色代表新增,支持行级评论,再也不用在不同工位间来回走动,直接在具体代码下进行交流。

资源关联

代码不是孤立的一串文本字符串,而是实现目标的其中一项资源,那么必然需要与其他资源相互组合才能掌握全局。落实到代码审阅中也是如此,放到具体的上下文环境里方能见微知著: 图片

「#」关联任务、文件等资源,「 @ 」通知相关同事,实现垂直关联场景下的精细调控。

多人协同审阅

图片

不同的人有不同的思考方式与见解,对同一段代码能从不同的角度出发考虑。尽可能的让不同的人 reivew 你的代码,不仅会有更多的人日后有能力维护你的代码,也是一个增加团队凝聚力的好方法。

学会享受 Code Review

不用担心收到批评面子过不去,也不用一枚追求“同意+1 ”,代码审阅是一个团队生机勃勃的象征,这里面的每一个人都在相互鼓励、相互交流以及相互进步,参与其中,与团队共同成长吧。