[請益] 菜鳥請益MVC架構問題

看板Soft_Job (軟體人)作者 (無)時間9年前 (2017/02/17 21:38), 編輯推噓19(19041)
留言60則, 23人參與, 最新討論串1/1
小弟是一個剛轉職的LV1菜鳥 到職一兩個月 剛開始只是讓我先看看專案 熟悉一下內容 比較上手之後 前輩開始丟一些功能讓我自己下去實作 功能其實很簡單 程式碼也不多 只是因為以前在學習的時候 老師是教用MVC(?)的架構 自己上網看過一些相關介紹跟討論 老師教的似乎是所謂Model 2(?)的概念 新手一枚 不敢妄下定論 自己的理解是 V(頁面呈現) --> C(流程控制、任務分派) --> M(業務邏輯、資料存取) M會包含Bean、DAO、Service等 因為前輩當時沒特別要求 所以就照著之前練習的方式 試著用自己所理解的MVC概念實作 前輩在看完我的程式碼之後 跟我說何必要多開一個Service 程式碼也沒有幾行 直接搬到Controller 原本是在Service下呼叫DAO再回傳 改成直接從Controller呼叫 (實際上Controller的method可能只有3、4行,Service也只有10來行這樣) 當然是照著前輩的要求去修改 只是現在有點搞不太懂所謂的MVC是該怎樣來設計跟實作 或者比較 符合MVC的精神(?) 很怕自己以前理解的方向是錯誤的 想趁概念不對時趕緊改正 希望能有前輩們幫忙解惑 非常感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.211.55 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1487338687.A.91A.html

02/17 22:11, , 1F
個人淺見,C負責你頁面對應的View.而M則該對應你的D
02/17 22:11, 1F

02/17 22:11, , 2F
B.
02/17 22:11, 2F

02/17 22:21, , 3F
M不是定義資料型態而已嗎?
02/17 22:21, 3F

02/17 22:24, , 4F
那你可以不用把前輩說的話丟了,架構、紀律本身就該遵守,
02/17 22:24, 4F

02/17 22:24, , 5F
不可以因為貪圖方便而取巧,除非有啥不可抗力
02/17 22:24, 5F

02/17 22:24, , 6F
所以應該是將邏輯部分放在C比較正確囉?
02/17 22:24, 6F

02/17 22:25, , 7F
k大 不好意思 有點看不太懂您的意思@@a
02/17 22:25, 7F

02/17 22:26, , 8F
等以後專案程式碼越寫越多 又懶得重構時
02/17 22:26, 8F

02/17 22:27, , 9F
你就會知道為什麼要這麼麻煩了
02/17 22:27, 9F

02/17 22:27, , 10F
k的意思就是該按照規則拆的就拆乾淨,不要因為少就省事
02/17 22:27, 10F

02/17 22:27, , 11F
萬一以後要擴充還是做什麼還要拆回去嗎
02/17 22:27, 11F

02/17 22:27, , 12F
不過前人怎麼說,你就怎麼做,就像南部人常常把紅綠燈當
02/17 22:27, 12F

02/17 22:27, , 13F
參考用,你會糾正他們嗎
02/17 22:27, 13F

02/17 22:28, , 14F
還滿酸的wwwww
02/17 22:28, 14F

02/17 22:30, , 15F
因為還是新手 我只是怕以前自己理解是不對的@@
02/17 22:30, 15F

02/17 22:30, , 16F
趁現在學了MVP去嗆前輩
02/17 22:30, 16F

02/17 22:39, , 17F
推同是剛轉職的新人
02/17 22:39, 17F

02/17 22:45, , 18F
這個前輩的程度蠻糟的,話說很多公司的前輩程度都是醬,就
02/17 22:45, 18F

02/17 22:49, , 19F
只是工匠的程度,還不到Architecter的程度,見樹不見林
02/17 22:49, 19F

02/17 22:54, , 20F
controller可以寫邏輯,但有點違背MVC的概念
02/17 22:54, 20F

02/17 22:55, , 21F
偷懶你就寫controller,個人覺得掛在Model,甚至另外寫
02/17 22:55, 21F

02/17 22:55, , 22F
BI層可能會比較好一點
02/17 22:55, 22F

02/17 22:57, , 23F
你前輩的code可想而知 不要妥協
02/17 22:57, 23F

02/17 23:04, , 24F
公司架構這種東西,不是網友怎麼說你就該聽的
02/17 23:04, 24F

02/17 23:04, , 25F
你有MVC的觀念,那這次這樣做,你把他記在心裡以後用
02/17 23:04, 25F

02/17 23:05, , 26F
心去體會即可,一個專案不會說你把邏輯寫在c裡面就
02/17 23:05, 26F

02/17 23:05, , 27F
不能用的
02/17 23:05, 27F

02/17 23:13, , 28F
其實小弟不是來戰前輩的@@a 只是希望自己能學到正確的觀念
02/17 23:13, 28F

02/17 23:14, , 29F
如果以前的理解沒錯 我還是會照前輩要求去處理 但是自己會
02/17 23:14, 29F

02/17 23:15, , 30F
再照理解方式做一遍 只是擔心以前理解的是一場誤會而已
02/17 23:15, 30F

02/17 23:20, , 31F
理解大致上是沒錯的。 想做就做唄,也剛好可以比一下
02/17 23:20, 31F

02/17 23:20, , 32F
哪一個維護成本比較低
02/17 23:20, 32F

02/17 23:21, , 33F
說句實話 過度設計比不會設計更可怕
02/17 23:21, 33F

02/17 23:51, , 34F
按照公司習慣+1 有些東西有演化歷史 往往不會是純正解
02/17 23:51, 34F

02/17 23:53, , 35F
真的只有三五行就不用太多設計 這東西真的是看需求
02/17 23:53, 35F

02/18 00:31, , 36F
就算只有一行我還是會搬到service 因為你無法預測之後的
02/18 00:31, 36F

02/18 00:32, , 37F
需求
02/18 00:32, 37F

02/18 00:32, , 38F
開發時也許會覺得做很多白工 但後續要維護時就能體會到了
02/18 00:32, 38F

02/18 00:40, , 39F
請替三個月後的自己著想
02/18 00:40, 39F

02/18 01:01, , 40F
講也沒用,看看有多少人認為幾行而已不用這麼麻煩,就知道
02/18 01:01, 40F

02/18 01:02, , 41F
有多少藍領碼農,工匠在身邊
02/18 01:02, 41F

02/18 01:14, , 42F
ㄏㄏ,現在不拆,慢慢的越積越多,最後就....ㄏㄏ
02/18 01:14, 42F

02/18 01:15, , 43F
根本跟行數無關,是各類別責任劃分的問題
02/18 01:15, 43F

02/18 02:03, , 44F
換公司 我認真的,前輩都這樣寫代表專案都不大 你練一年
02/18 02:03, 44F

02/18 02:03, , 45F
不如去有點規模的案子練一個月
02/18 02:03, 45F

02/18 02:05, , 46F
不要一兩年後想換工作,才發現自己都在碰邏輯直接放contr
02/18 02:05, 46F

02/18 02:05, , 47F
oller也沒問題的小系統,面試講起來都心虛
02/18 02:05, 47F

02/18 02:08, , 48F
邏輯全寫在controller就是偷懶而已 但能這樣偷代表產品非
02/18 02:08, 48F

02/18 02:08, , 49F
常小
02/18 02:08, 49F

02/18 02:13, , 50F
比如你的api for app 跟api for backend都要用到一樣的co
02/18 02:13, 50F

02/18 02:13, , 51F
re,全放controller難道要兩個project各貼一份一樣的邏
02/18 02:13, 51F

02/18 02:13, , 52F
輯?,最後還不是得把core包裝好,controller通常只是寫
02/18 02:13, 52F

02/18 02:13, , 53F
個呼叫接口做些apikey/token之類的驗證而已
02/18 02:13, 53F

02/18 10:35, , 54F
然後core要改的時候因為各貼一份所以要一次改兩邊XD
02/18 10:35, 54F

02/18 22:48, , 55F
v要笨c要輕m要重,抽到service裡是比較好的做法,但如果所
02/18 22:48, 55F

02/18 22:48, , 56F
在的team認為不妥還是依現行團隊要求設計吧,也許你的前
02/18 22:48, 56F

02/18 22:48, , 57F
輩不想code一直跳著看
02/18 22:48, 57F

02/19 12:13, , 58F
mvc不合胃口就換公司? 別誤導新人了
02/19 12:13, 58F

02/19 12:44, , 59F
M、V、C都要又輕又有彈性才對,重了就要重構
02/19 12:44, 59F

02/20 09:40, , 60F
不要偷懶挖洞給自己跳
02/20 09:40, 60F
文章代碼(AID): #1Oflo_aQ (Soft_Job)
文章代碼(AID): #1Oflo_aQ (Soft_Job)