开发环境折腾记
前言
对于工具有选择困难症以及完美主义倾向的程序员来说,总会在不同工具的选择上陷入极大的纠结,往往怀着极高的期待选择某个工具,期望这个工具能解决一揽子问题,进一步熟悉后,总会发现工具的不尽人意之处,于是又切换到别的工具。如此循环往复,耗费了大量时间精力
虽说磨刀不误砍柴功,但总不能等到磨出一把削铁如泥的宝刀再动手吧。理性的选择是先用好现成的工具,再逐步优化迭代
以上,是我这几年折腾各种开发工具总结的心得。接下来详细阐述我用过的各种开发环境
windows 阶段
初学编程时,用 windows 搭环境相当方便,毕竟有现成的开发工具套件,如 wamp, 一键安装即可愉快地编码了。没错,我是凭借世界上最好的语言 php 进入编程世界的
对于编程新手来说,windows 是一个很不错的系统,大多数开发工具都可以直接一键安装。毕竟新手只需要完成程序的 crud 即可,不需要知道多少细节
进一步了解 linux 后,无法忍受巨难用的 cmd,尝试折腾了 windows 上各种终端,试过用 git bash, powershell 等作为终端,最终都弃用了。虽然能实现不少 linux 命令,终究不能搭建 linux 上的环境
后来,win10 发布了 ubuntu, 兴冲冲地试用,也终因各种奇奇怪怪的问题而弃用了
用虚拟机,是可以拥有一个完整的 linux 系统,但虚拟机与主机的共享文件同步实在龟速。一个 laravel 项目,访问页面需要十几秒,果断弃之...
纯 linux 系统
当时见识身旁大神用 linux 的 opensuse 发行版,觉得超酷,界面炫,开发工具又完善。加上当时我是一个 vim 小迷弟,一门心思钻研 vim 的各种奇技淫巧,企图用 vim 代替所有 ide, 为 vim 安装了各种插件。
于是将电脑装成了 opensuse,结果很快就弃用了...
原因很简单:不少企业用的软件都安装不了,造成诸多不便。而且发现 vim 在我的超级复杂的配置下,已经变得很臃肿了,简直就是一个山寨版的 ide
与其费大力气将 vim 变成一个蹩脚的 ide, 为何不直接用 jetbrains 全家桶,jetbrains 的各个 ide 都能很好支持 vim
自此,就成了 jetbrains 的死忠粉,jetbrains + vim 模式,写起代码真让人停不下来
也是在此时,发现 windows 系统对于 vim 模式的支持并不友好。windows 系统的 ctrl 键是功能键,这个键在 vim 中也有特殊的作用,两者相冲突了
在此时,我想起了该换 mac 了
因为,mac 有 command 键,与 ctrl 键是分开的,而且 mac 自带的终端功能很强大,长得又漂亮
如果说真有什么明显的缺点,那就是贵...
mac 系统
不得不说,换上 mac 后,瞬间觉得高大上多了,13.3 寸的 macbookpro,方便携带,颜值爆表,简直就是集美貌与内涵于一身的性感尤物。电池的续航能力极强,长时间不关机也不会卡
入手前,觉得 mac 很贵,入手后,觉得完全物超所值
虽然 mac 是类 unix 系统,也有很多现成的开发工具。毕竟与生产环境 centos 还是有很多区别的。我就在想,能不能在本地搭建与线上完全一致的环境?
在这个理念的驱动下,接触了 vagrant, 搭建了 centos 虚拟机,用 nfs 解决了虚拟机与主机 io 同步的速度问题。本地开发环境就完全是基于 centos 了,这个阶段对于我熟悉 linux 起到了很大帮助
不足的是,毕竟隔了一层虚拟机,还是有些不便,每新增一个服务就要再设置端口映射。即使有 nfs 加速,在用前端工具,如 yarn npm 构建项目时,依然要用 mac 环境,直接用虚拟机的环境,速度会相当慢,机器发热也严重
此时,又想到 docker 这个宣称只需要一个配置,就可以实现开发、测试、生产环境完全一致的神器。对于 docker,我抱着极大的期望,多次去折腾,终究还是弃用了
必须肯定的是,docker 在 linux 系统上用起来很爽,生产环境用 docker 部署也很方便。但真不建议在开发环境中使用。
首先,文件同步慢如龟速,尝试用 nfs 解决,多次折腾后均未有成效。
其次,docker 也是一个吃内存怪兽,对于内存的占用丝毫不比虚拟机少。而且还占用了很大的磁盘空间
最后,由于本身开发环境经常需要变动,要维护一堆 docker-compose 的配置,令人很头大。
综上,最终还是回到了 mac 自带的开发工具
回归本源
折腾一圈后,还是觉得用 mac 生态最好,即使 brew 很慢,但可以换源,或者用梯子。总能找到解决方法。抛开笨重臃肿的虚拟机、docker,我的 mac 可以长舒一口气了。毕竟,她只有 8G 内存,还要开着好几个 ide,实在不忍受让她长时间脸红心跳地工作
回过头看以前的种种折腾,有时会感慨,是否走了相当多的弯路?
可生活就是这样,道理听过千万遍,不亲自去碰撞,不去感受其中的辛酸喜悦,就不会有自己的认知与选择
以上,并非说我选择的方案是最好的,每个人都有自己用得顺手的开发环境