看板 Soft_Job 關於我們 聯絡資訊
關於設計方法的導入、訓練、傳承,我之前也在blog寫了半篇的心得文, 算是學校+職場菜鳥階段的親身經歷 剛好和這串thread有關聯,就先貼出來參與討論吧 ----------------------------------------------------------- 『破壞軟體設計架構,反而獲得可讀性的思考』 有時候親手破壞設計架構、程式碼可讀性的原因,並不是因為客戶臨時 來個需求大變動,而是為了...『交接』和『可讀性』,因為有時候 『直白』的架構,反而適合新創團隊、學校團隊的合作與學習。 舉例來說,一個用了狀態機結構、執行緒、分時多工技巧的小模組, 可能架構上很漂亮、彈性高、維護方便,但是卻因為接手的人看不懂, 所以交接後可讀性就不存在了,未來也沒有人會去維護、甚至要重寫, 這樣子對專案、教育訓練的幫助反而不大。 因此,一開始強制導入OOA&D(或是結構化程式設計)的系統架構,不如一 開始就用簡單的重複結構, 搭配全域變數和輪詢法來實作,把Java (或是其他OO語言)當成ANSI C來寫。 這樣做可以讓學弟接手學習程式碼,以後要進行架構或是效率的改良, 也可以在暨有的基礎下,循序漸進地改寫、測試。這就是我說的, 破壞設計架構之後,反而可以獲得可讀性、並且交接成果的原因。 舉個簡單的例子,如果你的架構設計中有個叫做獨體模式(Singleton Pattern) 的東西,與其誇誇而談設計模式、預先架構,不如先用個全域變數來實作, 然後再慢慢的導入獨體模式的概念。 ----------------------------------------------------------- 我目前還在累積職場經驗&學習當中, 以後希望能寫出更完整的東西... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.217.80.195
thinkniht:一.一+這真是...好文啊 推一下=.=+ 12/04 08:54
lovdkkkk:嗯嗯 好設計需要搭配好文件 12/04 09:03
zanyking:什麼樣的工作什麼樣的人,如果你團隊就是需要這些技術 12/04 12:29
zanyking:堆疊才能架構程式,看不懂的人根本就不應該進來。 12/04 12:29
zanyking:找不到人、找到的人看不懂訓練不上來,這是管理問題。 12/04 12:30
zanyking:可讀性不是建立在通俗性上的,程式跟音樂的差別在於 12/04 12:31
zanyking:音樂大家不欣賞你沒有收入,程式機器會跑你就收的到錢。 12/04 12:33
zanyking:當你的架構能夠合理的封裝複雜度,將他拆散讓複雜度重新 12/04 12:35
zanyking:暴露出來只為了讓水準低的人能讀懂,這是笨算盤。 12/04 12:36
andymai:推樓上~把Java當成Ansi C來寫是好文?當初開發Java的人聽到 12/04 14:41
andymai:這個應該會哭吧?不要OO~那幹嘛要用Java寫???本來就是該找 12/04 14:42
andymai:能接手的人進來接了~不能接的找進來幹嘛?這套在每個行業都 12/04 14:43
andymai:是一樣的道理... 12/04 14:44
有時候開發方法是要和現實結合的, 所謂的現實除了本人的教學能力(不好)之外, 和老闆提供的資源(人力、財力、時間)也有關係 其實老闆也知道人才要找有經驗的, 但是當你看到老闆拿到預算時的表情(和你第一次看到薪水單時一樣), 就知道要摸摸鼻子、用預算而不是能力找人囉 (這時候不經會想,自己也是這樣進公司的???) 另外「好文」應該是指小弟提供了奇怪的經驗, 並不是指發表了什麼偉大的管理理論, 請各位前輩不要急著生氣囉 ※ 編輯: codemonkey 來自: 180.217.158.254 (12/04 17:57)
lovdkkkk:我想覺得好的點應該不會是把 Java 當成 C 來寫 而是有花 12/04 17:52
lovdkkkk:心思在怎麼讓新手好入門 雖然方法不是很好 12/04 17:53
lovdkkkk:舉個例子 隨便找個很 OO 的工具 不看文件不看注解 12/04 17:55
lovdkkkk:單純靠爬 code 試試看多久能上手做一般應用 這還是容易的 12/04 17:56
lovdkkkk:要到熟到能修 bug 或加新功能又要更久了 12/04 17:57
lovdkkkk:如果有好的文件 不論人的素質如何 我想都能有一定的加成 12/04 17:58
lovdkkkk:效果 12/04 17:58
lovdkkkk:應該沒有人生氣啦... 12/04 18:00
TonyQ:我是不覺得把java當ansi C 來血可以讓低階人才比較看得懂 12/04 19:36
TonyQ:這個論述是比較匪夷所思的地方,剩下的倒是沒意見。 12/04 19:36
gname:有共鳴...但我老碰到宗教式OO,無奈啊~ 12/04 22:43
andymai:沒有生氣啊~只是單純覺得應該好好發揮它本身的特質和功能~ 12/04 23:36
andymai:不過不管用什麼寫~重點都在好的架構和設計~過與不及都不好 12/04 23:38
gush0905:ㄎㄎ 12/05 09:59
newjoy:狀態機和thread & OO沒關係吧, OO是用在幾十萬行等級的程式 12/05 20:31
chrisQQ:我覺得註解寫好 javadoc 產生出來,用到 design pattern 12/06 02:17
chrisQQ:的部份特地在 code 裡面註解,這樣應該就給夠多資訊可以 12/06 02:17
chrisQQ:google 了… 再者,沒能力修改的人本來就該先讀懂原本 12/06 02:18
chrisQQ:code 才對,不應該教接完什麼都還不懂就想改善效能… 12/06 02:18