天天看點

熟悉陌生架構或代碼, 産品設計小結

2015-07-27 10:44:03

程式都是順序被執行的

但是順序寫代碼會很難維護, 結構不清晰, 代碼備援

架構, 就是把本來應該順序寫在一起的代碼分開存放在不通的檔案中, 并用不通的檔案夾将其分類

但是程式仍要順序執行, 這樣就會有一種機制将分布在不通檔案夾裡的檔案"拼接"在一起, 使其成為"可順序執行"的

這個機制, 語言層面就是include, require, import, 對應的函數就可能是 load, auto_load, ....

是以熟悉一個架構, 最好從全局搜尋這些關鍵詞, 然後找到包含關系, 找到主幹走向

======

如果不想這樣找呢

網絡開發無非是增删改查,

接手一個新架構, 先找到:

1. 處理資料庫的檔案在哪裡,實體資料庫表有大緻有哪些(過一眼, 心裡有個數, 對了解特務邏輯會有幫助, 架構裡大多以model, db, driver, mysql, query, ....命名)

2. 處理表單/業務邏輯的PHP代碼在哪裡, 同一類的代碼會放在哪裡 (架構裡大多以 controller, ***.class.php, ....命名)

3. 顯示HTML用的代碼在哪裡 (架構裡大多以 view, render命名)

4. 公共類庫在哪裡, 裡邊大緻有哪些全局可通路的函數(架構裡大多會以 lib, library, base, .... 命名)

解決問題的時候, 多用開發軟體(編輯器, IDE,.....)提供的全局搜尋功能

找到表單的名字, 或者直接到資料庫裡找到你要操作的字段, 全局搜尋他, 然後找到處理該資料的檔案, 最後确認處理邏輯在哪個檔案裡

或者, 比如與使用者有關的, 通常處理資料的檔案名字會叫user, account.... edit, update, add, del, delete, .......

産品設計:

對于一款産品, 添加新功能的時候要考慮已有功能的相容

比如, 要把匿名使用者當做普通已注冊的使用者來對待

要考慮到已注冊的使用者會有哪些行為, 那麼匿名使用者肯定也會有這樣的行為: 編輯個人資訊, 頭像, 回答問題, 擷取積分, 收發郵件, 私信.....

那麼現有開發的程式功能, 是不是相容這些資料, 比如, 普通使用者是有userid的, 匿名使用者也需要的, 等等

稍微總結一下就是, 現有的功能會在哪些地方使用, 新加的功能是否也會在這些方面被用到, 那麼, 這些地方需要的資訊userid, nickname,.... 新功能也應該有才能保證新老相容