SharePoint Framework 基於團隊的開發(四)

Justin-Liu發表於2017-12-18

部落格地址:http://blog.csdn.net/FoxDave

確保程式碼一致性和質量

軟體開發團隊常常同專案的一致性和高質量做鬥爭。不同的開發者有不同的編碼風格和偏好。在每個團隊都有技術優秀的獨立開發者和相對經驗較少的開發者。並且,許多組織都有特定的軟體開發必須遵守的條例。所有的挑戰都使得開發者難以一直關注,特別是當專案結束日期近在咫尺時,開發者往往通過犧牲質量而把任務儘快完成,長久來看這種做法危害更大。

選擇JavaScript庫並使用程式碼規範

如果你的團隊以前構建過SharePoint定製化專案,你很可能已經有了編碼規範來描述你如何構建定製化和專案中使用的工具和庫。使用程式碼規範可以使你消除個體開發者的偏好,使整個程式碼更容易維護。同時編碼規範也反映了過去幾年你的團隊積累下來的經驗,使你在做定製化時更高效和高質量。

SharePoint Framework專注於客戶端開發,推薦使用TypeScript來幫助開發者編寫更好的程式碼並在編譯過程中捕獲不一致的地方。完成同一個任務也有成百上千的客戶端庫。如果你的團隊以前做過客戶端開發,你可能已經對某個特定庫有所偏好。如果沒有的話,推薦你去找一些在你的團隊乃至全公司進行應用。

通過使用公共庫你可以使新團隊成員更容易地融入團隊,也可以使團隊間的成員交換變得更加容易。當你從客戶端開發方面得到更多經驗時,你的組織中所有的專案都可以從中受益。在全公司的層面標準化你的專案也可以縮短週期,降低維護專案的成本。網際網路上的庫每天都會更新,如果你一直在持續地更換最新版本,你會發現工作得很低效。

這種做法也幫助你提升了績效。因為全公司使用的都是相同的庫,開發者只需要下載一次就可以了。

從最受歡迎的庫中選擇一個可以使你複用很多知識和經驗,比如某個開發者對它有相當長時間的應用和了解,並且這樣的庫已經修復了很多問題。並且這樣的庫也有自己的編碼規範,你可以拿來採用。通過這樣的手段可以讓員工提高產出。

例如,構建SPFx解決方案,微軟選擇React。同時微軟的其他團隊如OneDrive、Delve也使用React。這不是說你要使用React,而是要證明選擇客戶端庫的重要性。如果你的團隊對Angular或Knockout有經驗,就應該愉快地使用它們。

在解決方案的整個生命週期強制編碼規範和策略

使用程式碼規範給你帶來了好處,但是隻有編碼規範並不意味著它們在你的整個開發和測試過程中使用了。時間越長就越難驗證你的團隊是否很好地執行了編碼規範和組織策略,發現問題整改的成本也就越高。下面是一些建議的方法。

Linting

Linting是這樣一個過程,它驗證程式碼是否符合特定的規則。預設情況下SPFx專案採用TypeScript構建。在每個構建的TSLint(TypeScript的linter)上會根據預定義的規則集合進行分析並報告矛盾的地方。開發者可以選擇啟用哪個規則,也可以根據團隊的規範和指引定義自己的規則。

開發者不僅可以使用linting來驗證TypeScript檔案的內容,還有CSS、JavaScript或Markdown。

自動化測試

使用自動化測試開發者可以很容易地驗證應用最新更改後工程的正確性。自動化測試使開發者能夠驗證解決方案是否正確工作,儘早發現可能發生的問題。

SPFx提供了對Karma測試標準的支援,可以使用Mocha編寫測試。如果有需要,開發者還可以使用SPFx額外提供的PhantomJS來擴充套件測試的範圍。所有SPFx專案的測試都可以使用標準的gulp test任務執行。

程式碼分析

除了上述的內容,開發者常常還需要更多的支援來驗證專案的正確性。通常來說linter關注於程式碼本身,但是沒有特定程式碼檔案用來做什麼的部分。例如在SPFx專案中,一個web部件需要有唯一的ID。再就是來自公司的其他需求如不能從CDN引用指令碼或引用特定版本的庫。

SharePoint Code Analysis Framework(SPCAF)是一個第三方的解決方案,常被SharePoint開發者、管理員、QA和安全員使用,用來驗證SharePoint自定製滿足需求。SPCAF跟應用的整個生命週期程式整合,幫助降低成本。SPCAF提供了一系列專門針對SPFx專案的規則。

相關文章