雨夜带刀's Blog

美团 MX 基础终端团队招聘

团队介绍

我们不是传统的 Web 前端工程师,率先将前端方向直接面向终端(Web 端与客户端)与全栈领域。为了表示他与传统前端的不同我们起了这样一个名字 —— 基础「终端」团队。

我们将在:

  • 支持既有技术工程部的云、大数据、金融及支付等业务;
  • 在全端、全栈业务开发中孕育出基础技术;
  • 与美团所有事业部的技术共同合作孵化技术;
  • 用自驱力与技术革新驱动美团的所有 Web 方向与客户端方向工程团队。

从而改善整体的研发生产力,用工程的方式降低整体终端与全栈的研发成本。

  • 在这里,将没有前端的界限,前端是无限可能。可以是除了 Web 端、Pad 端,手机端之外的硬件端;
  • 在这里,有前后端分离,但也可以用 NodeJS/PHP/Python/Java 写后端的逻辑;
  • 在这里,可以在大数据可视化上的图形和 3D 领域一展身手;
  • 在这里,不用再担心技术小规模应用反馈,因为我们除了对外的业务之外,还有足够的内部云系统来试错;
  • 在这里,它是一支全新的团队,正在等待充满好奇心,愿意用技术改变的你。

Boyer Moore 字符串搜索算法之 JavaScript 实现

最近碰到的一个需求需要借助字符串的快速搜索算法,于是看了一些有关字符串搜索的一些算法,最先看的是 KMP 算法,看完之后发现还有更优的算法,那就是 Boyer Moore 算法。编辑器的文本搜索、GNU 的 grep 都有使用 Boyer Moore 算法,那么效率应该是经过权威验证的。

虽然网上有不少介绍资料,但我还是从一个算法小白所理解的算法原理来尝试解析该算法,算法大神可绕道了。

从头至尾搜索一个字符串,看这个被搜索的字符串是否包含指定的子串,有则返回其位置,没有则返回 -1,相当于使用自己的算法来实现 JavaScript 中的 String.prototype.indexOf 的功能。

使用 gulp-seajs-combo 合并 seajs 模块

在之前的 前端自动化构建和发布系统的设计(一) 中我有提到过使用 gulp-seajs-combo 合并 JS 模块的问题。在那篇文章中只提供了简单的 demo,当然在 github 上有详细的文档以及测试用例,尽管如此,还是会有人对使用会有诸多疑惑,希望能在看完此文后对使用 gulp-seajs-combo 合并 seajs 模块有更深入的了解。

无论是使用什么样的模块化开发模式,不管是 AMD 还是 CMD,抑或是其他类型的模块化规范,在开发时都会将一个大的应用或功能分割成一些小模块,而到了生产环境,为了能节省 HTTP 请求数,会希望将原来的小模块进行合并。

在开发环境,模块加载器解决了模块的依赖和加载的问题,由于客户端 JS 的使用特性,依赖和加载是绕不开的两个问题,不管你用的是小而美的模块加载器还是看起来很高大上的框架。在生产环境中,对模块按照依赖进行合并,这就是合并工具应该做的事情。

2014年度总结

一年又一年。

一年比一年忙。

1

上半年纠结了一段时间,最终还是从 360 离职了,本来已谈妥的 offer,最终自己放弃了,放弃的不仅仅是一份 offer,也算是放弃了一种生活方式吧。找工作的这一段空档,还是挺迷茫的。如果一直处于忙碌的状态,突然闲下来会觉得无所适从。离职那段时间觉得自己特操蛋。

毫无准备的情况下加入了最意想不到的现在所在的公司(聚美优品),也一下从开发的角色转换成团队管理的角色,转变确实挺大的,算是一种更大的挑战吧。

2

半年的时间,感觉收获还是挺大的,也算是逐渐进入角色了吧,现在也越来越能明白作为一名团队 leader 的种种不容易。

Handlebars 和 SeaJS 的结合使用

Handlebars 是一款语义化的模板引擎,其模板语法就像是在写普通的 HTML 代码,并且在性能方面也表现优秀。本文将介绍 Handlebars 如何结合 seajs 来使用。

模板引擎的编译和预编译

开发者用语义化的代码编写好模板,然后将编写好的模板再进行编译,这个编译环节是必不可少的。服务端的模板也同样需要编译,只是这个编译环节是在服务器上进行的。

前端模板引擎要么是直接在浏览器中进行编译,要么就先将模板进行预编译,预编译的代码是可以直接放到浏览器中运行的。在浏览器中编译就意味着会有一些编译时的性能开销,如果要追求前端性能的话,肯定是使用预编译好的模板。

Handlebars 提供了支持编译和不支持编译的 2 种版本,不支持编译的 runtime 版本只能运行预编译好的模板,而 runtime 版本的库文件理所当然要小得多。

在开发环境中,要确保开发方便,引用的是支持编译的库文件,而在生产环节中,模板经过了预编译,此时引用的是 runtime 版本。

头像

雨夜带刀

前端开发工程师,技术宅,现居北京。

雨夜带刀的开源项目

easy.js
一个简洁的 JavaScript 类库,集成了模块加载器,同时也有包含了常见的的组件库,可访问项目网站
seed
符合 AMD 规范的 JavaScript 模块加载器。
ecope
从 easy.js 组件库中移值过来的基于 jQuery 的组件库,简单实用,API 风格统一。
第 1 页,共 14 页12345...10...最旧 »