2014-03-29 W.Y.
介绍 一群恶魔的猪从无辜的小鸟那里偷走了所有的前端架构,现在它们要夺回来。一对特工英雄(愤怒的小鸟)将攻击那些卑鄙的猪,直到夺回属于他们的前端架构。(译者注:本系列是关乎前端架构的讨论,作者借用当前最风靡的游戏 - 愤怒的小鸟,为我们揭开了前端架构的真实面目。) 小鸟们最终能取得胜利吗?它们会战胜那些满身培根味的敌人吗?让我们一起来揭示 JavaScript 之愤怒的小鸟系列的另一个扣人心弦的章节! 阅读本系列的介绍文章,查看所有小鸟以及它们的进攻力量。 战况 红色大鸟 - 立即调用的函数表达式 蓝色小鸟 - 事件 黄色小鸟 - 模块化、依赖管理、性能优化 黑色小鸟的攻击力 在这篇文章中,我们将看看黑色小鸟,它们使用 继续阅读 »
2016-04-28 Brian Li
其实本文想说的是:当面试一个架构师的时候,我们应该问什么问题?我觉得,问什么样的问题,体现了team leader更加看重架构师的哪些特点。 我一直认为,做技术就跟练武一样,在练武的不同阶段,分招式和心法。技术也一样,在不同的阶段,也分招式和心法。另外,就我个人而言,经常忘记招式,一方面可以说十二年来,我用过的招式很多,到了现在也不记得几个。另一方面我自己也不会特意去记。事实上,十二年代码写下来,我反而越来越不关注招式,而是越来越关注如何解决问题,也就是心法。所以我作为team leader的时候,我会更加看重这个架构师候选人是不是有一套属于自己的心法。 继续阅读 »
2016-05-12 Piasy
在完美的安卓 model 层架构(上){:target="_blank"}中,我主要介绍了网络请求、数据库持久化、Immutable/Value types、Json 序列化与反序列化这四部分内容,而剩下的关于 Parcelable,ZonedDateTime,null safety,rx error handling,config injection以及测试相关的内容,将在本篇中进行介绍。 继续阅读 »
2017-09-28 ruki
本文主要介绍下xmake的整体架构设计,以及源码结构的布局和模块划分。 如果你想深度使用xmake,开发xmake插件、工程自定义脚本或者想为xmake贡献一些代码和特性,可以通过此本的介绍,对xmake项目整体有个大概的了解。, 源码地址:Github 顶层目录结构 bash ./xmake/ ├── actions # 内建的一些基础task,用于基本的构建安装等操作 ├── core # xmake的核心模块,提供最底层的实现支持 ├── languages # 所有的语言相关特性支持和扩展,都在此目录下 ├── modules # 内置的扩展模块,可用`import`导入使用 ├── pack 继续阅读 »
2016-08-27 ruki
tbox主要有三种流: stream: 最常用的流,一般用于单路阻塞、非阻塞io的处理,接口简单易用 async_stream:异步流,基于asio的流,全程回调处理,可以在单个线程里支持多路流的并发,节省系统资源,提高效率 static_stream:静态流,用于对纯buffer的位流处理,一般用于各种解析器 不管是stream还是async_stream,都可以在其上挂接多路filter,实现流之间数据过滤和变换。目前支持以下几种filter: zip_filter:gzip、zlib的压缩和解压缩过滤器 charset_filter:字符集编码的过滤器 chunked_filter:http chunked编码的解码过滤器 继续阅读 »
2016-05-06 Piasy
前些日子在 Android Weekly{:target="blank"} 上看到了一篇介绍 SqlDelight 使用{:target="_blank"}的文章,虽然之前了解过 SqlDelight{:target="_blank"} 和 SqlBrite{:target="_blank"},但却一直没有尝试过。但这次我被文章中的例子惊艳到了,而且 SqlDelight 还能和 AutoValue{:target="_blank"} 兼容使用,进一步打消了我的顾虑,我就赶紧在 AndroidTDDBootStrap{:target="_blank"} 项目进行了尝试,并且甩掉了之前使用的 StorIO{:target="_blan 继续阅读 »
2014-04-21 W.Y.
我们今天要讨论的主题是,大型 JavaScript 应用中一些有效的设计模式。本文基于我最近发布在 LondonJS 上同名演讲,灵感则来自于 Nicholas Zakas 之前的研究成果。 我是谁以及我为什么要撰写这个主题? 我目前是 AOL 的一名 JavaScript 和 UI 开发人员,负责规划和编写下一代面向用户的应用的前端架构。这些应用不仅复杂,而且需要一种可扩展和高复用的架构,我的职责之一就是确保这类应用中的设计模式尽可能是可持续的。 尽管在这个领域有许多比我知识渊博的专家,我也认为自己是设计模式的狂热者。先前,我基于 Creative Commons 许可写了 《Essential JavaScript Des 继续阅读 »
2016-02-29 veryyoung
单页面架构的 dom 结构是用 js 动态构建出来的,而搜索引擎抓取的时候是不管 js 的,这样单页面架构是很不利于 SEO 的,而 SEO 对于一个对外的应用来说是非常重要的,放弃 SEO 等于放弃了网站的最大的流量入口:搜索引擎。 单页面应用 SEO 优化的思路就是判断请求是否来自搜索引擎,如果是搜索引擎在爬取页面,提供一个无界面的浏览器去访问网页,得到通过 js 渲染过后的 html 代码,再返回给搜索引擎。 继续阅读 »
2016-02-04 ruki
TBOX的内存管理模型,参考了linux kernel的内存管理机制,并在其基础上做了一些改进和优化。 内存整体架构 large_pool 整个内存分配的最底层,都是基于large_pool的大块内存分配池,类似于linux的基于page的分配管理,不过有所不同的是,large_pool并没有像linux那样使用buddy算法进行(2^N)*page进行分配,这样如果需要2.1m的内存,需要分配4m的内存块,这样力度太大,非常浪费。 因此large_pool内部采用N*page的基于page_size为最小粒度进行分配,因此每次分配顶多浪费不到一页的空间。 而且如果需要的内存不到整页,剩下的内存也会一并返回给上层,如果 继续阅读 »
2016-04-29 令狐葱
Update [20160725] Facebook 官方提供了一个可以生成React Starter项目的工具,有兴趣可以看下:create-react-app 前言 React技术之火爆无须多言,其与webpack的完美结合,也让二者毋庸置疑的成为天生一对。为了进行React的快速和规范化开发,开源社区中涌现了很多React+webpack的boilerplate项目。通过使用这些boilerplate,我们可以快速的创建一个React项目的架构。 葱哥之前专门创建了一个Github项目用于收集这些boilerplate:awesome-react-boilerplate。当然这里不可能完整收录,但是目前为止已经有近30个 继续阅读 »