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