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

135 天前
 CodePencil

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

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

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

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

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

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

1475 次点击
所在节点    职场话题
18 条回复
murmur
135 天前
没做过项目技术你记不住,看多少忘多少,看了你也不理解,还得上大项目,高并发,去踩坑
wuyazhishen
135 天前
上手做了才能学到东西,不然就算学懂了很快就会忘记。
ruyan2013
135 天前
如果理解的“技术水平”还只是停留在组件之间数据传递,代码混乱等,确实应该先多看看社区的优质代码,学习一下写法和结构。

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1056016

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX