「半夜睡不著覺, 把心情哼成歌」
大家晚上好, 因為開發卡關卻又睡不著所以上來聊聊近況並且請求建議與協助
先介紹一下我自己, 目前職稱是後端工程師, 使用語言為php, 相關年資累計約五年四個月
目前手上的 Project 使用 Laravel Framework 開發, 程式碼架構依目錄區分為 Controller(Presentation)->Service(Business)->Repository(Data)->Entity
基本上各層的存取範圍以箭頭方向為準且不可逆, 但因為協同開發的關係偶爾還是會出現 Controller直接存取Repository的情況
因為沒有新的 feature/issue 的關係, 所以本週有空檔可以回頭整理之前寫的程式碼
越整理我就越沮喪
我發現自己沒有分辨哪些邏輯該歸類到哪一層的能力, 舉例來說:
--
有一個 MemberService 的 Class, 負責跟會員有關的操作
裡頭有一個方法 paginate 會回傳指定頁數與數量的會員資料, 除了吃指定頁數與數量的參數以外這個方法也吃另一個叫 $filter 的參數
$filter 是陣列型態, 我會在方法的最開始檢查這次的 $filter 傳了哪些篩選條件進來 & 這些篩選條件有沒有符合預期的型態
在這裡我會想: $filter是陣列豈不是說其他要使用這個方法的人還需要知道可用的 key 有哪些? 那是不是把 $filter 拿掉改成 addNameFilter(value)->addGenderFilter(value)->paginate(page, perPage) 這樣比較好?
緊接著另一個聲音又出現了: 這樣是不是例外新增一個 MemberFilterService 比較好? 不然篩選條件越來越多怎麼辦?
後來我保留 $filter, 檢查完 $filter 之後丟給 Repository, 在 Repository 裡頭又寫了一些 if-else 判斷 $filter 提供了哪些篩選條件(但沒檢查內容是否符合預期型態)
然後我又想: 是不是乾脆把檢查的程序搬到 Repository 來就了? 或是在 Repository 裡頭加 addXXXXFilter? 可是這樣 Service 不就沒事幹了?
---
諸如此類的狀況, 導致本週我根本沒做多少事情還創造出一些荒腔走板的程式碼
我可以很快的完整交待的 feature/issue, 只要我能夠忍受程式碼職責切分不清
但事實是我也想不出更好的寫法, 深深感受到自己的無力也對於沒有任何產能感到壓力
希望版上各位前輩能對我這樣的困境給一點建議跟方向, 推薦書籍也行, 我最愛買書了(但都沒時間看QQ)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.71.15.173
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1530813105.A.DBF.html
推
07/06 03:05,
7年前
, 1F
07/06 03:05, 1F
推
07/06 03:20,
7年前
, 2F
07/06 03:20, 2F
推
07/06 08:13,
7年前
, 3F
07/06 08:13, 3F
推
07/06 08:36,
7年前
, 4F
07/06 08:36, 4F
→
07/06 08:36,
7年前
, 5F
07/06 08:36, 5F
推
07/06 10:56,
7年前
, 6F
07/06 10:56, 6F
→
07/06 10:56,
7年前
, 7F
07/06 10:56, 7F
→
07/06 10:56,
7年前
, 8F
07/06 10:56, 8F
→
07/06 10:56,
7年前
, 9F
07/06 10:56, 9F
推
07/06 11:42,
7年前
, 10F
07/06 11:42, 10F
→
07/06 13:20,
7年前
, 11F
07/06 13:20, 11F
推
07/06 21:26,
7年前
, 12F
07/06 21:26, 12F
→
07/06 21:26,
7年前
, 13F
07/06 21:26, 13F
→
07/06 21:27,
7年前
, 14F
07/06 21:27, 14F
→
07/06 21:28,
7年前
, 15F
07/06 21:28, 15F
→
07/06 21:28,
7年前
, 16F
07/06 21:28, 16F
→
07/06 21:29,
7年前
, 17F
07/06 21:29, 17F
→
07/06 21:30,
7年前
, 18F
07/06 21:30, 18F
→
07/06 21:30,
7年前
, 19F
07/06 21:30, 19F
→
07/06 21:31,
7年前
, 20F
07/06 21:31, 20F
→
07/06 21:31,
7年前
, 21F
07/06 21:31, 21F
→
07/06 21:33,
7年前
, 22F
07/06 21:33, 22F
→
07/06 21:33,
7年前
, 23F
07/06 21:33, 23F
→
07/06 21:34,
7年前
, 24F
07/06 21:34, 24F
→
07/06 21:35,
7年前
, 25F
07/06 21:35, 25F
→
07/06 21:35,
7年前
, 26F
07/06 21:35, 26F
→
07/06 21:36,
7年前
, 27F
07/06 21:36, 27F
討論串 (同標題文章)