程序员の可移植性
我们程序员都听过代码可移植性,但其实我们自己也有可移植性。
先定义一下程序员的可以移植性衡量标准。就是从打开电脑开始工作,到开始输出产出的间隔,越短移植性越好。
而导致我们不可移植的因素其实主要大多来自于工具。这很好理解。我们本身就是一个匠人,匠人和工具自然是绑定的。回忆一下,当你的一个新的电脑上开始工作,或者说你刚到一个新公司。或者你需要在网吧的电脑上处理一台紧急的编程任务(认真说,我试过)。你会发现你其实大部分的时间都花在准备的环境和安装工具,这些工具设置在一开始本来是为了提升工作效率,但随着使用时间变多,个人偏好(tab,空格,几个),工具环境,快捷键,快捷工具脚本等的各种设置让你越来越依赖于这些工具和设置,使你变得不可移植。
比如说搜索引擎,你可能没有想过搜索引擎会影响你的可移植性。但想想那句slogan,一般人搜索百度,程序员搜索Google, 上 Google 是不是要先骑上墙,就要配置骑墙工具,这又是一波消耗,在正式工作之前。如果你恰巧空手,这个鸡和蛋蛋一样的坎可能就过不去了。
搜索引擎除了骑墙的坎以外,还有一层意义:知识碎片化。 Google 根据你的搜索习惯给你的搜索结果往往第一条就是你想要的。效率确实提高不少,但是这也形成一种立即获得的爽感,让你在没有Google或者甚至仅仅是没有登陆的时候都感觉不爽。爽的对面需要我们耐心地读api文档,看书,和人讨论或者看源码才能得到答案。这通常会做些无用功,但是这些当下的无用功恰恰是建立系统化知识的必要走的弯路。走了捷径就错过了系统化。
再比如快捷键,快捷键有操作系统快捷键,工具快捷键,自定义快捷键。
从外行都用的Ctrl+C,Ctrl+V到 Home End Delete。市场主流的操作系统的 windows,linux,mac OS X,这些系统快捷键可能不一样。往往越习惯某个系统的老鸟程序员在新系统上越难很快适应,比如很Linux,Windows都用的删除文件用的delete 在Mac OS X 上就不可用。每次删除失败就需要调出菜单都是一次讽刺。反观小白程序员从一开始就不知道快捷键,一直用菜单甚至拖动删除(换成行编辑),换新系统完全没有负担地删除。这是系统的快捷键,开发工具和编辑器的快捷键就更多了。再一次,每次命不中都是一种挫败。
开发工具ide或编辑器除了快捷键差异外还有很多其他的编辑区高亮配色,界面布局,调试功能支持情况,配置命令行参数的界面,工程文件的格式,插件框架等等,每一个点都是一个随时能戳中激起忧伤的点。越说越心疼自己和同行。
最后,怎么办?怎么才能变得可移植呢。方案A:随时背着自己的电脑,这也是大部分程序员的选择的。随时可以快速启动自己。方案B:我也在摸索中