Re: 今天被問倒了...
亂入 :o
※ 引述《Schelfaniel (Schelfaniel)》之銘言:
: 當然很多地方是用 Copy/Paste 硬寫的 @@
: 但這樣的程式,竟然也撐了 30 年了,也算很厲害了,
: 碰過一堆需求變更調整的 ( 上線之後修改 ),
: 也就是它是在程式一面運作,仍然一面修改的情形之下。
: 物件導向這方面最麻煩,很容易牽一髮而動全身,
: 要改一個東西,要連帶改一堆東西,加上現代化的架構,
: 有時還要改一堆 xml,讓那些寫 COBOL 的人,反而過來說,
: 不就改一點點就好了,怎麼會這麼麻煩。
關於這一段,之前有個經驗,讓我不禁開始思考抽象化究竟該到什麼程度?
以往我理所當然是先找出相同的問題,然後一次解決,最後套用到每個地方。
意思是,絕對不會有地方是 copy & paste 出來。(部份例外先不討論...)
但是這樣卻碰到一個問題... 是我之前從來沒想過的。
終歸一句話就是,需求改變了。
但應付需求的改變,本來就是一個需要解決的問題,而不是禁止需求的改變。
本來是一樣的地方,現在需要變得不一樣了。結果開始牽一髮而動全身,
non-programmer 的介入,一修改,結果一邊對了另一邊就爛了。
接著就開始譴責我怎麼寫得這麼沒彈性... orz
是說,如果當初是 copy & paste, 確實就可以讓他隨便改而不影響他處。
問題是我怎麼知道原本一樣的後來需要不一樣了?
現在要改不一樣,等於是增加例外,這跟架構有關,不能隨便亂調的。
當然一邊砍掉,另一邊 copy & paste 過來,這樣也是可以。
只是我實在不太能接受這樣亂搞 :s
目前還沒什麼好想法,可能還是要看其他人的使用習慣而配合...
: 其實我覺得像 JVM 或是微軟 CLR,提供一堆讓程式師選擇語言,
: 算是比較能夠符合個人喜好,又能夠團隊運作的模式,
: 畢竟,程式設計師有時需要的不只是技術或管理,
: 而是動力和熱誠,讓程式設計師本身處於自己舒適的環境之下開發,
: 而不要綁手綁腳,限東限西,要你乾坤大挪移也不能用,
: 降龍十八掌也不能用,這樣出去必定功力下降,士氣下滑嘛。
CLR 我不確定是什麼,像 JVM 這樣確實是有不少好處,但 .NET 的話,
例如 F#, 我就不覺得會是一個很好的方向,比較像是為了廣告,
募集其他領域的人加入 .NET, 最後投靠 C#, end of the story.
會這樣說是因為之前測試 C++/CLI, 我發現微軟新加進去的東西,
跟原本 C++ template 根本就難以配合。用了 template,
無法用 .NET lib, 反之用了 .NET lib, 難以使用 template.
兩者幾乎接近互斥,讓我試不下去,因為原本的東西都不能用....
也過了很多年啦。或許有改善了也說不定?
F# 也是差不多的情況。之前翻了一下書,發現如果需要呼叫 .NET,
一樣會陷入 OO 那套,想 functional programming? 似乎搭不太起來。
那我想用 .NET, 何不用比較順的 C#? 我想用 functional programming,
為什麼不選 OCaml, Haskell, 或是 Clojure, Scala?
另一方面,程式跟程式間的溝通,必然會需要如此高的相依性嗎?
為什麼不能用某種協定(protocol)?Unix philosophy:
1. Write programs that do one thing and do it well.
2. Write programs to work together.
3. Write programs to handle text streams,
because that is a universal interface.
當然有些時候是不能選擇的。只是我覺得,要盡量把想寫出巨獸程式的
慾望丟掉。嚮往巨獸也不是說有什麼不好,只是我覺得現在巨獸已經太多了...
想多呼吸一點新鮮空氣。
==
本篇跟 OO 沒什麼關係 @@
--
By Gamers, For Gamers - from the past Interplay
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.28.18
推
07/12 16:46, , 1F
07/12 16:46, 1F
→
07/12 16:47, , 2F
07/12 16:47, 2F
→
07/12 16:48, , 3F
07/12 16:48, 3F
→
07/12 16:49, , 4F
07/12 16:49, 4F
→
07/12 16:49, , 5F
07/12 16:49, 5F
討論串 (同標題文章)
OOAD 近期熱門文章
PTT數位生活區 即時熱門文章