Soft_Job 板


LINE

等等,我原本以为只是一个简单的问题 居然歪楼了 推动coding conventions 可以从你我做起 像原原po的问题是 if if if if ; ; ; ; 把判断式改过来变成 if return; if return; 即可 这个就简单起草一份coding conventions 拿给长官review, 以後code review 看到这个问题 就直接贴连结请junior 改就好了 这种东西很多学生时期根本没碰过 自然就会波动拳出现 跟顶不顶大没关系 反而是senior 不知道怎麽帮助junior 才是问题 ※ 引述《purin88 (原来我是愤怒的乡民)》之铭言: : 我从上面的文章只看到原po说有很多if...else跟function用原本的copy过来,改一下自 : 己想修改的code : 但却没看到任何提到效率问题,而且if...else是O(1),并不会拖垮速度。 : 每个人写code的习惯不一样, : 有的人喜欢这样写 : if() { : } : 有的人喜欢这样写 : if() : { : } : 有的人喜欢程式码短就连在一起 : if(...) cout << "xxx"; : else cout << "bbb"; : 也有人喜欢短的程式码连在一起 : cout << "请输入数字月份(1~12):"; cin >> month; : 有的人喜欢命名用底线分开,如:month_arr : 有些人喜欢用小写大写分开,如:monthArr : 有些人不喜欢程式码跟程式码之间有空一行 : while { : .... : } : if() { : .... : } : for(int i = 0; i < N; i++) { : .... : } : 但有些人喜欢有空一行 : while { : .... : } : if() { : .... : } : for(int i = 0; i < N; i++) { : .... : } : 有人程式码喜欢有空格分开 : for(int i = 0; i < N; i++) : 有人不喜欢太多空格 : for(int i=0; i<N; i++) : 以上这些都没有错,没有谁的才是对的,谁才是错的,重点流程有没有错,有没有bug, : 执行会不会慢,巢状回圈几层。 : 执着在那些格式很没有意义,或谁谁谁写code格式不符合我意的,就把别人弄走。 : 你不能说你就是标准,全部人都要跟你的写法一模一样,很多人写程式想的是这个问题要 : 怎麽写才巧妙解决,而不是十分在乎格式,太执着就有强迫症或太龟毛,合作起来也很痛 : 苦。 : 放过别人也放过自己,互相尊重。 -- https://i.imgur.com/QDN9AhN.jpeg
紫枫创作:https://portaly.cc/tbpfs 我是AI王紫枫 你可以叫我AI王 也可以叫我AI王子 也可以叫我AI王子疯 --
QR Code



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.205.130.61 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1721717892.A.838.html
1F:推 labbat: 遇到if-else完整陈述语法就没办法这样偷吃步了 07/23 15:21
2F:推 chihlee5566: Conventions? 07/23 15:55
3F:→ stepnight: senior 最大的问题是 知识的诅咒 07/23 15:58
4F:→ brucetu: 每个都有else就不能像你说的这样改 07/23 16:14
5F:→ brucetu: 真的遇到这种状况只能把条件参数化再写成其他形式,就像r 07/23 16:17
6F:→ brucetu: oute一样,但也有可能到最後你发现还是if else最好维护, 07/23 16:17
7F:→ brucetu: 而且在某些很在意延迟的场景,if else更好 07/23 16:17
8F:→ shooter555: conversation 07/23 16:44
9F:→ shooter555: 太多层就是 逻辑不够明确 接手的人很痛苦 07/23 16:46
10F:→ ma721: 没事找事,太闲 07/23 16:53
※ 编辑: tbpfs (123.205.130.61 台湾), 07/23/2024 17:26:54 ※ 编辑: tbpfs (123.205.130.61 台湾), 07/23/2024 17:26:59
11F:→ tbpfs: 靠边 手指太肥了点到conversation XD 07/23 17:27
※ 编辑: tbpfs (123.205.130.61 台湾), 07/23/2024 17:27:52 ※ 编辑: tbpfs (123.205.130.61 台湾), 07/23/2024 17:28:15
12F:→ acer1832a: 我记得一个func里多个return,这种方式不是不建议使用? 07/23 17:28
13F:→ tbpfs: 你说的可能是很久以前的写法不建议使用 07/23 17:29
14F:→ tbpfs: 但现在为了readability, 都是用这种写法 07/23 17:29
15F:→ a3817001: early return现在还满常见的 07/23 17:45
16F:推 f821027: 一个func多个return满常在leetcode most vote 看到 07/23 17:46
17F:→ atst2: early return 还是要看一下返回的理由是什麽比较好. 07/23 18:09
18F:→ atst2: 一般的建议还是用在检视输入的资料有没有符合规则. 07/23 18:10
19F:推 atst2: 然後,下面的例子有点极端 kubernetes里的pc_controller.go 07/23 18:18
20F:→ atst2: 1714行,充满if-else,作者一开头就告诉你:别乱改,每个 07/23 18:19
21F:→ atst2: if-else都有意义. 07/23 18:19
22F:→ atst2: 以原发文的例子而言,有没有可能,就是因为junior,为了避 07/23 18:24
23F:→ atst2: 免犯错,才大量使用if-else去描述每一个路径? 07/23 18:25
24F:推 gino0717: 如果不能return必须继续做下去怎麽办 07/23 19:14
25F:→ gino0717: 我在c++里面要解析json我都会先给一个if看栏位在不在 07/23 19:15
26F:→ gino0717: 然後再一个if看到底是array还是object 再一个if看到底是 07/23 19:15
27F:→ gino0717: 字串还是数字 最後才开始做事 07/23 19:15
28F:推 abccbaandy: C++ json还要手写parser? 07/23 19:40
29F:→ DrTech: 没看过程式码真的别太笃定对错。 07/23 19:51
30F:推 karst10607: early return 感觉还比较适合多数情境,防呆机制比起 07/23 22:12
31F:→ karst10607: 风格是更顺畅的理由 07/23 22:12
32F:推 viper9709: 推这篇 07/23 23:49
33F:推 crazwade: 推 刚入行也是针对这点有被前辈教育过 07/24 00:40
34F:→ crazwade: 後来也有像是用枚举或是switch 来取代 if else 07/24 00:40
35F:→ crazwade: 只能说原 po可能有尽力 但不是当事人不好评论 07/24 00:41
36F:推 saladim: 其实若if-else或switch里面思路清楚 不会是个问题 而且就 07/24 00:51
37F:→ saladim: 我少少的经验来说一但思路清楚 大概也不太会形成很深的 07/24 00:51
38F:→ saladim: if/switch 很难用例子去阐述那种if显示出来的思路杂乱跟 07/24 00:52
39F:→ saladim: 跟理解/修改的困难(更难验证逻辑正确性) 07/24 00:53
40F:→ saladim: @atst2 有可能是避免犯错 但我也跟其他人一起讨论当时案 07/24 00:54
41F:→ saladim: 例 一旦分析好状况 可以写出用少量的if/switch的同样功能 07/24 00:56
42F:→ saladim: 也有分享给对方...比较难理解的是 下次遇到同样需要分析 07/24 00:57
43F:→ saladim: 时 还是用同样方式描述路径是有点意外 07/24 00:58
44F:→ saladim: 补充:当然也不排除有上面提到的那种极端状况. 至少不是现 07/24 00:59
45F:→ saladim: 在遇到的 07/24 00:59
46F:推 joeboy: 我之前被review也是被教early return 07/24 01:30
47F:推 neo5277: 请爱用策略工厂 07/24 01:37
48F:推 yamagishi: 你逻辑没理清楚才会觉得 if else 是 must 07/24 06:24
49F:→ yamagishi: 怎麽会有人问必须做下去该怎麽办…OMG… 07/24 06:27
50F:推 yamagishi: Guard Clauses 跟 EAFP 有空可以去了解一下 07/24 06:32
51F:→ brucetu: 三小,就是会有if else must的状况啊 07/24 07:43
52F:推 ssteves: early return能提高程式码的可读性、维护性,而且 07/24 08:21
53F:→ ssteves: 也可以减少不必要的计算资源 07/24 08:21
54F:推 bnd0327: 如果该函式的行为有清楚定义并做好单元测试,里面if回圈 07/24 10:14
55F:→ bnd0327: 复杂一点好像也还好。 07/24 10:15
56F:→ yamagishi: 不可能会有,另外写一个 function 在那边 early return 07/24 10:16
57F:→ yamagishi: 而已 07/24 10:16
58F:→ yamagishi: 不然你提出一个例子我们讨论看看 07/24 10:17
59F:→ yamagishi: 这东西你最终只要注意是 Passing By Pointer 还是 Pass 07/24 10:19
60F:→ yamagishi: ing By Reference 你就能做出你要的东西了 07/24 10:19
61F:→ chal: 会写成巢状if 也可能是历史造成的 前人写 後人不敢动太大 07/24 12:37
62F:→ brucetu: 你当然可以把内层的if-else拉出去另一个function取个名字 07/24 14:33
63F:→ brucetu: 对於要trace整个状况的开发者来说, 逻辑的复杂性没有降低 07/24 14:33
64F:→ brucetu: 有时候反而跳来跳去更痛苦 07/24 14:34
65F:推 sasoman: guard clause 不是蛮基本的吗 07/24 14:38
66F:→ sharek: guard clause, early return 都看情况不用在那边文人相轻 07/24 15:51
67F:推 Obama19: 五十步笑百步 一堆early return有比较好吗 07/24 17:07
68F:推 abccbaandy: 不好吗? 哪个条件不要了就选起来删掉就好,完全不用 07/24 18:13
69F:→ abccbaandy: 研究那堆if else 07/24 18:14
70F:→ brucetu: if else 还不是一样选起来删掉-.- 07/24 19:37
71F:→ brucetu: 真值表画出来就知道你early return不会让复杂度降低只是 07/24 19:39
72F:→ brucetu: 程式码语法差异而已 07/24 19:39
73F:推 abccbaandy: 波动拳你怎麽选... 07/24 20:50
74F:推 Csir: 我之前也看过一堆goto差点自焚 07/24 23:14
75F:推 abraxas: 坐等例子 07/25 00:07
76F:推 akito117: early return 在做防呆类型好用,可以简化if else,让 07/25 18:49
77F:→ akito117: 逻辑清楚一点。 07/25 18:49
78F:推 EricTao: 推楼上 不然光缩排就饱了 08/06 18:14







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP