V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kaiger
V2EX  ›  程序员

如何写出更优雅的代码。

  •  
  •   kaiger · 2022-09-16 09:52:51 +08:00 · 7587 次点击
    这是一个创建于 560 天前的主题,其中的信息可能已经有所发展或是发生改变。

    what the code, is it shit ?

    今天看到这样一句话,觉得很符合我目前写的代码。

    想请教一下,如何写出让自己看了觉得不是 shit 的代码。

    61 条回复    2022-09-18 00:37:15 +08:00
    BeijingBaby
        1
    BeijingBaby  
       2022-09-16 09:54:44 +08:00   ❤️ 1
    自己很难评判,但别人 code review 的时候,说脏话的次数,决定了代码质量。
    kaiger
        2
    kaiger  
    OP
       2022-09-16 09:58:10 +08:00
    @BeijingBaby #1

    自己 code review ,说脏话的次数也可以看出代码的质量 [dog]
    cmdOptionKana
        3
    cmdOptionKana  
       2022-09-16 10:04:59 +08:00
    还能如何,学算法、学编程模式、多看优秀开源代码、多练手,来来去去就是这些基本的方法。
    williamjing
        4
    williamjing  
       2022-09-16 10:09:36 +08:00
    无他,唯手熟尔。 -- 卖油翁
    多学别人最佳实践,并且基础是否牢固,决定了程序员的职业高度。
    www5070504
        5
    www5070504  
       2022-09-16 10:12:47 +08:00
    注释的质量也很重要 注释写的垃的看着脏话更多
    taowen
        6
    taowen  
       2022-09-16 10:15:34 +08:00
    https://zhuanlan.zhihu.com/p/34982747 如何提高代码的可读性
    T0m008
        7
    T0m008  
       2022-09-16 10:17:34 +08:00   ❤️ 19
    写代码的时候翘起你的小拇指
    catinsides
        8
    catinsides  
       2022-09-16 10:20:51 +08:00
    w4ngzhen
        9
    w4ngzhen  
       2022-09-16 10:22:55 +08:00   ❤️ 2
    我现在的做法就是多看一些别人的代码,因为有的时候,优雅的代码是需要一定的风格的,可以参考别人的风格。
    zhouyg
        10
    zhouyg  
       2022-09-16 10:24:08 +08:00
    首先定义什么是“优雅”
    nba2k9
        11
    nba2k9  
       2022-09-16 10:25:06 +08:00
    最重要的就是选一个好看的主题和字体
    kaf
        12
    kaf  
       2022-09-16 10:25:28 +08:00
    写的时候多想想设计模式
    hambers
        13
    hambers  
       2022-09-16 10:29:54 +08:00   ❤️ 2
    首先,得有一个“正常”的产品经理?
    studycode
        14
    studycode  
       2022-09-16 10:30:17 +08:00
    @w4ngzhen 一般在哪里看优秀代码?
    runningman
        15
    runningman  
       2022-09-16 10:31:14 +08:00
    写出赚钱的 code 就行
    popn74
        16
    popn74  
       2022-09-16 10:31:50 +08:00   ❤️ 1
    尽量简洁易维护的设计,完成复杂的功能
    kooze
        17
    kooze  
       2022-09-16 10:33:43 +08:00
    干掉那个产品经理
    weeevv
        18
    weeevv  
       2022-09-16 11:03:28 +08:00
    rust ,函数式。
    yaphets666
        19
    yaphets666  
       2022-09-16 11:04:11 +08:00
    代码的优雅其实是最次要的,代码最重要的是人可以看得懂,看不懂就坏了
    weeevv
        20
    weeevv  
       2022-09-16 11:18:31 +08:00
    @weeevv 但也不是适用所有场合。
    shanyuguangyun
        21
    shanyuguangyun  
       2022-09-16 11:28:26 +08:00
    桌面上放杯红酒
    HugoChao
        22
    HugoChao  
       2022-09-16 11:42:16 +08:00
    代码大全这本书蛮不错的,可以看看
    jack778
        23
    jack778  
       2022-09-16 12:26:36 +08:00
    不管什么方法,里面的代码行数不能超过 30 行,类的行数不能超过 500 行
    meeop
        24
    meeop  
       2022-09-16 13:24:21 +08:00
    1 对优雅给出量化标准
    无非是:性能好,代码量低,逻辑清晰整洁,扩展性强这些
    不可兼得

    2 针对量化标准度量,然后迭代直到无可迭代
    比如要性能,计量下现在的耗时,耗 cpu,耗内存
    优化到无法再降低,就是你力所能及的优雅了



    实际上这是个伪命题,一般意义的优雅标准每个人都不一样,想做的优雅一点无非是针对上述指标做的超过平均水平就行,但这么做毫无意义

    不要过早优化

    把时间用来学习,追妹子,做收益大的项目更好
    lian3204321
        25
    lian3204321  
       2022-09-16 13:28:48 +08:00
    为啥要优雅,bug 多点,维护的人员还能多点。除了做自己项目。
    busln
        26
    busln  
       2022-09-16 13:31:18 +08:00
    烂代码往往都有个共同点:过段时间,连自己都看不懂。
    cosmosz
        27
    cosmosz  
       2022-09-16 13:41:42 +08:00
    - 多用 static code analysis tools, linter 之类的。给你报错的时候 读一读为啥。
    - 写测试。code 质量越低 测试也越难写。
    Leviathann
        28
    Leviathann  
       2022-09-16 13:48:36 +08:00
    @jack778 那有 50 个字段要赋值怎么办?
    chocotan
        29
    chocotan  
       2022-09-16 13:51:23 +08:00   ❤️ 1
    我有个朋友做过几期视频
    [ [优雅编程-01] 初始化 Gradle 工程,引入单元测试-哔哩哔哩] https://b23.tv/yNrPqm8
    不过他已经鸽了好久了
    1gYezi
        30
    1gYezi  
       2022-09-16 13:59:11 +08:00
    可读性、维护性、扩展性
    TWorldIsNButThis
        31
    TWorldIsNButThis  
       2022-09-16 14:11:21 +08:00 via iPhone
    @chocotan wow
    这个我当时追的津津有味,每期不落
    学到了很多现代 Javaweb 的工程实践
    Tianqi
        32
    Tianqi  
       2022-09-16 14:25:35 +08:00
    可以看看 Clean Code 和 Code Complete 这两本书
    zbatman
        33
    zbatman  
       2022-09-16 14:38:41 +08:00
    建议不看其他人的代码,然后认为自己的代码是最优雅的
    dhq
        34
    dhq  
       2022-09-16 15:07:56 +08:00
    不写
    Daiwf
        35
    Daiwf  
       2022-09-16 15:11:18 +08:00
    太优雅不行,要写的别人看不懂。就不会被裁员了。写的太优雅,接你的项目分分钟。那肯定先裁你。而且你写的代码都不出 bug ,领导也记不住你。觉得你干的活太 low.
    likunyan
        36
    likunyan  
       2022-09-16 15:12:46 +08:00
    如果连格式化都没有,那肯定是 shit 。-- 鲁迅
    hzjseasea
        37
    hzjseasea  
       2022-09-16 15:31:30 +08:00
    先成为一个优雅的人,比如说从酒精灯烧咖啡开始
    newSimpleLife
        38
    newSimpleLife  
       2022-09-16 15:31:58 +08:00
    我不知道如何一下写出最好的 我只知道我会尽力每次优化 思考 一直慢慢写出来好看的代码
    xz410236056
        39
    xz410236056  
       2022-09-16 15:49:16 +08:00
    穿西装写
    johnnyleaf
        40
    johnnyleaf  
       2022-09-16 16:02:29 +08:00   ❤️ 2
    允许复杂的定义,但不允许复杂的调用
    alen0206
        41
    alen0206  
       2022-09-16 16:25:31 +08:00
    简洁,易懂,拓展性,高内聚,低耦合
    to2false
        42
    to2false  
       2022-09-16 17:13:55 +08:00
    当你修改的时候发现不爽的地方,总结该如何避免
    leegradyllljjjj
        43
    leegradyllljjjj  
       2022-09-16 17:18:44 +08:00
    能产生更多达不溜的代码就是“优雅”的代码
    lysS
        44
    lysS  
       2022-09-16 17:25:59 +08:00
    不要过度设计
    binge921
        46
    binge921  
       2022-09-16 17:33:45 +08:00
    先成为优雅的人
    jiangbao888
        47
    jiangbao888  
       2022-09-16 18:29:02 +08:00
    @T0m008 试了一下, 影响敲回车键啊
    jones2000
        48
    jones2000  
       2022-09-16 22:03:33 +08:00
    不停的重构, 直到自己感觉“优雅” 就可以了, 毕竟自己写的代码也就自己看看,其他人一般也不会看, 除非交接的时候。
    nojsja
        49
    nojsja  
       2022-09-16 22:04:56 +08:00
    《 Code Complete 》
    securityCoding
        50
    securityCoding  
       2022-09-16 22:12:05 +08:00   ❤️ 1
    多看看明星开源项目源码,可读性排第一,不要瞎几把封装
    cxbig
        51
    cxbig  
       2022-09-16 23:11:36 +08:00
    多写。遵守语言基本的格式规范。
    当下不过度纠结、能跑就行。经验增长了,代码自然越来越好。
    ffgrinder
        52
    ffgrinder  
       2022-09-17 00:29:43 +08:00
    @securityCoding #49 我也想说,python 好多玩意都是从开源的库里面学会的。
    zhuweiyou
        53
    zhuweiyou  
       2022-09-17 00:35:08 +08:00
    我感觉可维护更重要,至于什么命名注释那些都是小问题.
    hackpro
        54
    hackpro  
       2022-09-17 00:40:23 +08:00 via iPhone
    @BeijingBaby #1 那可不一定
    当年看 effective c++和 more effective c++的时候 卧槽原来是这样 卧槽还能这样😄
    qiumaoyuan
        55
    qiumaoyuan  
       2022-09-17 00:51:44 +08:00 via Android
    消除重复,花精力命名,完。
    Suntz
        56
    Suntz  
       2022-09-17 09:42:23 +08:00
    简单
    GiantHard
        57
    GiantHard  
       2022-09-17 10:07:16 +08:00
    不可测试的代码肯定比容易测试的代码更加 shit ,所以建议使用 TDD
    Asimov01
        58
    Asimov01  
       2022-09-17 11:36:55 +08:00
    我非常喜欢和推崇阮一峰先生的看法:Write solid/simple/stupid code.
    james504
        59
    james504  
       2022-09-17 14:16:13 +08:00 via Android
    学好语文,
    学好逻辑,
    简单不复杂,
    不瞎看别人的代码,
    遵循规范不为了 X X 而 X X 。
    someonedeng
        60
    someonedeng  
       2022-09-17 20:31:58 +08:00
    质朴可读的代码挺重要
    alexmy
        61
    alexmy  
       2022-09-18 00:37:15 +08:00
    过一个月,三个月再看看,会不会觉得当初应该这么写,不应该那么写。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2797 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 14:46 · PVG 22:46 · LAX 07:46 · JFK 10:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.