如何為新項(xiàng)目選擇優(yōu)秀的編程語言
在開始新事物之前,請考慮適合該工作的語言
大約一年前,我得到了自己的職業(yè)機(jī)會。 領(lǐng)導(dǎo)層接近我,問我是否想領(lǐng)導(dǎo)一個(gè)新的云原生團(tuán)隊(duì)。
"當(dāng)然,我愿意。"
我花了一些時(shí)間在我公司的開發(fā)團(tuán)隊(duì)中組建了一個(gè)有遠(yuǎn)見的個(gè)人團(tuán)隊(duì),他們認(rèn)為這會使團(tuán)隊(duì)成功。 我建立了一個(gè)不錯的人平衡,他們的經(jīng)驗(yàn)范圍從僅僅幾年的經(jīng)驗(yàn)一直到20多歲。
從歷史上看,我們從來都不是云開發(fā)人員。 我們是一家大型的企業(yè)軟件公司,在Microsoft技術(shù)堆棧中扎根。 我們知道一切都會突然發(fā)生,但是我們從未考慮過的一項(xiàng)更改是編程語言。 為什么?
因?yàn)槲覀兛偸悄菢幼觥?/p>
如果可行,為什么還要更改? 這就是我們所知道的,因此我們不必花時(shí)間學(xué)習(xí)一種新的編程語言。 我們將花費(fèi)所有時(shí)間來學(xué)習(xí)諸如CI / CD,無服務(wù)器開發(fā)和NoSQL之類的知識。
開始建設(shè)
您可以做的最壞的事情是忽略選項(xiàng),因?yàn)樗鼈兛雌饋砗茈y。 尋求方向,因?yàn)檫@是正確的方法,而不是簡單的方法。 不要假設(shè)方向,因?yàn)槟偸悄菢幼觥?/p>
"如果您想要新的東西,就必須停止做舊的事情。" -彼得·德魯克(Peter F. Drucker)
嘗試一種新的編程語言,它將以優(yōu)秀的方式解決您的問題。 如果它不起作用,請吸取教訓(xùn),再找一個(gè)。 靈活地做出決定。 不要袖手旁觀,而要與您的團(tuán)隊(duì)做出明智的決定。 嘗試一下舊的大學(xué)。
您會發(fā)現(xiàn),對于應(yīng)用程序的技術(shù)方面做出的最早決定(即編寫方式)將產(chǎn)生比較大的影響。 每個(gè)人都有學(xué)習(xí)新事物的能力。 不要害怕走不敗之路。
建立。 學(xué)習(xí)。 創(chuàng)新。 每天變得更好。
考慮未來
在您的整個(gè)職業(yè)生涯中,您都不會使用此產(chǎn)品。 在某個(gè)時(shí)間點(diǎn)上,您要么轉(zhuǎn)移到新項(xiàng)目,要么離開公司,去其他地方尋求幫助。
這意味著您需要考慮繼任者。 在您加入之后維護(hù)該應(yīng)用程序的人員將在其中花費(fèi)更多的時(shí)間。 因此,請考慮讓他們的生活更輕松的原因。 問自己以下問題:
- 這是語言行業(yè)標(biāo)準(zhǔn)嗎?
 - 我可以在最短的啟動時(shí)間內(nèi)雇用街上有人在此應(yīng)用程序上進(jìn)行構(gòu)建嗎?
 - 有社區(qū)支持嗎?
 - 我可以在堆棧溢出中找到問題和答案嗎?
 
作為領(lǐng)導(dǎo)者,您的工作是對公司產(chǎn)生影響。 聽起來很愚蠢,為項(xiàng)目選擇正確的編程語言可以決定您留下正面還是負(fù)面的語言。
如果需要,請更改
在開發(fā)過程的早期,您有一個(gè)窗口,您可以在其中更改編程語言,而對生產(chǎn)率的影響最小。 您已經(jīng)完成了概念驗(yàn)證,發(fā)現(xiàn)了一些陷阱,而且看來風(fēng)險(xiǎn)大于回報(bào)。
更改。
最小的工作已經(jīng)完成。 團(tuán)結(jié)一致,討論優(yōu)缺點(diǎn)。 如果團(tuán)隊(duì)認(rèn)為此編程語言不是正確的選擇,請盡早致電并切換。 您等待的時(shí)間越長,重構(gòu)的難度就越大。
這對我的團(tuán)隊(duì)來說不是一次,而是兩次。 在此過程的早期,我們做出了一個(gè)明智的決定,即選擇使用Python。 幾周后,我們意識到鑒于我們的用例,這對我們來說將不是一種可維護(hù)的語言。 因此,我們聚在一起,討論了我們的選擇,然后轉(zhuǎn)移到另一種語言。
您能做的最壞的事情是將自己鎖定在無法解決問題的編程語言中。 在項(xiàng)目的早期階段保持高度警惕,以及早發(fā)現(xiàn)并做出積極的改變。
使用正確的工具完成工作
您將不會使用錘子將螺釘擰入一塊木頭或使用鋼鋸來鋸制2x4的邊緣。 不,您將使用適合手頭任務(wù)的工具。
您的編程語言是您的工具。 從字面上看,這就是您用來構(gòu)建產(chǎn)品的依據(jù)。 為了在最短的時(shí)間內(nèi)做出優(yōu)秀的應(yīng)用,請使用優(yōu)秀的工具完成工作。
以下是一些主要編程語言的公認(rèn)使用案例:
- Python —數(shù)據(jù)科學(xué),機(jī)器學(xué)習(xí),后端Web開發(fā)
 - C#—基于Windows的胖客戶端應(yīng)用程序,游戲
 - Java —胖客戶端應(yīng)用程序,Android應(yīng)用程序,后端Web開發(fā)
 - JavaScript —快速的Web開發(fā)
 - Swift-iOS應(yīng)用
 
顯然,還有更多的語言可以考慮,但是請記住,某些語言比其他語言更容易解決問題。
不要害怕打擾
羅伯特·克里格(Robert Kriegel)在他的《圣牛造就最好的漢堡》一書中談到了舊業(yè)務(wù)流程如何扼殺創(chuàng)新。 本應(yīng)在很久以前就進(jìn)行過重新評估的流程,但從未遭到質(zhì)疑,因?yàn)樗鼈兛偸强梢酝瓿傻摹?/p>
我和我的團(tuán)隊(duì)很快意識到,我們都習(xí)慣了的編程語言無法在我們的新應(yīng)用程序中使用。 我們構(gòu)建了一些Lambda函數(shù),這些函數(shù)由于冷啟動時(shí)間而極慢。 我們考慮了解決方法,以使冷啟動不成問題,但我們認(rèn)為這將與我們掌握的工具對抗。
因此,我們決定成為破壞者。 我們加入了這個(gè)團(tuán)隊(duì)來進(jìn)行更改,并且我們不會讓舊的流程和神圣的牛妨礙我們。
做出不利決定的決定是艱難的,但是我們希望確保我們?nèi)〉贸晒Α?中斷通常意味著要勇敢面對,因?yàn)闆]有適當(dāng)?shù)牧鞒獭? 但是,如果您像我一樣擁有一支強(qiáng)大的團(tuán)隊(duì),一切皆有可能。















 
 
 








 
 
 
 