Deep Linking:从浏览器调起 APP

URI-Scheme Universal-Links Intent iOS Android

Deep Linking 只是一个概念, 是指通过一个链接进入另一个网站/App,并直接浏览其内部的某个页面。 Deep Linking 给用户带来的是非常顺滑的浏览体验,尤其在 Web 世界中 Deep Linking 的实现非常容易。

但如果要进入 App 并定位到对应的页面则较为困难,URI Scheme, Universal Links, Android App Links, 以及 Chrome Intent 都是为了解决从 Web 页面 Deep Linking 到 App 而做的尝试。 本文从 Web 一侧的视角总结调起 App 的各种实现方式,能达到的效果,以及对应的兼容性问题。

怎样合理地设计你的网站 URL

HTTP URL 路由

URL 是 Web 三大基石之一,在 Web 开发、运维和使用过程中随处可见。 而且在 Web 开发中遇到的第一个设计问题,可能就是 URL 的设计。 在很多 MVC 架构下的开发者眼中它的作用却只是路由到一个控制器,这正是一切罪恶的开端。

如何编写 Commit Message

Git-Workflow Git 重构

基于 Git/npm 的开发流程实践 中提到, Git 所做的不仅仅是同步文件,它更是一种编写和组织代码的方式。 我们知道 Commit Message 是每次 提交代码 时的附加信息, 为什么 Commit Message 是一个问题呢?

设想这样一个场景:你发现一个最近上的功能有 Bug, 现在要马上回滚到上那个功能之前。但当你打开 git log 时看到了这样一幅场景:

基于 Git/npm 的开发流程实践

Git-Workflow Git Github NPM 测试 编译 版本

如果说 SVN 改变了人们同步代码的方式,那么 Git 改变了人们写代码的方式。 在 Harttle 看来 Git 基于 commit 的管理机制让开发者可以管理每一份代码变更, 而分支、合并、衍合等 Git 操作则使得这些变更可以随意拼接, 甚至可以把昨天的一个改动拼接到今天的改动之后。

这透露了 Git 对开发过程是有观点的,而非仅仅是同步代码。要遵循这些观点才能用得顺手, 比如明确地细分每个特性(Commit)、组织这些特性所在的线条(Branch)、合入功能或版本(Merge)。 本文以开发一个 NPM 的包的场景来介绍如何高效地使用 Git。

保存和恢复 TMUX 工作区 —— The Easy Way

Bash Session Tmux

Harttle 此前介绍过 Tmux 的使用,我们知道 Tmux 可以把所有打开的 Shell 都保存在服务器。 你的 Terminal 重启不会丢失任何东西,但 Server 重启后 Session 会全部丢失。 如果你像 Harttle 一样在开发 PC 本地运行 Tmux Server 的话,每次开机后都需要重新建立各种会话和窗格。

本文介绍一个 Tmux 插件:tmux-resurrect, 可以一键保存当前 Tmux 状态,包括 Session、Window、Pane 布局,甚至 Vim 状态也可以恢复。

如果你更偏向 The Hard Way,可以参考 恢复 TMUX 工作区 - The Hard Way,手动完成一切初始化工作。

CLI 测试:文件与标准输出

BDD Mocha Node.js 测试 Ramdisk

利用 Mocha 进行 BDD 风格测试 中介绍了 Node.js 下如何做单元测试,要确保软件的质量我们还需要 e2e 测试, 确保整个系统在真实场景下能够正常工作。

End-to-end testing involves ensuring that the integrated components of an application function as expected. The entire application is tested in a real-world scenario such as communicating with the database, network, hardware and other applications. – techopedia

本文 Node.js 的命令行程序(CLI)为例,介绍如何测试一个可执行程序的输入输出以及文件修改。 样例代码可参考 APM 的 e2e 测试代码

客户端渲染有哪些坑?

MVVM 异步渲染 路由 兼容性 pushState popstate

从别的角度出发,客户端渲染有很多其他名字比如前端渲染、前端异步、前端 MVC。 今天的 Web 稍有交互的站点都会做一套前端渲染,从早期的 Backbone,AngularJS 1.0, 到现在的流行的 Vue,React。基于这些技术做 MVVM 的同时甚至可以完成服务器端渲染。 但浏览器的客户端渲染(也就是前端 MVC)仍然存在不少限制,这些限制都是前端渲染绕不过的问题。

上一页 下一页