华人澳洲中文论坛

热图推荐

    代码繁杂度随便探讨

      [复制链接]

    2022-12-5 13:25:07 23672 58

    我觉察程度低的很容易写的代码都是代码繁杂度高的函数,程度假如高的,会努力于写代码繁杂度很低的函数

    我想代码繁杂度很低的函数是要花许多心理去写的,不是顺手就能写出来的

    全部回复58

    shb918zhyt 发表于 2022-12-5 08:21:00

    shb918zhyt 沙发

    2022-12-5 08:21:00

    小白来求教这个函数繁杂度是看大O吗?
    泾渭 发表于 2022-12-5 08:25:38

    泾渭 板凳

    2022-12-5 08:25:38



    https://juejin.cn/post/6844903495779237895

    按照这文章,我觉得函数最佳是程序构造,一根线,最容易读啦

    像上面的flow graph就太繁杂了




    https://crates.io/crates/complexity
    samoyed 发表于 2022-12-5 08:29:17

    samoyed 地板

    2022-12-5 08:29:17

    Complexity 要低固然不易,否则那末多人钻研algorithms.
    随你 发表于 2022-12-5 08:37:18

    随你 5#

    2022-12-5 08:37:18


    你说的算法是更高一个档次的啦,和我说的日常写的代码不是在一个层面上的啦。
    chuangxinkj 发表于 2022-12-5 08:42:14

    chuangxinkj 6#

    2022-12-5 08:42:14


    你是指solid准则?
    mh3000 发表于 2022-12-5 08:52:09

    mh3000 7#

    2022-12-5 08:52:09


    我说的是函数层面啦,没有回升到OO啦
    海蓝天蓝 发表于 2022-12-5 08:57:15

    海蓝天蓝 8#

    2022-12-5 08:57:15

    明确,分枝太多,switch 多,那可能自身设计的问题,笼统不敷。
    zhang1234 发表于 2022-12-5 09:02:36

    zhang1234 9#

    2022-12-5 09:02:36

    赞成,逻辑和代码越简略越好,连co妹妹ent都不必写,读起来便利,更易保护。

    有时需求trade off,好比常常用到的函数能够优化,损失些readability,写成macro或inline (C/C++)
    馒头C 发表于 2022-12-5 09:15:43

    馒头C 10#

    2022-12-5 09:15:43


    正文有时是需求的,不是形容做的进程,而是用来写为什么要做的理由,由于这理由不克不及在代码里表白啦
    mz1204 发表于 2022-12-5 09:28:29

    mz1204 11#

    2022-12-5 09:28:29



    是的啦,当初想写面条代码也不太容易,大少数代码是循环里包孕了屡次嵌套前提语句,或者前提语句包孕不同的循环,一个函数代码扩展到三屏以上,嘻嘻

    我看到繁杂的代码头就一下子疼起来了,估价心跳会减速
    honeywellcmm 发表于 2022-12-5 09:36:34

    honeywellcmm 12#

    2022-12-5 09:36:34


    我感觉co妹妹ent越少越好 看看Linux kernel 就知道了 需求解释的logic放在documentation里

    之前当dev的时分常常看到co妹妹ent和code不搭边 code改了但没有更新co妹妹ent
    清音叠韵 发表于 2022-12-5 09:41:29

    清音叠韵 13#

    2022-12-5 09:41:29

    只有不必recursive函数都还没救
    zhouyuting 发表于 2022-12-5 09:49:06

    zhouyuting 14#

    2022-12-5 09:49:06


    初级顺序员看反复杂零碎的可保护性,可读性以及最小的犯错可能, breakdown繁杂逻辑用最简略的构造组合来完成繁杂问题, 老手也能读无障碍
    高级顺序员为了证实本人牛逼喜爱写繁杂的货色,无需嵌套递归的一概发明前提上嵌套递归,简略构造能解决的一概要上繁杂构造污七八糟各种承继重载反射读起来就像看狗子扮演拉屎。
    山的背后 发表于 2022-12-5 10:02:53

    山的背后 15#

    2022-12-5 10:02:53

    The art of coding is using a simplest logic implements most complex scenario.
    pengsihao55 发表于 2022-12-5 10:07:56

    pengsihao55 16#

    2022-12-5 10:07:56

    楼主这个繁杂度很容易发生歧义,通常码农看到繁杂度,首先想到的是时间或空间繁杂度,是算法层面的。但这个帖子里要探讨的是代码的易读性以及可保护性。

    保举一切码农读一本书 - Clean Code,读完写代码的程度确定能上一个台阶
    老倌 发表于 2022-12-5 10:12:17

    老倌 17#

    2022-12-5 10:12:17

    不做refactoring 很难解决这类繁杂逻辑的问题
    香水琼仔仔 发表于 2022-12-5 10:23:30

    香水琼仔仔 18#

    2022-12-5 10:23:30

    时辰牢记,CONTAINER 方式的封装。
    太阳鸟 发表于 2022-12-5 10:28:06

    太阳鸟 19#

    2022-12-5 10:28:06


    不赞成啦

    看这段代码https://github.com/rust-analyzer/rowan/blob/master/src/arc.rs

    从94行到十二5行,正文写的多好啊
    jiedn 发表于 2022-12-5 10:39:57

    jiedn 20#

    2022-12-5 10:39:57


    写用recursive函数之处其实一个名目里颇有限啦,不是每段代码均可以随便用上啦
    M2328 发表于 2022-12-5 10:54:52

    M2328 21#

    2022-12-5 10:54:52

    缘故出在得多公司code review不标准,这类代码不该经过。就没起初的大问题。
    卷卷 发表于 2022-12-5 10:58:51

    卷卷 22#

    2022-12-5 10:58:51


    你提到算法,我是少量在代码里使用hash字典,使用太便利了,速度也是太快了,就是用点内存,反正1gb ram的单价也不贵,我拼命用,我用rust language写的顺序也只用了1.6gb ram,而相应的golang开发的顺序用了17gb ram
    古沥青 发表于 2022-12-5 11:05:13

    古沥青 23#

    2022-12-5 11:05:13


    呵呵 不需求赞成 这个原本就是见仁见智 有争议的话题

    我不是说彻底不写co妹妹ent 我是说尽可能少写 由于code自身假如容易读懂就没须要

    反正我写的顺序很少co妹妹ent 然而他人都说容易看懂

    还有lines of code尽可能少,我之前refactor 他人的code 完了少好多行代码 功用还减少了
    双拿 发表于 2022-12-5 11:12:49

    双拿 24#

    2022-12-5 11:12:49


    Martin Fowler的Refactoring book也不错

    https://amzn.asia/d/f3lpqVp
    jccx 发表于 2022-12-5 11:23:56

    jccx 25#

    2022-12-5 11:23:56


    可是老板是不care这些的 代码写的丑陋只是为了本人表情舒畅
    winter 发表于 2022-12-5 11:35:10

    winter 26#

    2022-12-5 11:35:10


    我觉察当初的编程言语例如rust language激励代码稀释到一行啦,其实functional progra妹妹ing也是激励少写代码啦,但愿我跟着本人的教训减少,能一次就将短代码写出,而不是要往返几遍思考啦
    忠友美 发表于 2022-12-5 11:48:05

    忠友美 27#

    2022-12-5 11:48:05


    不是啦,一次代码写出,配合unit testing, 假如未来不合乎商业逻辑,仍是要再读一遍代码,不合乎商业逻辑的次数增多,读该代码的次数也相应增多,所以增加本人了解的难题度啦,这就像发帖子,写只需求一次,但有许多人在读该帖子同样
    huazhonghu 发表于 2022-12-5 11:59:43

    huazhonghu 28#

    2022-12-5 11:59:43


    我本人写的code要改好几回 直到满意为止 有时分仍是不满意然而不知道怎么改了 觉得曾经到了本人的limit了
    ziyi327 发表于 2022-12-5 12:11:53

    ziyi327 29#

    2022-12-5 12:11:53

    好帖
    iiilv 发表于 2022-12-5 12:22:30

    iiilv 30#

    2022-12-5 12:22:30


    做名目时,往往很急的,没有你那种高兴啦

    我是写好unit test,代码后就放那了,假如和需要不合错误,再回来改啦我觉察程度低的很容易写的代码都是代码繁杂度高的函数,程度假如高的,会努力于写代码繁杂度很低的函数

    我想代码繁杂度很低的函数是要花许多心理去写的,不是顺手就能写出来的
    ycwwjj2008 发表于 2022-12-5 12:30:50

    ycwwjj2008 31#

    2022-12-5 12:30:50

    小白来求教这个函数繁杂度是看大O吗?
    丢失翅膀 发表于 2022-12-5 12:42:39

    丢失翅膀 32#

    2022-12-5 12:42:39



    https://juejin.cn/post/6844903495779237895

    按照这文章,我觉得函数最佳是程序构造,一根线,最容易读啦

    像上面的flow graph就太繁杂了




    https://crates.io/crates/complexity
    寒烟秋水 发表于 2022-12-5 12:52:05

    寒烟秋水 33#

    2022-12-5 12:52:05

    Complexity 要低固然不易,否则那末多人钻研algorithms.
    随风而舞 发表于 2022-12-5 12:58:32

    随风而舞 34#

    2022-12-5 12:58:32


    你说的算法是更高一个档次的啦,和我说的日常写的代码不是在一个层面上的啦。
    雾语凝咽 发表于 2022-12-5 13:04:53

    雾语凝咽 35#

    2022-12-5 13:04:53


    你是指solid准则?
    miya0603 发表于 2022-12-5 13:13:41

    miya0603 36#

    2022-12-5 13:13:41


    我说的是函数层面啦,没有回升到OO啦
    咿咿呀呀111 发表于 2022-12-5 13:21:22

    咿咿呀呀111 37#

    2022-12-5 13:21:22

    明确,分枝太多,switch 多,那可能自身设计的问题,笼统不敷。
    楚天维权网 发表于 2022-12-5 13:25:07

    楚天维权网 38#

    2022-12-5 13:25:07

    赞成,逻辑和代码越简略越好,连co妹妹ent都不必写,读起来便利,更易保护。

    有时需求trade off,好比常常用到的函数能够优化,损失些readability,写成macro或inline (C/C++)

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    注册会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题33

    帖子43

    积分196

    图文推荐