耦合
1
在一個陽光明媚的下午,你高高興興的擼下了一百行程式碼,那優雅的程式碼,排版工整,命名考究,結構合理,邏輯自洽,恰如春風拂面,恰如和風細雨,你洋洋得意,彷彿只有優秀如你,才能寫出如此優秀的程式碼。
得意之餘,你也不忘時刻保持警覺,尤其作為老司機的你,深刻明白凡事高興太早總沒好事,像你這樣軟體開發領域的弄潮兒,碼農屆的翹楚,一定得真真正正的風裡來雨裡去,無數遭風浪打擊,經歷過無窮次打擊成長才得以如斯般強大。
你時刻提醒自己要警醒,切不可因為幾行程式碼寫得666就沾沾自喜,得時刻小心程式碼深處會鑽出幾隻蟲子。他們的意外出現,雖然不會破壞你那完美的程式碼結構,雖然還能給你枯燥無味的生活帶來一絲樂趣,但是可能會讓你的小心臟掀起一絲波瀾,作為老程式設計師的你,顯然不能容忍蟲子的出現。
2
然鵝緊接而來發生的一切卻似乎從未出現在你的綢繆之中,你那俊秀的程式碼,居然在點選生成之後的幾分鐘內毫無反應,一沒有警告,二沒有異常!!
那一刻空氣之寧靜,彷彿如高考現場,一枚針落在地上都能聽到,編譯器靜悄悄的,啥反應都沒有。須臾之後,你那i5配置的渣電腦突然飛速運轉起來,就像寂靜的街角開過了一輛柴油動力的手扶拖拉機,風扇急劇的轉動起來,嘈雜的聲音隨後充滿了整個房間。你甚至感受到辦公室裡其他同事都突然向你側目,向你致以了莫名的問候。
你安慰自己說:我的程式碼經得起時間和歷史的考驗,一看就很平穩,只是編譯有點慢,而程式碼編譯速度慢,這既不是異常、錯誤、警告,甚至連異味都算不上,如果愣是要找出一個錯誤,只能說計算機太渣,肯定是我的電腦算力趕不上我大腦的計算速度。
你開始為摩爾定律要18個月算力才能翻一番擔憂,你為人類文明發展史感嘆不已,看來人類要發展,還真的迫切需要量子計算機或生物計算機啊。
十分鐘過去了,此刻你的visual studio不僅沒有好轉,反而陷入了無響應狀態,你抓耳撓騷,如坐鍼氈,坐立不安,頭上的汗滴開始如雨後春筍般不斷冒出來,這是咋的啦,我的程式碼如此完美,究竟是什麼東西在作祟!!
3
一切在20分鐘之後才塵埃落定,只因為這一百行程式碼需要安裝的依賴包太多,那麼多優雅的.netcore依賴包,有的是框架天生的產物,這些包作為某軟的親兒子,安裝速度自然飛起,一行powershell命令,即可讓他們安靜下來;有的則是某些開源社群大佬們無私的饋贈,你不知道他們為何出現,只因。。網上教程是這麼寫的。
還有的,是貴司某位大佬的傑作,看似簡單的元件,卻依賴了二三十個包,似乎業界那些叫得上名字的元件,這個元件都依賴了,而且由於某些特殊原因, 即使你僅僅只想用其中的某個列舉或方法,你也只能依賴這個包。由於這個包你還無法繞過,意味著你將陷入買一送一百的奇妙困境。
於是初次編譯該專案成為一樁奇事,你的nuget目錄將急劇擴充,直到把你那原本就硬碟塞滿。。
除了這些後端包,由於你的程式碼還包括了一些前端程式碼,而這些前端包也同樣有一些依賴項,這些依賴項,有的包竟然居然在牆外託管、只能藉助於工具的幫助,且網速飛快的情況下才能安裝!!
4
你罵罵咧咧的開始尋求某些工具的幫助,獲得了開眼看世界的機會,你選擇伺服器,點選連線,OK,已連線。
此時,你又一次點選生成程式碼,這一次非常順利,終於得以編譯成功。你長舒一口氣,心情終於平復,你那光亮的頭皮上的汗終於不再湧出,此刻的你,終於又一次迴歸高階碼農那波瀾不興的心境。
恰在此時,心中幾個字突兀的竄了出來,難道。。“高內聚,低耦合,高內聚,低耦合“,你捶胸頓足,你長嘆不已,作為一位卓越的國人碼農,居然耦合了這麼多不必要的包,甚至還有許多牆外的包?
你看著窗外漸漸暗淡的西下夕陽,深刻感受到肩上的重任更加艱鉅。此刻,你的臉上,勞動者的汗水痕跡與夕陽的餘暉映襯在一起,彷彿一股詭異的光灑在你的面龐之上。