顯示廣告
隱藏 ✕
看板 terievv
作者 terievv (terievv)
標題  標題  [心得] 反思程式革命的瘋狂。
時間 2016-05-15 Sun. 08:13:54


看板 Soft_Job
作者 Lordaeron (Terry)
標題 [心得] 反思程式革命的瘋狂。
時間 Tue May 10 11:42:02 2016


1.毛澤東語錄 Refactoring
在開會、上課、工作之前,都必須學習Refactoring。

「寫程式不是請客吃飯,不是做文章,不是繪畫繡花,不能那樣雅緻,那樣從容不迫,
文質彬彬,那樣溫良恭儉讓。寫程式是美感,是一種美感去推翻另一醜感的暴烈的行
 動」。

2.毛澤東像章 Design Patterns
Design Patterns是個人崇拜的另一種表現形式。革命初期,從主管到碼農,
人人必戴(「黑五類寫COBOL的」沒有資格戴除外),以表示對
Design Patterns的敬仰。據估計,文革期間共生產了XX億本各式各樣的
Design Patterns書籍,廠商機關爭先恐後,推出更精緻更豪華版本。

3. 文革宣傳畫 Head First Design Patterns
四人幫被視為貫徹其革命思想的主要推手。


4.紅衛兵袖章  物件導向
紅衛兵成為寫程式先鋒,喊著「Design Patterns無罪,Refactoring有理」的口號,
在全國進行大串聯,宣傳物件導向思想。

5.大字報 PO文
PO文 成為一種「揭露黑暗面和不良行為」的工具,校園,機關, 工廠,無處不見。

6. 破四舊 立四新
破四舊:舊思想 NOT OO、舊系統、舊語言 cobol/fortran/C、舊習慣No coding style。
立四新:新思想 OO、新系統、新語言 Java/Python/Ruby、 新習慣 Recforing Said。

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.112.248
※ 文章代碼(AID): #1NCLYC17 (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1462851724.A.047.html
tw689: 有時候我真的覺得軟體版寫程式的人壓力比隔壁科技版還高很1F 05/10 11:57
tw689: 多
CaptainH: javascript社群生態滿符合的XDD3F 05/10 11:59
iamshiao: 可以講中文嗎4F 05/10 12:10
ggBird: 沙小5F 05/10 12:12
ntddt: 蠻有趣的類比~6F 05/10 12:19
Sirctal: 你自己去看看現在檯面上的大型系統哪個不是用你想婊的??7F 05/10 12:51
Sirctal: 更正 大型的專案
ADYex: 錯誤譬喻9F 05/10 12:55
Lordaeron: 說不出個所以來也可以噓?10F 05/10 12:58
csfgsj: 樓主可以當我徒弟,免費傳授DK密笈11F 05/10 12:58
csfgsj: OO其實不用打了,第四代程式語言正在慢慢吃掉它中
Lordaeron: 不會吧。你來教我?13F 05/10 13:03
csfgsj: 寫程式的都是可憐的肝苦人,給人家留點信仰吧14F 05/10 13:04
csfgsj: 樓主自有慧根,不用我教您
csfgsj: 若是有思路不通之處,仙人可提供便通樂
dreamnook: 要噓都可以噓 要推也可以推17F 05/10 13:31
lovdkkkk: 上兩樓是要頂尖對絕了嗎? XDD18F 05/10 13:42
ripple0129: 4GL吃掉OO有案例嗎?我怎麼看4GL都在資料庫內出不來19F 05/10 13:46
jimmy689: QQ20F 05/10 13:55
Lordaeron: 要噓都可以噓 要推也可以推!!霸氣,但水準呢?21F 05/10 14:06
kenimai: 有病就要去看醫生22F 05/10 14:13
anguso: 說實話 design pattern 在我公司都有一點common sense的地23F 05/10 14:15
anguso: 步了
anguso: 這裡還有這種文章, 也算是奇葩了
Lordaeron: 還不快去。26F 05/10 14:20
Lordaeron: 也算是奇葩了,貴公司是?
Lordaeron: @Sirctal,哪些檯面上的大型的專案?
dreamnook: 要推都可以推 要噓也可以噓 水準看發言 不是看PTT推噓29F 05/10 14:22
csfgsj: @ripple012930F 05/10 14:53
csfgsj: Android的App開發已經部分4GL化了,那麼多xml在做啥
csfgsj: 以後只要描述需求,程式就做出來了。
csfgsj: 用圖形描述圖形,誰還在寫code
csfgsj: 文不如表,表不如圖,連我爺爺都知道
yotsuba1022: 可以請原PO分享一下自己怎麼應對這種程式35F 05/10 14:55
yotsuba1022: 革命的瘋狂的嗎?很想知道.
Lordaeron: 就叫狂人拿出證據來證明,資訊是工程,不是理論。37F 05/10 14:56
Lordaeron: 講修車,人人都會講,修得好,又是另一回事。
dreamnook: 人人都能嘴 不乏嘴別人在嘴(?39F 05/10 15:02
abola921: 推一樓40F 05/10 15:16
ken90242: 好笑?41F 05/10 15:45
csfgsj: 1F應該是沒有看到最近阿寶跟石頭的新聞才會這樣想42F 05/10 15:53
csfgsj: http://technews.tw/2016/05/10/asus-2/
GoalBased: 請問大大dk秘技哪裡買的到 我想入手一本44F 05/10 15:57
csfgsj: http://technews.tw/2016/05/07/pegatron-reshuffle/45F 05/10 15:58
csfgsj: 我已經寫好了,共12萬字,出版社給的版稅太低不想出
csfgsj: 寧願放在家裡收藏,偶而有機會就貼一點上來
atpx: 的確現在不oo就會被貼上違反潮流標籤,但48F 05/10 16:09
atpx: 在一些老公司,cobol,還是活的很好,講oo
atpx: 還沒人理,oo不oo 一點也不重要
dreamnook: 你可以翻成英文版賣全世界51F 05/10 16:12
shortoneal: DP哪是什麼四新啊...是這裡一直莫名不在乎而已52F 05/10 16:18
vn509942: 王對王!!53F 05/10 16:20
Argos: 追求極致很好 但小心不要走火入魔.........54F 05/10 16:53
badyy: 不是用嘴才是真的嘛?XD最棒的還是自然語言了科科55F 05/10 17:26
Lordaeron: 講到Cobol,有沒有人想過到底相同的工作是Java快還是56F 05/10 17:40
Lordaeron: Cobol 快呢?
allqooxx: 出現了!是 csfgsj 大師58F 05/10 18:10
Clangpp: 現在在吃晚餐阿 有點飽 無法吃爆米花59F 05/10 18:29
shadow0326: 頂尖對決 XDXD60F 05/10 21:44
viper9709: 推一樓XD61F 05/10 23:18
obov: 都捨摸年代惹還在講OO   你是去冷凍惹20年ㄇ?62F 05/12 13:40
dreamnook: 居然是obov63F 05/12 17:52
看板 Soft_Job
作者 NDark (溺於黑暗)
標題 Re: [心得] 反思程式革命的瘋狂。
時間 Tue May 10 20:24:17 2016


※ 引述《Lordaeron (Terry)》之銘言:
: 1.毛澤東語錄 Refactoring
: 2.毛澤東像章 Design Patterns
: Design Patterns是個人崇拜的另一種表現形式。革命初期,從主管到碼農,
: 人人必戴(「黑五類寫COBOL的」沒有資格戴除外),以表示對
: Design Patterns的敬仰。據估計,文革期間共生產了XX億本各式各樣的
: Design Patterns書籍,廠商機關爭先恐後,推出更精緻更豪華版本。


剛好看到一篇有相同批判,引起激烈討論的文章給各位參考看看
https://www.linkedin.com/pulse/agile-dead-matthew-kern

在其中作者(他舉了很多敏捷創始者的說法佐證)也認為敏捷變得像是宗教及炒作商品



節錄部分如下

Agile Software Development work is
dead.  If you practice that, you are a doorstop.  If you manage that way,
you are a boat-anchor.  The wave has ended, it is over, ...
... Who said Agile is dead?
The founders of Agile and its practitioners said it,
我告訴你敏捷開發已經死亡了。假如你正在團隊中套用敏捷開發,
你本身就是專案的阻礙
。敏捷開發的潮流已經走到終點。...
...誰曾經這麼說過(敏捷已死)呢?敏捷的創立者及他的實行者都這樣說。



There was a sacred mythology, strange terminology, special sacred tools and
other weird cult behavior.  (For example many Agile practitioners are
bullies, and want to browbeat you into agreeing with them.  They will attack
you or undermine your credibility when you disagree...
曾經有一個神聖的方法學,奇怪的名詞,特殊的禮拜工具,以及其他奇怪的儀式。
(打比方說很多敏捷參與者就像是教堂長老,他們會認為你應該要認同他們。
當你不同意時,它們會攻擊你,逐漸削弱你的發話權...)


However the Agile Manifesto should be replaced with reputable research
findings and serious management.  This “manifesto" eschewed all management
and engineering rigor in favor of laziness.  Some of it should probably also
be burned, buried and then a very big rock placed on top.  Then a warning to
future generations should be carved in the rock.  ‘Something like “Naive
oversimplified management ideology does not sell services forever,...
然而敏捷的那些宣言應該被知名的研究發現及嚴肅的管理學所取代。那些宣言因為懶惰
的原因避開了管理及工程的檢驗。其中的一些甚至應該燒掉,埋葬,用巨石鎮壓,然後把
這個警告刻在石頭上:天真地過分簡化管理,...



Agile became a brand-name, with marketing hype. It therefore became subject
to the rules of all such hyped products....
敏捷已經變質為一個招牌,還是一種行銷的炒作。它只是波潮流所推送的產品中的品項。



--
"May the Balance be with U"(願平衡與你同在)

遊戲設計教學,討論,分享。歡迎來信。

黑水溝歷史文庫 https://ndark.wordpress.com/

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.16.195
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1462883064.A.190.html
看板 Soft_Job
作者 tyc5116 (累人啊....)
標題 Re: [心得] 反思程式革命的瘋狂。
時間 Tue May 10 21:27:26 2016


※ 引述《NDark (溺於黑暗)》之銘言:
: 的原因避開了管理及工程的檢驗。其中的一些甚至應該燒掉,埋葬,用巨石鎮壓,然後把
: 這個警告刻在石頭上:天真地過分簡化管理,...
: Agile became a brand-name, with marketing hype. It therefore became subject
: to the rules of all such hyped products....
: 敏捷已經變質為一個招牌,還是一種行銷的炒作。它只是波潮流所推送的產品中的品項。

這段文章還好啦(沒看本文,只看節錄)

主要不就是理想和現實間的差距嗎

理想,也就是敏捷開發,這個idea很好,也有很多書在提倡

可以參考這本書 http://goo.gl/zYTckv

書的後面提供了一個失敗和成功的例子

就像信仰一樣,大家都希望人心向善,世界大同,但是理想和現實總是很差距

有很多要妥協的

敏捷開發很好,重構很好,可是schedule很趕

沒時間好好思考,copy paste功能弄出來再說,先求有再求好

design pattern很好,但是沒事用繼承這種高超手法幹麼,明明有比較簡單的作法
(我有聽過前同事這樣講....)

寫測試程式很好,但是schedule很趕,先求有再求好

總之就是先求有再求好了,不過事後通常不是因為懶或是code太難懂

反正也不會出錯,就先放著,累積久了就變爛code了,相信大家都有經驗

理想很好,但是沒考慮到實務上的狀況

有改動就有風險,跑好好的地方為什麼要改,一定會有人這樣想

更何況,要量化出怎樣才叫好的開發是很困難的

敏捷開發很好,但是你要如何拿出數據說服別人??

舉一個我個人的想法(不過也只是單方面的看法XD)

我覺得姑且不論任何寫作方式,只要能作到三個大方向,大致上code不會爛到哪裡去

1.命名精確,不要出現a1,a2等等的名稱

2.每個函式控制在200~250行內

3.括號的層數控制在三層內
  e.g if
      {
         for
         {
            if
            {
            }
         }
      }
我覺得這很基本,離敏捷開發也還談不上,但實務上要完整實現就不知道要等多久了

so~實務離理想還太遠了,一步一步來嘛,你要求一步到位下場就是沒人認同

呼應一下這句,敏捷已經變質為一個招牌,還是一種行銷的炒作。

至少面試拿來嘴砲是很有用的

同樣的道理,"當責"這名詞不也一樣嗎,觀點很好

但想要一步到位,科科,當你去死~

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.41.15
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1462886850.A.6D1.html
NCUking: 函式200行? 你是認真的嗎?1F 05/10 21:30
rayway30419: 20行其實就很多了2F 05/10 21:32
sarafciel: 200行的code一定有辦法再拆函式出去 除非你寫組語XD3F 05/10 21:34
tyc5116: 有可能行業別的關係吧,我常看到動輒1~2000的函式...4F 05/10 21:35
tyc5116: 再拆當然還可以阿,但是...我覺得還是一步一步來會比較好
NCUking: 說design patterns是搞繼承的那位 根本是不懂裝懂XDDD6F 05/10 21:39
rayway30419: 200行的函式是什麼巫術.......7F 05/10 21:42
rayway30419: 2000
tyc5116: 我覺得design pattern是教你如何善用繼承和聚集的特性9F 05/10 21:44
tyc5116: 前同事的說法某種程度也不能說是錯
johnny94: Class 200 行還比較可以理解...函式 200 行是怎樣11F 05/10 21:49
sarafciel: 突然想起交大某教授聊天時提到曾接手過印度人寫的13層i12F 05/10 21:55
sarafciel: f波動砲  仔細想想200行好像也還算能接受的範圍(遠目)
manaup: 個人的括號層數可以忍受到六層 畢竟還要try-catch14F 05/10 21:56
ns1234: 我無法接收一個function超過200行。。這種一定都是可以再15F 05/10 21:56
ns1234: 拆解的。。
manaup: 沒有重複code的情況下 單函式3000行我可以17F 05/10 21:59
rpdef9969: 2跟3應該存在弱關聯...像3F說的那樣處理,18F 05/10 21:59
rpdef9969: 再加上guard clause觀念去檢視 ifelse flow
rpdef9969: 巢狀層次可以有效約束。
tyc5116: 200是我認為不搭配輔助方式(畫圖,下斷點,etc)仍然能容易21F 05/10 22:10
tyc5116: 理解的範圍,不過看大家反應似乎還是很難接受XD
Ekmund: 我看過不少破500 還有幾個破千的...該說幸運嗎 Orz23F 05/10 22:26
GoalBased: 拿過一個因為行數太多一支檔案放不下只好寫成兩支的Y24F 05/10 22:30
dnabossking: 新手的看法,所有的'好'設計,都是為了分離(解耦)25F 05/10 22:45
rpdef9969: 設計模式原則是聚合優先於繼承26F 05/10 23:12
Ayukawayen: 200行當上限我可以接受 當下限我實在不行 XD27F 05/10 23:42
Ayukawayen: 是控制在0~(200至多250)行內 還是控在200~250行內啊?
shortoneal: 一個function兩千行通常看到都是那種Thread function29F 05/10 23:49
shortoneal: 裡面switch case 到欲罷不能那種..,每個case又不太大
y3k: 一直跟schedule妥協只會讓不懂管理的人爽到 以為只要押schedu31F 05/11 07:08
y3k: le事情就做得出來 結果就是愈做愈爛 我的話都一定會討論一下
y3k: 反正我很努力了 如果趕不出來一定是schedule的問題(?
Lordaeron: 高論!!什麼才是懂管理的人呢?34F 05/11 08:49
tyc5116: schedule很重要阿,一定要以它為主,不過如果常常都不合理35F 05/11 09:01
tyc5116: 就該換間啦,在那撐幹麼?
Argos: 這裡好像沒見過什麼世面齁 前公司單函超過1000的滿地都是37F 05/11 09:17
Argos: 不過這種世面 不見也罷 QQ
ssadow: 通常不是要一次到位 只是想要為將來保留修改空間39F 05/11 09:24
Lordaeron: 哦哦哦,都是沒看書的人。主席說10行就夠多的了。還40F 05/11 16:23
Lordaeron: 200呢。打到死就是一個function 20行。沒聽主席講的。
csfgsj: 這種問題我都是這樣解決,再多行再多層也不怕42F 05/11 16:52
csfgsj: http://imgur.com/ry0gSdX
typepeter: 看作品看賺的錢才是重點 不幸的,跨國大公司都重視軟工44F 05/11 17:55
typepeter: 程式寫難維護難懂 太長無法除錯 所以才有軟工一說
Lordaeron: 哪幾家大公司重視軟工啊?46F 05/11 20:18
bobju: 200行還好吧? 一堆open source的函式恐怕都不止這個數.47F 05/11 22:02
typepeter: 有空去看看google Facebook apache 等公司的程式碼48F 05/12 02:12
typepeter: ptt打筆仗很簡單 不如省下來去學習強者寫程式 多賺錢
typepeter: 難怪國外都上太空台灣還在殺豬公 連大陸都屌打我們
typepeter: 說到這個 有沒有聽過ibm yahoo 程式和技術也去看看吧
storyn26383: 我有維護過單檔上萬行的 PHP………52F 05/12 05:54
Lordaeron: 典型見樹不見林,整天強者掛嘴邊。他們有多重視軟工?53F 05/12 07:48
Lordaeron: @typepeter期待你的講解
wesley234: csfgsj 不就是IBM的,你可以去問他55F 05/12 08:50
看板 Soft_Job
作者 ftrain ()
標題 Re: [心得] 反思程式革命的瘋狂。
時間 Tue May 10 21:36:25 2016


※ 引述《NDark (溺於黑暗)》之銘言:
: 剛好看到一篇有相同批判,引起激烈討論的文章給各位參考看看
: 在其中作者(他舉了很多敏捷創始者的說法佐證)也認為敏捷變得像是宗教及炒作商品
: 節錄部分如下

        十年前我在寫專案時,只要碰到新名詞一律都跳過,

        都是騙錢的東西嘛...

        網格、資料探勘、雲端、敏捷開發、PMP、大資料、

        太多了。

        一律跳過。因為我是正統資工出身的,包裝在這些名詞

        背後的技術是騙不了我的。 (茶)




--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.118.38.47
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1462887388.A.CF6.html
Hikkiaholic: 20年了我還沒看過比騙錢更重要的事1F 05/10 22:21
femlro: 先騙到錢啊XD 不然你下一餐要喝西北風喔XD2F 05/10 22:26
femlro: 不過軟體真的很難做 客戶常常會說一句話:這很簡單.....
Chris926926: pm也常常這樣說...4F 05/10 23:34
james732: 一樓QQ5F 05/10 23:40
chinting: 1F XDD6F 05/11 02:08
dreamnook: 30年了我還沒看過比投胎更簡單的東西(大誤7F 05/11 09:14
lainhot0114: 1F++,就像某漢堡店也常常推新瓶裝舊水活動 www8F 05/11 11:49
bobju: 這些東西不就是軟體強國美國傳過來的嗎? 不學豈不落伍?9F 05/11 22:03
bobju: 毛主席表示: 這種反動思想不批判不行
iamshiao: 一樓極神!11F 05/12 10:49
remmurds: 同意這篇12F 05/13 09:05
iman00b: 推一樓13F 05/13 15:45


--
※ 作者: terievv 時間: 2016-05-15 08:13:54
※ 看板: terievv 文章推薦值: 0 目前人氣: 0 累積人氣: 192 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇