Re: [討論] 因為空格~我離開了一間公司
※ 引述《workworkwork (Miyada vv)》之銘言:
: 這是我"前"公司的經驗了
: 一開始以為公司內有嚴格的coding style規定是件好事
: 我也贊成公司要有一致的coding style
: (像我以前看過apache的C code
: 全部CODE都像同一人寫出來的一樣)
: 而公司內也會有人code review你的部份
: 一切聽起來都很完美
: 一開始聽到有規定coding style和code reviewer也很開心
: 但因這一切都因為公司裡有一個奇怪的規定而毀了
: "code不可以用code formatter去掃"
: 我承認自己寫程式常會漏勾
: 所以寫完會花很多心力在檢查有沒有BUG 是否會被攻擊 資安問題等等....
: 但在這間公司發現一個很奇怪的事情
: "有資安漏洞的CODE大家會很有耐心的教 空格沒空好會被罵的狗頭淋頭"
: 搞到最後一段程式寫完我只知道檢查空格....
: 最後的最後我決定離職的原因是出在reviewer
: 和reviewer的code觀念差太多 跟本無法共事
: 例如:
: 1.
: 有時為了避免太多層出現===>
: if(a)
: {
: //do a things
: if(b)
: {
: //do b things
: if(c)
: {
: //do c things
: }
: }
: }
: 會改成====>
: if(!a)
: {
: return ;
: }
: //do a things
: if(!b)
: {
: return ;
: }
: //do b things
: if(!c)
: {
: return ;
: }
: //do c things
: 但因為這寫法code reviewer沒看過
: 她直接在辨公室裡開飆
這個我看起來 A 跟 B 根本沒什麼不同,但 B 確實比較糟糕。
因為都是 X條件觸發,處理 X條件,再繼續往下做。
但你是 X不成立,就返回。這個 !X 不是好方法,實際上對系統架構沒幫助。
你要讓系統結構很維護,避免那麼多{}層出現,
框到到底那個 } 是對應那個 { 都不知道了,應該這樣寫:
if(
fun_A() == true
&& fun_B == true
&& fun_C == true
&& .......
)
{
做某件事
}
function fun_A()
{
if(....) return(false);
return(true);
}
下略,自己補上 fun_B()..fun_C()。
這樣寫有啥好處??
(1) 最大好處就是太多層後,真的不知道那個 } 是對應那個 {
也就是你一直在數空格數到底空對了嗎?
(2) 除錯超快,注意我是直接每個判別直接寫一行,
你寫的落落長後,除非你是天下奇杷,腦袋超清楚,
要不然肯定會錯啦~~這個地方我除錯的速度絕對比你快。
我直接一行一行 // && fun_C() == true
就找出問題了。
甚至未來你某個條件不想再用就像上面一樣 mark 掉就好了。
以上給參考,你自己去評估三種寫法哪種最好。
另外如果有人又要出來跟我戰他要用 class 寫法最好,
還是說這個寫法糟透了,那是他家的事,我不出來應戰。
我只是恰好路過,出來建議一下而已。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.46.53.194
※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1410030988.A.A28.html
→
09/07 03:32, , 1F
09/07 03:32, 1F
→
09/07 04:13, , 2F
09/07 04:13, 2F
→
09/07 04:13, , 3F
09/07 04:13, 3F
→
09/07 04:15, , 4F
09/07 04:15, 4F
→
09/07 04:15, , 5F
09/07 04:15, 5F
→
09/07 04:17, , 6F
09/07 04:17, 6F
→
09/07 04:21, , 7F
09/07 04:21, 7F
→
09/07 04:22, , 8F
09/07 04:22, 8F
→
09/07 04:23, , 9F
09/07 04:23, 9F
→
09/07 04:27, , 10F
09/07 04:27, 10F
→
09/07 04:28, , 11F
09/07 04:28, 11F
→
09/07 04:29, , 12F
09/07 04:29, 12F
→
09/07 04:30, , 13F
09/07 04:30, 13F
→
09/07 04:31, , 14F
09/07 04:31, 14F
→
09/07 04:34, , 15F
09/07 04:34, 15F
→
09/07 04:37, , 16F
09/07 04:37, 16F
→
09/07 05:58, , 17F
09/07 05:58, 17F
→
09/07 05:59, , 18F
09/07 05:59, 18F
→
09/07 08:40, , 19F
09/07 08:40, 19F
→
09/07 09:52, , 20F
09/07 09:52, 20F
→
09/07 10:53, , 21F
09/07 10:53, 21F
→
09/07 10:53, , 22F
09/07 10:53, 22F
→
09/07 10:54, , 23F
09/07 10:54, 23F
→
09/07 10:54, , 24F
09/07 10:54, 24F
→
09/07 10:54, , 25F
09/07 10:54, 25F
→
09/07 10:58, , 26F
09/07 10:58, 26F
→
09/07 10:59, , 27F
09/07 10:59, 27F
→
09/07 10:59, , 28F
09/07 10:59, 28F
→
09/07 11:00, , 29F
09/07 11:00, 29F
→
09/07 11:17, , 30F
09/07 11:17, 30F
→
09/07 11:17, , 31F
09/07 11:17, 31F
→
09/07 11:18, , 32F
09/07 11:18, 32F
→
09/07 11:19, , 33F
09/07 11:19, 33F
推
09/07 11:58, , 34F
09/07 11:58, 34F
→
09/07 14:15, , 35F
09/07 14:15, 35F
推
09/07 20:43, , 36F
09/07 20:43, 36F
推
09/09 12:44, , 37F
09/09 12:44, 37F
→
09/09 12:44, , 38F
09/09 12:44, 38F
推
09/09 19:00, , 39F
09/09 19:00, 39F
→
09/12 15:06, , 40F
09/12 15:06, 40F
→
09/12 15:10, , 41F
09/12 15:10, 41F
噓
05/14 21:14, , 42F
05/14 21:14, 42F
討論串 (同標題文章)
Soft_Job 近期熱門文章
PTT職涯區 即時熱門文章