上周末(2016/07/31)去了一个技术沙龙学习前端相关的东西,下面是各个主题我印象比较深的。

React + Redux 最佳实践

主题:本次分享,主要从React/Redux相关概念及其工具链,Webpack构建流程,如何Mock数据,如何测试以及一些开发小经验等方面,分享介绍如何使用React/Redux开发一个前后端分离的企业级应用系统。

有意思地方:

1. 规范化

通过开发工具进行代码校验,统一编码风格。

统一的ES6写法(这个见仁见智)。

2. JavaScript测试

进行JavaScript,介绍了测试工具。

  • jsdom(构建符合W3标准的DOM)

  • mocha(JS测试框架)

  • chai(Node BDD/TDD 断言库)

  • enzyme(airbnb出的React测试工具)

  • isparta(ES6代码测试覆盖率工具)

  • nock(HTTP 模拟库)

  • redux-mock-store(用于测试异步请求或中间件时,模拟store)

  • sion(用于JavaScript的测试监视(spy)、桩(stub)和仿制(mock)功能)

JavaScript to Native

主题:分享目前 JavaScript 编写 Native App 的现状,围绕 React Native 和 Weex 展示 JavaScript 编写原生应用的开发和调试,并讲解其中的一些原理。

有意思地方:

1. 将页面转成原生界面

这个还在理论实践的阶段,原理是页面DOM转成Virtual DOM(虚拟DOM)再而转成原生组件。

PS:有趣是有趣,但未有实践产物,难想象实践效果。(个人觉得东西没做出来就急于分享着实不好)

零配置前端开发流程

主题:Web 技术没有独裁者控制,野蛮发展导致开发环境特别混乱。不同的工具由不同的群体维护,各玩各的,常会有兼容性的问题。一个 “现代化” 的前端项目前后可能需要花费 10%~15% 的精力维护项目构建的配置,非常浪费时间。在这个分享主题我会示范一个的前端开发流程,把花在配置的时间趋于 0。

有意思地方:

1. 使用的前端框架或工具

浏览器,移动端,后台NodeJS,同构

npm vs bower vs systemjs vs duo

grunt vs gulp vs browserify vs webpack vs rollup

less,sass,postcss,css-module

ES3,ES5,ES6,ES2016

TypeScript,FlowType

React,Angular,VueJS

PS:用的都是有逼格、新的东西。

使用 Meteor + React 进行快速的原型开发

主题:主要介绍 Meteor 框架的特点,如何使用 Meteor 为 React 提供类似 Redux 的前后端数据流控制,什么是 Reactive Programming,如何实现 Optimistic UI,还有基于 websocket 编程,以及 Meteor 的现状和未来。

有意思地方:

1.  Reactive Programming

Reactive响应式(反应式)编程 是一种新的编程风格,其特点是异步或并发、事件驱动、推送PUSH机制以及观察者模式的衍生。reactive应用(响应式应用)允许开发人员构建事件驱动(event-driven),可扩展性,弹性的反应系统:提供高度敏感的实时的用户体验感觉,可伸缩性和弹性的应用程序栈的支持,随时可以部署在多核和云计算架构。

PS:简单说就是数据的交互是通过websocket进行实时交互。

概念可参考:http://www.jdon.com/idea/js/rxjs.html

React前后端同构实践

主题:本次分享我们在使用react+redux过程中遇到的一些性能瓶颈,我们在解决前后端代码/API复用、提升工作效率和前后台架构调整中所做的一些尝试及成果。

有意思地方:

1. 同构的思想

同构 JavaScript 应用基于 JavaScript 编写,可以在客户端和服务端运行。正因为此,你只需要写一次代码,就可以在服务端渲染静态页面,还可以在客户端完成复杂的交互。

服务端渲染的页面可以很好解决两个问题:

(1). 性能

因为相对于静态页面,SPA 需要更多的客户端代码,需要下载数据的体积也更大。这使得手机加载速度很慢,可能会导致一些极端的状况 —— 比如糟糕的用户体验以及收入上的损失等。依据 Microsoft 的一篇文章 ——

PS:Bing 的一项研究表明:页面的加载时间每增加 10ms,站点年度总收入就会减少 $250K。

(2). SEO

因为单页面应用依赖于 JavaScript 的执行,服务器不会提供它们可能用到的任何 HTML 内容。因此,web 爬虫很难去索引到这些页面。爬虫就是可以像 web 服务器发送请求,并且将结果分析成原始文本的程序,而不需要像一个浏览器运行 JavaScript 那样解释和执行客户端的内容。不久前,Google 优化了搜索引擎的 web 爬虫,现在它也可以抓取基于客户端 JavaScript 所构建的页面了。但是 Bing、Yahoo 以及其他搜索引擎怎么办?一个好的索引对任何公司来说都至关重要,它通常会带来更多的流量以及更高的回报。

2. 首屏加载速度方式

检测首屏加载速度,分加载模块进行优化,提高首屏加载速度,减少用户等待时间。

总结

讲的绝大多数跟React相关,看来他们是非常推崇这个框架,非常提倡组件化的开发思路。除去React的不说,我觉得比较重要的是JS测试方面,这方面我们有待加强。代码规范和工具使用都是老生常谈的,这点不用多讲。最后有一点也必须特别注意是,前端在不断发展,新的好的框架或JS版本,可以考虑使用,让代码写得更优雅。

Techparty-广州Javascript技术专场(学习分享)的更多相关文章

  1. 【重磅资料】ArchSummit全球架构师峰会·2019华为云技术专场资料下载

    ArchSummit全球架构师峰会是InfoQ中国团队推出的重点面向高端技术管理者.架构师的技术会议,54%参会者拥有8年以上工作经验.ArchSummit聚焦业界强大的技术成果,秉承"实践 ...

  2. JavaScript Shell学习分享

    目录 JavaScript Shell学习分享 简介 安装 使用原因 小结 JavaScript Shell学习分享 简介 JavaScript Shell是由Mozilla提供的综合JavaScri ...

  3. 细数Javascript技术栈中的四种依赖注入

    作为面向对象编程中实现控制反转(Inversion of Control,下文称IoC)最常见的技术手段之一,依赖注入(Dependency Injection,下文称DI)可谓在OOP编程中大行其道 ...

  4. 开源大数据技术专场(上午):Spark、HBase、JStorm应用与实践

    16日上午9点,2016云栖大会“开源大数据技术专场” (全天)在阿里云技术专家封神的主持下开启.通过封神了解到,在上午的专场中,阿里云高级技术专家无谓.阿里云技术专家封神.阿里巴巴中间件技术部高级技 ...

  5. GMTC2019会后:做一场冷门的技术专场是什么体验

    上周四(6.20)GMTC2019大会的第一天,很荣幸作为「UI与图形渲染」专场出品人获得了与图形领域几位技术专家同场交流的机会. 图形技术在前端范畴内是一个相对小众的话题,虽然前端工程师几乎每天都在 ...

  6. django之JavaScript的简单学习2

    前言:ajax预备知识:json进阶 1.JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON是用字符串来表示Javascript对象: 请大家记住一 ...

  7. (转)探讨:ASP.NET技术的学习顺序问题

    探讨:ASP.NET技术的学习顺序问题 摘要:很多人对于ASP.NET的入门和学习顺序比较迷茫,今天让我们一起来跟随作者的思路学习探讨ASP.NET的学习顺序问题,希望有所帮助. 如果你已经有较多的面 ...

  8. 【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)

    1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理!   我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...

  9. Excel阅读模式/单元格行列指示/聚光灯开发 技术要点再分享

    1. 引言 文题中所谓技术要点再分享,本意是想在大神Charltsing Liu的博文“简单介绍Excel单元格行列指示的实现原理(俗称聚光灯功能)”的基础上写一点个人开发体会.写本文的初衷有三点,一 ...

随机推荐

  1. Windows中搭建Redis集群

    从 http://rubyinstaller.org/downloads/ 下载Ruby2.2.5(x64)并安装,安装时勾选添加至路径变量中 命令行中执行gem source -a http://g ...

  2. MongoDB 数据分发

    在MongoDB(版本 3.2.9)中,数据的分发是指将collection的数据拆分成块(chunk),分布到不同的分片(shard)上,数据分发主要有2种方式:基于数据块(chunk)数量的均衡分 ...

  3. 前端MVVM框架avalon揭秘 - HTML编译器

    MVVM试图更加清晰的讲用户界面(UI)开发从应用程序的业务逻辑与行为中心分离,因为,很多这样的模式的实现都需要利用声明式数据绑定来实现讲View(视图)工作从其他层分离 所以出现了一大堆自定义的声明 ...

  4. 数据可视化-EChart2.0使用总结2

    接上一篇博客,这篇博客主要讨论EChart里面的散点图.气泡图和雷达图.   4.散点图-Scatter Chart 适合场景:三维数据集,但是只有两个维度需要比较.比较的是X轴和Y轴的数据,第三个数 ...

  5. CRL开发框架发布2.2版

    CRL 2.3.0.0 CRL是一个面向对象的轻便型ORM业务框架 数据处理使用了对象/数据映射,采用Lambda表达式来表示条件查询,增加了可编程性和可靠性,出错机率低,同时也能用原生的SQL实现查 ...

  6. MVC, MVP, MVVM比较以及区别(下)

    上一篇得到大家的关注,非常感谢.一些朋友评论中,希望快点出下一篇.由于自己对于这些模式的理解也是有限,所以这一篇来得迟了一些.对于这些模式的比较,是结合自己的理解,一些地方不一定准确,但是只有亮出自己 ...

  7. 改用C++生成自动化数据表

    改用C++生成自动化数据表 前面的文章中,我们讨论了使用一个基于.NET的第三方程序库来从程序中来生成数据表.在我看来,这整个思路是非常有用的,例如为显示测试结果.我经常会自己在博客中尝试各种像这样的 ...

  8. 重温JSP学习笔记--JSP动作标签

    上一篇笔记写的是jsp的三个指令九个内置对象,这篇随笔开始写jsp的动作标签,动作标签是由服务器(Tomcat)来解释执行,与java代码一样,都是在服务器端执行的,jsp动作标签有十几多个,这里只写 ...

  9. .net基本数据类型操作

    代码编写的过程中,较多的会涉及到基本数据类型的使用和定义,在项目中,对于类型的判定和类型间的相互转换,有时也较为的麻烦,先提供几种基本数据类型的判断方法: 1.判断对象是否为Int32类型的数字: / ...

  10. 【JVM】JVM系列之类加载机制(四)

    一.前言 前面分析了class文件具体含义,接着需要将class文件加载到虚拟机中,这个过程是怎样的呢,下面,我们来仔细分析. 二.什么是类加载机制 把class文件加载到内存,并对数据进行校验.转换 ...