china521
V2EX  ›  问与答

关于程序员的代码洁癖问题, 如果找平衡.

  •  
  •   china521 · Jan 11, 2016 · 2063 views
    This topic created in 3817 days ago, the information mentioned may be changed or developed.

    举个简单的例子,拿 AngularJS 来说吧。

    有一个 DIV 里面要显示一些内容,但只有两处地方能用到,而且是重复的代码, 有几百行. 后期修改的机会很少.

    那么问题来了,是把这个 DIV 的渲染重用一下做成 directive 呢,还是直接复制粘贴,暴力一点...

    做成可重用的逼格高, 但, 只有两处能用到,划不来啊, 而且为了适应整体框架要费时间, 但美观, 更标准.

    直接复制粘贴可能要几秒就 OK 了, 重用代码有必要吗 ? 怎么寻找平衡点.

    还是说,这是原则问题,只要能重用的,全部写成模块。。不管用到的次数有多少
    还是说,效率第一, 复制粘贴, 几秒 OK.
    还是说,跟场景有关,项目动机, 跟任不任性有关。。。

    4 replies    2016-01-11 14:44:42 +08:00
    jinwyp
        1
    jinwyp  
       Jan 11, 2016   ❤️ 1
    使用复制粘贴,
    重复 3 次的组件并代码在 1000 行才做成 directive
    zhujinliang
        2
    zhujinliang  
       Jan 11, 2016   ❤️ 1
    复制 粘贴 再写个注释,说明这里跟那里是同一个逻辑,如果需要修改,别忘了

    个人有个习惯,决定一块代码是否需要单独出来,看能不能给这个函数或方法取一个简洁直观的名字,要是好几个单词都描述不了一块代码,那还是直接上代码吧
    Elethom
        3
    Elethom  
       Jan 11, 2016 via iPhone   ❤️ 3
    我都是寫成單獨的 module/class/template 的。哪怕一個數字只出現了兩次我也會寫個 constant ,一個列表裏只有兩行也會寫個 enum ,可能要變的東西全部提出來放在 config 裏。於是經常出現這樣的情況:小升級的時候有幾十個小細節要改,我做的 iOS 端或者 web 端這邊改個 config 改幾個 constant 什麼的半個小時就搞定刷 B 站去了,邊上做 Android 的哥哥吭哧吭哧搞了半個星期。

    iPhone 5 剛出來的時候別的程序員都在吭哧吭哧加班,我在刷 B 站,因為從 iPhone 3GS 時代寫的所有代碼就全部動態獲取屏幕尺寸根本不用改; iPhone 6 出來的時候別的程序員吭哧吭哧加班,我還在刷 B 站。嘻嘻嘻嘻嘻嘻嘻~

    從 2010 年到現在同樣的事情發生無數次了,你說要不要寫成模塊呢?
    pH
        4
    pH  
       Jan 11, 2016
    @Elethom 佩服!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5443 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 08:24 · PVG 16:24 · LAX 01:24 · JFK 04:24
    ♥ Do have faith in what you're doing.