开始讲故事吧。。。
2017年秋,我再次背起行囊,从成都到上海。
入职面试的时候,老板让我研究一下Salesforce的Lightning平台,说我以后就做这个。好吧,其实那时我完全没有听说过Salesforce和Lightning。毕竟不是干销售的也没有维护过CRM(客户关系管理)系统,之前的很多项目经验都是做Android的系统。从此,我告别了Android开发,没有再写过一句Andorid的代码,其实我也是懒得用Gradle那些臃肿缓慢的编译工具,也就愉快的在不知不觉中转换了技术方向。
从2018年开始,我们的团队进行很多技术探索,旨在开发出高可用却又简单、易复制的通用应用开发模版。后来一看,和低代码的开发平台还有点像。从最初的Lightning Aura框架(UI视图框架,可以理解为和Vue、React一个维度的东西)到Web Compoment的LWC组件,我们都进行很多的研究和尝试,对Lightning平台的使用也越来越与Salesforce本身的理念背道而驰,导致最后很多的问题,Salesforce的原厂顾问都束手无策。
2019年,我还去过台北和旧金山参加过Salesforce LWC相关的一些培训和峰会。最终发现,我们制定的很多开发目标和对Salesforce的使用深度,已经走在世界的“前沿”(或者叫“边沿”)。毕竟,Salesforce是做CRM云服务起家的,它面向的客户,其主要的目标都是关注业务,而不会花大力气去探索和扩展平台的开发能力。这就导致,我们这个走在世界“前沿”的团队经常会遇到一些难题(有些其实是Salesforce本身的BUG),然后就陷入孤立无援的境地,进退两难!
很遗憾,蚂蚁难以撼树。最终,我和我的团队(加起来4个人)没有到达制定的目标。最终不得不收敛了任务和计划,将团队的重心放在支持和运维业务应用开发上。回顾这几年的无所畏惧的探索和尝试,发现自己确实是因为初生牛犊不怕虎,没有做过这个行业和架构,才那么的勇敢。这个看似不理智但却充满了激情和未知的过程,对于我和我的团队都产生了很多积极的启发,所以我打算开一个新的系列来讲述这些启发和思考。
本系列不会花太多的篇幅对LWC的基本知识、使用和工具进行讲解,主要针对是有一定LWC开发经验的开发人员,我们的目标是对LWC背后的实现原理、机制和框架进行探索和交流。如果,对LWC有兴趣,但没有入职的读者,可以参考官方的详细帮助LWC开发入门的Trailhead: 构建 Lightning Web 组件、LWC开发指南、和LWC组件使用帮助。
LWC是中和Salesforce不相干的Web Component部分的框架是开源的,对底层前端视图框架感兴趣的可以查看:lwc.dev,lwc的源码官方开源在Github上。上面也有一份很不错的LWC组件开发指南。