如何在面試時寫出來高質量的代碼

可以從代碼的規範性、完整性、健壯性、擴展性等幾個方面提高代碼的質量。

(1)代碼的規範性
書寫清晰、佈局清晰、命名合理;

書寫清晰:可以寫慢一點,但是字跡清晰;
佈局清晰:縮進,以及代碼的風格統一;
命名合理:變量命令,函數命名,儘量用容易理解的命名;不用魔數等;

(2)代碼的完整性
是否完成了基本功能、輸入邊界值是否能得到正確的輸出、是否對各種不合規範的非法輸入做出了合理的錯誤處理:
從功能測試、邊界測試和負面測試三方面設計測試用例;
(2.1.1)普通功能測試
比如面試題要求完成的功能是把字符串轉換成整數,應聘者就可以考慮輸入字符串“123”來測試自己寫的代碼。這裏要把零、正數(比如123)和負數(比如-123)都考慮進去。
各種邊界值的測試用例:

(2.1.2)邊界測試
很多代碼都包含有循環或者遞歸。如果代碼是基於循環,那麼結束循環的邊界條件是否正確?基於循環的代碼要特別注意開區間和閉區間的使用;
如果代碼是基於遞歸,遞歸終止的邊界值是否正確?

(2.1.3)非法輸入測試(負面測試)
應聘者寫出的函數除了要順利地完成要求的功能之外,當輸入不符合要求時,面試官還希望他能做出合理的錯誤處理。

(3)擴展性以及可維護性
在軟件開發過程中,永遠不變的就是需求會一直改變。如果應聘者在面試時寫出的代碼能夠把將來需求可能的變化都考慮進去,在需求發生變化時能夠儘量減少代碼改動的風險,那他就向面試官展示了自己對程序可擴展性和可維護性的理解。

(4)魯棒性(健壯性)
魯棒性是指程序能夠判斷輸入是否合乎規範要求,並對不合要求的輸入予以合理的處理。容錯性是魯棒性的一個重要體現。

 

(5)總結

面試時寫一個算法題時:

1)理清題意;

2)大概思路;

數據結構,用到的算法,整體流程;

3)代碼實現;

關鍵代碼加註釋;

4)單元測試;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章