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

如何写出更优雅的代码。

  •  
  •   kaiger · 82 天前 · 6491 次点击
    这是一个创建于 82 天前的主题,其中的信息可能已经有所发展或是发生改变。

    what the code, is it shit ?

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

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

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

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

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



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

    不要过早优化

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