開發(fā)環(huán)境折騰記

前言

對(duì)于工具有選擇困難癥以及完美主義傾向的程序員來說,總會(huì)在不同工具的選擇上陷入極大的糾結(jié),往往懷著極高的期待選擇某個(gè)工具,期望這個(gè)工具能解決一攬子問題,進(jìn)一步熟悉后,總會(huì)發(fā)現(xiàn)工具的不盡人意之處,于是又切換到別的工具。如此循環(huán)往復(fù),耗費(fèi)了大量時(shí)間精力

雖說磨刀不誤砍柴功,但總不能等到磨出一把削鐵如泥的寶刀再動(dòng)手吧。理性的選擇是先用好現(xiàn)成的工具,再逐步優(yōu)化迭代

以上,是我這幾年折騰各種開發(fā)工具總結(jié)的心得。接下來詳細(xì)闡述我用過的各種開發(fā)環(huán)境

windows 階段

初學(xué)編程時(shí),用 windows 搭環(huán)境相當(dāng)方便,畢竟有現(xiàn)成的開發(fā)工具套件,如 wamp, 一鍵安裝即可愉快地編碼了。沒錯(cuò),我是憑借世界上最好的語(yǔ)言 php 進(jìn)入編程世界的

對(duì)于編程新手來說,windows 是一個(gè)很不錯(cuò)的系統(tǒng),大多數(shù)開發(fā)工具都可以直接一鍵安裝。畢竟新手只需要完成程序的 crud 即可,不需要知道多少細(xì)節(jié)

進(jìn)一步了解 linux 后,無(wú)法忍受巨難用的 cmd,嘗試折騰了 windows 上各種終端,試過用 git bash, powershell 等作為終端,最終都棄用了。雖然能實(shí)現(xiàn)不少 linux 命令,終究不能搭建 linux 上的環(huán)境

后來,win10 發(fā)布了 ubuntu, 興沖沖地試用,也終因各種奇奇怪怪的問題而棄用了

用虛擬機(jī),是可以擁有一個(gè)完整的 linux 系統(tǒng),但虛擬機(jī)與主機(jī)的共享文件同步實(shí)在龜速。一個(gè) laravel 項(xiàng)目,訪問頁(yè)面需要十幾秒,果斷棄之...

純 linux 系統(tǒng)

當(dāng)時(shí)見識(shí)身旁大神用 linux 的 opensuse 發(fā)行版,覺得超酷,界面炫,開發(fā)工具又完善。加上當(dāng)時(shí)我是一個(gè) vim 小迷弟,一門心思鉆研 vim 的各種奇技淫巧,企圖用 vim 代替所有 ide, 為 vim 安裝了各種插件。

于是將電腦裝成了 opensuse,結(jié)果很快就棄用了...

原因很簡(jiǎn)單:不少企業(yè)用的軟件都安裝不了,造成諸多不便。而且發(fā)現(xiàn) vim 在我的超級(jí)復(fù)雜的配置下,已經(jīng)變得很臃腫了,簡(jiǎn)直就是一個(gè)山寨版的 ide

與其費(fèi)大力氣將 vim 變成一個(gè)蹩腳的 ide, 為何不直接用 jetbrains 全家桶,jetbrains 的各個(gè) ide 都能很好支持 vim

自此,就成了 jetbrains 的死忠粉,jetbrains + vim 模式,寫起代碼真讓人停不下來

也是在此時(shí),發(fā)現(xiàn) windows 系統(tǒng)對(duì)于 vim 模式的支持并不友好。windows 系統(tǒng)的 ctrl 鍵是功能鍵,這個(gè)鍵在 vim 中也有特殊的作用,兩者相沖突了

在此時(shí),我想起了該換 mac 了

因?yàn)椋琺ac 有 command 鍵,與 ctrl 鍵是分開的,而且 mac 自帶的終端功能很強(qiáng)大,長(zhǎng)得又漂亮

如果說真有什么明顯的缺點(diǎn),那就是貴...

mac 系統(tǒng)

不得不說,換上 mac 后,瞬間覺得高大上多了,13.3 寸的 macbookpro,方便攜帶,顏值爆表,簡(jiǎn)直就是集美貌與內(nèi)涵于一身的性感尤物。電池的續(xù)航能力極強(qiáng),長(zhǎng)時(shí)間不關(guān)機(jī)也不會(huì)卡

入手前,覺得 mac 很貴,入手后,覺得完全物超所值

雖然 mac 是類 unix 系統(tǒng),也有很多現(xiàn)成的開發(fā)工具。畢竟與生產(chǎn)環(huán)境 centos 還是有很多區(qū)別的。我就在想,能不能在本地搭建與線上完全一致的環(huán)境?

在這個(gè)理念的驅(qū)動(dòng)下,接觸了 vagrant, 搭建了 centos 虛擬機(jī),用 nfs 解決了虛擬機(jī)與主機(jī) io 同步的速度問題。本地開發(fā)環(huán)境就完全是基于 centos 了,這個(gè)階段對(duì)于我熟悉 linux 起到了很大幫助

不足的是,畢竟隔了一層虛擬機(jī),還是有些不便,每新增一個(gè)服務(wù)就要再設(shè)置端口映射。即使有 nfs 加速,在用前端工具,如 yarn npm 構(gòu)建項(xiàng)目時(shí),依然要用 mac 環(huán)境,直接用虛擬機(jī)的環(huán)境,速度會(huì)相當(dāng)慢,機(jī)器發(fā)熱也嚴(yán)重

此時(shí),又想到 docker 這個(gè)宣稱只需要一個(gè)配置,就可以實(shí)現(xiàn)開發(fā)、測(cè)試、生產(chǎn)環(huán)境完全一致的神器。對(duì)于 docker,我抱著極大的期望,多次去折騰,終究還是棄用了

必須肯定的是,docker 在 linux 系統(tǒng)上用起來很爽,生產(chǎn)環(huán)境用 docker 部署也很方便。但真不建議在開發(fā)環(huán)境中使用。

首先,文件同步慢如龜速,嘗試用 nfs 解決,多次折騰后均未有成效。

其次,docker 也是一個(gè)吃內(nèi)存怪獸,對(duì)于內(nèi)存的占用絲毫不比虛擬機(jī)少。而且還占用了很大的磁盤空間

最后,由于本身開發(fā)環(huán)境經(jīng)常需要變動(dòng),要維護(hù)一堆 docker-compose 的配置,令人很頭大。

綜上,最終還是回到了 mac 自帶的開發(fā)工具

回歸本源

折騰一圈后,還是覺得用 mac 生態(tài)最好,即使 brew 很慢,但可以換源,或者用梯子??偰苷业浇鉀Q方法。拋開笨重臃腫的虛擬機(jī)、docker,我的 mac 可以長(zhǎng)舒一口氣了。畢竟,她只有 8G 內(nèi)存,還要開著好幾個(gè) ide,實(shí)在不忍受讓她長(zhǎng)時(shí)間臉紅心跳地工作

回過頭看以前的種種折騰,有時(shí)會(huì)感慨,是否走了相當(dāng)多的彎路?

可生活就是這樣,道理聽過千萬(wàn)遍,不親自去碰撞,不去感受其中的辛酸喜悅,就不會(huì)有自己的認(rèn)知與選擇

以上,并非說我選擇的方案是最好的,每個(gè)人都有自己用得順手的開發(fā)環(huán)境

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容