[讨论] 因为空格~我离开了一间公司

楼主: workworkwork (workworkwork)   2014-09-07 00:40:04
这是我"前"公司的经验了
一开始以为公司内有严格的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没看过
她直接在辨公室里开飙
2.
reviewer说出了我听说最莫名奇妙的一句话
"这function以前没人用过 所以你不能用这function"
(jquery的trigger)
不是因为效能 不是因为安全问题 而是因为公司前人没用过....
我第一次遇到会规定coding style的公司
一开始以为是检到宝
后来没想到工作没满试用期就离职了....
作者: normaler (㊣天才㊣)   2014-09-07 00:46:00
案例1你可以拿refactor的书给他看
作者: chrischen (一个人的长假)   2014-09-07 00:52:00
案例2的意思应该是怕其他人看不懂 可能有既有惯用写法
作者: qweqweqweqwe (4qwe)   2014-09-07 00:53:00
不可以用formatter 不过你用了他会知道吗 @@
作者: tw689 (台湾689)   2014-09-07 01:02:00
糟糕 我也不喜欢一的写法orz
作者: VVll (李奥纳多皮卡丘)   2014-09-07 01:13:00
我也喜欢在func内做检查 不允许就return 或者 continue
作者: xpop777 (Archie)   2014-09-07 01:14:00
我喜欢自由发挥xD,加油,总会找到适合的位置
作者: bndan (seed)   2014-09-07 01:16:00
我还以为1的写法会转成switch耶 = =a (也许个人偏好?)
作者: VVll (李奥纳多皮卡丘)   2014-09-07 01:24:00
switch 只能针对明确的result做判断 caseswitch的特点在于 善用break
作者: GoalBased (Artificail Intelligence)   2014-09-07 01:40:00
部门经理说,他在前一个公司,也是有规定老板不用递回,你写了递回去给老板,解释到他懂了他还是会叫你改成循环至于过多层是否是你那个function 职责太多呢?
作者: uid88 (uid88)   2014-09-07 02:08:00
1. 写成这样大概我们组上任何人review都会不过2. 新的function确实代表了风险。但是并非绝对不能承受可以设法提出: 1)这function在各种环境下可靠的证据2)若用现有function也可以完成同样功能,用新的好处为何
作者: wadechen (忙)   2014-09-07 02:09:00
我只觉得这样就要走人 也太凶...@@
作者: braverycloud (岚)   2014-09-07 02:13:00
听你这样描述,我会认为在那边只是Code产生器 XD
作者: cha122977 (CHA)   2014-09-07 02:28:00
1.的写法是guard condition? 是的话这样写应该ok看来问题出在无法沟通XD
作者: newcycle (running in circles)   2014-09-07 03:04:00
不用formatter的理由是..?
作者: andymai (人生只有一次)   2014-09-07 04:41:00
reviewer 不能沟通之外也不专业!一个东西能不能用居然是看前人有没有用过?就算自己懒得看~也该叫原PO说明使用上的优缺点~再做进一步的考量~甚至是开个内部会议啊...
作者: alog (A肉哥)   2014-09-07 06:56:00
我觉得reviewer不能沟通就算了其他那些根本就是小事y
作者: wens (文思)   2014-09-07 09:29:00
linux kernel里面就是遇到错可以直接return就直接return需要收尸的时候就会有goto跳到最后面反向收垃圾会这样写有个原因, 就是每行80字符的限制
作者: jtorngl (Pedrosa go!)   2014-09-07 09:39:00
我习惯写 if ("ABC".equals(str)) { 也曾被嫌弃过说为什么不写成 if (str.equals("ABC)) { ....另外常常要做null checking觉得很麻烦,不知是否有好方式
作者: hegemon (hegemon)   2014-09-07 10:02:00
如果你是用java的话..用StringUtils.equals...你就跟他们说这是Apache认证过的
作者: ticks (ticks)   2014-09-07 10:04:00
wes:与其说是80字符的限制,不如说是用这些规定来防巢状if-else。另一个相关的规定就是tab width=8
作者: GX90160SS   2014-09-07 11:09:00
1.的写法不错啊,我避免if太多层也是这样用的
作者: cha122977 (CHA)   2014-09-07 12:13:00
linux的写法也和driver特性有关 初始化失败要反向处理
作者: atst2 (atst2)   2014-09-07 12:57:00
1.你改写的方式,可能会有潜在的问题.主要是你的程式不只是单纯的guard condition,每个codition间还有"do something".不注意的话, 有可能增加leak的机会
作者: typepeter (∵Peter∴笑点)   2014-09-07 12:59:00
这样算是有作code review喔? 这样人人都是code viewer基本上这公司的制度和人员素质都不怎样吧...
作者: atst2 (atst2)   2014-09-07 13:00:00
从这点来看,我不认为你的reviewer在1.的情形不对,也可能单纯是关注点不同,你比较注重减少层次,他可能比较重视单一entry/exit的问题.
作者: leicheong (睡魔)   2014-09-07 13:41:00
我倒是宁愿指定一款code formatter, checkin前要跑一下把时间花在formatting上真是没效率的事.
作者: ACMANIAC (請肥宅救救肥宅)   2014-09-07 14:12:00
1 哪有什么问题,这间公司... 块陶阿
作者: bndan (seed)   2014-09-07 14:29:00
= = 其实你的例子一样能转.有没有价值而已...switch(true)case A&&B,!(A&&B)&&C&&D,!(A&&B)&&!(C&&D)
作者: GX90160SS   2014-09-07 21:22:00
楼上那写法有够丑
作者: rave308 (Ray)   2014-09-07 22:34:00
int qq = true ? 1 : 2
作者: readonly (唯读)   2014-09-07 22:53:00
你觉得他说的真的没 100% 可取性?
作者: ku399999   2014-09-08 02:39:00
例一明显是原po写法比较好吧 可读性较高 将来维护也不会继续在里面增加判断式 leak请用auto pointer
作者: alan3100 (BOSS)   2014-09-08 22:52:00
不能用formatter扫有啥意义? 有车不开应要用走的
作者: mmchen (艾斯雪雷凯特拉斯)   2014-09-09 14:10:00
trigger超好用的耶,公司没人熟jquery吗…
作者: b6byc (oopp)   2014-09-09 15:20:00
很怕遇到reviewer , 以为自己是神.
作者: andymai (人生只有一次)   2014-09-10 01:38:00
也不是每个reviewer都这样啊~能不能沟通并尽量站在客观的角度去讨论才是重点...
作者: honochung (http://lol.moa.tw)   2014-09-12 00:22:00
想问trigger不好吗@@?我用了超多耶
作者: ottokang (猫猫的大玩偶)   2014-09-12 14:03:00
干麻不用Formatter....

Links booklink

Contact Us: admin [ a t ] ucptt.com