我们需要什么样的帮助,由“前端收徒”想到的

2021-05-18 16:46:05 +08:00
 ianva
看了前端收徒的帖子挺有感触的是,大多数的指导和培训都只是帮助初学者入门,但大部分的有经验的从业者也是需要一些帮助,我们经常会抱怨公司的某个 legacy 项目烂如💩山,那💩山是怎么来的?有很多朋友面对这个情况励志重构,但限于眼界和经验,重构出的结果在几次需求的变更之后又成为了变成了新的山峰。

我接触过很多初级的开发者,他们可能都会使用库和框架,都能实现功能,但问题是他们代码可能运行不了两周就得重写,我也面试过一些前端的 leader,确实有丰富的经验,了解过从上古到现代的各种框架,如数家珍,但真让他去做一个项目,都无法完成基本的建模,数据和状态甚至都无法分辨。

作为开发,其实大量的时间都是面对业务,新技术只是改善了开发的体验,但并没有提升项目的质量,和开发人员的素养。我们真正需要的是抽象的能力,比如 SICP 中提到的的,构造过程抽象,构造数据现象,模块化、对象和状态,元语言抽象,这是我们编程思考的基础。

前端的开发可能是这方面确实最大的一个群体,很多人没想到过一设计好一个 view model,能够让项目的维护性稳定有多大的提升。很多人都在讨论 react hooks 如此好用,但从没考虑过如何使用它剥离业务。很多人没有数据分层的概念,以至于无法在维护的时候理清逻辑等等。

我们如何能改善这些,我觉得我们不止是需要培训,我们需要在做具体业务的时候有人能够指导,所以 code review 应该是不错的方式。

有想法做一个这方面的业务实践,本人做过大厂的架构,也在创业公司和外企做过 leader,还是有一些实践,但我觉得如果有经验的开发者都能去做这样的事情我们面对的💩山也回越来越少。
4720 次点击
所在节点    程序员
48 条回复
yitingbai
2021-05-18 16:47:44 +08:00
不需要
kop1989
2021-05-18 16:50:39 +08:00
code review 的问题在于说会暴露业务,这其实是所有人都不愿意被看到的。

而且在你对次项目、产品没有足够了解的前提下,聊 code review 其实都是鸡同鸭讲。

那么,会有人把自己的产品思路、业务、逻辑、代码公布给另外一个人,只求另外一个人的 code review 建议么?
NillSpake
2021-05-18 16:51:59 +08:00
其实现在很多规约插件,例如阿里规约等等等,个人感觉引入几个插件将插件提示的能优化的都优化了,基本上都没什么大问题,而且还能快速统一规范
ianva
2021-05-18 16:53:34 +08:00
@kop1989 只是提供一种方式,如何做应该会有很多办法,比如一个虚拟项目
ianva
2021-05-18 16:54:00 +08:00
@NillSpake 优化和规范并不能解决这些问题,知是有助于统一
rioshikelong121
2021-05-18 16:54:27 +08:00
不能暴露业务代码是个问题。 但是我觉得我们可以组织一波重构、Clean Code 之类的活动或者群。 先出一个题目,然后大家抽空实现下,然后进行交叉 review,也可以是 group 形式的 review 。

我愿意参加这样的活动。
ianva
2021-05-18 16:55:19 +08:00
@rioshikelong121 挺好的建议,出题也是个有挑战的事情,其实具体业务是最容易的
Mithril
2021-05-18 16:56:11 +08:00
其实无论是什么样的开发,抽象能力都是最关键的。
如何分析需求,从中抽象出来数据模型,对结构分层抽象以隔离变化,如何设计接口从而保证测试友好。
这些才是保证项目顺利进行下去,并且稳定可维护的关键。
但这些恰恰又是没法在一两个小时的面试中考察到的,也难以通过几次分享,几篇文章讲明白。只能通过带着新手 Review 代码,同时给他讲明白为何要这样设计,并且让他跟自己的设计进行对比学习才能逐渐学会。
成本实在是太高了。
ianva
2021-05-18 16:57:26 +08:00
@Mithril 是的,相比学会一个新技术,真是授人以渔
kop1989
2021-05-18 17:00:25 +08:00
@ianva #4 这个 idea 不错,可以理解为是业务抽象界的“LeetCode”,但也很容易被抹黑为“收割廉价劳动力”😂
ianva
2021-05-18 17:01:10 +08:00
@kop1989 为啥是“收割廉价劳动力”
wiwby
2021-05-18 17:08:29 +08:00
大量门外汉培训一下就转前端了,能有啥设计和抽象能力,哈哈哈
ianva
2021-05-18 17:11:03 +08:00
@wiwby 培训赚钱
godbasin
2021-05-18 17:17:56 +08:00
需要发现我的宝藏博客: https://godbasin.github.io/front-end-playground/
----
哈哈哈推了个广告,其实个人觉得:
1. 入门的难题在于不知道如何下手,调试技巧、常用工具、怎么通过关键字搜索找到解决办法,等等
2. 入门阶段过了之后,工作内容也比较简单,这时候会比较迷茫,前端内容又多又广,不知道该怎么学习、怎样提升自己,这个之前我有简单整理个视频讲了下,还是比较建议比较迷茫的小伙伴看看的: https://www.bilibili.com/video/BV1gK4y1N7Qp/
3. 至于剩下的,更多是工作中的一些工作方式和方法、思考问题的角度和方式,这些软技能对我们工作的影响常常会被很多人忽略,但它们都是特别重要的技能

于是乎又来了广告,推荐自己的一本新书: https://www.ituring.com.cn/book/2942

这一大段话看起来全是自己的推广,但是其实我认为很多内容的确可以带来不少的帮助,真心希望大家可以读一下,书不贵只有 28 块钱,而且我开了 pdf 的下载,所以其实更多我是希望大家能看到其中的内容,我的愿望是以后不需要依赖专栏、书籍购买的方式,就有足够的渠道可以给大家分享更多有价值的内容~~~
ianva
2021-05-18 17:28:16 +08:00
@godbasin 满满的干货啊,支持一下
chogath
2021-05-18 17:34:48 +08:00
根据楼主的发言,可以归结为三个子前提:

1. 合理的项目架构;
2. 与时俱进的调整项目的复杂度;
3. 稳定的核心团队与可落地的方法论;

不论从哪个角度,都很难实现;所以说没有银弹。
agdhole
2021-05-18 17:48:13 +08:00
最佳实践
chogath
2021-05-18 17:54:59 +08:00
@godbasin 你可真是个小聪明
005008
2021-05-18 18:06:36 +08:00
只能在需求和场景下对应优化了
KuroNekoFan
2021-05-18 19:25:40 +08:00
数据分层真的是好的实践吗?每当我改别人的东西发现需要 jump 好多文件我就觉得蛋疼

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

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

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

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

© 2021 V2EX