發表文章

目前顯示的是 3月, 2021的文章

laravel + vue js 基本開發項目

vue js  多語言 權限控制 路由 (RBAC) 權限控制 button (RBAC) input填入錯誤偵測 API全域錯誤控制 response攔截器 表格 關鍵字篩選  排序 多項目篩選 分頁 laravel logging rbac api exception

動態規劃設計步驟

https://ithelp.ithome.com.tw/articles/10231119 名詞: 多階段決策 最優子結構 自下而上 自上而下 重疊子問題 狀態轉移方程 題目: 解码方法 最长回文子串 最长和谐子序列  最大子序和 不同路径 最长递增子序列 1. 定義dp 定義dp[i]的意義 2. 定義邊界條件 dp[i]在最簡單的狀態,應該是有直接的解答。 3. 初始化 根據邊界條件,初始化dp 4. 定義狀態轉移方程 dp[i] 怎麼推論到 dp[i+1] 5. 找出解答 找出最後要輸出的答案 分類 自底而上:動態規劃 自頂而下:記憶化搜索 二維解法 一維解法 固定數量的變數

物件導向書單

 設計模式之禪 clean code系列 UML模式和應用 重構 反模式 大話設計模式 研磨設計模式 OOD啟思路 clean architecture 敏捷軟體開發:原則、樣式及實務 網站 https://www.runoob.com/design-pattern/ https://refactoring.guru/

設計模式

https://blog.csdn.net/ShuSheng0007/article/details/115980889 建造者模式 建構表示分離 隱藏並封裝建構過程 Telescoping Constructor Pattern (伸縮建構式) 條列的建構子 鍊式調用setter 桥接模式 缺點: 需要正確辨識獨立维度,增加複雜度。 外观模式 子系統 統一操作介面,隱藏模塊細節。 優: 降低複雜度。 缺: 子系統改變,需要跟著變。

物件導向設計

1. 分離關注 2. 看看是否違反單一職責 3. 如何測試 4. 封裝是否有直接被使用到的數據 5. 封裝變化的部分 6. 尋找其他可能出現的類 7. rdd 誰應該被分配什麼職責 8. 接口編程 9. solid 單一職責 開閉原則 接口隔離 里氏替換 依賴倒置 10. grasp 職責分配原則  * Information Expert * Creator * Controller * Low Coupling * High Cohesion * Indirection * Polymorphism * Pure Fabrication * Protected Variations 11. 設計一個function 先考慮怎麼使用這個function比較方便 12. 不要相信前端數據 後端應該要隨時驗證資料是否合法 13. interface 即服務 14. 面向接口 https://www.gushiciku.cn/pl/g2Y6/zh-hk https://learnku.com/articles/30034 https://ithelp.ithome.com.tw/articles/10254804 於封裝也稱為信息的隱藏,體現的最淋漓盡致的地方就是來定義接口了,在接口中我們沒有任何功能的實現,只是定義了一系列抽象的方法聲明。在Java中接口是體現封裝最常用的方法 封裝的好處 : 1、實現專業的分工 2、減少代碼的耦合 二、繼承 : 所謂繼承是Java中面向對象最顯著的一個特徵,繼承是從已有的類中派生出新的類,新的類可以吸收已有的屬性、行為,並擴展新的能力。在Java中不支持多繼承,單繼承使Java的繼承關係很簡單,一個類只能有一個父類,這樣易於我們的管理,同時父類也是子類的抽象化,而子類反過來就是父類的具體化 三、多態 : 多態是三大特性中最後出現也是最重要的特性,前面的封裝和繼承都是為多態來服務的。 多態 :多態是同一個行為具有多個不同表現形式或形態的能力  ADP 無環依賴原則 在元件的依賴關係圖中不允許出現環 SDP 穩定依賴原則 朝著穩定方向進行依賴 SAP 穩定抽象原則 元件的抽象程度應該與元件的穩定程度一致   好的架構幫助你拖延決定 尖叫架構