最新文章

JS Channel Conf 2017 直播地址

JS Channel Conf 是来自印度的年度 JS 开发者大会,这是大会直播的地址,需要自备梯子才能观看,印度式英语会是个不小的挑战,我看完再来跟大家汇报下哪些部分比较精彩,

V8 引擎特性带来的的 JS 性能变化清单

做应用层开发的同学对底层技术变化也要保持敏感,因为某些过去的最佳实践在新的技术背景下就不适用或者没必要了,HTTP 协议就是典型的例子。V8 6.X 对哪些 JS 语法或者写法带来了比较显著的性能提升?这篇文章做了不错的梳理。

Spacetime:轻量级的时间处理库

日期时间处理在任何语言中都略显复杂,JS 领域比较受欢迎的库有 moment.js,支持各种格式化,时间加减、比较等操作,而 Spacetime 是个更轻量级的选择,当然,如果你的需求很简单,不建议引用任何库。

免费电子书:The JavaScript Way

现代 JS 简明指南,站在现代前端开发的视角阐述 JS 开发方式,适合新手,基于 ES6,内容简洁而不单薄,如果想提高自己的技术英语也会是个不错的选择。更重要的是,这不是纯理论的书籍,阅读的时候能有很多上手练习的机会。

React 16 Beta 版发布日志

该版本几乎是完全重写了 React,但是还是做到了向前兼容,如果你在升级到 15.x 的过程中修复了大部分废弃声明,基本可以直接升级,除非你使用了各种非公开的 React 黑科技。此外,期待已久的 Fiber 也集成到了该版本中,预计渲染性能会有不小提升,打包的方式也发生了不小变化,想学习更多细节的快去看日志吧。

有没有能列出所有城市的 npm 包?

程序员的世界里面也是无奇不有,这个包能列出全世界 13W+ 人口超过 1K 的城市,并且存储方式是粗暴的数组,如果只是临时使用可能也没啥纠结的,但若是大批量使用,你会怎么改进这个包呢?

Compromise:基于 JS 的自然语言处理处理库

想自己做些更复杂的文本处理?在开发聊天机器人或者做抓取数据批处理的时候可能会用的上,只支持英文,中文的包也有,但相对难找,即使你不用,对了解自然语言处理库所应该具备的基本能力也是有帮助的。

如何为不读文档的人写文档?

行为学研究的结果是:用户在使用互联网产品时,用户从来都不是逐字逐句的阅读,而是用类似扫描的方式去解读,如果用户在你文档的开头或者结尾找不到他们想找的东西,他们大概率会放弃转而给你提 Bug 或者 Issue,即使你中间写的再精彩,维护过开源项目的同学可能有这种体会,那么怎么为不读文档的开发者写文档呢?毕竟使用你项目的人也是你的用户嘛,如果你也想在社区得到认可,文档属于基本功啦。

Node.js 应用最佳实践 20 条

作者从自己的经验和别人的博文中总结出来的 Node.js 应用最佳实践,内容涵盖监控、日志、请求流转、版本锁定、错误管理、性能等方面,如果你想从前端成为靠谱的 Node.js 后端工程师,认真践行这篇文章列出的实践,定能让服务质量和技术能力更上一层楼。

漫画:1 分钟了解比特币和区块链

混子个用很黄很暴力的风格来解读什么是比特币和区块链,虽然省去了很多技术细节,但是对于只是想大概了解的同学理解本质足够了。话说基于区块链技术的有意义的应用正在越来越多,是不是会成为下一个重要的软件开发领域呢?

写给 WEB 工程师的区块链入门知识

区块链正被越来越多的工程师所熟知,没听说过区块链的,总听说过比特币吧?可以说,区块链是比特币运行的关键基石,有“砖家”说区块链技术给世界带来的变化会不亚于互联网诞生所带来的变化,而后者是大家有目共睹的。但是究竟什么是区块链呢?如何基于区块链构建去中心化的应用?这个系列文章很有料,有图文解释、有代码实例,非常适合入门。

React Native for Web:在 WEB 端重用 RN代码?

项目愿景不错,可以在 WEB 端使用和 React Native 完全相同的 API 编写代码,有希望解决 Native 和 WEB 之间共享代码的问题,目前实现的组件包括比较常见的 View、Image、ActivityIndicator 等,但缺陷也很明显,部分依赖 Native 能力的库或者 API 只能用 Mock 的办法去解决。当然了,从练手的角度来考察这个项目的意义,是不是就不一样了呢?

如何对压缩混淆后的 JS 代码做逆向工程?

很多前端同学在初入门的时候可能都用到了逆向工程的方法,区别就是逆向的难度大小的问题,通常 CSS、DOM 再明显不过了,你对压缩混淆过的 JS 代码做过逆向工程么?没有的话,读读这篇长文,看看 Alex Kras 是如何做到的。

AI 术语中英文对照表

如果你知道某个领域各种术语对应的英文单词,能看懂英文技术资料就会更容易,前端为什么要关注人工智能?科技发展的趋势是挡不住的,即使不做人工智能的开发,多学点单词也能避免不少拼音式变量名吧。

awesome-guidelines:编码风格指南

高质量的代码会体现在表层和结构两方面,表层主要指代码排列、变量命名等方面,结构主要体现在容错、扩展、调试等方面,表层的代码技巧相比结构方面更容易掌握,而通常来说表层很差的代码,结构也好不到哪里去,这篇汇集了很多门语言的编程规范、最佳实践。

Practical Node.js:第2版

Practical Node.js 开始修订第 2 版了,预计年底会完工,这个仓库是手稿原文,如果你看过的话是不是也可以参与进去呢?该书的第一版< href="https://www.amazon.com/Practical-Node-js-Building-Real-World-Scalable/dp/1430265957/ref=sr_1_1?ie=UTF8&qid=1500419270&sr=8-1&keywords=practical+node.js#customerReviews">评价还比较不错。

每个单元测试都必须回答的 5 个问题

有个难以接受但是残酷的事实,大多数程序员都不知道怎么写测试,测试不仅能帮助你理清对需求的理解,还有利于设计的开展,更直接的是方便持续集成为以后的自动化回归打好基础。那么该怎么写测试?正确的思考都是从提问开始,每个单元测试都要回答 的问题包括:你在测什么?它是干啥的?输入是什么?输出是什么?如何重复测试?

为什么 Reddit 选择了 TypeScript?

Reddit 的前端团队在做重构的时候重新选择了 TypeScript 作为基本的开发语言,他们调研了哪些方案?选择 TypeScript 的理由是什么?如果你时间有限就看最后的结论吧。

VimGameSnake:在 Vim 中玩贪吃蛇

代码写累了想在 Vim 里面休闲下?请收下这款游戏吧,不要跟老板说是前端周刊介绍的,哈哈。当然,如果你想在 Vim 中尝试更多的游戏,可以移步:github.com/jmanoel7/vim-games。

franc:支持超过 800+ 语言的语种检测库

如果你恰巧也需要在工作中处理多国语言,而需要知道数据库中存储的文本语种,franc 绝对能为你所用,支持超过 800+ 语种,支持计算某段文本属于某种语言的概率,长的文本输入能给你更精确的结果。

API 安全检查清单

《清单革命》中提出在医学领域使用检查清单是保障复杂手术成功简单却有效的方法,有人把这种方法论迁移到建筑领域,而软件工程领域同样使用,对于开始接触 JS 后端开发的同学,如何保障 API 服务的安全有很多方面需要考虑,如果想让自己成为思维缜密的工程师,这篇文章及其中提到的概念和技术,非常值得学习。

JS 项目行军指南

对于相当比例的工程师,尤其是刚入门的前端工程师来说,开始一个全新的项目就像是在未知领域摸索前行,如果方法不当,维护老项目更是噩梦,那么推进新项目是否有固定的套路可循呢?这篇文章是 Hive 的团队总结出来的 JS 项目行军指南,覆盖了 Git、依赖、测试、文件组织、代码规范等方面。

Release:快速生成仓库的 Changelog

Zeit 官方发布的命令行工具,运行之后能自动生成 GitHub Release,并且基于上次发布之后的提交生成本次 Release 的更新日志,如果不了解这种发版流程,建议去看看 React、React Native 的版本更新机制。

Gifted Chat:React Native 会话式 UI 库

在 AI 时代,人机交互的方式也有不少新的变化,具体到前端领域,会话式UI(Conversational UI)的崛起尤为显著,微信公号上的自动回复功能也可算作此类,Gifted Chat 是为 React Native 定制的会话式交互组件,在交互细节上做了不少的优化考量,也支持灵活的自定义,如果你最近想做个类似的 APP,应该可以用上。

认真的 JS 开发者必须知道的 10 件事?

由一个想提高自己的前端工程师发布在 Redit 上的问题,高票答案总结的非常不错,现在的前端工程师跟五年前的前端工程师已经大不相同,如果你想在这个领域立足并成为大牛,这个答案可以作为基础技能检查清单。

ES8 发布及主要特性总览

ES8 已经正式发布,这篇文章使用实例对 ES8 中确定的语言特性(比如 Object.values、Object.entries、String.padStart、String.padEnd)做了介绍,基础好的同学可以自己去阅读规范原文,此外,掘金翻译计划也把文章翻译成了中文。

全球技术领导力峰会 PPT 下载

学习新知、探索未知、提升自我是技术人的本能,而对技术领导者来说,技术之外,更是有着广袤的世界亟待探索。全球技术领导力峰会(GTLC)是由极客邦主办的技术领导人盛会,今年是第二届,主题为“探索圆外的世界”,邀请了互联网及传统行业的权威技术领袖分享他们关于技术、行业、商业、投资、领导力的实践与见解。有志于成长为技术领导者的同学可以细细研究下。

腾讯 WEB 前端大会 PPT 下载

腾讯 WEB 前端大会(TFC)2017 是由腾讯主办,广邀国内外的前端大牛,有著名流行框架的作者、知名前端书籍的作者、WEB 工程化方面的权威等。部分讲师是从腾讯上千名前端工程师中精挑细选的优秀高级工程师,内容不仅涵盖 WEB 新技术、Node.js、框架、工程化、 图形处理等前端前沿内容 ,还包含极致的性能优化、海量用户运营等具有腾讯前端特色的宝贵经验。没有去现场的同学,PPT 的学习不可错过。

frontexpress:浏览器里面的 express.js

非常喜欢 express.js 里面的中间件开发模式?使用 frontexpress 在浏览器里面也可以写几乎相同的代码了,frontexpress 是轻量级的浏览器端路由管理工具,如果你不依赖任何框架编写代码,它会是个不错的选择。

Learning How to Learn:元认知能力提升必学课程

个人非常喜欢的 Coursera 课程,主要内容是学习和认知的客观规律:你能透过这门课程看清人是如何学会一门新技能;为何花了很多时间学习大脑却感觉一团浆糊原因。不得不说;人的大脑和思维方式有哪些天生的缺陷,改如何避免。在这样一个知识爆炸的时代,你更应该需要掌握如何学习的底层方法。

bundlesize:打包后代码体积的哨兵

bundlesize 是一个很容易与 Travis、Circle 等 CI 平台集合的工具,能够帮你检查项目打包后的代码体积,并标识在你的 Pull Request 里面,让开发者在把代码合入主干之前对代码体积的变化做到心中有数,配置仅需 2 步,诸如 preact、styled-components 这类的开源项目都在使用了。

jsdiff:基于 JS 的文本比较算法

这是基于 JS 的文本 diff 实现,diff 不仅仅在代码管理领域适用,比如 git,在文档管理领域也是使用的,比如 confluence wiki 的文档历史,在业务系统中甚至也是适用的,如果你想在业务系统中保存详尽的操作日志,即回答“谁在什么时间把什么字段从什么改成了什么这个问题的时候”你可能需要用到这个思路。

lnxpcs:让你看起来更极客的设计

这个仓库收集了不下 50 个跟 Linux 有关的艺术设计,比如各种 Linux 发型版本、Shell 版本、只有技术人才能看懂的漫画等等,每个艺术设计甚至有对应的纪念衫可以购买,你有没有兴趣自己去印一件?

最佳前端面试问题梳理

面试对于技术人,尤其是刚入门的技术人来说尤其重要,这篇文章道出了面试的基本框架,考察概念、编码、Debug、设计能力,对时下比较常被问到的前端面试题提出了自己的看法,并且给出了不少的比较有意思,我也时常在用的问题,如果你正在准备实习或者找工作,可以参考。

前端框架发展简史

原标题为《Choosing a frontend framework in 2017》,实际上介绍了自 Backbone 以来,各种前端框架(Angular.js、Angular、React、Ember.js等)出现的背景及后来的演变路径,可见作者对于每个框架的特点都非常熟悉,文末有人问作者为啥没提到 Vue.js,作者的观点也比较明确:Vue.js 是个非常不错的框架,目前集成了大多数框架的优点,但是还没有创造出新的特性。

你应该知道的 6 个 React Native 性能贴士

React Native 本身性能是非常好的,但是代码写的不好也很容易出现性能较差的 APP,在 Android 上尤其如此,为什么会如此?写出高性能的 APP 有哪些坑要避开?这篇文章开局介绍了 React Native 的基本工作原理,然后给出了几条操作性非常强的建议,内容涵盖组件优化、动画、导航等。

create-component-app:react 组件初始化工具

高效的工程师都会重度使用命令行,使用 react 创建组件时你还在复制粘贴么?是时候换个新的姿势了,create-component-app 提供了可高度自定义的命令行式的组件创建方法,支持配置组件的名称、种类(如 class、pure、stateless)、样式写法。嫌这个命令太长了?去设置个 alias 不好么?

React Native UI Kitten:包含 40 个页面的参考项目

跟早些时候出来的 Vue.js 开发的高仿饿了么很像,几乎包含了现代 APP 应用会用到的所有界面,比如加载中页面、登录、注册、仪表盘、列表、详情等,基于 react-native-ui-kitten 开发,集成了 Google Analytics 和 react-navigation,刚入门 react native 的同学可以参考。

漫画:什么是动态规划?

走台阶问题的动态规划解法是很多大科技公司面试的时候会问的,你当时都答上来了么?这篇文章用比较生动有趣的方式介绍了什么是动态规划,动态规划的基本要素有哪些,怎么用它来解决简单的问题和复杂的问题。

怎样花两年时间去面试一个人?

Joel Spolsky 曾经感叹:招聘难,难于上青天,再难的问题也是有办法的,作者在本文给出了一个比较独特的招聘思路,基于书单和 GitHub,花费两年去面试一个人,虽然我们公司没有完全照这个实践,但是看不看书,GitHub 的代码在评估候选人的时候都是会综合考虑的。如果还没写多少代码,这篇文章的书单对你来说会是个不错的资源。

Vue Conf 2017 国外版演讲精选

上周在波兰举行的 Vue Conf 2017 已经结束,与会人数超过 300 人,虽然声称是全球首届,但是实际上比国内的要晚一个月左右,这篇文章精选了本次大会中几个比较精彩的演讲,感兴趣的同学可以看看,想提高英语的同学,可以对照着中文看看尤雨溪的开题演讲。

注释良好的 CSS 代码应该长啥样?

社区中就代码可维护性的讨论 JS 比 CSS 多太多,实际上 CSS 也是写起来容易,维护起来难的语种,注释和文档良好的 CSS 代码能够保障代码一致性,大幅度提高代码可维护性,帮助团队形成编码时的“共同语言”,那么注释良好的 CSS 代码该包含哪些要素呢?理解这篇文章再加以实践,相信能提高不少。

像产品一样打造样式规范

续前篇《想产品一样打造交付流水线》,原题为《Style Guides as Products》,很多同学都知道样式规范的重要性,部分公司制定了自己的样式规范,只有极少数公司的样式规范能真正落到实处,成为开发者主动拥抱和维护的项目。你有没有觉得这跟做产品很像,技术人的产品观可以体现在很多地方,这次你也跟作者一起思考下如何用产品思维来打造样式规范吧。

作为程序员的我年轻时犯的错

十年互联网老兵的呕血总结,拉长了时间跨度的经验总结显得弥足珍贵:不要局限于一个平台、一门语言;不要为了钱去追求管理岗位;腾出时间放空自己;持续编码;积极参与社区等,对于刚入行或者入行几年的你是否有启示?

想看更多类似内容?