目前我在一家外包公司做前端开发快一年了,大大小小的项目也做了一些,里面有一两个一直在持续增加功能的公司内部项目。
我目前遇到的问题就是,这个公司内部的项目是之前我刚入职的时候写的,随着功能的增加有点难以维护,例如 Vue 组件之间的数据传递等写的混乱,在我眼中那是之前我缺乏经验,基础不好,项目做的少导致的屎山代码。
我自己是对代码质量有高追求的,就想着把这个项目在业余时间重新写一下,但是这样就会又牵扯出几个问题
回到标题上说的,我想着要不等技术再学扎实点再重构这个项目,但是这显然不现实,因为还会出现上述第一个问题的情况,总会有更好的写法
学习技术需要做项目练习,但是技术不扎实做出来的项目后续难以维护,这就是我现在的困扰,希望 V 友们给个建议
1
murmur 156 天前
没做过项目技术你记不住,看多少忘多少,看了你也不理解,还得上大项目,高并发,去踩坑
|
2
wuyazhishen 156 天前
上手做了才能学到东西,不然就算学懂了很快就会忘记。
|
3
ruyan2013 156 天前
如果理解的“技术水平”还只是停留在组件之间数据传递,代码混乱等,确实应该先多看看社区的优质代码,学习一下写法和结构。
回到题目本身的话,个人来看,觉得没有一个较为复杂(指工程上复杂如跨多端项目,或者是交互复杂如 Figma/各类编辑器,或者是特定领域如 WebGL )的项目练手很难把技术练到位,看几篇文章、看点源码这种形式去学习是很虚的。 |
4
CodePencil OP @ruyan2013 补充一下,这是我很早之前的技术水平,当时多个组件之间数据传递,当时没有用状态管理,导致多个组件间(以及子组件嵌套)的数据传递通过 props ,导致有些臃肿,现在回过头来觉得当时应该使用状态管理来进行通信更简单点
|
5
CodePencil OP 我现在主要犹豫的是是否把之前写的项目重新再写一遍,但是这样存在大量的时间成本
|
6
pipixiarwksb 156 天前
@CodePencil 踏实点,没有又省时间成本又能短时间快速提高的捷径,大佬都是实践出来的,建议直接上手项目,这样算已经算是高效率了。。。
|
7
chuck1in 156 天前
啥状态管理。vue 没有类似 contextApi 之类的东西吗。都放到这个里面其他组件去取不就好了。
|
8
CodePencil OP @pipixiarwksb 感谢你的建议,我并不是是不想实践,只是一直以来都是先学习理论,理论学习完后去实践,然后再去学习理论...感觉如果只是实践没有理论的支撑也还是不行
|
9
CodePencil OP @chuck1in vuex ,pinia 这类用于多组件间共享数据的东西
|
10
CodePencil OP 先实践还是先理论我感觉有点像是先有鸡还是先有蛋的问题
|
11
reseen 155 天前
当然直接通过做项目来扎实技术,然后肯定是 1 啊,现在重构就是了,随着每次的重构,技术水平会大幅提升
|
12
MrOange 155 天前
古人说过,学而不思则罔,思而不学则殆
|
13
CodePencil OP @reseen 感谢你的回复,目前自己的计划是在看《现代 JavaScript 教程》进行案例的练习和笔记的记录,本来是想着巩固完 JavaScript 之后再重构的,想着就是担心重构太耗费时间影响我基础巩固的学习了
|
14
reseen 155 天前
@CodePencil 如果是我,我会先大概看一下书,知道这个语言有什么特性,什么功能怎么用,不会去考虑细节。现在 AI 时代,可能都不看书,先重构了再说。然后带着经验和问题再来看书,会有不一样的收获。
|
15
CodePencil OP @reseen 非常感谢你的回复,如果是你重构会参考一些优秀的开源项目吗?我之前是想参考 Soybean Admin 这个项目,顺便学习它的规范和文件格式,但是人家封装的太好了,很多有点过于复杂,导致我离重构项目的目标越来额远
|
16
reseen 155 天前 1
@CodePencil 会参考,但最终还是按自己的思路来。没有一定的功力,仿照大牛的架构和风格,只会画虎不成反类犬。关键在于先写起来再说,哪怕一天写一百行,最终删到只有 10 行,我一直感觉我的天赋点,不在写代码这块,所以多写一写可能才有别人的普通水平。
|
17
CodePencil OP @reseen 嗯,感恩你的建议
|
18
joshua7v 155 天前
理论+实践 缺一不可
|