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

编程编到一定阶段之后,大家都有没有遇到这样的阶段?

  •  
  •   juicy · 2013-05-27 12:33:52 +08:00 · 5114 次点击
    这是一个创建于 4201 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前端快工作一年了,渐渐地发现在写代码的时候遇到一些很纠结的时刻。

    比如说:

    在一些代码实现的时候,你心里有若干中实现的方式,可以这么做,也可以那么做,但却不知道选哪个,一直纠结犹豫着,一直考虑着选了这样实现以后会不会遇到什么问题、是不是选另一个方法就会避免这种问题之类想起来可以无穷无尽的问题。。。经常被这些问题弄得筋疲力竭的,觉得编程就是折磨人的事情。

    还有,比如自己在鼓捣网站的时候,考虑某个交互问题的时候,往往会中止徘徊在“到底怎么样设计才比较好“的问题上。

    很苦恼,求有经验人士给予指导
    27 条回复    1970-01-01 08:00:00 +08:00
    davepkxxx
        1
    davepkxxx  
       2013-05-27 12:39:51 +08:00
    选个你自认为ok的方法开始动手吧,这都是积攒经验必经的过程。
    FrankFang128
        2
    FrankFang128  
       2013-05-27 12:40:01 +08:00 via Android
    先做,遇到问题再改。
    ushuz
        3
    ushuz  
       2013-05-27 12:48:42 +08:00
    做出原型之后再考虑有什么地方可改进的
    JimGee
        4
    JimGee  
       2013-05-27 13:29:12 +08:00
    把每次的过程详细记录下来,分析、比较方法的不同。
    sun391
        5
    sun391  
       2013-05-27 13:39:57 +08:00   ❤️ 1
    多尝试即可,重构的多了以后自然就知道该怎么办了
    otakustay
        6
    otakustay  
       2013-05-27 14:05:32 +08:00   ❤️ 1
    我觉得,会这样的原因就是,你遇到的问题还不够多。我觉得成长很大程度上靠失败的经验积累起来的,别怕错只管来就是了
    yunan
        7
    yunan  
       2013-05-27 14:08:30 +08:00 via Android
    推荐一本书《无从选择》
    Golevka
        8
    Golevka  
       2013-05-27 14:51:56 +08:00   ❤️ 1
    遇见这种情况我一般都直接用greedy algorithm...
    jjx
        9
    jjx  
       2013-05-27 15:45:11 +08:00
    完美主义作祟, 过了就好了

    用java或.net的都有这个阶段 , 因为这些语言务虚, 凡事必讲模式,架构等. 用动态语言php/python/ruby的会好些,因为这些语言务实
    juicy
        10
    juicy  
    OP
       2013-05-27 16:03:13 +08:00
    谢谢楼上的各位~

    @jjx 感觉确实有点完美主义的倾向,我总是倾向于找到最好的解决方法,可往往不存在最好的完美的解决方案

    @yunan 看了豆瓣的简介,似乎确实是我所面临的问题,有机会看看~
    wezzard
        11
    wezzard  
       2013-05-27 18:09:14 +08:00
    退回到原點,然後選擇一個最符合初衷的方案
    kangjia
        12
    kangjia  
       2013-05-27 22:05:48 +08:00
    没看懂是交互纠结还是代码纠结。
    如果是交互纠结,没建议。
    如果是代码纠结,也没建议。(真心不是来捣乱的。只能多试了。
    perrywky
        13
    perrywky  
       2013-05-27 22:57:46 +08:00
    我经常碰到这样的问题,在一些方案间犹豫不觉,浪费大量时间,搞得精疲力尽,心情沮丧
    这样做的目的无非是因为情况有点复杂,你想兼顾各种情况,做出最“完美”的设计,但其实你是掉坑里了,不停的原地打转
    在“折磨自己”无数次后,我现在的做法是,先用最简单直接的方法解决主要问题,让它上线
    上线稳定后再考虑其它情况,一个一个来,在这个过程中你会发现一些“范式”,可以有效解决之前纠结的问题,然后觉得之前的纠结很SB
    这个过程中可能需要一些重构,写点单元测试可以让重构顺畅点

    我现在觉得,好的设计不是一开始就能“想”出来的,而是在开发过程中“发现”出来的
    aisk
        14
    aisk  
       2013-05-27 23:00:06 +08:00
    参考奥卡姆剃刀原理
    juicy
        15
    juicy  
    OP
       2013-05-28 10:11:34 +08:00
    @perrywky 恩~~
    juicy
        16
    juicy  
    OP
       2013-05-28 10:15:42 +08:00
    @aisk 。。。奥卡姆剃刀原理
    alsotang
        17
    alsotang  
       2013-05-28 12:52:39 +08:00
    先可用,再重构。
    emohacker
        18
    emohacker  
       2013-05-28 14:18:46 +08:00
    @alsotang 赞同,我也是这么做的,重构会有新的认识,技能提升很快
    juicy
        19
    juicy  
    OP
       2013-05-28 14:27:04 +08:00
    @emohacker
    @alsotang

    恩~但不知道你们有没有遇到过前端一旦改了个东西,后端逻辑呀数据库结构啊整个都要发生巨大变化的情况?
    LincolnDz
        20
    LincolnDz  
       2013-05-28 14:36:06 +08:00
    可以去看看经济学上的两个方法
    emohacker
        21
    emohacker  
       2013-05-28 14:42:02 +08:00
    @juicy 感觉这种情况发生只有在大版本更新中,或者访问量上来了,你的程序性能优化空间还蛮大而需要做优化,况且即便要变数据库结构,肯定也要事先规划好数据转换逻辑,数据还是在那里的。

    之前经历过一个项目2.0变动非常大的,把逻辑理清楚,重构完之后感觉很舒服的,这个过程的艰辛在于如果你是中途接手的,那你就需要蛋疼别人给你留的坑,因为历史遗留问题是必然存在的。

    纠结完之后你就会感觉跟以前不一样鸟。

    可是感觉你的问题有点矛盾,前端的变动不应该牵动到底层数据逻辑才对,底层的数据逻辑由功能需求决定,前端是负责表现需求以及实现交互。你说的那种情况,我觉得应该是需求大变,前后端都得变
    xuan_lengyue
        22
    xuan_lengyue  
       2013-05-28 15:08:53 +08:00
    送给楼主一句话
    Done is better than perfect.
    首先把东西做出来用起来,然后你完全会有完全不同的视角,再重构。
    juicy
        23
    juicy  
    OP
       2013-05-28 15:48:59 +08:00
    @emohacker
    @xuan_lengyue

    恩,谢谢~心里大致有个数了
    efi
        24
    efi  
       2013-05-28 17:14:09 +08:00
    对完美主义者来说,应该这样想:先花一个小时做出一个屎一样的原型(好听点叫Minimum Viable Product),做出来了再说别的
    akira
        25
    akira  
       2013-05-28 17:20:19 +08:00
    所以国内的小老板们才是最理智的,
    管你用什么方法,先给我整个能跑的东西出来再说
    slimbloody
        26
    slimbloody  
       2013-05-28 18:24:27 +08:00
    premature optimization is the root of all evil
    funcman
        27
    funcman  
       2013-07-21 05:38:12 +08:00
    人不要以自己为上帝。
    你在想什么设计比较好,其实就是在想什么设计最好。
    满足需求就行,顶多照顾一下算得到的潜在需求。
    最好连潜在需求都别照顾,因为潜在需求其实就是个大坑。
    保持轻量,保持简单。
    千万不要跳入完美主义的深坑。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1944 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 93ms · UTC 16:24 · PVG 00:24 · LAX 08:24 · JFK 11:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.