前端周榜专注于前端内容,主要是外文资料的收集,帮助开发者了解前端-本周结束热点;分为热点新闻、开发教程、工程实践、深度阅读、开源项目、巅峰生活等栏目。欢迎关注【前端排行榜】微信公众号(ID:frontshow),及时获取前端周榜单。国内外新闻热点,前端最新动态NPM发布2017年JavaScript框架增长报告:作者以某个包的下载量占所有下载量的百分比作为衡量某个框架是否增长的指标持续发布2017年JavaScriptFramework框架使用报告;本报告主要关注前端框架、React生态和后端框架。报告显示,前端框架中的Preact和Vue都在快速增长,但React在整体体量和增长速度上仍有优势;在React生态中,Apollo正在快速崛起,MobX也在快速成长,但仍然难以与Redux匹敌。Nuxt.js1.0发布:Nuxt.js基于Vue.js、vue-router、vuex和vue-meta,是一款零配置快速创建Web应用的工具。本周发布的Nuxt1.0.0版本,将所有依赖更新到最新版本,提升了整体的稳定性和性能,这也意味着它可以在生产环境中使用;更多功能变化说明请参考原文。Nodev9.4.0发布:该版本的重要变化包括丢弃AsyncHooksSensitiveAPI和runInAsyncIdScope,从_events的内部实现中移除reachs,为clientError添加rawPacket属性等;更多改动见原文。NPM确认新的包命名规则:为了尽可能避免包被误植,NPMRegistry将不再允许类似的包命名;但是,将进一步鼓励开发人员使用他们自己的命名空间来发布包。例如,因为react-native已经存在,所以不再允许发布类似reactnative的包,但是推荐使用@ceejbot/reactnative。循序渐进开发教程,掌握基本技能HTML5.2新特性及实践盘点:不到一个月前,HTML5.2成为W3C官方推荐版本,这意味着W3C正式推荐开发者遵循并实施该版本。本文概述了HTML5.2中提出的影响较大的新特性和实践模式,如原生弹窗组件、iFrames中的PaymentRequestAPI,以及部分元素实践的变化;更多HTML学习,参考ModernWebDevelopmentbasis。基于TypeScript的实时聊天应用:在本文中,作者介绍了如何仅使用TypeScript集成WebSockets、Node和Angular来实现一个实时聊天应用。本文首先介绍WebSocket的定义和规范,然后使用Express和Socket.io实现服务端应用,最后使用Angular构建客户端应用;更多TypeScript学习资料,参考现代JavaScript开发基础。DeepLearningFaceRecognitionLibraryBasedonNode.js:在这篇文章中,作者介绍了如何使用新开源的face-recognition.js库构建一个高可用的人脸识别和检测应用程序。该库底层使用dlib,然后使用Node.jsbindings暴露上层接口;而dlib使用了深度学习算法,内置了部分预训练模型,在LFW人脸识别评估中可以达到99.38%的准确率。更多Node.js学习参考,深入浅出地讲解Node.js全栈架构。工程实践出实践,提示基于ReactRouterv4的服务端渲染、代码拆分和懒加载的实际水平:本文来自Airbnb的工程师分享了他们基于React的服务端渲染、代码拆分和懒加载路由器V4实践。在RRV4中,route-as-a-component方案取代了原来的集中式配置,但这导致无法根据路径进行适当的服务端渲染;针对这个问题,作者首先讨论了如何在现有框架上管理路由,然后讨论了异步组件和代码拆分的技术。更多React学习,参考React与前端工程实践。2018WebDeveloperLearningRoadmap:本仓库包含了成为前端工程师、服务端工程师或运维工程师的一系列学习路线图。前端工程师路线图包括基础、深入测试JavaScript、框架、模块打包、打包管理、响应式开发等,后端包括开发框架、包管理、数据库、缓存、消息中间件、搜索引擎、DevOps包括操作系统、云计算、持续集成、自动化、监控告警、Web服务器、集群管理等。更多图谱参考IT知识图谱和技术路线。8TipsforBuildingNode.jsApplicationsin2018:本文来自RisingStack的工程师分享了他们在2018年构建Node.js应用程序的建议。这些建议包括使用async-await,尝试import和import(),尝试HTTP/2,强化您的Node.js应用程序,等等。更多Node.js学习参考,深入浅出地讲解Node.js全栈架构。深度阅读,深度思考,智能的升华与开发现代网络负载均衡与代理概述:负载均衡是构建现代分布式应用系统的重要组成部分。本文是对现代负载均衡和代理技术的回顾和盘点。本文将依次讨论什么是负载均衡、它与代理的异同、负载均衡的特点、现代L4、L7常用的不同层次负载均衡的实现拓扑和应用案例等;更多微服务,参考服务端应用开发与体系结构。操作系统工作原理:开发者应该掌握的十个概念:操作系统是软件开发必备的基础知识之一,笔者在本文中总结了与操作系统相关的十个关键概念,以帮助开发者更深入地掌握编程的概念。这些概念包括进程与进程管理、线程与并发、调度、内存管理、输入输出管理、可视化、分布式文件系统、分布式共享内存、云计算等;更多操作和学习参考Linux配置与使用,内部原理ProgrammingwithShell。2018前端展望:久合必分,久离必合:近几年,前端领域风起云涌,百花齐放。本文在简单总结了2017年各个前端框架领域的变化后,展望了2018年可能的发展。React可能会在渲染函数参数、setState返回Promise、异步友好的生命周期回调等方面做出改进。除了第一次,作者还点评了Angular、Vue、Webpack、Parcel等框架或工具;更多前端学习Web开发基础和工程实践参考。开源项目乐于分享,共同推动前端开发toapi:Toapi是基于Flask开发的,可以将任何网站转换为API服务的框架。Toapi其实包括了爬虫爬取、接口服务等,只是简化了整个流程;用户只需要定义数据的输入和输出,Toapi将帮助自动化整个过程。TOASTUIEditor:TOASTUIEditor是一个面向生产、可扩展的所见即所得编辑器,支持MarkDown语法;它提供MarkDown和WYSIWYG两种模式。TOASTUIEditor实现了CommonMark和GFM标准,并提供了强大的API以方便开发者自定义扩展。Nerv:Nerv是一个基于Virtual-DOM的JavaScript(TypeScript)框架,兼容React16API;但是,它提供了更高的性能、更小的尺寸和更好的浏览器兼容性等特性。workerize:workerize可以方便的将一个模块搬入WebWorker,并自动反映和提供接口函数;workerize会在应用中注入一个轻量级的RPC实现,支持同步或异步的Worker函数调用,可以平滑的支持async/await。Screenshot-to-code-in-Keras:近年来深度学习技术的快速发展,可能会在某些方面改变前端开发;并且这个仓库提供了一个神经网络,可以将设计稿的截图直接转化为静态网页,可以加快原型制作的速度,降低软件构建的成本。巅峰人生资深程序员小偷:年轻时想写代码到60岁,现在想写到65岁:西西里翁(Xicilion),本名刘虎,70后程序员南京三极软件科技有限公司创始人。1992年南京电力学院毕业后,留校任教计算机课程。1998年创办西祠胡同,2012年创办孢子社区,目前专注于fibjs项目的开发。这篇文章是对其过去几十年技术历程的回顾与展望,也是一代技术人的青春回忆。前端置顶《前端置顶》是InfoQ旗下专注于前端技术的垂直社区。加入前端Top学习群,请关注“前端Top”公众号,回复“进群”。投稿请发邮件至editors@cn.infoq.com,并注明“前端投稿”。
