“重复造轮子”这种想法可取吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jiawa
V2EX    PHP

“重复造轮子”这种想法可取吗?

  •  
  •   jiawa 2018-02-10 13:48:25 +08:00 5735 次点击
    这是一个创建于 2891 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我最近在看 Laravel 框架,里面已经实现了一些功能。像用户验证,csrf 之类的东西。这种情况下如果要实现一个用户登录功能或者别的什么功能,是自己写好呢,还是用现成的代码好呢?

    18 条回复    2018-05-07 13:56:13 +08:00
    choulinlin
        1
    choulinlin  
       2018-02-10 13:50:47 +08:00
    当然现成 直接用 voyager
    maichael
        2
    maichael  
       2018-02-10 13:51:16 +08:00
    看你的目的是学习还是做真实的项目,或者认为自己能造一个更好的轮子。

    学习可以“重复造轮子”,做项目最好用现成的。
    chinvo
        3
    chinvo  
       2018-02-10 13:53:38 +08:00
    早些时闲着无聊候造了个 laravel 的用户管理轮子,现在做到项目里面基本上是直接用。
    linxl
        4
    linxl  
       2018-02-10 13:57:54 +08:00
    能直接用的直接用
    Nobitasean
        5
    Nobitasean  
       2018-02-10 14:09:49 +08:00
    既然都选择用 php 那当然就是快速生产啊,有轮子就用
    wxsm
        6
    wxsm  
       2018-02-10 14:26:57 +08:00
    取决于你的目的。学习 or 工作
    jiawa
        7
    jiawa  
    OP
       2018-02-10 22:22:36 +08:00 via iPad
    谢谢各位的解答。不过我已经决定重复造轮子了。
    q397064399
        8
    q397064399  
       2018-02-11 06:47:59 +08:00
    @jiawa #7 公司的项目的话 还是用业界成熟 现成的东西吧, 自己写,风险太大,
    owenliang
        9
    owenliang  
       2018-02-11 07:39:13 +08:00 via Android
    框架带的附加功能是给自由开发者玩的,为公司做项目需要考虑掌控度和扩展性。
    wizardoz
        10
    wizardoz  
       2018-02-11 09:22:09 +08:00
    如果不了解现在的轮子,那么先了解现有的轮子。
    如果了解了现有的轮子,但是不能满足你的要求,那么自己造一个更好的轮子。
    linxb
        11
    linxb  
       2018-02-11 10:22:13 +08:00
    自己的项目无所谓,如果是公司的项目,用现有的轮子就要考虑对轮子的熟悉程度了,毕竟需求一天一个变,你对轮子不了解,会用但不会拆分扩展那还不如自己造个轮子。
    sagaxu
        12
    sagaxu  
       2018-02-11 11:09:22 +08:00 via Android
    在很多公司,轮子即 kpi,轮子即地位
    jiawa
        13
    jiawa  
    OP
       2018-02-11 11:16:26 +08:00
    @sagaxu 你的意思是优先用现成代码?
    guanhui07
        14
    guanhui07  
       2018-02-11 11:50:07 +08:00
    @jiawa 他意思是只有在公司造了不少 重复的轮子 才 有 kpi 才真的做了事
    zuohuadong
        15
    zuohuadong  
       2018-02-12 15:05:46 +08:00
    https://github.com/notadd/notadd 欢迎来一起造~
    zhouquanbest
        16
    zhouquanbest  
       2018-02-12 19:37:30 +08:00 via Android
    按照人类当前的技术水平 你想造出来举世无双的东西 是比较难得,肯定得从改进或者造新的轮子开始,然后根据自己的需求和设计 走到不同的分支
    phpok
        17
    phpok  
       2018-02-13 10:41:04 +08:00
    很有必要,PHPer 要进度,造个轮子是很有必要的。
    理由如下:
    1、草根出身的 PHPer 大部分不是科班出身(有不少是自学,或是培训班出来),想对来说比较缺少整体思路。造轮子过程就是对自己过往开发的一个总结,为提升开发水平做准备。(没有任何歧视,因为我的 PHP 也是自学的)
    2、造轮子过程,可以让我们在开发过程中养成考虑各种异常问题,我们都知道,开发往往是 80%的时间来处理 20%的问题( 80%都是正常的,没有问题)。

    当然,我这里也要说一下,不要想着一开始就马上造轮子。经历过这几个阶段后再来考虑造轮子:
    1、毕业生或是刚培训出来的新手,哪怕你在学校(培训班)学的多牛,出来工作时不要马上想着造轮子(天才不在考虑范围噢,我是针对像我这种的),这个时候要的就是使用轮子。我们上班所在的公司因为历史原因,都会遗留一些不算成熟的框架(或是缺少文档,或是代码写法不规范,或代码习惯不符合培训班,也不是现在 PSR4 之类的规范,自动加载机制不一样等等问题),这时候,我们要处理的就是把任务做完。
    2、工作二三年后,我想这时候,大部分人都做过很多项目吗(外包也算噢),这时候,大部分就会报怨,天天重复的工作。好烦噢。这时候,我们要做的就是做好发展准备(不是马上让你造轮子噢)。第一,将平时的代码整理收拾好。尝试完善现在公司的框架(没有框架,偿试进行简单的整合,不要吐槽老代码各种函数,也不要一味的吹捧对象编辑,合适的代码放在合适的地方就是最好的)

    经历上面两个阶段后,可以考虑造轮子了(其实那时候你会发现你的轮子差不多出来了)。

    小小总结下:
    造轮子有必要,但不能一味跟风。
    zpqsunny
        18
    zpqsunny  
       2018-05-07 13:56:13 +08:00
    可以不造,但要会造
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2815 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 08:13 PVG 16:13 LAX 00:13 JFK 03:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86