今天看了一篇文章為什么有些大公司技術(shù)弱爆了?鞭盟。大概講的就是知乎上一位題主在一家大公司中對于大公司的所用技術(shù)的吐槽,下面還有這個大公司一位有年份的技術(shù)人員對于題主吐槽的一些看法瑰剃。
開始看這片文章時齿诉,我感覺題主以自己的視角看到了許多公司中的問題,讓人感覺也許大公司的技術(shù)過度的偏向于保守培他,并且在流程規(guī)范上不夠正規(guī)鹃两,對于新事物的接受能力很差。接下來回答問題的這位答主卻將我之前對于該公司的偏見一掃而空舀凛,我們且來看看答主對于題主個個問題的答案:
1. 代碼寫的一團(tuán)糟俊扳,全是復(fù)制粘貼,連作者都沒改猛遍,大家普遍不寫注釋馋记,也不格式化,代碼歪歪扭扭懊烤。
當(dāng)初公司起步的時候梯醒,整個項目都是幾個初創(chuàng)程序員加班加點熬出來的,我知道你看過《代碼大全》腌紧、《程序員修煉之道》茸习、《Unix 編程藝術(shù)》,你對上面的準(zhǔn)則信手拈來壁肋,你可否翻開床頭柜上的這幾本書号胚,看看它們的出版時間呢籽慢?
是的,公司起步的時候猫胁,這幾本書根本還沒有出版箱亿,彼時中國互聯(lián)網(wǎng)方興未艾,大家都是摸著石頭過河∑眩現(xiàn)在你遇到問題届惋,你可以問朋友、問導(dǎo)師菠赚、用谷歌脑豹、用棧溢出、用知乎锈至,我們寫程序那個年代晨缴,看的是譚浩強(qiáng)、嚴(yán)蔚敏峡捡,用的是 52k 撥號上網(wǎng)击碗,語言只有 C,編輯器是沒有語法高亮和實時編譯的们拙,編譯器是沒有智能準(zhǔn)確的報錯的稍途,沒有現(xiàn)在這么多知識、也沒有這么多規(guī)范和好資源砚婆、好工具械拍。不過我們還是把項目做出來了,把公司一步步推到了現(xiàn)在的位置装盯。
不過這個問題是客觀存在的問題坷虑,誰也不否認(rèn),但是你知道為什么你被分配到了一個『代碼看上去一團(tuán)糟也不夠規(guī)范』的項目嗎埂奈?我們需要新鮮血液來重構(gòu)一些老代碼迄损,所以你會被分配到艱苦的崗位上。我們希望你是勇于戰(zhàn)斗的戰(zhàn)士账磺,我們更希望你能成長為經(jīng)驗豐富的老兵芹敌,而把你放到這種崗位,是對你來說成長最快的方式
題主看到的這些代碼與自己所了解到的規(guī)范不符合垮抗,吐槽一番氏捞,卻忽略了寫這些代碼的年代,在那個時代的工具沒有現(xiàn)在的好用冒版,當(dāng)時的資料也沒有像現(xiàn)在這么全面液茎。
2.一個項目里,httpclient竟然出現(xiàn)了四種。一種是該公司研發(fā)部寫的豁护,一種是老版本的開源項目哼凯,一種是新版本的開源項目,還有一種是開發(fā)人員造的輪子
你不知道的是楚里,我們最初用了開源軟件(也就是你所說的『老版本』),它構(gòu)成了我們早期項目的基石猎贴,隨著業(yè)務(wù)復(fù)雜性增加班缎,我們改進(jìn)并最終切換到新版本。
這個軟件跑老業(yè)務(wù)非常成熟她渴,但是在一些新業(yè)務(wù)上有不可調(diào)和的矛盾达址,所以在痛苦的適配后,研發(fā)部的同事們自告奮勇用 20% 的時間寫了新業(yè)務(wù)的組件——是的你沒看錯我們也有 20% 時間趁耗,我們鼓勵工程師的創(chuàng)新沉唠。
至于你說的開發(fā)人員造的輪子——這說起來可真有趣,它其實是前年來的一個清華大學(xué)實習(xí)生寫的苛败。
當(dāng)時他來了之后满葛,針對他接手業(yè)務(wù)的需求,向我抱怨說現(xiàn)有的 3 種都不好罢屈,要寫一個新的來『統(tǒng)一天下』嘀韧,這話是他的原話,我記得非常清楚缠捌,因為以我多年經(jīng)驗來看這樣的做法是不可取的锄贷,但是本著鍛煉年輕人的心態(tài)(加上他的確是不可多得的天才),我同意了他的請求曼月,于是我用自己的業(yè)余時間接管了他的大部分工作谊却,全力支持他寫一個新的組件,幫他擋住了所有上面的壓力哑芹,后來的故事就是你看到的這樣炎辨。
是的,他后來越深入绩衷、就越來越感到業(yè)務(wù)的復(fù)雜蹦魔,不斷推翻重構(gòu)、拆東墻補西墻咳燕,但始終發(fā)現(xiàn)和自己想的根本完全不一樣勿决,受不了了就走了,留下來這個招盲。
我們明年的規(guī)劃中低缩,就包括剔除這個組件的 codebase,因為它實在是太糟糕了。
其實這個問題我們公司的項目也遇到過咆繁,在使用一些庫的過程中讳推,隨著時間的推移,一些問題漸漸暴露出來玩般,而有些第三方庫由于某些原因不再更新了银觅,此時你想要替換掉這個庫,用個更新版的坏为,卻發(fā)現(xiàn)想要替換掉它時牽一發(fā)而動全身究驴,所花費的時間成本和未來可能遇到的問題都是未可知的,索性在新的地方用新的庫老的地方保持原樣匀伏,逐漸遷移代碼才能慢慢解決問題洒忧。
還有一些問題就不再贅述,其實我們這些問題都用一個共性够颠,在什么樣的背景下產(chǎn)生的熙侍,有的時候我們看一件事在兩種情況下會有兩種不同的評判,題主已自身視角去看公司中的這些問題自然回覺得很多東西都很low履磨,其實結(jié)合了一定是時代背景后在看這些問題時就會感覺其實并沒有自己所感覺的這么差蛉抓。
技術(shù)時刻都在更新,我們也需要不斷的努力去跟上時代的步伐蹬耘,以后在看自己現(xiàn)在學(xué)的這些技術(shù)也會覺得很low吧芝雪,哈哈。不知道到時的自己會如何看待今天的自己综苔!