※ [本文轉錄自 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就要花兩個工作天或以上了.