今年的冬天格外冷,经济寒潮导致许多互联网企业裁员,尽管公关一再掩饰,但是大家心知肚明,所有人都瑟瑟发抖。就算有幸留下来,年终奖也大幅缩水。上午还在写 Bug,下午就被告知走人。这不是段子,而是一些程序员的真实遭遇。

身处凛冽寒冬,该怎么度过呢?当然不能轻易跳槽,离职就意味着失业。如果碰上被辞退,那就多争取点补偿吧。努力提升自己,来年春天继续绽放。不畏严寒,稳中求进,提升技能,就这几条比较中肯的建议。

周末回顾了一下编程上遇到的问题,发现有很多需要改进的地方,这里简单列举几条。

1. 建立通用的代码仓库

应用层的开发,不管是前端、后端还是移动端,功能的实现都是围绕需求来的。不管需求怎么变,有些基础的、公用的部分是不变的,比如网络请求、读写缓存等。

对于这些不变的部分,有必要做个抽取和整合,封装成独立的公共模块,加入自己的代码仓库(repository)。这样以后就可以快速地开发,遇到问题也不用重新搜索,节省了开发交付的时间。

2. 引入版本控制系统

版本控制(Version Control)在编程中的一个概念,扩展到能够编辑的文件也一样。比如用 Word 写论文,改来改去发现还是之前的版本好,如何找回之前的版本呢?这时候轮到版本控制系统(VCS)大展身手了。

程序员主要利用 Git 和 SVN 来实现版本控制。Git 是分布式的,任何克隆到本地的工程都保留完整的提交历史,就算有人把代码从中央仓库删除,依然可以从其他人那里找回历史记录。

SVN 是中心化的,所有的修改历史都由中央仓库记录,一旦服务器宕机就查不到了。所以现在大多数公司都使用 Git,内网服务器搭建 GitLab 是最常用的方式。

除了程序员,比如文案编辑这类群体,也要懂点版本控制的概念。近几年非常流行在线笔记,比如腾讯文档、有道云笔记等,它们都附带历史版本的功能,方便随时查看过往记录的内容。

另外,如果想为本地文件引入版本控制,可以考虑坚果云、亿方云这样的网盘,客户端时刻监控文件夹,一旦发生改动,网盘立马同步,并且记录历史,从不担心数据丢失的问题。

3. 不要重复造轮子

这是程序员老生常谈的话题了,奉行「拿来主义」并没有错。这几天在做一块儿功能,之前没有接触过,界面交互非常复杂。我低估了它的实现难度,一边思考一边计算,大半天也没有结果。

后来老大提醒我,可以到网上找找有没有开源的库,拿过来改一改。突然我就有种拨开云雾见青天的感觉,必须承认大脑在持续工作的时候会发生短路,导致把简单的问题复杂化。

如果完全由自己实现,工作量大不说,里面的坑也多。使用开源库就简单多了,读读 Wiki 文档,修修补补就能实现想要的效果。两种方案,立判高下。

站在巨人的肩膀上,让我们看得更远,同样地,借用别人的轮子会让我们走得更顺畅。开源让开发更美好,也是编程发展的主流。

一点小感悟,就说这么多,愿温暖与感动常在。