提前转正啦!!!
这段时间有太多想记录分享的,但随着相册里的照片越积越多却又一直没整理,原本设想的月度复盘最终演变成了这样一篇转正综述😝。
简单 self review 了一下,相比五个月前的自己,最大的进步来自于四个方面:
对 Stack Overflow
、GitHub
等社区的使用
本科期间对这些社区的使用仅限于嫖开源项目,现在逐渐能根据业务导向去探索一些解决方案了,也慢慢能够将宽泛的业务需求总结成一个个 one-sentence question 去寻找一些最佳实践。相比从前只能在 CSDN 的屎山里遨游,似乎感觉自己慢慢有 web developer 的感觉了🤣。
面对业务难题的心态
如果要选这五个月来最难的一个需求,我觉得是贡献度页面的 PDF 下载——用从未使用过的库(html2canvas & jspdf)去完成一个定制化很高的需求。
拆开看其实就是两个大难点——从未使用过
& 定制化很高
。
前者还好,只需要花时间去读文档试 API;但对于后者,则意味着网上不会有完全可以参照的解决方案。
官方文档的目的是用最简示例让你明白核心 API 的用法,但如何去组合可用的几十上百个 API 来完成业务需求,这个是官方文档没法 cover 到的。记得刚开始做的时候确实毫无头绪,后来真的是某个瞬间突然有了想法:html2canvas 是基于 DOM node 的,那我结合业务需求去手动控制 DOM node 是不是就可以了呢?后来尝试了一个简单的 case 发现确实可以!
有了大方向,后面去磨逻辑就可以了,细节会非常多,但到了这个阶段,其实已经演变成了和第一个难点同一级别的问题了——花时间就可以解决的问题,俗称体力活🤣。
这个需求完成之后,有种完成进化的感觉。
quote 一下关于这件事的微博,记录了我的思考:
最近刚做完一个比较特殊的导出 PDF 需求,用的两个库都是第一次接触(
html2canvas
&jspdf
),一路上遇到了不少坑,最后都摸索着解决了。作为一个喜欢复盘的人,本来想着好好复盘一下这两个库的使用流程,但是后来好像就突然醒悟了:为什么要去细抠这两个库呢,在未来十几年开发生涯里用到这两个库的次数大概率屈指可数,真正有价值的其实是那些坑,是那些开发过程中的瓶颈,或者说,是跨过坑和迈过瓶颈的思考过程和处理方法。
其实是一个很简单的道理,相比聚焦于某个具体问题。作为一名工程师,需要培养的其实是解决问题的能力。从而达到一种 mentality:
- 任何问题都有解决的方法
- 我遇到的问题也是
- 我一定可以解决它
bug 的分析 & 调试
这点或许就是所谓的经验
,开发年限久了,见识的场景多了,改 bug 的能力就自然而然提升了。
就我的例子而言,反映在对组件渲染、状态流动、异步有了更深的认识,所以打断点越来越准确,定位问题越来越快了。
此外,也离不开其他前端家人们的 code review 与 comments,我在解决完一些比较 tricky 的 bug 的时候都会尽可能把心路历程和来龙去脉写在 commit message 里,我觉得能把原因-分析-解决的链路描述清楚,才算真正地吃透了这个 bug;此外,一般的 code review 大家只会看代码的风格是否可以优化,没太多时间去细究内部的业务逻辑(大家手头都有活),但有了比较详尽的 description 之后能让 reviewer 更好地理解场景,有时他们会提供一些更好的思路,让我发现其实是我搞复杂了。
技术文档的书写
像大字版
和埋点
这两个需求,我算是前端的 owner,从调研技术实现,到这两个模块的基建,再到书写文档和各位前端家人一起维护,有体验到一种 leadership 的感觉,是一种从未有过的体验😁。
包括在做某个功能的时候需要复用一个很复杂的组件,在确定复用方案上我也接受了紫月老师的建议,写了篇文档把两种方式做了对比,最终和大家讨论选取了一个更适合的方案。
把零碎的思路形成易于接受的、有条理的文字是一件很浪漫的事情。(顺便感叹一句飞书文档真的好用,国庆去敦煌做了份攻略,一开始用的是 Google Docs,不是很顺手,换飞书文档之后体验大大提升,强烈安利😋)
End
下班之后随手写了点,anyway,保持热爱,继续前进!
发布时间: 2022年11月29日 20:32:59
本文链接: https://www.victoryeah.com/post/ba9d0ab6.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!