重点聚焦在前端性能优化、质量提升和工程化。 ... 展开 >
重点聚焦在前端性能优化、质量提升和工程化。
AutoCAD is a computer-aided design desktop software application that was first released in 1982. With the advent of the internet age, there comes a need to extend AutoCAD's capabilities to the browser. However, the massive, complex, and constantly changing code base makes it impractical to rewrite everything in JavaScript. Therefore, the question remains: Can we really find an elegant way to leverage AutoCAD on the Web?
Enter WebAssembly! A compilation target for languages such as C/C++ that runs on modern browsers. For the first time in history, legacy code bases can now run on the Web at near native speed with the help of the Emscripten compiler. Nevertheless, there are mismatches between the programming paradigms of the desktop and Web world which greatly complicate the porting effort. Some of these include the use of synchronous blocking calls and shared memory on the desktop.
The goals of this session are two-fold. Firstly, the solutions for overcoming the above challenges will be explored in the context of existing Web APIs. Secondly, both the build time and performance implications of porting such a large code base will be addressed as well. As such, this talk will be helpful for developers who aspire to reuse their legacy software on the Web.
从虚拟机到容器化,从 SOA 到微服务,我们正在走向更加轻量化、更具灵活性的解决方案。在该背景下,当我们面临项目发布时,仍需要部署应用和安装依赖的各种软件,关心究竟需要多少台服务器以支撑线上浏览。有没有一种更轻量的架构,使我们从这些繁琐的工作中解放出来,从 DevOps 转向 NoOps?
对于前端开发人员,采用 Serverless 理念对 BFF 层进行改造,使这一切成为了可能,零配置即可完成项目的发布上线,同时极大的降低运维成本。除此之外,还将分享作为前端开发人员,在基于 Serverless 理念的基础上,针对开发者的开发以及用户的使用体验上做的一系列探索和创新实践经验。
演讲提纲:
听众受益:
NOW 直播、腾讯直播团队从十余人的前端小团队迅速发展成为40人的大前端团队。在这期间,业务百花齐放,随之而来的是团队的开发、发布和协作等一系列问题:业务项目越来越多,且类型不同,如活动类、组件类; 技术栈各异,如 React 项目、ReactNative 项目、Node.js 项目、小程序项目等;规范、约束难以统一,如 Git 提交规范、Javascript 规范等;发布链路长,缺乏一键部署、版本自动升级的能力。
本次主题将依托腾讯 NOW 直播产品,谈谈我们从项目创建、本地开发、打包构建、到发布的整个链路的思考和实践,团队工具链、规范等开发配套设施的建设。以及在这个过程中,遇到的一些问题和挑战。
演讲提纲:
听众受益:
钉钉(DingTalk)是中国领先的智能移动办公平台,由阿里巴巴集团开发,免费提供给所有中国企业,用于商务沟通和工作协同,目前注册用户超过1亿,注册组织超过750w家。如此规模体量,对我们的技术架构、开发效率、稳定性提出了巨大的考验。
曾有人说过,前端的框架稳定性是3个月,架构稳定性是6个月,语言稳定性是1年。听起来可能有点激进,但是,从某种程度上也反应了前端领域所面对的问题域和环境在不断的变化。桌面前端也未曾避免。
钉钉桌面端也同步经历了 Angular1.x 的 SPA 1.0 时代到 NW.JS 的2.0时代。今天钉钉进入 3.0 时代——Hybird App 模式,基于 Chromium Embedded Framework (CEF) 的混合 App。网络,数据交给 Native C++ 处理,交互 UI 密集型,追求高开发效率的场景用前端来承接。
复杂异步数据流之间的竞争和协作一直是企业级应用要面对的第一大问题。区别于普适前端应用的面向接口编程,企业级应用的最大特点是领域模型驱动开发,交织错乱的现实业务逻辑通过领域模型进行数字化建模,领域模型之间的竞争和协作又可以映射到异步数据流之间的竞争和协作。而钉钉,在面对这个难题时,依托 Rxjs 强大的响应式编程模型,构建通用、场景等不同粒度的业务流模型,再通过 redux-observable对React tree 之外的副作用进行管理,解决这个问题的同时,也沉淀了业务场景,大大提升了架构的扩展性。
企业级应用的稳定性要求堪比金融级。钉钉是业务工作的基础设施,如果钉钉不稳定,对企业的工作伤害会非常大。同时,在钉钉开发团队,我们提倡的是 TDD,我们的测试同学只有3个,而迭代速度保持每三周一个版本。那我们该如何保障稳定性呢?从自测驱动开发,到严格的 CR 机制,再到分阶段监控模型,通过完善我们的质量保障体系,确保钉钉稳定性。
最近两年,前端领域最火的词应该是‘小程序’吧?这个中国人原创的技术体系,极大的提升了开发者的体验和效率,扩展了生态,帮助用户获得更好、更安全的产品。钉钉也不例外,确切的说钉钉桌面端也不例外。钉钉是国内少有的拥有小程序桌面端的应用,越来越多的业务使用小程序,这也为我们带来了新的课题,现有的 Hybird 应用如何可以快速的赋能小程序动态化?在此基础上,我们提出了逻辑编排的概念,将其与 UI 进行独立。
演讲提纲:
听众受益: