Re: [閒聊] 新工作的有感而發

看板Soft_Job (軟體人)作者 (程式猿)時間14年前 (2011/12/04 04:51), 編輯推噓4(4028)
留言32則, 9人參與, 最新討論串4/4 (看更多)
關於設計方法的導入、訓練、傳承,我之前也在blog寫了半篇的心得文, 算是學校+職場菜鳥階段的親身經歷 剛好和這串thread有關聯,就先貼出來參與討論吧 ----------------------------------------------------------- 『破壞軟體設計架構,反而獲得可讀性的思考』 有時候親手破壞設計架構、程式碼可讀性的原因,並不是因為客戶臨時 來個需求大變動,而是為了...『交接』和『可讀性』,因為有時候 『直白』的架構,反而適合新創團隊、學校團隊的合作與學習。 舉例來說,一個用了狀態機結構、執行緒、分時多工技巧的小模組, 可能架構上很漂亮、彈性高、維護方便,但是卻因為接手的人看不懂, 所以交接後可讀性就不存在了,未來也沒有人會去維護、甚至要重寫, 這樣子對專案、教育訓練的幫助反而不大。 因此,一開始強制導入OOA&D(或是結構化程式設計)的系統架構,不如一 開始就用簡單的重複結構, 搭配全域變數和輪詢法來實作,把Java (或是其他OO語言)當成ANSI C來寫。 這樣做可以讓學弟接手學習程式碼,以後要進行架構或是效率的改良, 也可以在暨有的基礎下,循序漸進地改寫、測試。這就是我說的, 破壞設計架構之後,反而可以獲得可讀性、並且交接成果的原因。 舉個簡單的例子,如果你的架構設計中有個叫做獨體模式(Singleton Pattern) 的東西,與其誇誇而談設計模式、預先架構,不如先用個全域變數來實作, 然後再慢慢的導入獨體模式的概念。 ----------------------------------------------------------- 我目前還在累積職場經驗&學習當中, 以後希望能寫出更完整的東西... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.217.80.195

12/04 08:54, , 1F
一.一+這真是...好文啊 推一下=.=+
12/04 08:54, 1F

12/04 09:03, , 2F
嗯嗯 好設計需要搭配好文件
12/04 09:03, 2F

12/04 12:29, , 3F
什麼樣的工作什麼樣的人,如果你團隊就是需要這些技術
12/04 12:29, 3F

12/04 12:29, , 4F
堆疊才能架構程式,看不懂的人根本就不應該進來。
12/04 12:29, 4F

12/04 12:30, , 5F
找不到人、找到的人看不懂訓練不上來,這是管理問題。
12/04 12:30, 5F

12/04 12:31, , 6F
可讀性不是建立在通俗性上的,程式跟音樂的差別在於
12/04 12:31, 6F

12/04 12:33, , 7F
音樂大家不欣賞你沒有收入,程式機器會跑你就收的到錢。
12/04 12:33, 7F

12/04 12:35, , 8F
當你的架構能夠合理的封裝複雜度,將他拆散讓複雜度重新
12/04 12:35, 8F

12/04 12:36, , 9F
暴露出來只為了讓水準低的人能讀懂,這是笨算盤。
12/04 12:36, 9F

12/04 14:41, , 10F
推樓上~把Java當成Ansi C來寫是好文?當初開發Java的人聽到
12/04 14:41, 10F

12/04 14:42, , 11F
這個應該會哭吧?不要OO~那幹嘛要用Java寫???本來就是該找
12/04 14:42, 11F

12/04 14:43, , 12F
能接手的人進來接了~不能接的找進來幹嘛?這套在每個行業都
12/04 14:43, 12F

12/04 14:44, , 13F
是一樣的道理...
12/04 14:44, 13F
有時候開發方法是要和現實結合的, 所謂的現實除了本人的教學能力(不好)之外, 和老闆提供的資源(人力、財力、時間)也有關係 其實老闆也知道人才要找有經驗的, 但是當你看到老闆拿到預算時的表情(和你第一次看到薪水單時一樣), 就知道要摸摸鼻子、用預算而不是能力找人囉 (這時候不經會想,自己也是這樣進公司的???) 另外「好文」應該是指小弟提供了奇怪的經驗, 並不是指發表了什麼偉大的管理理論, 請各位前輩不要急著生氣囉 ※ 編輯: codemonkey 來自: 180.217.158.254 (12/04 17:57)

12/04 17:52, , 14F
我想覺得好的點應該不會是把 Java 當成 C 來寫 而是有花
12/04 17:52, 14F

12/04 17:53, , 15F
心思在怎麼讓新手好入門 雖然方法不是很好
12/04 17:53, 15F

12/04 17:55, , 16F
舉個例子 隨便找個很 OO 的工具 不看文件不看注解
12/04 17:55, 16F

12/04 17:56, , 17F
單純靠爬 code 試試看多久能上手做一般應用 這還是容易的
12/04 17:56, 17F

12/04 17:57, , 18F
要到熟到能修 bug 或加新功能又要更久了
12/04 17:57, 18F

12/04 17:58, , 19F
如果有好的文件 不論人的素質如何 我想都能有一定的加成
12/04 17:58, 19F

12/04 17:58, , 20F
效果
12/04 17:58, 20F

12/04 18:00, , 21F
應該沒有人生氣啦...
12/04 18:00, 21F

12/04 19:36, , 22F
我是不覺得把java當ansi C 來血可以讓低階人才比較看得懂
12/04 19:36, 22F

12/04 19:36, , 23F
這個論述是比較匪夷所思的地方,剩下的倒是沒意見。
12/04 19:36, 23F

12/04 22:43, , 24F
有共鳴...但我老碰到宗教式OO,無奈啊~
12/04 22:43, 24F

12/04 23:36, , 25F
沒有生氣啊~只是單純覺得應該好好發揮它本身的特質和功能~
12/04 23:36, 25F

12/04 23:38, , 26F
不過不管用什麼寫~重點都在好的架構和設計~過與不及都不好
12/04 23:38, 26F

12/05 09:59, , 27F
ㄎㄎ
12/05 09:59, 27F

12/05 20:31, , 28F
狀態機和thread & OO沒關係吧, OO是用在幾十萬行等級的程式
12/05 20:31, 28F

12/06 02:17, , 29F
我覺得註解寫好 javadoc 產生出來,用到 design pattern
12/06 02:17, 29F

12/06 02:17, , 30F
的部份特地在 code 裡面註解,這樣應該就給夠多資訊可以
12/06 02:17, 30F

12/06 02:18, , 31F
google 了… 再者,沒能力修改的人本來就該先讀懂原本
12/06 02:18, 31F

12/06 02:18, , 32F
code 才對,不應該教接完什麼都還不懂就想改善效能…
12/06 02:18, 32F
文章代碼(AID): #1EselJ66 (Soft_Job)
文章代碼(AID): #1EselJ66 (Soft_Job)