Fw: [請益] CURD開發時間推估

作者: howardgj94 (飄飄渺渺所為誰)   2019-07-12 12:31:27
※ [本文轉錄自 Programming 看板 #1TA0j_Vb ]
作者: howardgj94 (飄飄渺渺所為誰) 看板: Programming
標題: [閒聊] CURD開發時間推估
時間: Fri Jul 12 12:24:29 2019
大家好,
本人算算,畢業後踏入職場也邁入第二年了,
回想大學專題做影音系統,負責後台資料處理(HADOOP)的部份,
研究所做資料科學的研究,
進入職場後,從資料科學轉做系統開發。
因為在財團法人,只要系統出的來,對於開發環境有很大的自由度,
所以每次開發時,都會想辦法去接觸新的框架跟軟工架構。
(財團法人的缺點,只要看成果,但希望在當兵這三年,可以把這缺點化成優勢,
於是在這一年多來,只要接臅新的案子,就想多學一點不同架構)
這一年來,陸續碰過原生的php開發、cordova、
學寫phpunit測試、laravel MVC架構、
vue與laravel的集成架構、java spring MVC架構、junit測試、
react + redux + react-route前端架構等。
因為研究所boss是軟工專常的關係,我踏入職場後,對軟體架構的要求比較高,
例如開發時盡量遵守TDD開發原則、repository模式將資料庫邏輯分開、資料庫使用
orm 或 entity framework,而不直接操作sql語句、又或者是前端使用redux模式
將action 跟 view盡量抽離等。
老實說,這些東西以我目前看到,至少在唉唉唉裡面,是不太重視這些東西的。
最近在開發新的案子,資料庫架構設計完,開始投入app撰寫。寫了一陣子,被一個
同事說,「覺得你開發速度太慢了,這東西我xx(時間)就開發完了,不須要這麼久。
於是我根據git記錄開始追溯我的開發時間,
發現以普通不太過複雜的資料庫crud撰寫來看,
從unit test撰寫、repository設計、mvc test撰寫,controller設計、
到前端畫面設計、串連api,debug,這整個動作做完
平均大概要花費一到兩個工作天。
以成效來看,似乎真的不是很有效率。
當然這次使用redux react跟java spring都算新東西,要算學習成本進去,
但以我git紀錄來看,一個crud前後台完成,大約就是一到兩個工作天。
好奇大家在開發crud時,大概會花多久時間呢?
現在有自動生成crud的工具,但似乎彈性不夠大,也不夠好用,所以我沒接觸。
如果能把crud時間縮短,整個開發時程可以縮很多。
另外,tdd drive的開發模式,在目前台灣軟體業界流行嗎,財團法人有點太學校了,感
覺接觸的不一定是業界目前的流行。如果可以的話,未來希望自己還能碰一些CI/CD的工
具。
另外題外話,tdd drive的好處是,你必須在寫程式前就先把架構想好,而且為了做到
unit test,程式必須解耦合,也就是說,如果測試寫的好,基本上設計出來的程式會非
常的符合SOLID原則,當然這是最理想的狀況。
剛開始摸redux時,並沒有想到給前台也寫測試,當時看到redux官方給的todo範例時就非
常不解,為什麼要把畫面分成component跟container。後來開始思考如何寫測試時才發現
,分開畫面跟動作的原因,是為了能夠撰寫unit test,另外這樣寫才能讓前端的action
跟view能夠真正的分離。
不過目前我的前端是還沒有撰寫test,前端對我來說,光要把畫面調好、設計畫面就花
太多功了,現在如果還要加上test的話,估計crud就要花兩個工作天或以上了.
作者: max241 (養生之道)   2019-07-12 12:43:00
他快只考慮MVP吧 要寫測試就是會拉長開發時間有測試 長時間下來是好的 但如果專案很快就結束就...呵呵看性質考慮要寫成可不可測,好不好維護等 但感覺你是一條龍
作者: howardgj94 (飄飄渺渺所為誰)   2019-07-12 13:13:00
我的案子都是個人或雙人案子,我的確以前堅持用tdd模式一條龍,最近工具會多了才開始思考時間成本的問題
作者: abccbaandy (敏)   2019-07-12 13:17:00
外面87%都是功能能動就好,test都沒寫了還TDD XDD
作者: expup (linux)   2019-07-12 13:53:00
現實是你要這樣幹就去外商搞大部份多的是隨便弄求過就好
作者: aa155495 (冷月狂刃)   2019-07-12 14:21:00
看是長期產品,還是 poc 而已?概念驗證的案子,用做長期產品的思維太浪費時間
作者: allenxxx (fufuxxx)   2019-07-12 14:22:00
外面程式還沒寫到一半,需求就不知調過幾次了,TDD是啥?
作者: neo5277 (I am an agent of chaos)   2019-07-12 15:59:00
III不同部門差很多的樣子
作者: b81314 (有點貴)   2019-07-12 17:04:00
接案建議不要用TDD模式去開發 根本不可能如你所意..
作者: doranako (真愛無限)   2019-07-12 17:39:00
如果主管不懂tdd 就會覺得你做事慢,然後就黑掉
作者: Nonegrame (程式寫得好,好人做到老)   2019-07-12 18:22:00
肯花時間寫測試就要痛哭流涕了
作者: sharku (明珠求瑕)   2019-07-12 18:31:00
堅持下去 你是對的
作者: alog (A肉哥)   2019-07-12 18:51:00
先學會分辨你的同事雷不雷,不然意見也是聽一半就好 他所謂的快,要是留下一堆技術債你只是不知道
作者: howardgj94 (飄飄渺渺所為誰)   2019-07-12 20:06:00
同事要說的話,從大學開始開發系統,到現在有五年多的開發經驗,研究所幫老師寫公司系統.我自己評價,他可以以很短的時間完成任務,品質也還ok,風格有自己一套,但不著重軟工架構大概就mvp寫很好的人吧,畢竟他們boss跟在唉唉唉開發的系統都算概念系統,無法判斷真實上線的維護問題
作者: lukatw (糖炒栗子)   2019-07-12 22:20:00
時程及專案週期和專案性質都是重要考量因素,如果接案性質的,通常專案週期比較短,而需求變動速度可能也很快,連測試都不寫了別說TDD。後來有長期專案,但專案初期在時程壓力下完成MVP,測試碼就變成後補,有些地方寫的很臭XD,目前專案算比較穩定,所以開始補上測試+重構程式
作者: landlord (91)   2019-07-13 00:42:00
以一個過來人的經驗跟你分享:讓自己作到TDD開發比他們不寫測試還快,他們就會閉嘴了。老闆向來不在乎大家是不是TDD,只要你能又快、又好分享我最近在客戶那邊的戰果:http://bit.ly/2YOxPY03人的mob-programming, TDD, 三地開發, agile/scrum三天進度over deliver一個sprint的進度老闆跟PO顯得非常滿意,更別說我們順手把舊的架構整理好
作者: abccbaandy (敏)   2019-07-13 01:57:00
樓上大概沒待過那種,需求早上講完下午就變了一套,然後隔天問你寫得如何的公司...
作者: landlord (91)   2019-07-13 02:10:00
那就讓你自己擁有選擇公司的能力,這是最直接的解決方式不過誰都會碰到時程問題,就看你怎麼解決時程的問題
作者: abccbaandy (敏)   2019-07-13 02:17:00
果然還是逃嗎XD 我只能說台灣有很大一部分公司都推不了你說的東西,就算叫TDD之父來也一樣,這就是現實
作者: landlord (91)   2019-07-13 02:19:00
逃?我只是覺得待在一個環境裡面自怨自艾,很浪費人生
作者: abccbaandy (敏)   2019-07-13 02:25:00
也是啦,自己先學會,等哪天有機會就能派上用場了
作者: landlord (91)   2019-07-13 02:27:00
總會有需要你能力的地方,所以不要原地踏步被糟蹋了
作者: abccbaandy (敏)   2019-07-13 02:28:00
倒是好奇台灣哪些公司真的有導這些東西的阿?每次面試都講得很完整,進去各種台式敏捷+ 0 test
作者: landlord (91)   2019-07-13 02:29:00
在台灣的外商算嗎?XD 不過我都不推薦大家「導」TDD其實老闆真的不在乎你怎麼寫,他們只要結果又快又好但如果你們作到又快又好,而需要他們一些support, 他們會很樂意提供你協助的,只要你能作到他們要的現在的鈦坦、Line裡面的工法素質都很不錯QA/QE/SDET 比較完整的,就趨勢跟 KKBOX我之前在yahoo的幾個團隊也做得挺扎實的如果我有能力,老闆願意相信我,他們沒有測試其實挺好的這不就是貢獻自我價值的舞台嗎?
作者: alog (A肉哥)   2019-07-13 02:39:00
導 test 看老闆/技術主管本身有沒有被雷包痛到過,痛過幾次然後又是執行重要專案/長期維護產品就會導入了我長期維護EC平台,第一年後端不是我寫,同事雖然資深但就是不肯導入任一 test 去驗證他的程式沒問題結果花了一年的時間在那裡修各種問題修到差點還要賠錢
作者: abccbaandy (敏)   2019-07-13 02:41:00
看起來不是大公司就是外商呢...
作者: alog (A肉哥)   2019-07-13 02:42:00
次年我接手專案的後端去寫了v2 因為該語言/框架其實我不熟但是開發經驗有 而且該框架的測試環境算很成熟我花了大概半年多的時間整個把全部的功能重寫客戶也願意付錢等 因為他們被雷到怕了現在每次加工能或是做前端什麼的 完全不用擔心會炸掉還是出現例外狀況的問題甚至連其他第三方系統沒事偷改規格或調整都可以測的到那種過程就是真的只有一個字能形容 就是他媽的很爽 不用沒把握說程式部署到好幾台主機後可能有問題之類的像我自己會在前端的程式利用GA用事件跟傳送例外錯誤訊息,然後用自訂報表去彙整這些資料
作者: abccbaandy (敏)   2019-07-13 02:48:00
同感,這種真的是被炸過才會重視,甚至還會幫你排時間
作者: alog (A肉哥)   2019-07-13 02:48:00
當你一個重大新介面的改版上線後,一整個禮拜都沒有錯誤時那種感覺真的很好
作者: alog (A肉哥)   2019-07-13 02:49:00
為什麼 因為我那個平台一天的營業額很高 你炸掉還是什麼就是影響到人家的公司我一個朋友也是做EC的 不過他也是有做營運某一天動了資料庫 結果不慎搞毀資料 花了不少時間救回 雖然說只掛了一點時間 但噴了十幾萬去賠客戶我只能說 真的有些東西值得細心去處理 但前提是 你待地方知道那個價值是說 其實寫測試也不會太慢 只是一開始會卡比較久這麼設計做久了其實很多東西也是差不多那樣因為你不寫 你手動反覆調適也累 我覺得要多利用工具做自動化來省時間
作者: cactus1021 (我要撞飛一切)   2019-07-13 21:10:00
錯字好多
作者: ek0519 (new life)   2019-07-15 18:47:00
可以玩玩 laravel nova
作者: Csongs (西歌)   2019-07-19 08:46:00
單表crud 一小時吧重點是背後邏輯要清楚一小時包含測試code

Links booklink

Contact Us: admin [ a t ] ucptt.com