1. 程式人生 > >作業20181127-1 軟體工程原則的應用例項分析

作業20181127-1 軟體工程原則的應用例項分析

作業要求參照:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2446]

研一的上學期已經過去一大半,這期間令我印象最深刻的便是楊老師的“高階軟體工程”這門課。與之前類似的課程不同,這門課的重點在於實踐,有個人到結對再到組隊,一步步將編碼變得工程化。有了本科階段的程式設計基礎,通過實踐與《構建之法》中的理論相結合,也使得軟體工程在我的專案的應用更加得心應手。 

一、成功應用的案例

1.1 版本控制

這一段時間的學習中,應用的軟體工程原則著實不少,其中收益最大的就是版本控制了。當然,在本科階段我作為個人開發者也用過GitHub和開源中國的程式碼管理,但是之前沒有機會參與多人開發,也並沒有體會到版本控制對多人開發的優勢。而這次通過版本控制實現了多人協同開發,對git有了更深入的瞭解,也掌握了一定的衝突處理方法。尤其是在微信小程式專案的開發當中,大家通過Coding.net協同工作十分順利,而我在修改多個頁面時頻繁的check in也能夠使其他開發人員及時看到更新。此外,版本控制也對誤操作有很好的解決方法,在Beta釋出前一晚我們在實驗室改動程式碼時出現了較嚴重的錯誤,經過一段時間的除錯無果後,最終通過版本控制對之前的版本進行改動解決了這個問題,大大減少了找bug的時間。

目前,我已經將Coding.net以及版本控制應用到我的日常程式設計中,在實驗室的電腦寫完後push一下,回到寢室用自己的電腦更新一下程式碼就可以接著寫,這也取代了我之前使用優盤來回拷貝的繁瑣過程。

1.2 單元測試

在本科階段雖然將單元測試作為一門課程,但是在自己的開發經歷中對單元測試的使用並不多,究其原因還是軟體工程的意識太弱。而在結對程式設計中使用單元測試的結果十分不錯,我們使用的是最近流行的Python語言,藉此機會也學習了Python的單元測試方法。由於是結對程式設計,在一些功能的具體實現上還是會存在意見不統一的現象,雙方有些邏輯上的漏洞在執行時可能沒有察覺到,而通過單元測試可以較全面的進行測試,效果不錯。

 

二、失敗的經驗

2.1 程式碼規範

程式碼規範這個問題在結對程式設計時就提出來過,當時開發人員較少,而且交流又比較頻繁,統一程式碼規範實現起來還是很方便的。而在開發微信小程式專案的初期,我們並沒有制定詳細的程式碼規範,這個問題鄒心老師也在我們的部落格留言過,也正是因為這個問題,我在檢視和修改他人程式碼時出現了一些問題。首先,在樣式檔案中找到對應的標籤就是一件很耗時的事情,頁面並沒有按照一定的規範來放置類標籤樣式的位置。其次,我有一段時間沒有編寫過HTML的程式碼,忘記了div標籤中類的書寫規範,看到別人使用的連字元“-”而不是下劃線“_”就在接下來的程式碼中一律使用連字元,這使得js檔案中的方法名也使用了連字元連線(應使用下劃線),好在由之後的小夥伴幫我改正過來,但這徒增了工作量。所以在開發初期統一制定一份程式碼規範是十分重要的。