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

为什么总是感觉自己写的代码像一坨一样?

  •  
  •   Nick2VIPUser ·
    nickliqian · 2018-03-27 15:03:14 +08:00 · 5121 次点击
    这是一个创建于 2220 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写代码写着写着发现自己的代码又乱又不简洁也不易读。 对,感觉像一坨翔......

    第 1 条附言  ·  2018-03-27 22:37:39 +08:00
    感谢各位老哥的建议和回复,已发送感谢!!!
    真是特别好的一些建议,我可以慢慢消化好久了,哈哈。
    附言是大家回复的一些关键词~这边总结一下,取其中精华就好~
    封装
    抽象
    注释
    设计模式
    模块
    函数
    重构
    单元测试
    模块化
    代码大全
    GoF 设计模式
    敏捷软件开发原则模式和实践
    重构改善既有代码的设计
    代码整洁之道
    23 条回复    2018-03-27 22:37:56 +08:00
    xingis
        1
    xingis  
       2018-03-27 15:09:14 +08:00   ❤️ 5
    N 年 后回顾看你现在的代码, 你会发现 卧槽, 这代码怎么写出来的, 我当年怎么这么 NB :))
    lastpass
        2
    lastpass  
       2018-03-27 15:09:55 +08:00 via Android   ❤️ 1
    多封装,把类似的业务功能抽象出来。
    把写的烂的代码专门用个方法来放,
    写好注释和需要传递的参数和传出的参数。
    这样你写的再烂也不会有人去看你的这一块儿代码的。
    完美规避代码像一坨。
    precisi0nux
        3
    precisi0nux  
       2018-03-27 15:10:40 +08:00 via iPhone   ❤️ 1
    设计模式了解一下。
    pmispig
        4
    pmispig  
       2018-03-27 15:23:05 +08:00   ❤️ 1
    只要模块和函数设计得好,实现一坨翔完全没有关系,哈哈
    v23x
        5
    v23x  
       2018-03-27 16:12:37 +08:00   ❤️ 1
    读读 重构 相关的书
    hlwjia
        6
    hlwjia  
       2018-03-27 16:13:23 +08:00   ❤️ 1
    @xingis 真有
    WildCat
        7
    WildCat  
       2018-03-27 16:13:50 +08:00 via iPhone   ❤️ 1
    尝试写测试吧,容易测试的代码更容易是好代码
    tomychen
        8
    tomychen  
       2018-03-27 16:22:03 +08:00   ❤️ 1
    模块化写...然后多点强迫症
    强迫到变量名的一致性
    返回值的一致性
    vincenttone
        9
    vincenttone  
       2018-03-27 16:39:20 +08:00   ❤️ 1
    正常的,一是可能本来就应付写的,二是写的时候肯定不会考虑那么全面,三是人是一直在思考的
    几天后回头看自认为写的不错的代码,会觉得是一坨
    几个周后你看可能觉得是很多坨
    几个月后你可能已经看不懂了
    z0z
        10
    z0z  
       2018-03-27 16:42:32 +08:00   ❤️ 1
    说明你还年轻
    Hopetree
        11
    Hopetree  
       2018-03-27 16:45:18 +08:00   ❤️ 1
    面向函数编程,面向对象编程

    我感觉这样把东西封装一下就好多了,又容易看懂又容易管理
    annielong
        12
    annielong  
       2018-03-27 16:57:44 +08:00   ❤️ 1
    函数 对象都写好,但是最后发现以前写的算法实现看不懂了,哈哈
    codingKingKong
        13
    codingKingKong  
       2018-03-27 17:06:16 +08:00   ❤️ 2
    很正常, 比如你设计的时候, 分 3 个模块, 每个里 2 个函数, 然后写着写着, 你发现, 情况比较多, 又出现了一点公用的函数, 然后如果你这个时候心情好, 就又分出了一个模块, 或者弄出个工具类, 如果偷懒情绪来了, 就按照实现思路, 一路写写写, 并且安慰自己, 后期我会重构的. 然后程序写完了, 运行起来了, 改改改, 没有问题了, ok, 发布, 重构, 看哪天心情好了会干的. 综上, 为什么一坨呢:
    1.设计的时候设计的太差了, 或者压根没设计, 一切随心~佛性 coding
    2.写完了实在不想重构...
    justinwu
        14
    justinwu  
       2018-03-27 17:16:30 +08:00   ❤️ 2
    如果是函数写成一坨,多写多琢磨吧,有一本书叫代码大全,可以看看。
    如果是设计的话,几本书推荐看下:GoF 设计模式,敏捷软件开发原则模式和实践、重构改善既有代码的设计

    多年经验来看,代码雕成花又如何,代码烂却是业务高速发展大赚钱的时候,代码好却是蓝海变红业务萎缩不赚钱的时候。好代码、好设计,只在合适的时候,才显得重要。

    当然这不是代码写得烂的理由,有些路还是要走,走过了在回头看,对于技术的追求和应用会审慎很多。
    RorschachZZZ
        15
    RorschachZZZ  
       2018-03-27 17:21:15 +08:00   ❤️ 1
    刚写完的代码都是很吊的代码。随着时间推移、新需求、业务发生变化,代码就容易变成一坨屎。
    HuHui
        16
    HuHui  
       2018-03-27 17:24:40 +08:00 via Android   ❤️ 1
    放一个月左右再看
    owenliang
        17
    owenliang  
       2018-03-27 17:31:36 +08:00   ❤️ 2
    我感觉有些代码我都觉得自己牛逼,再写都担心写不出来。
    CoderGeek
        18
    CoderGeek  
       2018-03-27 17:32:38 +08:00   ❤️ 1
    培养自己写简洁 易维护的代码
    wangbenjun5
        19
    wangbenjun5  
       2018-03-27 18:23:46 +08:00   ❤️ 1
    代码质量很大程度和工期有关,有些公司一天要你写 10 个接口,有些公司一天让你写 2 个接口,如果有足够的时间,没道理不好好优化一下代码吧?
    Eugene1024
        20
    Eugene1024  
       2018-03-27 22:07:29 +08:00   ❤️ 1
    代码整洁之道这本书 了解下,即使你写的代码是一坨,前面也需要有个好看的门面
    dyllanwli
        21
    dyllanwli  
       2018-03-27 22:33:45 +08:00 via iPhone
    学习了。我也需要巩固代码能力
    CasualYours
        22
    CasualYours  
       2018-03-27 22:37:36 +08:00
    这就是进步啊
    akira
        23
    akira  
       2018-03-27 22:37:56 +08:00
    能支撑业务的代码就是好代码。。。感觉我要求好低啊。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3225 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 14:20 · PVG 22:20 · LAX 07:20 · JFK 10:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.