居家办公那些事
隔离工作环境搭建
距离北京五月初的隔离刚刚过去两个月,很多人都经历了一种革命性的生活变更,甚至室友在隔离期间一度产生时差。但是我觉得也不全是隔离的问题,实际上早在 2020 年,我就经历过长达 1 个月的隔离生活,现在短短两个星期的居家不仅没有打乱生活节奏,反倒是教会了我用更低的生活成本来获得更高的工作效率。这其中很重要的就是用好各类在线工具,不要让他们打乱你的节奏,而是用他们来适应你的生活以获得更高的工作效率。而在家办公最重要的两类工具一类就是在线会议,一类就是代码同步。
这里首先说说背景,我毕业以后一直是做运维开发工作的,业余也会做点小网站,小脚本打打零工。目前在公司的日常工作环境本身就是基于远程的,经常面临的情况就是大老板国外,小老板在广东,然后合作的同事虽然同在北京,但却远在城市另一头的另一间办公室。所以日常工作中,就是很难面对面去沟通的,而且要去考虑时差问题。System Design、Code Review 也在这样的环境里会变得非常依赖在线工具。而这种工作性质,反而是非常适合疫情期间的隔离生活。
How to have a efficient sync meeting on-line?
先说会议,众所周知,每天开会是个非常耗精力同时收效很低的事情。而这个问题的核心原因就在于很多 Manager 习惯把开会当做一种 push 手段,在会议过程中,很多工程师的时间精力都浪费在了听其他项目的无谓细节上。但是你不去参加会议又会错过一些细节。
这一点问题上,首先需要一个完整的线上 meeting 工具链,我司用的是 zoom+slack+Google doc+Google calender 的方案。一个工程师在每天前一晚就可以看到第二天例行性要开的会议,然后也可以在 slack 里面回复是否决定参加。而 Manger 在安排会议时,尤其是 1-on-1 会议,则可以通过 Google calender 提前了解参会人的日程安排,避免安排到其他会议时段。
而在会议过程中,一切内容都是在 Google Doc 上同步的,对于组会,基本都是每个人会前提前写好几条核心内容,然后每个人有 2-3 分钟来讲自己的内容,详情放在链接文档里(Google Doc 对超链接对象做的非常好)最后留 10 分钟左右来谈一些 Common Topic。这样下来,会议不仅可以拥有完整记录和链接材料,同时基本可以控制在 30 分钟开完一个小型组会。更多的细节,都会留到 Code review\Doc Comment 中讨论,因为这些细节对于非相关项目的工程师是完全没必要从头到尾听下来的。
但是对于一些传统公司的老板,这样的开会方式可能会非常不适,因为会议中其实留给 Manager 讲的时间非常少,基本只有给出一点 comment 的时间。这里也就涉及到第二点,这样的会议模式,一定是要有 self-motivation 的公司文化。不要去搞无谓的 push,而要把精力聚焦到解决真正的问题。这样才能真正有效的开会。
How to do code immigration correctly from remote?
因为我本身就是基础架构部门,所以 CI/CD 问题也算是老生常谈了。但是这里要讲的并不是企业级的 CI/CD 构建,而是单独聊聊如何从工程师角度,保证代码安全正确地集成到代码库中。
我们目前使用的代码管理框架依然是基于 Github 的。Git 工具对一个开发者更是必备的入门工具。但实话讲,我感觉真正把这个工具使用规范的人其实并不多。单就能否写出一个规范的 commit message 就已经让很多人不及格了。此外,关于 best code practice 类的文档不仅要读,更需要作为硬规范去放到 code pre-merge check 中。
或许有人会觉得这样这样的条条框框耽误开发进度,但是当你面对强制性要远程工作的环境时,这些规范的工作方式会是你最大的助力。
Joel Spolsky: It's harder to read code than to write it.
在远程开发过程中,没人可以站在你的背后,为你逐行解读他们写的代码,而你的工作也同样如此。只有当所有人的代码可读性达到基线后,公司项目才会变得轻松同步和易于扩展。同样,也没有任何一个聪明的工程师会拒绝来自 Google 的专业开发方法。所以在准备构建所谓大型的 CI/CD 之前,不如先去考虑通过一些工作来硬性要求代码可读性标准。
最后,还想强推一波轻客户端开发的策略。隔离期间,当线上出问题需要修复时,没有随身携带工作电脑是非常正常的事情。这时候想要第一时间进入开发状态,就必须要有一个可以远程的线上开发环境。对于我自己的项目,我是采用 VS Code+腾讯云上分支管理的方式实现的。VS Code 的 remote 开发在国内网络下还是比较流畅的,也无需安装远程的 Client 端,而腾讯云则可以保证稳定的 Github 连接,整个代码同步链条就非常舒服(本地再加个 Typora,用来写博客基本就是走到哪写到哪)。这种跳板服务器的方案也可以轻松解决多端代码同步的问题,我目前腾讯云上开了 crontab 任务,每 12 小时跑一次拉取代码的脚本,在云上完全脱离了手工代码拉取,也省了不少的事情。
版权声明: 本文为 InfoQ 作者【CrazyGeek1996】的原创文章。
原文链接:【http://xie.infoq.cn/article/b0425f5b5bc8589a92fb7453a】。文章转载请联系作者。
评论