V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CodePencil
V2EX  ›  职场话题

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

  •  
  •   CodePencil · 116 天前 · 1450 次点击
    这是一个创建于 116 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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