github連接 git
項目 | 內容 |
---|---|
這個做業屬於哪一個課程 | https://edu.cnblogs.com/campus/buaa/BUAA_SE_2020_LJ |
這個做業的要求在哪裏 | https://edu.cnblogs.com/campus/buaa/BUAA_SE_2020_LJ/homework/10466) |
我在這個課程的目標是 | 提高軟件開發能力 |
這個做業在哪一個具體方面幫助我實現目標 | 提高了我的編程能力, 測試和提高代碼性能的能力 |
PSP2.1 | Personal SoftWare Process Stages | 預計耗時 | 實際耗時 |
---|---|---|---|
Planning | 計劃 | 120 | 60 |
Estimte | 估計這個任務須要多少時間 | 1800 | 1700 |
Development | 開發 | 1100 | 1000 |
Analysis | 需求分析 | 0 | 0 |
Desing Spaec | 生成設計文檔 | 100 | 40 |
Design Review | 設計複審 | 100 | 10 |
Coding Standard | 代碼規範 | 0 | 0 |
Design | 具體設計 | 60 | 40 |
Coding | 具體編碼 | 1100 | 180 |
Code Review | 代碼複審 | 60 | 60 |
Test | 測試 | 180 | 180 |
Reporting | 報告 | 100 | 120 |
Test Report | 測試報告 | 0 | 0 |
Size Measurement | 計算工做量 | 5 | 0 |
Postmortem & Process Improvement | 過後總結 | 60 | 50 |
- | 合計 | 1800 | 1700 |
通過查閱資料和學習, 我瞭解到在接口設計中有經常使用的一些原則, 本次做業的設計中, 咱們用到了這些原則。github
單一職責原則編程
Single Responsibility Principle: There shuld never be more than one reason for class to change函數
單一職責原則要求一個接口, 一個功能, 若是在private 方法和public接口中, 改動過多, 那麼容易引發錯誤。 在結對編程的設計中, 計算模塊裏咱們儘可能保證一個函數只作一個事情, 好比Line Circle Point分出三個類, 每一個求交點的函數只處理一種類型等。性能
里氏替換原則學習
Liskov Substitution Principle: Functions that use pointers or references to base classed must be able to use objecsts of derived classes without knowing it測試
這一法則是多態的體現, 全部父指針的使用點均可以用子指針, 這要求了子類只擴展父類, 可是不能夠用在覆寫父類函數的時候讓函數的應用範圍減小。 在最初的版本中, 咱們採用了Line Circle繼承父類的方式實現, 後來發現這種繼承影響性能, 就放棄了繼承。編碼
依賴倒置原則設計
依賴倒轉原則是TDD測試驅動開發的體現, 要求高層模塊不依賴特定的底層模塊, 而是依賴其抽象, 這要求編程者提早想好接口。指針
接口隔離原則
clients should not be forced to depend upon interfacess that they don't use
保證接口單一, 不要過於臃腫, 在計算模塊和UI模塊的對接時, 咱們儘可能細化接口, 讓模塊的每一個按鈕對應了恰好一個接口, 同時接口之間的功能達到了隔離。
迪米特法則
law of Demeter: least knowledge
loose coupling: Loose coupling means they mostly independent
這一原則要求兩個類之間要低耦合, 達到loose coupling, 一個類不須要知道另外一個類是怎麼實現的, 更不須要由於一個類內部代碼的修改二更改本身的方法。 在咱們的結對編程中, 爲了實現接口的高效對接, 對於接口進行和抽象和封裝