docker数据存储

概论

详情

volumes

bind mounts

tmpfs mount

最佳实践

什么时候用volume方式?

什么时候使用bind mounts?

什么时候使用tmpfs mount?

一些额外小点

概论

有三种方式来实现:

volumes

bind mounts

tmpfs mount(只在linux环境下,且无法持久化)

其中volumes是指 直接在宿主机的文件系统中拿出一块地方来存储docker相关数据,非docker进程应无权限触碰。

bind mounts则可以存储在宿主机上的任何地方(包括重......

在idc的tlinux2上安装docker

写在开头的建议

这里环境局限在在自研的tlinux上,有几个坑提前知会一下,避免回头折腾一番白费力气:

tlinux1.2是几乎不可能安装成功docker的,所以不要尝试了;

tlinux2.2上安装docker可以成功,但是网络功能由于tlinux因为安全考虑去除了NAT模块,所以只能用host的形式来启动docker,具体操作下面有写。

安装docker

参考地址:https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce

环境

系统环境:tlinux 2.2

网络环境:ID......

ESLint

方法论

通过静态检查来提前发现一些低级的错误、以及进行编码风格的确定。

JavaScript 是一个动态的弱类型语言,在开发中比较容易出错。因为没有编译程序,为了寻找 JavaScript 代码错误通常需要在执行过程中不断调试。像 ESLint 这样的可以让程序员在编码的过程中发现问题而不是在执行的过程中。

—— http://eslint.cn/docs/about/

ESLint的本身设计哲学:

所有都是可拔插的

内置规则和自定义规则共用一套规则 API

内置的格式化方法和自定义的格式化方法共用一套格式化 API

额外的规则和格式化方法能够在运行时指......

Commit Message

方法论

Commit Message的编写规范建议按照Angular团队的编写规范(需要科学上网),应用广泛,设计合理,且有配套的工具。

解决的问题

提供更多的历史信息,方便快速浏览

可以过滤某些commit(比如文档改动),便于快速查找信息

可以直接从commit生成Change log

实现规范<type>(<scope>): <subject>

// 空一行

<body>

// 空一行

<footer>

其中,Header 是必需的,Body 和 Footer 可以省略。

不管是哪一个部分,任何一......

版本控制

方法论

版本号控制需要遵循semver规范

semver的全称是Semantic Versioning,即语义化版本

解决的问题

致力于解决软件开发过程中遇到的“依赖地狱”的死亡之谷,系统规模越大,加入的套件越多,你就越有可能在未来的某一天发现自己已深陷绝望之中。

实现规范

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

主版本号:当你做了不兼容的 API 修改,

次版本号:当你做了向下兼容的功能性新增,

修订号:当你做了向下兼容的问题修正。

先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

实现关键点......

Vue SSR压测

这篇文章就致力能给这个问题以答案,为大家的技术选型提供一个简单的参考。

Vue SSR和传统字符串拼接对比压测方式

从测试机A 10.100.64.225往预发布机器B 10.100.68.239 (双核)上发送请求

注意事项:关闭掉B机器上的TSW过载保护

目的URL列表:

页面A:http://h5.weiyun.com/disk 页面是Vue SSR来做的直出渲染。页面较为复杂。

页面B:http://h5.weiyun.com/capacity_purchase 页面是传统jsc打包,字符串拼接方式直出渲染的。页面简单,只有两个webapp请求,拼接也......

一个你从来没有见过的window变量

什么,我难道不认识window变量嘛?在我有限的前端职业生涯中,每天都和window变量相爱相杀,为什么和我说这个。

可是你有见过Node.js中的window变量么

TSW中的window变量TSW是什么

TSW(Tencent Server Web)是一套面向WEB前端开发者,以提升问题定位效率为初衷,提供染色抓包、全息日志和异常发现的Node.js基础设施。

TSW中的window是什么

正如我们所熟悉的浏览器中的window对象广义上代表一个页面的生命周期,在TSW中window对象代表了一个请求的生命周期。

那么window对象的价值到底在哪里?

在浏览......

面对H5零散页面,我为什么放弃了Webpack

原有项目打包的简要介绍

首先有一点是需要提前说明的,就是我们产品和大多数前端架构不一样的地方:

CSS不是由我们来写,也不是由我们来发布,所以针对CSS、Image静态资源的存放是不由我们控制的。

页面是用Node直出的,所以我们一个页面会有部分的Node服务器代码。(什么是直出)

我们的页面都是用zepto手撸的,并没有用vue等框架。

正是由于我们项目的特殊性,目前没有找到和我们相匹配的构建方式,所以探索过程也并不容易。

H5项目目录结构

整个H5项目目录结构大致是:

.

├── common

├── lib

├── modules

│ ├── pag......

使用Alfred切换网络代理

目前网络状态

公司连WiFi,需要设置一个pac代理,不需要额外的代理,公司的代理能访问Google。回到家需要连上家里的WiFi,需要用SS做代理翻墙。

痛点

SS的代理和公司的代理互相冲突。从家的网络环境切到公司的网络环境中需要做:切换WiFi,关闭SS,记下来公司的pac地址,然后打开网络设置来手动设置代理;从公司的网络环境切到家中的网络环境需要:切换WiFi,打开SS。

公司网络配置:

家中网络配置:

主要就是这个自动代理配置的URL冲突了。

需求

每次切换网络环境,Alfred执行一个命令即可完成自动切换,SS可以一直在后台运行无需关闭......

使用homebrew安装jsc

安装方式

结论优先,如果你并不关心具体的实现细节,只想问我到底应该怎么快速安装上jsc,并且能够使用,那么跟着我,左手,右手,一个慢动作:打开terminal,输入下面这一行命令。

# Homebrew must be installed

==> brew install mapleeit/tap/jsc

好了,你现在可以像在windows下一样使用jsc了。:)

什么,你不信?能有这么简单?试一试又不会怀孕。

前言

最近想把开发环境切到mac下面来,因为个人对于mac这套工作流要比windows下面更为熟悉。其中一个环节就是把jsc切到mac下面来,其实方法很......

短篇合集

《我们仨》

-- 杨绛

钟书说:“一个人二十不狂没志气,三十犹狂是无识妄人。”

我们的阅读面很广。所以“人心惶惶”时,我们并不惶惶然。

“有名气就是多些不相识的人。”我们希望有几个知己,不求有名有声。

我们读书,总是从一本书的最高境界来欣赏和品评。我们使用绳子,总是从最薄弱的一段来衡定绳子的质量。坐冷板凳的书生袋子,待人不妨像读书般读。

人间没有单纯的快乐。快乐总夹着烦恼和忧伤。人间也没有永远。我们一生坎坷,暮年才有了一个可以安顿的居处。但老病相催,我们在人生道路上已经走到尽头了。

我清醒着看到以前当做“我们家”的寓所,只是旅途上的客栈而已。家在哪里,我不知道。我还在寻觅归......

熔炉

我们一路奋斗,不是为了改变世界,而是为了不让世界改变我们。

现实太残酷。在阳光不能触及的地方,黑暗冰冷地令人心寒。

当自己莫大的利好比如孩子和正义放在天平上时,抉择要多么大的勇气。当他妈问他自己的孩子到底有没有莲豆重要的时候,我一瞬间把自己放在那个位置都不知道怎么回答。但他的回答一下子让我泪奔了。

韩国人敢于直面丑恶。中国时常讲家丑不可外扬,但社会丑,人性丑就必须要扬,将所有不好的都曝晒在阳光下。才能少一些黑暗,多一些温暖。

虽然不情愿,但不得不承认,这些现象可能永远都没有办法消除。这个世界注定有些人受苦受难,我们能做的就是保存正义的火种,当有一天需要我们的时候,当燃则燃。另好......