vianvio
vianvio
整体架子有了,但是实现上还是有点粗糙,有些点可以讨论,比如alias部分使用@和~的约定,是否会导致维护人员不容易上手? cli部分包装的挺好,但是不使用社区方案的原因是什么? webpack配置部分,三套环境拆分和业务工程可以自定义并没有体现出来,需要再思考一下。 可以对照参考https://github.com/risjs/ris
> 3. 通过使用动态创建script的方法,通过onload方法插入dom中 需要给出具体工程上的解法,比如如何在业务代码无感知的情况下达到这个效果,需要描述细节或原理。 > 4.我想请教一下,各位有什么看法 > js/ajax、还有外部引入的文件、css、音视频 都适合异步加载,根据需求不同,选用不同的加载方式,异步加载或者延时加载。 这题的目的是结合场景分析哪些需要异步,请重新思考一下题目后半段的单一工程与多工程场景。 > 5.对于异步加载文件,或者异步请求,可以使用监听加载方式获取状态,然后进行处理,比如promise 通过.catch 监听失败,在回调中去添加 处理失败后的方法 这里需要给出具体兜底和感知的方法。所谓兜底是如何在交互上兜底,让用户觉得自然。所谓感知是指线上出现了异步加载失败的问题,开发和测试如何能够知道失败的比例,哪些失败了。需要给出具体方案。
对于问题一,能感觉到有自己的思考,这里给到几个衍生问题: 1. cli提供的配置,在业务场景下需要定制怎么处理?如果这些定制能力又具备一定的通用性,这时候怎么做? 2. 工具库和组件库在版本更新时,如何确保业务的稳定性?比如1.0.1 => 1.0.2,能否确保业务升级不会出错,或者出错了如何上报? 关于稳定性监控问题,整体技术方案比较全,但是大部分内容还是常见处理形态,内容中提到的痛点问题其实仍然存在。对于日志体较大的场景不能只用一套方案去解决所有的问题,可以将客户端本地化方案做的更进一步。 另外从跨域角度来看sendBeacon也是能够跨域的,虽然文章列举了两个传统的跨域上报解法,但是实际项目里是怎么选择的?
Q2中其实已经提到了一些可通用部分了,万事开头难,可以将任何重复的部分都提取出来,哪怕只是一个button的二次封装。提取到公共组件库,意味着你需要有配套的组件库工程,要考虑团队协调问题,要思考更新迭代,付出多了,自然你就有动力继续做下去,也有动力去推广,容易帮助你行程正循环。 Q4的内容其实是对快键键的抽象,希望的是通过一套配置方案,或者是基础库能力,能够帮助中后台页面快速增加快键键能力。具体我也只是一个想法,有兴趣的话可以下一次issue报名再探讨一下。
楼上优秀啊~~~
> 我加一个有点脱裤子放屁感觉的方法 为何你如此机智
感谢分享,整理的非常清晰,业务和技术的关系也表现的很清楚。 Q1 更新和下载可以看一下是否有离线消息机制,通过管理后台设定优先级或者类型,通过离线消息通知app后台静默下载一部分离线包,可以帮助一些重要业务在用户首次打开时候获得最佳效果,比如重要活动的主会场页面。 Q2可以尝试看下离线包发布平台是否具备开放能力,通过接口形式,将前端发布与离线包发布通过工具整合起来。 Q3&4 可以站在更高的层面再思考一下,比如游戏业务在整个公司的产品矩阵里是否能做到部分统一,比如权益共通。其次是可以深入一些,类似上面离线包的总结,对业务主体总结之后,配套要做什么也可以看一下,可能中间会发现一些技术上的盲点,往往就是可以发力的地方。
Q2是有解法的,我们内部发布也有审批流程,而且还不只一种,但是发布和审批是解耦来看的,可以考虑一下方案。
> 问题3拓展 前端与客户端交互需要区分H5页面加载前与H5页面加载后,举例来说,如何实现H5页面打开时就隐藏native导航栏
> 全都写在[这里](https://github.com/laoxielearnsth/answersFor27)啦。收获很大。 实在是太牛了,整理的好全面。 最后一题本来想考察一下第3题答案里提到的globalCompositeOperation用法的,不过看到css那个做法,思路真的也是很巧妙呢。