回答在职前端的疑问:平时工作是主抓业务还是主抓技术?

7,305 阅读5分钟

这个问题应该是一年到三年前端比较容易遇到的问题:

现在越来越觉的写业务代码无趣了,感觉就是一个搬运工。技术栈主要是 vue + elementUI / react 。 前端工作已经有一年半多的时间了。我今年三月份突然想学习一下前端基础,在知乎上面知道的你,也报了你的班。虽然明面上用框架写业务代码写的贼6,也得到了别人的认可,但是实际上我知道我只停留在会写业务代码,并不知道技术原理的层面上。 最近几个月挺抵触公司业务的,我只想学一些前端基础。不好的是现在这家公司996,给我的空余时间比较少。最近公司的事情只是应付成完成,在业余时间看你的视频,写一点博客,我觉得这样挺好的。未来几年应该都会呆在上海,以后的目标是技术管理。 现在发现业务与学习碰撞了,我现在抵触业务,想去多学习前端基础的东西。平时工作是主抓业务还是主抓技术,我该怎么选择?

确实,你已经从新手变成了一个「熟手」,也可以胜任公司的工作安排。

只不过总觉得在日复一日地重复昨天的自己。

我也有过这种阶段。我说一下我的应对措施。

一、不存在纯粹的业务代码

将代码分为「业务代码」和「技术代码」是一种简单的二分法。但是实际情况可能并不是这样。我的经验中还有第三种代码,就是「业务技术代码」。

通俗地讲,这种代码就是专门给公司的业务造的轮子。

举例说明,假设你司常年使用 jQuery,你要做的就是用 jQuery 做做表格筛选、分页、轮播、表单验证等。这种工作看起来很没劲吧?

对于这种工作,我期望一个前端的成长路线应该是这样的:

  1. 第一阶级是应付工作。你通过搜索、查 Stackoverflow、复制粘贴等方式,将需求完成。代码看起来有点「面条」,但是能正常工作。
  2. 第二阶段是抽象分类。这个阶段你发现公司给你的需求是有规律的,表格筛选就那么几种模式,表单验证就那么几种规则,于是你写文章总结,或者是把代码固定出一个模板,这样一来,公司再来同样的需求,你可以非常快地搞定。
  3. 第三阶段是造轮子。第二阶段的代码在经过业务需求的验证后,你已经对这些代码的质量很有自信了,那么你就可以将这些代码抽离成一个个「业务轮子」,然后把这些轮子分享给前端同事和后端同事,让他们的需求也能又好又快地完成。
  4. 第四阶段是优化。你需要为这些轮子提供完善的使用文档、测试用例,如果你的公司人很多,你还要准备一个「推广计划」

这是一个非常好的成长路线,因为这就是我在阿里给自己规划的路线,而且我就是这么践行的。

你可能对第三阶段的「业务轮子」没有概念,那我举个例子。

在我加入团队之前,他们做分页要经过很多步骤,包括

  1. 复制 HTML 结构
  2. JS 初始化
  3. 后端接口商定
  4. CSS 调整

我做成轮子之后,就变成下面这样:

<div data-role="pager" data-total-page="10" data-page="3" 
     data-auto-page data-theme="taobao"></div>

使用者只需要提供总页数、当前页数和主题名称即可,后端接口的参数已经统一成在 URL 加 page=? 不需要再商定,用户点击分页器中的数字会有两个结果:

  • 如果有 data-auto-page 字段,就自动变更当前页面的 ?page=xxx 参数
  • 如果没有 data-auto-page 字段,就触发 'pagechange' 事件 这就是一个「业务轮子」,为公司的业务量身定做一个轮子。

在做的过程中你需要总结需求,分析用户(开发者)的使用习惯,还要参考 GitHub 上的优秀轮子。

类似的轮子我做了很多很多,并且分享给所有同事用。这样既能提高技术,又有成就感,何乐不为。

二、拒绝常态化加班

如果你司常年 996,而且不听劝阻,毫无悔改之意,我觉得你可以

  1. 通过上面的业务轮子提高自己的生产效率,这样你就多出来一些时间
  2. 用多出来的时间学习市面上的新技术
  3. 投简历,找一个不 996 的团队

我没有遇到过 996,但是我遇到过大小周的团队。

如果公司将这种制度常态化,我永远都是建议离职的,但是我不建议你在做得烂的时候离职,而是在把工作做得很好的时候离职。

一来告诉别人,我离开不是因为我不行。

二来给自己一个满意的答卷,这样你会更自信。

总结

总而言之,不要让自己处于恶性循环中(加班——代码烂——更要加班——代码更烂),而是要让自己处于良性循环中(加班——提升工作效率——加班变少——效率更高)。

有人说我连学习造「业务轮子」的时间没有怎么办,是不是只能强行跳槽?

我说:没有学习时间你怎么跳槽?顶多跳到一个差不多的公司。

希望对你有帮助。