Re: [心得] 反思程式革命的瘋狂。

作者: tyc5116 (累人啊....)   2016-05-10 21:27:26
※ 引述《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~實務離理想還太遠了,一步一步來嘛,你要求一步到位下場就是沒人認同
呼應一下這句,敏捷已經變質為一個招牌,還是一種行銷的炒作。
至少面試拿來嘴砲是很有用的
同樣的道理,"當責"這名詞不也一樣嗎,觀點很好
但想要一步到位,科科,當你去死~
作者: NCUking (中大王)   2016-05-10 21:30:00
函式200行? 你是認真的嗎?
作者: rayway30419 (RayWay)   2016-05-10 21:32:00
20行其實就很多了
作者: sarafciel (Cattuz)   2016-05-10 21:34:00
200行的code一定有辦法再拆函式出去 除非你寫組語XD
作者: tyc5116 (累人啊....)   2016-05-10 21:35:00
有可能行業別的關係吧,我常看到動輒1~2000的函式...再拆當然還可以阿,但是...我覺得還是一步一步來會比較好
作者: NCUking (中大王)   2016-05-10 21:39:00
說design patterns是搞繼承的那位 根本是不懂裝懂XDDD
作者: rayway30419 (RayWay)   2016-05-10 21:42:00
200行的函式是什麼巫術.......2000
作者: tyc5116 (累人啊....)   2016-05-10 21:44:00
我覺得design pattern是教你如何善用繼承和聚集的特性前同事的說法某種程度也不能說是錯
作者: johnny94 (32767)   2016-05-10 21:49:00
Class 200 行還比較可以理解...函式 200 行是怎樣
作者: sarafciel (Cattuz)   2016-05-10 21:55:00
突然想起交大某教授聊天時提到曾接手過印度人寫的13層if波動砲 仔細想想200行好像也還算能接受的範圍(遠目)
作者: manaup   2016-05-10 21:56:00
個人的括號層數可以忍受到六層 畢竟還要try-catch
作者: ns1234 (FAR)   2016-05-10 21:56:00
我無法接收一個function超過200行。。這種一定都是可以再拆解的。。
作者: manaup   2016-05-10 21:59:00
沒有重複code的情況下 單函式3000行我可以
作者: rpdef9969 (在鍵盤上放羊)   2016-05-10 21:59:00
2跟3應該存在弱關聯...像3F說的那樣處理,再加上guard clause觀念去檢視 ifelse flow巢狀層次可以有效約束。
作者: tyc5116 (累人啊....)   2016-05-10 22:10:00
200是我認為不搭配輔助方式(畫圖,下斷點,etc)仍然能容易理解的範圍,不過看大家反應似乎還是很難接受XD
作者: Ekmund (是一隻小叔)   2016-05-10 22:26:00
我看過不少破500 還有幾個破千的...該說幸運嗎 Orz
作者: GoalBased (Artificail Intelligence)   2016-05-10 22:30:00
拿過一個因為行數太多一支檔案放不下只好寫成兩支的Y
作者: dnabossking (少狂)   2016-05-10 22:45:00
新手的看法,所有的'好'設計,都是為了分離(解耦)
作者: rpdef9969 (在鍵盤上放羊)   2016-05-10 23:12:00
設計模式原則是聚合優先於繼承
作者: Ayukawayen (亞布里艾爾發芽>//<)   2016-05-10 23:42:00
200行當上限我可以接受 當下限我實在不行 XD是控制在0~(200至多250)行內 還是控在200~250行內啊?
作者: shortoneal (不告訴你咧)   2016-05-10 23:49:00
一個function兩千行通常看到都是那種Thread function裡面switch case 到欲罷不能那種..,每個case又不太大
作者: y3k (激流を制するは静水)   2016-05-11 07:08:00
一直跟schedule妥協只會讓不懂管理的人爽到 以為只要押schedule事情就做得出來 結果就是愈做愈爛 我的話都一定會討論一下反正我很努力了 如果趕不出來一定是schedule的問題(?
作者: Lordaeron (Terry)   2016-05-11 08:49:00
高論!!什麼才是懂管理的人呢?
作者: tyc5116 (累人啊....)   2016-05-11 09:01:00
schedule很重要阿,一定要以它為主,不過如果常常都不合理就該換間啦,在那撐幹麼?
作者: Argos (Big doge is watching u)   2016-05-11 09:17:00
這裡好像沒見過什麼世面齁 前公司單函超過1000的滿地都是不過這種世面 不見也罷 QQ
作者: ssadow (ssadow)   2016-05-11 09:24:00
通常不是要一次到位 只是想要為將來保留修改空間
作者: Lordaeron (Terry)   2016-05-11 16:23:00
哦哦哦,都是沒看書的人。主席說10行就夠多的了。還200呢。打到死就是一個function 20行。沒聽主席講的。
作者: csfgsj (切割對半)   2016-05-11 16:52:00
這種問題我都是這樣解決,再多行再多層也不怕http://imgur.com/ry0gSdX
作者: typepeter (∵Peter∴笑點)   2016-05-11 17:55:00
看作品看賺的錢才是重點 不幸的,跨國大公司都重視軟工程式寫難維護難懂 太長無法除錯 所以才有軟工一說
作者: Lordaeron (Terry)   2016-05-11 20:18:00
哪幾家大公司重視軟工啊?
作者: bobju (枯藤老樹昏鴉)   2016-05-11 22:02:00
200行還好吧? 一堆open source的函式恐怕都不止這個數.
作者: typepeter (∵Peter∴笑點)   2016-05-12 02:12:00
有空去看看google Facebook apache 等公司的程式碼ptt打筆仗很簡單 不如省下來去學習強者寫程式 多賺錢難怪國外都上太空台灣還在殺豬公 連大陸都屌打我們說到這個 有沒有聽過ibm yahoo 程式和技術也去看看吧
作者: storyn26383 (販賣機)   2016-05-12 05:54:00
我有維護過單檔上萬行的 PHP………
作者: Lordaeron (Terry)   2016-05-12 07:48:00
典型見樹不見林,整天強者掛嘴邊。他們有多重視軟工?@typepeter期待你的講解
作者: wesley234 (掃地)   2016-05-12 08:50:00
csfgsj 不就是IBM的,你可以去問他

Links booklink

Contact Us: admin [ a t ] ucptt.com