V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
statement
V2EX  ›  程序员

万事都在寻找最佳实践,是没有创造力还是不自信自己太菜

  •  1
     
  •   statement · 2020-07-04 12:37:19 +08:00 · 3680 次点击
    这是一个创建于 1633 天前的主题,其中的信息可能已经有所发展或是发生改变。

    发现好多事都会去找一个最佳实践来改一改,不然就很难下手。 自己也能做就是觉得可能有更成熟更好的,或者担心遗漏掉一些什么。

    总是觉得完全自己创造的东西可能会出问题。

    15 条回复    2020-07-05 22:33:22 +08:00
    dun
        1
    dun  
       2020-07-04 13:15:37 +08:00
    这是「懒」。
    secondwtq
        2
    secondwtq  
       2020-07-04 14:18:19 +08:00 via iPhone   ❤️ 3
    不是,这就是个人的能力限制。
    设想一个很实际的问题:你开发的项目,你依赖的其他代码都是按照最佳实践构建的,整个社区以最佳实践作为隐式的共识(或者叫 潜规则)。你不知道这些最佳实践,那你读不懂代码,用不了库,无法和其他人交流。
    在工作里就更别说了,你的公司的代码规范就是最佳实践,你写的代码不遵守那就等于是没用的代码。
    你一个人没有办法创造一个新的生态环境,没有办法自己做生意,不然你就不会用别人的语言,给别人的公司打工了。

    我举个例子,现在有句话说 C++已经过于复杂,现在学习 C++很多不是在学习 feature,而是学习 idiom 。C++里面有种 idiom 叫 CRTP,就是”类 A 继承模版类 B<T>,但是继承时的模版参数写成类 A 自己,即 A : B<A>”。你抛出一个问题,人家会说”CRTP 可以解决”,这时候你是不得不去查 CRTP 是什么。之后在代码注释里,在和其他人交流时也会用 CRTP 来指代这一 idiom,而不是把上面引号的内容重复一遍。

    需要注意的是,所谓”最佳实践”,不一定真的是”最佳”的,你说他是社区的最大公约数也无所谓,因为有的时候就是几个 KOL 暴论一番就搞出了个新的”最佳实践”,这个回复只是讨论了解已有的”最佳实践”的实际效果。
    KuroNekoFan
        3
    KuroNekoFan  
       2020-07-04 14:26:35 +08:00
    这种心态不是挺好的嘛,至少比盲目自信一点不遵循实践建议好
    Jrue0011
        4
    Jrue0011  
       2020-07-04 16:02:05 +08:00
    参考借鉴没什么问题,拿来主义和闭门造车都不好
    luckyrayyy
        5
    luckyrayyy  
       2020-07-04 16:03:20 +08:00
    我也是这样的...做个方案总想找到最优解,然后就改来改去
    namelosw
        6
    namelosw  
       2020-07-04 16:22:44 +08:00
    自己先不看答案想一套方案,然后看看标准答案。

    然后觉得哪个好就搞哪个。学习也是这个道理。
    InternetExplorer
        7
    InternetExplorer  
       2020-07-04 16:40:44 +08:00
    懒 + 完美主义(强迫症) + 拖延症

    克服方法的话可以试试 TDD,写完实现再重构优化
    cwjokaka
        8
    cwjokaka  
       2020-07-04 17:58:25 +08:00   ❤️ 1
    多看一些最佳实践,总结出自己的一套最佳实践
    xuanbg
        9
    xuanbg  
       2020-07-04 18:50:07 +08:00
    首先,楼主不知道如何解决问题,只知道懵懵懂懂地去寻找自己也不知道是不是的「最佳实践」。

    然后,我推测楼主其实是根本不知道问题是什么。这就比较僵硬……

    忘记是谁说过这么一句话:提出问题是技术活,解决问题是体力活。吾心有戚戚矣。
    dozeboy
        10
    dozeboy  
       2020-07-04 19:39:02 +08:00 via Android
    我也常常陷入这种困惑中。但现在觉得并没有什么最佳,技术是会一直进步的,这是一个动态的过程。好的程序员应该是在自己的能力范围内找出尽量好的方案,而不是一味追求最优解。对于公司来说,最佳也并不意味着最好,需要考虑时间,人力,维护等因素。
    盲目选择某一项技术和过于苛求一下子做到最好都不是好事。
    DoctorCat
        11
    DoctorCat  
       2020-07-04 19:46:22 +08:00
    不是菜,是没见过“世面”(不是贬义)没怎么看过别人怎么设计的,暂时无法融会贯通。
    不过,没关系,能 running 的代码才能产生价值。毕竟绝大部分人不是艺术家,写写闭源代码也是为养家糊口而已。别太纠结。
    ps:中国互联网早期有个比较有名气的软件,作者财务自由去美国了,把软件卖给某大公司,公司接到软件代码的码农表示这代码写得真 XX,表示自己也能写个更好的:就这?
    hst001
        12
    hst001  
       2020-07-04 20:27:17 +08:00
    少走弯路
    lizon
        13
    lizon  
       2020-07-04 21:30:30 +08:00   ❤️ 1
    寻找最佳实践很正常

    最佳实践是从过往的工程实践中获得的。最佳实践不一定是当前场景事实上的最优解,但一定是当前有限成本(经济成本,时间成本,智力成本,试错成本,后期维护成本等等)的情况下最值得优先尝试的方案,这个"值得"是从节省成本的角度来说的

    如果判断有改进的必要,那可以投入成本改进现有方案,适应当前细分场景就行了

    当然理想情况下你可以投入无限的时间成本,经济成本,了解所有细节,设计出一套适应当前情况的最优方案,但是情况又是不断变化的,现在的最优不代表永远的最优,这样做真的值得吗

    trade off
    mawerss1
        14
    mawerss1  
       2020-07-05 12:44:15 +08:00
    就是不会
    TransAM
        15
    TransAM  
       2020-07-05 22:33:22 +08:00 via Android
    很久以前 for 循环和 while 循环也是最佳实践,直到他们被做到了特性里面。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1069 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:05 · PVG 03:05 · LAX 11:05 · JFK 14:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.