我经常说的一个词,叫“与时俱进”。外界技术、环境在变化,要及时察觉,自己也适时跟进调整。开发环境就是如此。虽然现在移动设备满天飞,但是绝大部分人不可能用平板、手机进行研发,写代码还得靠台式机、笔记本。它们是生产力工具。

目前我自己使用的开发环境设置方案,也是经过反复试验、调整过的。

原来的方案是Ghost备份模式。操作是:装一个干净的新Windows系统,打好补丁,做一个Ghost镜像;装好所有必备的软件,工具,再做一个Ghost镜像;第一个镜像,用于彻底换新的时候,第二个镜像,用来恢复开发环境。Ghost恢复操作很快,一般10-15分钟就完成,比重装耗费1天,要容易的太多了。这种方案我用了好多年。以前在公司主管研发的时候,我强制每个人都必须用这个模式,把开发环境备份出来。因为大型开发工具,特别是Visual Studio后期的版本,Bug比较多,连Windows的Bug也很多,导致损坏概率比较大。而且我无法容忍拿着公司高薪的程序猿,竟然耗费1天在重装机器。谁的机器出了问题,立马给我Ghost恢复系统镜像回来。15分钟还可以接受。其实就是空间换时间,算法里面典型的思路。

后来,我研究出了一套更好的模式。

这个其实主因也是硬件的进步,外部环境改进了。现在的主机性能,比前些年有很大的提升。虽然Intel 的CPU在挤牙膏,但是每年5%的性能提升,累积起来也比较可观。另外就是固态硬盘的普及,对改进计算机的性能体验,起了极大的作用。因为机械硬盘是计算机的最大瓶颈,所有的操作都卡在那里了。

等舍得装2个256G固态硬盘了,事情就完全不一样了。另外,前两年,内存特别的便宜,这点也很重要。另外还有,操作系统也不一样了。我也有了自己用的Macbook Pro 15,Windows 10也改成了小步快跑的发布模式,虽然还是很烂,但前面的蓝屏修复不少。这样,Ghost模式的弊端也明显了 – Ghost没法渐进更新镜像。Win10这种发布模式,使得Ghost恢复也成了比较讨厌的事情。

后面,干脆就放弃了Ghost模式。

新的开发环境模式是高性能计算机 + 虚拟机模式。这套方案,本质是用性能换方便,用空间换时间。

我用的台式机配置,其实比较普通,不是土豪样板,但是足够用了,2套台式机,一套6代CPU,一套是3代,都是32G内存,配置256G SSD x 2,Sata3接口,当时没找到合适的M.2接口跑PCI-E通道的固态硬盘,SATA3的其实也够了,毕竟不是做视频编辑。

硬件配置需求:

宿主机的CPU – i5/i7,i5也够用了。内存推荐16G-32G,现在32G的有点贵。必须固态硬盘,256G以上,如何选择?我前面文章写过,自己翻翻。双23寸以上显示器!有了双显示器,才好用虚拟机。3个?要看你桌面有没有地方。

软件配置需求:

安装VMware虚拟机软件,用WorkStation版本。宿主机,一般是Windows 10/7,不安装任何大型开发工具包,以小型工具、常用工具为主,所有的开发工具,都扔到虚拟机里面运行,包括Visual Studio这种。虚拟机一定要放到固态硬盘上,配上高性能的固态硬盘,基本没有速度的迟滞感,你可以多给它分配点内存。如果是机械硬盘,你会抓狂,砸了的心都会有。如果你能接受,可以买个高速的移动硬盘盒,装固态硬盘,把虚拟机放移动硬盘上,也是可以的。

为什么不用VirtualBox? 其实也可以的,只不过VirtualBox性能比VMware差很多。另外,Mac上也可以用我的方案,使用虚拟机工作。其实就是把它当成了平台。Mac平台相当的稳定,好用。一些Mac本,硬盘很小,而且没法扩展。这个时候,使用USB 3接口的固态移动硬盘,就是不错的选项,我试过,性能也是够用的。

根据你开发类型的区别,建立不同的虚拟机,比如开发Windows下程序的Win10虚拟机,开发Linux程序的Ubuntu虚拟机等等。虚拟机的管理,自己摸索吧,比Ghost方便太多。

此外就是,虚拟机里面的代码,一定要用Git等代码管理系统,跟外部产生连接关系,1是安全,2是同步方便。不建议用共享目录同步,会有很多很多的问题。以前我还用过Vagrant,算是做的不错的,但是仍然有不少的麻烦。Vagrant可以结合IDE,在Windows上开发Linux下的软件,自动控制虚拟机,其实就是通过接口命令,控制Virtual Box。后来发现,干脆还是直接在Linux下开发,更省心省力。举个例子,Node.js的npm系统,有时候在Windows上会出错:路径过长。而Linux就没这个问题。还有一些组件,开发的时候压根就没怎么考虑Windows用户。。。

现在Linux下,也有很优秀的IDE可选,隆重推荐JetBrains系列。谁用谁知道,记得买正版啊。

另外,记得打开宿主机的系统还原功能,出了岔子,能迅速恢复到正常状态。以前我都是关闭的,嫌占用Ghost空间。后来发现还是有用的,特别是Windows 10这种频繁发布的情况。因为宿主机相对干净,被大型软件包破坏操作系统的几率很低,所以几乎不需要再考虑重装了。而虚拟机,天生的管理方便,无论是备份还是升级。

如果你有更好的布置工作环境的方案,或者更好的软件推荐,欢迎交流。

 

使用Linux虚拟机要注意两点
聊聊Node.js的一点开发体验和应用场景