HUANG QING BLOG

天行健,君子以自强不息。地势坤,君子以厚德载物。

如何画出一张合格的技术架构图

1、什么是架构 架构就是对系统中的实体以及实体之间的关系所进行的抽象描述,是一系列的决策。 架构是结构和愿景。 系统架构是概念的体现,是对物/信息的功能与形式元素之间的对应情况所做的分配,是对元素之间的关系以及元素同周边环境之间的关系所做的定义。 有了架构之后,就需要让干系人理解、遵循相关决策。 2、什么是架构图 系统架构图是为了抽象地表示软件系统的整体轮廓和各个组件之间的相互关...

Framework Types

mvc 分层架构; 洋葱架构(整洁架构) DDD(领域驱动设计)架构 六边形架构(端口-适配器架构)

mongoDB

MongoDB 提供了可用于64位系统的预编译二进制包,可以从MongoDB 预编译二进制包下载地址下载安装. MongoDB Compass 是一个图形界面管理工具,可以在到官网下载安装

curl

curl命令 curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。 curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。 它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形...

Node.js

Node.js 事件循环 Node.js 是单进程单线程应用程序,但是因为 V8 引擎提供的异步执行回调接口,通过这些接口可以处理大量的并发,所以性能非常高。 Node.js 几乎每一个 API 都是支持回调函数的。 Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。 Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异...

ES 6 7 8

ES 新特性

ES6 1.Array.from() 将一个类数组对象或者可遍历对象转换成一个真正的数组。 //1.Array.prototype.slice.call() Array.prototype.slice.call($('li')); //2.ES6展开运算符 [...document.getElementsByTagName("li")] //3.利用concat+apply Ar...

License

开源许可证

介绍 Github 官方专门制作了一个网站choosealicense帮助大家选择合适的开源License。 MIT 最自由,简直就是没有任何限制,任何人都可以售卖我的软件,甚至可以用我的名字促销。 BSD 和 Apache 协议也很自由,跟 MIT 的区别分别是不允许用作者本人名义促销和保护作者版权。 GPL 可以说最霸道,对代码的修改部分也必须是 GPL 的,同时基于 GPL 代...

Rollup

Rollup rollup是一款小巧的javascript模块打包工具,更适合于库应用的构建工具;可以将小块代码编译成大块复杂的代码,基于ES6 modules,自动进行 Tree-shaking,它可以让你的 bundle 最小化,有效减少文件请求大小。 全局安装 npm install --global rollup 命令行 //该命令编译 main.js 生成 bundle...

基于websocket的文件上传控件

ws-file-upload

功能描述 开发一个基于websocket传输的文件上传控件,并实现以下功能: 上传文件选择:支持选择单文件、选择多文件、选择文件夹。控件提供单文件上传按钮、多文件上传按钮。 上传文件拖拽选择,自动检测文件或文件夹,递归遍历获取全部文件。控件提供文件拖拽上传区域 文件过滤:支持选择文件的过滤功能,可配置。如:指定的可选文件类型,可以选择图片类型。 文件上传:基于浏览器we...

Git Flow

别再推荐Git Flow了

功能分支(feature branches)、发布分支(release branches)、主干(master)、开发分支(develop)、紧急修复分支(hotfixes)和标签(tag)。 Git Flow 太复杂 Git Flow 违背了分支的“短命”原则:在使用 Git 时,在同一个分支上开发代码的人越多,出现合并冲突的几率就越高。在使用 Git Flow 后,冲突几率会变得...