Re: [閒聊] 物件導向與程序導向風格

看板Soft_Job作者 (LaPass)時間12年前 (2012/09/22 16:44), 編輯推噓9(9019)
留言28則, 13人參與, 最新討論串4/5 (看更多)
物件導向啊..... 我通通自學,專有名詞之類的不太懂 但我覺得一個好的程式需要做到下面這幾點: 1.截斷點多: 寫程式之後,應該都遇過這種狀況 就是,已經寫過某個東西,例如,讀取一份特定格式的文字檔 然後把文字檔中的資料寫進資料庫之類的 有時候,工作內容可能會改一下 讀取同樣一份文字檔,但是把文字顯示在畫面上之類的 如果,當初在寫的時候,有個「截斷點」 就可以直接把「讀取文字檔」這段拆下來,再寫個顯示部分裝上去就好了 聽起來好像很容易,但實際在寫、看程式碼的時候 我常常看到一堆黏在一起,相依性太高的程式碼,根本拆不開..... 我會覺得物件導向,好就好在,可以藉由物件導向,讓這種拆裝過程變的很簡單 2.可靠、不用去理會、理解底層在幹什麼的元件 也就是說,如果我打算使用一個「已經寫好的」元件 我可以只看簡單的文件,就知道這個元件是在幹什麼 不用管他怎麼去做到這種功能 更不用再去把所有底層的CODE全部看過才有辦法動手寫 3.程式有錯、商業邏輯有錯時,程式應該要自己知道、並把錯誤的狀況給記錄下來 有時候程式會跑出很奇怪的結果 有些根本是沒錯誤訊息的,這時候,程式應該要自己知道是什麼狀況 用物件的概念,可以很簡單的把功能、可能性給縮小到某個範圍內 自然可以去寫出個判斷式,在執行前、後去檢查,這些參數、執行結果對不對 不過工作一段時間後 我的原則已經退化成: 1.能動就好 2.時間到能準時交出成品就已經非常棒了 3.客戶沒看到的bug就不是bug 4.系統架構長什麼樣子根本不重要,因為只要PM跟客戶開過一次會,就全部不一樣了 5.漏洞不重要,什麼SQL injection、XSS之類的..... 反正使用者不知道,把漏洞擺著,到整個系統的生命週期都過了 搞不好都沒人發現、發現了也未必會去攻擊 當程式架構不是自己開得時候 什麼都控制不了呢 orz..... 而且客戶、PM永遠只會看介面漂不漂亮 其他看不到的通通都不管 寫別人要用的程式真的是一點趣味性都沒有.... -- 一題5分 你得幾分? 1.__少女 5._少女 9.__女 13._女、_女、_女 17.__女_ 2.__少女 6.___少女 10.女__ 14._女、_女、__女 18.__女__ 3.__乙女 7._少女 11.女_ 15._女____ 19.__女_ 4.__少女 8.__少女 12._乙女 16.女_____ 20.__女 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.38.67.171

09/22 16:54, , 1F
第四點XD...
09/22 16:54, 1F

09/22 17:31, , 2F
推你....
09/22 17:31, 2F

09/22 17:33, , 3F
這是應該要工作5年以上才有的型態
09/22 17:33, 3F
※ 編輯: LaPass 來自: 114.38.67.171 (09/22 19:12)

09/22 20:43, , 4F
中肯
09/22 20:43, 4F

09/22 21:05, , 5F
我也想寫優美的程式..... = =
09/22 21:05, 5F

09/22 21:08, , 6F
第五點深有同感....也很無奈...
09/22 21:08, 6F

09/22 21:09, , 7F
目前為止我好像只在網路才遇的到重視第五點的人
09/22 21:09, 7F

09/22 21:34, , 8F
假設你在工作第一年就有了,那不是個好現象
09/22 21:34, 8F

09/22 21:43, , 9F
請問版主可以上面四點到轉FB嗎?會標注來源!
09/22 21:43, 9F

09/22 21:50, , 10F
請轉,但是不要標註來源。
09/22 21:50, 10F

09/22 21:56, , 11F
不斷將規格翻掉重來、主管/客戶只看/挑介面、經常把時限壓
09/22 21:56, 11F

09/22 21:57, , 12F
的很緊,被這三點磨個幾次就變這樣了.....
09/22 21:57, 12F

09/22 22:08, , 13F
把物件導向的「繼承」功能拿掉,每個類別都是獨立的類別,個
09/22 22:08, 13F

09/22 22:09, , 14F
人覺得這樣才有辦法做到隨意拆裝的地步,就好像硬體IC裝配到
09/22 22:09, 14F

09/22 22:09, , 15F
電路板上一樣。可惜OO愛用者不會認可這一條。
09/22 22:09, 15F

09/22 22:26, , 16F
繼承不是罪~有罪的是濫用它的人~就像刀可切水果~也可殺人
09/22 22:26, 16F

09/22 22:33, , 17F
這就是 is a 跟 has a 的差別
09/22 22:33, 17F

09/22 22:34, , 18F
有必要繼承的狀況才繼承就夠了。
09/22 22:34, 18F

09/22 23:39, , 19F
就算是has a的那個a也是用到is a
09/22 23:39, 19F

09/22 23:40, , 20F
把繼承完全拿掉難以想像就是
09/22 23:40, 20F

09/23 00:06, , 21F
那個會死人吧.... 又不是在寫OS或是很低階的東西,這麼虐待
09/23 00:06, 21F

09/23 00:07, , 22F
自己幹什麼 囧"
09/23 00:07, 22F

09/23 08:11, , 23F
把繼承拿掉把Interface拿掉才真的是災難.....
09/23 08:11, 23F

09/23 08:11, , 24F
繼承拿掉怎麼多型,怎麼拆裝 "任意的" 實作方式?
09/23 08:11, 24F

09/23 08:18, , 25F
Overdesign 的確是會發生的問題, OO 語言的 Anti-Partern
09/23 08:18, 25F

09/23 08:19, , 26F
也比以前更多,可是也不能因噎廢食吧....
09/23 08:19, 26F

09/23 21:42, , 27F
最後一句真是點醒夢中人...
09/23 21:42, 27F

09/24 09:47, , 28F
繼承確實不太好,所以才有composition over inheritance
09/24 09:47, 28F
文章代碼(AID): #1GNNfyhK (Soft_Job)
文章代碼(AID): #1GNNfyhK (Soft_Job)