文档章节

2014 Hangjs 见闻流水账第一天

打杂程序猿
 打杂程序猿
发布于 2014/06/25 14:33
字数 3678
阅读 1809
收藏 28
点赞 1
评论 7

前言

6月21日~6月22日, 第一次跑远门去参加一个大会(广州 -> 杭州),本来打算,在火车的回来的路上,把这两天的东西记录一下,不过,火车上的环境实在恶劣,同时也高估了自己的专注力,所以,最后还是决定回来再写吧,还可以先看看,别人是怎么写的.在动笔之前,看了一下别人写的,所以,直接略过会议的一些流程,对这个会议的流程有兴趣的可以去看附录的传送门,我觉得他们已经把我本来想写的东西都写了,然后,就直接针对,每个slide说说自己的看法,正如标题所说,就是个流水账...

<!--more-->

Slide

每个slide我都会根据自己的理解重新命名一次,用于表达自己的第一看法,主观意见,不喜可吐槽,但是不要喷,就算要喷请轻碰...

如何造一个好用的"轮子"

这次hangjs的第一场是由严清老师带来的关于thenjs异步编程的实现原理和优缺点分享.

其实关于JS的异步编程可以算得上是烂大街的主题了,严清老师觉得各家的的异步实现的轮子不好,于是thenjs就诞生.不过,严清老师能实现一个不错的库,但是,在我看来在一个只有40多分钟的slide里大谈具体代码的实现原理,并不合适,花大量时间谈具体的代码实现,在一个只有40多分钟的slide里头是很枯燥的事情(而且,我也不觉得这玩意能够在40分钟里头说清),毕竟这个东西是开源的,粗略的说说实现就好,你对实现感兴趣,去看源码吧!接下来用实际案例说说这个轮子的实现跟其他家轮子的实现有什么不同的地方,这样的不同,带来了什么好的地方.这样,我就对thenjs的异步实现非常感兴趣,从而对异步实现原理有更高层次的理解.毕竟这是一个时间很短的slide,希望能够多说一些能够启发性的东西,而不是具体怎么写.

如同前面说的js异步编程其实是烂大街的话题,我感觉大家更多想看到各种案例实践,而且我也一开始是以为标题的优缺点会是严清老师,会大说特说在实际开发中,用现用的异步库如何如何被坑,然后决心自己造轮子,用各种血的现实告诉大家,thenjs是如何好用...这样的异步实现是多么的优秀...结果到优缺点的比较主要还是各种基于代码的实现比较....没有任何炫酷的实际案例比较...

不明觉厉的Node.js 内核嵌入开发

这个slide 是最近很火的atom编辑器主要作者之一的赵成 的分享,原标题是 Atom编辑器嵌入Node.js引擎实践,当时,看到这个标题,我就觉得,我听这个slide就是打打酱油了,因为不可能听懂,作为一个凡人码农,从来都没看过Node.js是怎么实现的,然后,这个slide一上来就跟我们说,如何改造Node.js的引擎,实在是太高端了...实在玩不过来,不过我相信,会场几百号人肯定有人能听懂的,只是我比较low而已...

不过,一个面向JS程序员的大会,讲如何让Chromium能够运行v8,我不敢表示大多数,但是有一点可以肯定是,很多Node.js程序员并不会编译Chromium,那么更不用说,知道原理后,要动手操作Node.js跟Chromium合体了.作为对atom-shell最了解的人说,面对的大部分JS程序员,我觉得这个slide还不如多多分享一下怎么用atom-shell 快速开发一些跨平台app技巧,然后用一些具体案例对比一下node-webkit这两者的优缺点(关于这个优缺点在这次slide上有提到过,不过并没细讲...).

PS:这次的演讲者作为github员工,说了一些关于github的内部事情,atom本来是打算不开源的,但是,不开源的阵营的主要领导者,因为某次丑闻导致离职,于是atom就开源了...

Node.js 的胶水时代

这次的演讲者赫门带来的是前几个月就开始有讨论的前后端分离实践.

这次的slide,通过两次大战来递进的说目前前后端实践的情况,这个我听着挺带感的,因为,我正好就是第一次前后端分离大战的实践者,然后碰到的问题也跟slide说的一样.

不过,第二次前后端分离大战,虽然标题的是第二次,但是,我觉得本质只是第一次前后端分离大战的一个特殊存在,针对的是你的后端业务不是用Node.js来写,于是通过Node.js对后端业务进行一个合并优化,让客户端干少一点事情,提升客户端的响应速度.所以,Node.js就像胶水一样把两个分离的东西粘在了一起.毕竟很多系统都用了十几年了,不太可能再用Nodejs重写一遍,不过利用Node.js作为胶水的功能,针对移动应用的场景对现有系统进行优化,是个不错的实践思路.

不存在的服务,存在的使用

下午第一场slide是由台湾开发者蘇 培欣带来的是,Google BigQuery API Node.js实践 看到这个标题,应该明白我为什么对这个slide起了这么一个名字了吧?

这个slide其实也没什么好说的,就是讲如何使用bigquery 这个用Node.js写的模组(模块),进行google big query的查询.

不过,通过这个slide知道了Google bigquery 这个服务,倒是一个不错的收获,对于有大数据需求,但是没有空折腾各种优化的精力,用这个服务倒是省心不少,对了,要速度快,访问google的黑科技是必须要掌握的!

用管道串流你的思想

这次slide是由James Halliday来演讲,github是substack平时,在使用库的时候有关注作者的习惯的话,对于这个github名字应该很熟悉了吧!

外国人的演讲,你就不要指望外国人能够跟你用中文演讲了.第一次在现场听外国人的演讲,果然是近乎完全听不懂orz.关于@substack的很多趣闻,已经有很多人说过了,这里就不跑题了,还是说说这次slide的收获吧.

虽然,听不懂说什么,但是不妨碍我看得懂PPT说什么..

在出发去hangjs的时候正好在使用gulp的时候看了一本substack写的Node.js流编程实践stream-handbook,然后这次slide,substack 现场编程show了一把这个思想的具体应用,直到现在我还在消化着,等消化得差不多,在额外写一篇分享吧.

最后介绍了一个挺好玩的东西voxeljs 基本上就是一个类似于Minecraft 的H5 游戏,不过,可以在上面编程让游戏变得很好玩.

曲高和寡

这场slide由来自于中科院的@belleveinvis分享如何写一个代码生成器的原理,标题: Patrisika - Theoretical and Practical Code Generation.在听这个的slide的过程中,我和吴老师,表示各种听不懂.因为听不懂,也不好做什么评价了.

本来,我觉得在一个面向js程序员的大会上讲如何写一个代码生成器是否合适主题?不过,后边翻了一下微博就找到同吐槽看不懂,不过有个看懂了的回复说其实是符合主题的.

跟js同步异步转换有关,所以在这里讲也不过分 具体内容点击传送门吧.

PS: 翻了一下微博,还是有人有不错的收获例如 题叶

只能说自己的水平不行..orz

并不新鲜的快速构建MVC应用

接下来是芋头分享的 如何快速构建MVC应用.

实际上这个slide主要是讲Rabbit.js 的设计思想,传统的mvc 加上一套约定的web框架,跟paypal 的kraken-js有点类似,不过有个特点就是Rabbit.js 封装了一个Sql 和 nosql的模型定义,可以让你的代码在mysql 和 mongodb 都能够运行的很好.

芋头在slide上一再强调Rabbit.js还没正式发布,然后,各位有兴趣的话可以看着学习一下,看能不能对自己的开发有所启发.

原标题存在的矛盾性

今天最后一场slide是由百度工程师@berg 带来的目前关于如何让H5的应用运行得很流畅的解决方案: BlendUI - 让轻应用如Native般流畅

在这个slide开讲前,我对这个slide其实挺期待的,因为,我一直都有关注h5在app上的应用,对于用h5做的应用,最无解的问题就是动画的流畅性,对于现在,IOS 的原生webview性能已经很好了,在未来的ios8 webview的js引擎终于用上跟safari 一样的引擎,并且支持webgl,然后,随着硬件的各种升级,最终让基于H5的应用达到本地应用的流畅性(未来两年内应该可以实现),不过这都是未来,现在还是老老实实写本地应用吧.

然后看到这个标题,心里还是挺期待在当前硬件无法得到解决的情况下,是否存在什么黑科技,让H5应用达到一个飞越?

在听这场slide的时候,果然,不存在什么黑科技! BlendUI 的解决方案,并不是打算死磕纯DOM黑科技实现,而是,应地制宜用了一些技巧.原生DOM动画,不流畅,那么动画这部分,我不用DOM来实现了,直接上本地,这下动画切换的流畅问题就完美解决了.每个页面就是一个webview,页面的切换就是两个webview的本地切换,效果妥妥的流畅! 多webview 内存占用多? 现在千元手机都2G内存了,妥妥的!而且开多个webview其实并没有那么耗内存!

于是BlendUI 如Native般流畅 实际上因为动画部分就是native, 那还不是如Native般流畅....所以,我说这个标题存在的矛盾性就在这里.不过,可能是我对轻应用的了解不一样,我对轻应用的了解的就是能用纯H5实现,不套壳能用浏览器运行,套壳就是APP,只要有webview控件的平台都能支持.因为轻嘛,所以,跨平台运行妥妥的。

对于用多webview的动画切换来解决H5类型应用的方案,其实早在一年前我就有尝试过,在这里会有几个坑的,后边after party 找berg实机体验了一把,看来这个坑berg就目前这个版本并没有解决,关于这点,后边after party在展开说.

小插曲: 在提问环节,有个人问berg,目前百度轻应用有没有什么明星应用,如果没记错的话,berg回答的是还没有...

After party

对于每届中国JS开发者大会,最有价值的就是这个after party了,可以面对面的找各种大牛进行交流.

BlendUI

我找到了berg,借手机实机体验了一把BlendUI,安装blendui 的轻应用是一台小米2, 有2G 内存.我针对过去研究碰到的坑,立马测试了一下,于是还是碰到了.总结如下:

  • 有一定机率webview和原生控件同时存在一个页面. 这个坑很怪异,挺难重现的,就是你的webview有张图片,你点击这个图片用原生控件来显示,在某种操作的情况下,这个原生显示图片的控件会和webview在你没点击图片的时候同时显示.

  • webview 丢失.这个坑就很好比较容易重现.表现是当你,在点击webview的某张图片后,是显示一个覆盖这个webview图片滑动控件,然后快速后退,在快速点击某个item,重复快速的操作前面的步骤,就会有一定几率无论你点那个item也不会显示webview而是一直显示这个滑动图片控件.

不过BlendUI 并没有正式发布,所以以上bug可能到时候已经修复了.对了,不知道到时候,在目前千元手机1G内存下的表现又会是如何呢?

随便转转

我线下的即兴交流能力实在是太差了,跟berg 简单交流了一下,就是走走听一下,大家都在讨论什么,那些围着外国友人的交流的实在高端,简单的听了一下,表示无力....

期间跟一个大众点评的员工简单交流了一下,发现,大众点评在一些小业务上也用上了Node.js,而且,还用上了docker.

PS: 我的交流能力有待提高啊....

附录

其他人的hangjs 参会记录

梁杰_numbbbbb 技术大会到底该怎么听?

民工精髓V 杭JS参会记录

lisposter Hang-JS-2014

© 著作权归作者所有

共有 人打赏支持
打杂程序猿

打杂程序猿

粉丝 130
博文 41
码字总数 51561
作品 3
广州
程序员
加载中

评论(7)

n
newnoder
79
zhangqing
zhangqing
撸过
开源中国匿名会员
开源中国匿名会员
……我就看到了一条花边新闻……因为某次丑闻导致离职,于是atom就开源了……其他都不懂。
花儿笑弯了腰
花儿笑弯了腰

引用来自“花儿笑弯了腰”的评论

我也去了额,第二天没有记录啊

引用来自“打杂程序猿”的评论

! oschina 也有人去hangjs 啊..
参加的人淘宝 支付宝 居多
打杂程序猿
打杂程序猿

引用来自“花儿笑弯了腰”的评论

我也去了额,第二天没有记录啊
! oschina 也有人去hangjs 啊..
花儿笑弯了腰
花儿笑弯了腰
我也去了额,第二天没有记录啊
aiasfina
aiasfina
广州到杭州...给你赞一个79
2014 Hangjs 见闻流水账第二天

前言 第一天传送门: 2014 Hangjs 见闻流水账第一天 写作风格跟第一天还是一样的. Slide 每个slide我都会根据自己的理解重新命名一次,用于表达自己的第一看法,主观意见,不喜可吐槽,但是不要喷...

打杂程序猿 ⋅ 2014/06/30 ⋅ 0

php的strtotime举例

1、上周日午夜   strtotime("last sunday"); 2、本周日午夜 strtotime("this sunday"); 3、今天午夜   strtotime("today"); 4、昨天午夜 strtotime("yesterday"); 5、上周同一时间 ...

贪睡猫仙mosen ⋅ 2014/02/18 ⋅ 1

开源中国深圳源创会分享

*** 2015 年 3 月 21 日,深圳,科兴科学园。短暂的春天不知不觉中悄然离去,夏天的影子突然来临。 早晨 6:30 起床,吃了早餐便匆忙地奔向深圳。路途并不顺畅,到了深圳堵车。下车后,一阵阵...

Wentasy ⋅ 2015/03/23 ⋅ 4

SimpleDateFormat之后为何多了一年,难道Java API也这么不靠谱?

这一切的背后到底是机器故障,还是程序的bug? 难道Java API也不靠谱 朋友在我博客上发现一时间明显错误,操作时间怎么会是2016年?在同一个for循环输出到页面的时间,唯独这一个时间不对,整...

心尖偏左 ⋅ 2016/06/28 ⋅ 0

理解SVG的viewport,viewBox【1】

viewport表示的是svg可视区大小,具体体现就是svg元素的width和height属性值所圈起来的区域: <svg width="400" height="300" style="border:1px solid #cd0000;"> <rect x="10" y="5" widt......

佣兵0926 ⋅ 2014/08/28 ⋅ 0

成为一名Full stacker?

2014-04-15 包研 InfoQ 要更专,还是更全面,这个问题一直在困扰着我。无论在任何 行业,专业能提高你的不可替代性,带来更高的薪水。但在很多时候,专业的价值并不会被社会完全认同,一些冷...

Yamazaki ⋅ 2014/04/23 ⋅ 0

Firefox 是 Pwn2own 2014 上攻陷次数最多的浏览器

在惠普赞助的年度黑客挑战赛Pwn2Own 2014上,Google Chrome、苹果Safari、微软IE、Mozilla Firefox和Adobe Flash相继被攻陷,但Firefox是攻陷次数最多的开源浏览器。 微软的IE被安全公司VUP...

oschina ⋅ 2014/03/17 ⋅ 27

2015年12月1日:JDK SSLContext 性能问题

2015年12月的第一天,暗无天日 在测试用 Netty 实现的反向代理的过程中发现了一个疑似为 JDK bug 的问题。我们测试出来的现象和这个 bug 所描述的问题很相似,都有 调用缓慢的问题。但是这个...

编走编想 ⋅ 2015/12/01 ⋅ 0

魅族 M9 珠海大本营首发见闻

2011 年 1 月 1 日,魅族的 M9在经过长时间的酝酿之后正式发售。M9 选择这个日子发售,别有深意,也许是为了能够借节日的喜气,让 M9 发售的第一天能够来个开门红。 珠海是魅族总部所在地,这...

红薯 ⋅ 2011/01/02 ⋅ 22

Python 写的计算指定年指定月日历的脚本

今天初学Python写了一个用于计算指定年指定月日历的脚本 我的Python版本:Python 3.4.2 输入:脚本名 年(4位数字,1900-2100) 月(1-2位数字,1-12) 输出:打印的指定年月日历信息 Calend...

北风其凉 ⋅ 2014/12/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 40分钟前 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 2

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部