看板 Soft_Job 關於我們 聯絡資訊
※ 引述《hegemon (hegemon)》之銘言: : 最近公司開始雷厲風行地要求所有Java Code都要符合CheckStyle Plugin的標準. : 連多年前老人留下來的東西也不例外. 最近做整個系統的檢查. 發現竟然有快二十萬個警告. : 這還不打緊.裡面很多都是tab跟四個space,括號前後space,或是變數大小寫的問題. 那些都好解決 : 但是還有不少是啥...一個method不能超過一百五十行,或是一個method不能代入超過七個變數. : 這兩個規定個人覺得十分不合理. : 我們Java Code大多是在搞SQL.偏偏公司資料散在一堆tables裡面.所以每一串SQL都不是普通的長. : 要在一百五十行內把一個SQL搞定已經很勉強了,如果這個method要用到多個SQL..保證破表. : 至於一個method不能代入超過七個變數也很擾民.我們系統前端是VB.所以一堆變數都是從VB丟來. : 偏偏USER又很喜歡在VB那邊加一堆comboBox,textBox之類的,這些全部都是單一SQL要用的條件. : 上頭還要求不能用array的方式解決..要求的方法是...VB傳變數到Bean中,Bean新建一個Object. : 然後把變數set進Object內,再丟入method中.這看起來是可行的做法.但是...卻完全沒考慮到method : 的便利性和精簡度. 過去雖然變數多,但是註解寫好的話(其實看變數名稱就知道要怎麼用了...) : 後面的人直接用就好了..現在卻還要先new一個Object.然後set變數,接著再丟進去method. : method要用時,要先一個一個的get出來,然後再把這些變數弄進該用的地方.如果一個method要用到 : 不同條件的Object..光set,get就可以吃掉那一百五十行中的不少比例了. : 適當的使用工具及規範來讓程設把Code寫乾淨我是很贊成,但是搞成這樣...根本就是擾民.. : 開始後悔到大公司上班了.... : 不知道各位對這有啥看法.. 如果連實際改的人都覺得有問題的話, 最好反應看看, 看能不能選擇性遵守. 就像有多少能人在寫Java程式時能不碰到一個compiler的警告? 別說沒人能辦到, 就算辦 得到, 應該也沒人會去做這種傻事. 不然Java為何提供了@SuppressWarnings? 就是承認 會有某些違反原則但卻是合理使用的情況, 如同SQL有正規化的議題, 也會有反正規化的 議題, 例外總是存在, 沒有最佳的規則. 實際上怎樣的原則最好, 最好是由實際參與的人 建議. 有時狀況外的人按著書本/直覺下指令反而會把事情搞砸. best practice有時會是worst practice, 這句話在Java裡正確, 而當parctice套用在原 本不相關領域時, 更是格外正確. 低著頭讓Java牽著SQL的鼻子走, 只會讓你得到合格的 Java, 不合格的SQL. 別低著頭走多抬起頭來看看, 怎麼走最好還是實際在走的人說的 最準. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.161.78.58
andymai:是應該用領域的觀點為主~設記為輔去寫程式沒錯~但是150行 03/30 02:13
andymai:和七個參數~個人認為function寫這樣~真的有思考重構的必要 03/30 02:14
jainnkae:sql 跟 java 混寫在一起不亂也難啊 03/30 06:59
hegemon:每行行數包括空格不可超過80的字元.過長要拆行 03/30 22:25
hegemon:怎麼還有人覺得超過150行很難? 這樣就想要重構.那現在 03/30 22:26
hegemon:系統中超過80%的code都要重構.... 03/30 22:26
andymai:我記得空格、過長拆行和註解是不算在內的吧...150行的限制 03/31 05:22
andymai:是防範在裡面寫了太多邏輯~讓PG思考是否有拆出去的必要 03/31 05:23