究竟是先扎实技术再做项目还是直接通过做项目扎实技术? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CodePencil
V2EX    职场话题

究竟是先扎实技术再做项目还是直接通过做项目扎实技术?

  •  
  •   CodePencil 2024-07-09 17:16:41 +08:00 1985 次点击
    这是一个创建于 463 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前我在一家外包公司做前端开发快一年了,大大小小的项目也做了一些,里面有一两个一直在持续增加功能的公司内部项目。

    我目前遇到的问题就是,这个公司内部的项目是之前我刚入职的时候写的,随着功能的增加有点难以维护,例如 Vue 组件之间的数据传递等写的混乱,在我眼中那是之前我缺乏经验,基础不好,项目做的少导致的屎山代码。

    我自己是对代码质量有高追求的,就想着把这个项目在业余时间重新写一下,但是这样就会又牵扯出几个问题

    1. 我现在重构,未来等我技术水平提高了,肯定会又嫌弃现在写的代码,肯定又想重构
    2. 如果我现在不重构项目,继续在这屎山代码上加功能我很难受

    回到标题上说的,我想着要不等技术再学扎实点再重构这个项目,但是这显然不现实,因为还会出现上述第一个问题的情况,总会有更好的写法

    学习技术需要做项目练习,但是技术不扎实做出来的项目后续难以维护,这就是我现在的困扰,希望 V 友们给个建议

    18 条回复    2024-07-10 22:20:20 +08:00
    murmur
        1
    murmur  
       2024-07-09 17:23:27 +08:00
    没做过项目技术你记不住,看多少忘多少,看了你也不理解,还得上大项目,高并发,去踩坑
    wuyazhishen
        2
    wuyazhishen  
       2024-07-09 17:44:26 +08:00
    上手做了才能学到东西,不然就算学懂了很快就会忘记。
    ruyan2013
        3
    ruyan2013  
       2024-07-09 17:53:44 +08:00
    如果理解的“技术水平”还只是停留在组件之间数据传递,代码混乱等,确实应该先多看看社区的优质代码,学习一下写法和结构。

    回到题目本身的话,个人来看,觉得没有一个较为复杂(指工程上复杂如跨多端项目,或者是交互复杂如 Figma/各类编辑器,或者是特定领域如 WebGL )的项目练手很难把技术练到位,看几篇文章、看点源码这种形式去学习是很虚的。
    CodePencil
        4
    CodePencil  
    OP
       2024-07-09 19:28:34 +08:00
    @ruyan2013 补充一下,这是我很早之前的技术水平,当时多个组件之间数据传递,当时没有用状态管理,导致多个组件间(以及子组件嵌套)的数据传递通过 props ,导致有些臃肿,现在回过头来觉得当时应该使用状态管理来进行通信更简单点
    CodePencil
        5
    CodePencil  
    OP
       2024-07-09 19:34:01 +08:00
    我现在主要犹豫的是是否把之前写的项目重新再写一遍,但是这样存在大量的时间成本
    pipixiarwksb
        6
    pipixiarwksb  
       2024-07-09 21:43:23 +08:00
    @CodePencil 踏实点,没有又省时间成本又能短时间快速提高的捷径,大佬都是实践出来的,建议直接上手项目,这样算已经算是高效率了。。。
    chuck1in
        7
    chuck1in  
       2024-07-09 22:33:17 +08:00
    啥状态管理。vue 没有类似 contextApi 之类的东西吗。都放到这个里面其他组件去取不就好了。
    CodePencil
        8
    CodePencil  
    OP
       2024-07-09 22:35:38 +08:00
    @pipixiarwksb 感谢你的建议,我并不是是不想实践,只是一直以来都是先学习理论,理论学习完后去实践,然后再去学习理论...感觉如果只是实践没有理论的支撑也还是不行
    CodePencil
        9
    CodePencil  
    OP
       2024-07-09 22:36:13 +08:00
    @chuck1in vuex ,pinia 这类用于多组件间共享数据的东西
    CodePencil
        10
    CodePencil  
    OP
       2024-07-09 22:37:59 +08:00
    先实践还是先理论我感觉有点像是先有鸡还是先有蛋的问题
    reseen
        11
    reseen  
       2024-07-10 09:10:22 +08:00
    当然直接通过做项目来扎实技术,然后肯定是 1 啊,现在重构就是了,随着每次的重构,技术水平会大幅提升
    MrOange
        12
    MrOange  
       2024-07-10 10:47:01 +08:00
    古人说过,学而不思则罔,思而不学则殆
    CodePencil
        13
    CodePencil  
    OP
       2024-07-10 11:58:35 +08:00
    @reseen 感谢你的回复,目前自己的计划是在看《现代 Javascript 教程》进行案例的练习和笔记的记录,本来是想着巩固完 Javascript 之后再重构的,想着就是担心重构太耗费时间影响我基础巩固的学习了
    reseen
        14
    reseen  
       2024-07-10 16:24:11 +08:00
    @CodePencil 如果是我,我会先大概看一下书,知道这个语言有什么特性,什么功能怎么用,不会去考虑细节。现在 AI 时代,可能都不看书,先重构了再说。然后带着经验和问题再来看书,会有不一样的收获。
    CodePencil
        15
    CodePencil  
    OP
       2024-07-10 16:34:58 +08:00
    @reseen 非常感谢你的回复,如果是你重构会参考一些优秀的开源项目吗?我之前是想参考 Soybean Admin 这个项目,顺便学习它的规范和文件格式,但是人家封装的太好了,很多有点过于复杂,导致我离重构项目的目标越来额远
    reseen
        16
    reseen  
       2024-07-10 16:54:20 +08:00   1
    @CodePencil 会参考,但最终还是按自己的思路来。没有一定的功力,仿照大牛的架构和风格,只会画虎不成反类犬。关键在于先写起来再说,哪怕一天写一百行,最终删到只有 10 行,我一直感觉我的天赋点,不在写代码这块,所以多写一写可能才有别人的普通水平。
    CodePencil
        17
    CodePencil  
    OP
       2024-07-10 16:56:16 +08:00
    @reseen 嗯,感恩你的建议
    joshua7v
        18
    joshua7v  
       2024-07-10 22:20:20 +08:00
    理论+实践 缺一不可
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1088 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:18 PVG 07:18 LAX 16:18 JFK 19:18
    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