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