《配置管理最佳實踐》——2.8 構建工程師的角色
本節書摘來自異步社區《配置管理最佳實踐》一書中的第2章,第2.8節,作者: 【美】Bob Aiello , Leslie Sachs著,更多章節內容可以訪問雲棲社區“異步社區”公眾號查看
2.8 構建工程師的角色
構建工程師通常需要有軟件開發的背景,紮實的技術知識,一定程度的編程能力(包括 Perl, Python, Shell 和 XML),可以建立可靠、可重複的構建過程。工作中很難找到一個合適的構建工程師,因為具有很強開發背景的專業技術人員通常都更願意做項目而不願意寫構建係統。構建工程師是一個非常有意思也很有挑戰的職位。其他的開發人員很容易使用到新的技術、新的框架,而構建工程師卻並不總能把前沿的技術應用到工作中去。但建立一個高質量且高效率的構建工程的確是一項十分需要創造力的工作。
在軟件開發過程中,構建工程師發揮著舉足輕重的作用。但是這個職位的角色隨著團隊的不同也會發生變化。我曾經不斷地構建和發布構建來滿足開發的需要。有時,開發人員會被分派一些構建工程的短期任務,例如寫構建的基礎架構。這就要求開發人員既了解應用程序的架構,也熟悉構建工具本身。
2.8.1 了解構建的項目
資深的構建工程師需要在精通相應構建工具的同時,深刻理解應用程序的架構。例如,我曾經用特定的 JMX 資源處理J2EE服務器接口的配置。在其他的技術中,相同的功能是由不同配置文件處理的。開發人員具備專業的知識去配置這些,但是構建工程師往往缺少這些技能,所以就需要在構建過程中明確定義出這些需求,參考構建過程文檔來完成這項工作。構建工程師的工作常常要涉及很多技術。也許第一天,我深入研究C#,.NET和SQL Server 等與平台緊密相關的工具和技術。第二天,我就轉向J2EE SOA、部署特定的網頁和應用服務器。下一個任務也許是使用Make 構建C/C++開發的嵌入式軟件,以及相關的硬件和固件。構建工程師需要有很強的技術知識,還要能和開發人員合作完成某項任務。這就要求構建工程師能快速掌握很多具有挑戰性的新技術。
2.8.2 與開發人員合作
曾經遇到一個涉及 Java 對象持久層框架的項目,以前從來沒有接觸過。我的任務是為這個將被發布的項目寫構建腳本。於是開始學習它,想快速地掌握這門技術,可還是對很多東西沒有概念。在這種情況下,與開發人員合作去完成構建框架就顯得很有必要了。期間也遇到了一些挑戰,比如習慣了集成開發環境的開發人員,不知道如何在命令行下構建他們的應用。在這種情況下,我會設定好構建的入口和出口標準。比如,構建腳本的入口就是在開發環境中通過命令行來生成構建。這樣,這個腳本就可以修改為支持QA 環境和生產環境。修改過程中最重要的事情是保證構建可靠並且可重複。
2.8.3 招募新人
招募新人最好的辦法是將一個新的開發人員培養成為構建工程師。新的開發人員也許對創建可重複性構建的知識一無所知,但是這沒有關係,我可以教他。隻要他有相應的專業技術,哪怕沒有技術,有強烈的學習意願也是可以的。事實上,在我看來所有的開發人員,都應該在入職培訓的時候了解一些構建工程的內容。這將有助於開發人員處理架構中的問題,也有助於我們發現那些真正理解構建工程和發布流程的團隊。
最後更新:2017-06-05 10:01:49