构建工具 for teamwork
1. 为什么需要 “构建工具 for teamwork”
现在对于构建工具的使用已经非常广泛了,从 grunt 到 gulp,再到 webpack,一个个更加强大工具在不断出现,前端的技术更新节奏之快真的有点让人应接不暇呢(^_-)。但这些构建工具也只是提供了一些基础子集,对于团队来说,还需要把这些子集进行组合,打造适合团队开发的构建工具。
2. 适合团队的构建工具应当具有的一些特性
这里只涉及团队开发的特性,不涉及前端构建的基本特性,如:合并压缩代码,去缓存,提取公共文件等。
有良好的项目结构(目录结构...
前端开发文档
1. 为什么需要 “前端开发文档”
上一节讲到开发规范,不以规矩,不成方圆,团队开发离不开规范,这一节讲的开发文档是对开发规范的一个补充。
从目的上讲,规范与文档都是为了降低团队的协作成本和维护成本,提高开发效率和质量,保证不会因为开发人员的变动而产生较大的影响。
2. 哪些需要形成文档
2.1 注释(只讨论 js)
随着前端的发展,文档已经慢慢的变得不可或缺了,并由社区的努力而形成了 JSDoc,类似 JavaDoc 和 PHPDoc。
2.1.1 什么是 JSDoc
JSDoc 是一个根据 javasc...
前后端分离、web与static服务器分离
1. 为什么需要 “前后端分离、web与static服务器分离”
web前端的发展历史大致可以分为两个阶段:node 之前与 node 之后。在 nodejs 出现之前,前端的发展一直比较缓慢,主要是因为:
html/css/js 从设计之初开始,都只为浏览器服务,并且在整个web程序中,是以后端为主,前端为辅,前端需要配合不同的后端做出调整(如不同后端语言的模板),因此前端程序往往是与后端程序耦合在一起的;
开发、调试、运行都始终摆脱不了浏览器,并且没有多少可选的工具(如 combo,都是由后端语言在服...
前端开发规范
1. 为什么需要 “前端开发规范”
规范不是强制性的,对代码的编写和程序的运行不会有致命的问题,但是没有规范会有一系列的问题,比如:
缺乏规范,第一个问题就是团队编码风格不一,增加了成员之间代码的阅读成本,加大了团队协作成本和维护成本;
随着团队人员的变化(多人开发一个应用,或者应用更换开发人员),如果缺乏规范,项目可能会变得一团糟,甚至失控;
即便是个人开发,规范也是需要的,当把项目转给其他人的时候,如果有规范的话,会大大降低阅读成本。
...
所以,建立一套适合团队的开发规范是很受用的。
2. 开发...
本地化接口模拟、前后端并行开发
1. 为什么需要 “本地化接口模拟、前后端并行开发”
在前后端分离之前,前后端的数据交流以及页面渲染使用后端的模板(如 java > jsp、php > smarty)是很常见的,所以前端对页面的开发与调试总是依赖后端程序,而不能本地运行,这就导致前端开发很耗时,并且毫无意义。前后端分离之后,前端能够在本地运行服务程序、开发、调试,这让前端开发人员从与后端耦合开发的过程中解脱出来,更高效快捷的开发 web 前端程序。基于此,我们便有了“本地化接口模拟”的需求。
2. 本地化接口模拟
这就是说我们要在本地模拟...
前后端分离、web与static服务器分离
声明:本文不介绍 git 的基本用法,需要读者对 git、git 命令、git 使用有一定的了解
mysql5.x重置密码
This one is for all MySQL-DBA's, which are working on macOS. Since the Apple OS has a rather peculiar way of starting and stopping MySQL, compared to Linux, you can run into some issues. These problems occur especially, if you have no access to the GUI.
PR...
go mod 的使用
从Go1.11开始,golang官方支持了新的依赖管理工具go mod。
命令行说明
➜ ~ go mod
Go mod provides access to operations on modules.
Note that support for modules is built into all the go commands,
not just 'go mod'. For example, day-to-day adding, removing, upgrading,
and downgradin...
Golang transaction 事务使用的正确姿势
第一种写法
这种写法非常朴实,程序流程也非常明确,但是事务处理与程序流程嵌入太深,容易遗漏,造成严重的问题
func DoSomething() (err error) {
tx, err := db.Begin()
if err != nil {
return
}
defer func() {
if p := recover(); p != nil {
tx.Rollback()
panic...
Golang和Java构建工具调查
Github:https://github.com/blindpirate/report-of-build-tools-for-java-and-golang
A Survey on Build Tools of Golang and Java
Java
Conclusion
In January 2017, the usage of build tools in Github's top 1000 Java repositories is as follows:
Tool Name
Referenc...