V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
codermagefox
V2EX  ›  JavaScript

写了一大堆狗屎代码,跪求如何锻炼自己的函数抽象能力?

  •  
  •   codermagefox · 2017-09-04 22:57:54 +08:00 · 2835 次点击
    这是一个创建于 2619 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天其实心情挺低落的. 也看过一点设计模式方面的书,看了一点 SICP,算是个吹牛逼份子,说起好程序也知道是高内聚低耦合简洁优雅. 今天吃完饭没事开始想着重构一下自己的代码,越重构越难受.

    我的代码写的真的是垃圾的不行,垃圾到自己都看不进去.重构重新进行抽象基本就是抽了一层又一层,再回头看自己写的业务代码,都不敢相信是自己写的.

    我工作时间不长,但是一直有一种"我能写好业务了"的错觉,今天才发现原来自己写的都是垃圾狗屎,而且如果不抽出这种大块的时间思考重构,估计会持续产出大量狗屎.

    心情真的很差,来 V 站想问一下大家,怎么样才能锻炼好自己的抽象能力,让自己写代码的时候就能够意识到自己写的是垃圾,提高一点自己的写代码姿势?

    再次感谢.

    13 条回复    2017-09-06 14:04:22 +08:00
    freefcw
        1
    freefcw  
       2017-09-04 23:57:29 +08:00
    代码都是不断改出来的,没有谁一开始就能写出漂亮的代码,因为需求都是不断变更的。在不断变更代码的时候,对代码进行思考,调整结构

    最简单的方法,尽可能的一个函数和类的代码和功能少,所谓功能内聚,我写的这行代码是否要抽出来单独成为一个函数,这个 for 循环是否需要抽离,这个 if 里面的分支是否单独成一个函数,代码最基础的就是函数,函数这块整好了,后面都要容易很多

    多研究 SOLID 原则,这个是最基本的,设计模式也只是衍生品
    ericls
        2
    ericls  
       2017-09-05 08:29:59 +08:00 via iPhone
    用户代码还是工程代码?
    ResidualSoils
        3
    ResidualSoils  
       2017-09-05 08:40:04 +08:00 via Android
    楼主加油,顺便求介绍一本设计模式的书。
    nineyang
        4
    nineyang  
       2017-09-05 08:48:48 +08:00   ❤️ 1
    @ResidualSoils HEAD 家的还不错。
    codermagefox
        5
    codermagefox  
    OP
       2017-09-05 09:32:23 +08:00
    @freefcw 主要是有些东西自己真的想不到应该这么抽象,小公司又没有人做 Review,导致每次都是事后诸葛亮,重构的事后才觉得自己写的烂
    ResidualSoils
        6
    ResidualSoils  
       2017-09-05 10:03:28 +08:00
    @nineyang Thanks
    codermagefox
        7
    codermagefox  
    OP
       2017-09-05 10:05:51 +08:00
    @ericls 小公司瞎 b 写的业务代码...
    codermagefox
        8
    codermagefox  
    OP
       2017-09-05 10:06:10 +08:00
    @ResidualSoils 我只看了一点点,自己水平也烂就不推荐了...
    newtype0092
        9
    newtype0092  
       2017-09-05 10:55:58 +08:00
    @codermagefox 能知道自己代码烂就很好啊,我每次看几个月前的代码也是觉得各种问题,感觉自己烂的地方思考下怎么优化,或者看别人的类似的地方怎么写,最怕有些人写的稀烂还不自知,就没有什么提高的空间了。
    qwertyssp
        10
    qwertyssp  
       2017-09-05 11:31:59 +08:00
    同求
    8355
        11
    8355  
       2017-09-05 15:10:37 +08:00
    我自己的经验就是多看别人写的一些代码, 看设计模式之类的没什么用 那些都是理论的东西 你还得结合你的业务实际情况来写, 找找前辈写的类似功能的代码 有时候看别人封装的好 但实际上你用不到这么多功能的.
    codermagefox
        12
    codermagefox  
    OP
       2017-09-05 19:35:12 +08:00
    @8355 如果看设计模式没用,看别人的代码感觉就是有一丢丢用,是我太蠢了吗...自己写起来还是屎一样的
    whosesmile
        13
    whosesmile  
       2017-09-06 14:04:22 +08:00
    设计模式和业务代码写的怎么样没有太大关系,设计模式更多是在架构层次。

    你可以看看重构的书,代码整洁之道,重构改善既有代码之类的,不过一般都是用 Java 描述,但是道理是通的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2693 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 83ms · UTC 15:28 · PVG 23:28 · LAX 07:28 · JFK 10:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.