Code Monkey home page Code Monkey logo

blog's People

Contributors

luis-x avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

blog's Issues

中文技术文档规范

标题

层级

标题分为四级。

  • 一级标题:文章的标题
  • 二级标题:文章主要部分的大标题
  • 三级标题:二级标题下面一级的小标题
  • 四级标题:三级标题下面某一方面的小标题

下面是示例。

# 一级标题
## 二级标题
### 三级标题
#### 四级标题

原则

(1)一级标题下,不能直接出现三级标题。

示例:下面的文章结构,缺少二级标题。

# 一级标题

### 三级标题

(2)标题要避免孤立编号(即同级标题只有一个)。

示例:下面的文章结构,二级标题 A只包含一个三级标题,完全可以省略三级标题 A

## 二级标题 A

### 三级标题 A

## 二级标题 B

(3)下级标题不重复上一级标题的名字。

示例:下面的文章结构,二级标题与下属的三级标题同名,建议避免。

## 概述

### 概述

(4)谨慎使用四级标题,尽量避免出现,保持层级的简单,防止出现过于复杂的章节。

如果三级标题下有并列性的内容,建议只使用项目列表(Item list)。

示例:下面的结构二要好于结构一。后者适用的场景,主要是较长篇幅的内容。

结构一

### 三级标题

#### 四级标题 A

#### 四级标题 B

#### 四级标题 C

结构二

### 三级标题

**(1)A**

**(2)B**

**(3)C**

文本

字间距

全角中文字符与半角英文字符之间,应有一个半角空格。

错误:本文介绍如何快速启动Windows系统。

正确:本文介绍如何快速启动 Windows 系统。

全角中文字符与半角阿拉伯数字之间,有没有半角空格都可,但必须保证风格统一,不能两种风格混杂。

正确:2011年5月15日,我订购了5台笔记本电脑与10台平板电脑。

正确:2011 年 5 月 15 日,我订购了 5 台笔记本电脑与 10 台平板电脑。

半角的百分号,视同阿拉伯数字。

英文单位若不翻译,单位前的阿拉伯数字与单位间不留空格。

错误:一部容量为 16 GB 的智能手机

正确:一部容量为 16GB 的智能手机

半角英文字符和半角阿拉伯数字,与全角标点符号之间不留空格。

错误:他的电脑是 MacBook Air 。

正确:他的电脑是 MacBook Air。

句子

  • 避免使用长句。句子内部不使用逗号时,总长度不应该超过 40 个字;使用逗号时,总长度不应该超过 100 字或者正文的 3 行。
  • 尽量使用简单句和并列句,避免使用复合句。

写作风格

尽量不使用被动语态,改为使用主动语态。

错误:假如此软件尚未被安装,

正确:假如尚未安装这个软件,

不使用非正式的语言风格。

错误:Lady Gaga 的演唱会真是酷毙了,从没看过这么给力的表演!!!

正确:无法参加本次活动,我深感遗憾。

用对“的”、“地”、“得”。

她露出了开心的笑容。
(形容词+的+名词)

她开心地笑了。
(副词+地+动词)

她笑得很开心。
(动词+得+副词)

使用代词时(比如“其”、“该”、“此”、“这”等词),必须明确指代的内容,保证只有一个含义。

错误:从管理系统可以监视中继系统和受其直接控制的分配系统。

正确:从管理系统可以监视两个系统:中继系统和受中继系统直接控制的分配系统。

名词前不要使用过多的形容词。

错误:此设备的使用必须在接受过本公司举办的正式的设备培训的技师的指导下进行。

正确:此设备必须在技师的指导下使用,且指导技师必须接受过由本公司举办的正式设备培训。

不包含任何标点符号的单个句子,或者以逗号分隔的句子构件,长度尽量保持在 20 个字以内;20~29 个字的句子,可以接受;30~39 个字的句子,语义必须明确,才能接受;多于 40 个字的句子,在任何情况下都不能接受。

错误:本产品适用于从由一台服务器进行动作控制的单一节点结构到由多台服务器进行动作控制的并行处理程序结构等多种体系结构。

正确:本产品适用于多种体系结构。无论是由一台服务器(单一节点结构),还是由多台服务器(并行处理结构)进行动作控制,均可以使用本产品。

同样一个意思,尽量使用肯定句表达,不使用否定句表达。

错误:请确认没有接通装置的电源。

正确:请确认装置的电源已关闭。

避免使用双重否定句。

错误:没有删除权限的用户,不能删除此文件。

正确:用户必须拥有删除权限,才能删除此文件。

英文处理

英文原文如果使用了复数形式,翻译成中文时,应该将其还原为单数形式。

英文:⋯information stored in random access memory (RAMs)⋯

中文:……存储在随机存取存储器(RAM)里的信息……

外文缩写可以使用半角圆点(.)表示缩写。

U.S.A.
Apple, Inc.

表示中文时,英文省略号()应改为中文省略号(……)。

英文:5 minutes later⋯

中文:5 分钟过去了⋯⋯

英文书名或电影名改用中文表达时,双引号应改为书名号。

英文:He published an article entitled "The Future of the Aviation".

中文:他发表了一篇名为《航空业的未来》的文章。

第一次出现英文词汇时,在括号中给出中文标注。此后再次出现时,直接使用英文缩写即可。

IOC(International Olympic Committee,国际奥林匹克委员会)。这样定义后,便可以直接使用“IOC”了。

专有名词中每个词第一个字母均应大写,非专有名词则不需要大写。

“American Association of Physicists in Medicine”(美国医学物理学家协会)是专有名词,需要大写。

“online transaction processing”(在线事务处理)不是专有名词,不应大写。

段落

原则

  • 一个段落只能有一个主题,或一个中心句子。
  • 段落的中心句子放在段首,对全段内容进行概述。后面陈述的句子为核心句服务。
  • 一个段落的长度不能超过七行,最佳段落长度小于等于四行。
  • 段落的句子语气要使用陈述和肯定语气,避免使用感叹语气。
  • 段落之间使用一个空行隔开。
  • 段落开头不要留出空白字符。

引用

引用第三方内容时,应注明出处。

One man’s constant is another man’s variable. — Alan Perlis

如果是全篇转载,请在全文开头显著位置注明作者和出处,并链接至原文。

本文转载自 WikiQuote

使用外部图片时,必须在图片下方或文末标明来源。

本文部分图片来自 Wikipedia

数值

半角数字

数字一律使用半角形式,不得使用全角形式。

错误: 这件商品的价格是1000元。

正确: 这件商品的价格是 1000 元。

千分号

数值为千位以上,应添加千分号(半角逗号)。

XXX 公司的实收资本为 RMB1,258,000。

对于 4 ~ 6 位的数值,千分号是选用的,比如10001,000都可以接受。对于7位及以上的数值,千分号是必须的。

多位小数要从小数点后从左向右添加千分号,比如4.234,345

货币

货币应为阿拉伯数字,并在数字前写出货币符号,或在数字后写出货币中文名称。

$1,000
1,000 美元

数值范围

表示数值范围时,用连接。参见《标点符号》一节的“连接号”部分。

带有单位或百分号时,两个数字都要加上单位或百分号,不能只加后面一个。

错误:132~234kg
正确:132kg~234kg

错误:67~89%
正确:67%~89%

变化程度的表示法

数字的增加要使用“增加了”、“增加到”。“了”表示增量,“到”表示定量。

增加到过去的两倍
(过去为一,现在为二)

增加了两倍
(过去为一,现在为三)

数字的减少要使用“降低了”、“降低到”。“了”表示增量,“到”表示定量。

降低到百分之八十
(定额是一百,现在是八十)

降低了百分之八十
(原来是一百,现在是二十)

不能用“降低N倍”或“减少N倍”的表示法,要用“降低百分之几”或“减少百分之几”。因为减少(或降低)一倍表示数值原来为一百,现在等于零。

标点符号

原则

  • 中文语句的标点符号,均应该采取全角符号,这样可以保证视觉的一致。
  • 如果整句为英文,则该句使用英文/半角标点。
  • 句号、问号、叹号、逗号、顿号、分号和冒号不得出现在一行之首。

句号

中文语句中的结尾处应该用全角句号()。

句子末尾用括号加注时,句号应在括号之外。

错误:关于文件的输出,请参照第 1.3 节(见第 26 页。)

正确:关于文件的输出,请参照第 1.3 节(见第 26 页)。

逗号

逗号表示句子内部的一般性停顿。

注意避免“一逗到底”,即整个段落除了结尾,全部停顿都使用逗号。

顿号

句子内部的并列词,应该用全角顿号() 分隔,而不用逗号,即使并列词是英语也是如此。

错误:我最欣赏的科技公司有 Google, Facebook, 腾讯, 阿里和百度等。

正确:我最欣赏的科技公司有 Google、Facebook、腾讯、阿里和百度等。

英文句子中,并列词语之间使用半角逗号(,)分隔。

例句:Microsoft Office includes Word, Excel, PowerPoint, Outlook and other components.

分号

分号表示复句内部并列分句之间的停顿。

引号

引用时,应该使用全角双引号(“ ”),注意前后双引号不同。

例句:许多人都认为客户服务的核心是“友好”和“专业”。

引号里面还要用引号时,外面一层用双引号,里面一层用单引号(‘ ’),注意前后单引号不同。

例句:鲍勃解释道:“我要放音乐,可萨利说,‘不行!’。”

圆括号

补充说明时,使用全角圆括号(),括号前后不加空格。

例句:请确认所有的连接(电缆和接插件)均安装牢固。

冒号

全角冒号()常用在需要解释的词语后边,引出解释和说明。

例句:请确认以下几项内容:时间、地点、活动名称,以及来宾数量。

表示时间时,应使用半角冒号(:)。

例句:早上 8:00

省略号

省略号……表示语句未完、或者语气的不连续。它占两个汉字空间、包含六个省略点,不要使用。。。...等非标准形式。

省略号不应与“等”这个词一起使用。

错误:我们为会餐准备了香蕉、苹果、梨…等各色水果。

正确:我们为会餐准备了各色水果,有香蕉、苹果、梨……

正确:我们为会餐准备了香蕉、苹果、梨等各色水果。

感叹号

应该使用平静的语气叙述,尽量避免使用感叹号

不得多个感叹号连用,比如!!!!!

破折号

破折号————一般用于进一步解释。

破折号应占两个汉字的位置。如果破折号本身只占一个汉字的位置,那么前后应该留出一个半角空格。

例句:直觉————尽管它并不总是可靠的————告诉我,这事可能出了些问题。

例句:直觉 —— 尽管它并不总是可靠的 —— 告诉我,这事可能出了些问题。

连接号

连接号用于连接两个类似的词。

以下场合应该使用直线连接号(-),占一个半角字符的位置。

  • 两个名词的复合
  • 图表编号
例句:氧化-还原反应

例句:图 1-1

以下场合应该使用波浪连接号(),占一个全角字符的位置。

  • 数值范围(例如日期、时间或数字)
例句:2009 年~2011 年

注意,波浪连接号前后两个值都应该加上单位。

波浪连接号也可以用汉字“至”代替。

例句:周围温度:-20°C 至 -10°C

文档体系

结构

软件手册是一部完整的书,建议采用下面的结构。

  • 简介(Introduction): [必备] [文件] 提供对产品和文档本身的总体的、扼要的说明
  • 快速上手(Getting Started):[可选] [文件] 如何最快速地使用产品
  • 入门篇(Basics): [必备] [目录] 又称”使用篇“,提供初级的使用教程
    • 环境准备(Prerequisite):[必备] [文件] 软件使用需要满足的前置条件
    • 安装(Installation):[可选] [文件] 软件的安装方法
    • 设置(Configuration):[必备] [文件] 软件的设置
  • 进阶篇(Advanced):[可选] [目录] 又称”开发篇“,提供中高级的开发教程
  • API(Reference):[可选] [目录|文件] 软件 API 的逐一介绍
  • FAQ:[可选] [文件] 常见问题解答
  • 附录(Appendix):[可选] [目录] 不属于教程本身、但对阅读教程有帮助的内容
    • Glossary:[可选] [文件] 名词解释
    • Recipes:[可选] [文件] 最佳实践
    • Troubleshooting:[可选] [文件] 故障处理
    • ChangeLog:[可选] [文件] 版本说明
    • Feedback:[可选] [文件] 反馈方式

下面是两个真实范例,可参考。

文件名

文档的文件名不得含有空格。

文件名必须使用半角字符,不得使用全角字符。这也意味着,中文不能用于文件名。

错误: 名词解释.md

正确: glossary.md

文件名建议只使用小写字母,不使用大写字母。

错误:TroubleShooting.md

正确:troubleshooting.md 

为了醒目,某些说明文件的文件名,可以使用大写字母,比如READMELICENSE

文件名包含多个单词时,单词之间建议使用半角的连词线(-)分隔。

不佳:advanced_usage.md

正确:advanced-usage.md

参考链接

基于Vultr平台的VPS搭建Shadowsocks

基于Vultr平台的VPS搭建Shadowsocks

@Vultr|center|300x0

Vultr服务商虽然是从2014年才开始提供云VPS主机服务产品的,但是其背景还是相当实力雄厚的,来自著名的游戏服务器提供商,正是因为其全球范围的服务器部署优势,从一开始就直接上线14个自营数据中心机房,这个在同行业中数据中心数量算是领先的。

@shadowsocks|center|100x0

shadowsocks是一种基于Socks5代理方式的网络数据加密传输包,并采用Apache许可证、GPL、MIT许可证等多种自由软件许可协议开放源代码。shadowsocks分为服务器端和客户端,在使用之前,需要先将服务器端部署到服务器上面,然后通过客户端连接并创建本地代理。

在天朝,shadowsocks也被广泛用于突破防火长城(GFW),以浏览被封锁、屏蔽或干扰的内容。

概念

独立服务器

独立服务器,顾名思义,就是一个躺在机房的实实在在的物理服务器,也可理解为你的游戏主机一样。

VPS

Virtual Private Serve,虚拟专用服务器,是介于传统虚拟主机和独立服务器之间的产品,又称合租服务器,是利用高端的虚拟技术将一台服务器分割成多个虚拟独享服务器( VPS ) , 每个 VPS 运行管理和独立主机完全一样,都可分配到独立公网 IP 地址、独立操作系统、独立超大空间、独立内存、独立 CPU 资源、独立执行程序等。

用户除了可以分配多个虚拟主机及无限企业邮箱外,更具有独立服务器功能,可自行安装程序,单独重启服务器。

ECS

Elastic Compute Service,云服务器,是一个计算,网络,存储的组合。

云服务器(Elastic Compute Service,简称ECS)是一种简单高效、处理能力可弹性伸缩的计算服务, 帮助您快速构建更稳定、安全的应用,提升运维效率,降低IT成本,使您更专注于核心业务创新。

Vhost

Virtual hosts,虚拟主机,是在网络服务器上划分出一定的磁盘空间供用户放置站点、应用组件等,提供必要的站点功能、数据存放和传输功能。

所谓虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW、FTP、E-mail等)功能。

一、在Vultr创建服务器

  1. 访问Vultr官网,点击**「Create Account」,填写账号、密码**(至少10位、含英文大小写 & 数字)。
    |center|500x0

  2. 进入**「Billing」**页面,选择金额和支付方式,充值即可。
    |center|500x0

  3. 进入**「Servers」**页面,选择加号图标,部署新实例。
    |center|500x0

  4. 选择节点之前先测试一下vultr节点的响应速度(延迟越小越好)
    https://ping.gaomeluo.com/vultr/

  5. 进入**「Server Location」**选项,选择一个美国区域节点。
    |center|500x0

  6. 进入**「Server Type」**选项,选择一个操作系统,按时收费。
    |center|500x0

  7. 进入**「Server Size」**选项,选择一个服务器配置。
    |center|500x0

  8. 创建成功。
    |center|500x0

  9. 进入刚刚**「创建的Server」**详情页面,显示该VPS的IP、Username、Password等信息。
    |center|500x0

  10. 右上角有**「View Console」**按钮,可以打开控制台登录VPS。
    |center|500x0

二、在Mac上远程登录VPS

  1. 在**「终端」**中,输入下面的命令并回车。注意把 IP地址 替换成你服务器的IP地址。
ssh root@104.207.152.102
# 无法确认host主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?
# 选择yes
# 输入密码,即可登录成功

|center|500x0

三、部署 Shadowsocks

  1. 使用root用户登录,运行以下命令:
wget --no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
chmod +x shadowsocks.sh
./shadowsocks.sh 2>&1 | tee shadowsocks.log

|center|500x0

  1. 依次设置如下信息。

    1.设置Shadowsocks服务的密码。
    2.设置Shadowsocks服务的端口号(在1–65535之间)。
    3.设置Shadowsocks服务的加密方式(可以选择ase-256-cfb)。
    4.部署完成,获取配置信息(服务IP,服务端口,密码,加密方式)。

|center|500x0

|center|500x0

四、开启TFO(TCP Fast Open)

TCP Fast Open是一种能够在TCP连接建立阶段传输数据的机制。使用这种机制可以将数据交互提前,降低应用层事务的延迟。

为了改善web应用相应时延方面的一个工作,google通过修改TCP协议利用三次握手时进行数据交换的TFO。和TCP相比TFO在3次握手期间也会传输数据。TFO是GOOGLE发布的。目前chrome已经支持TFO,但默认是关闭的,因为它有一些特定的使用场景。

为了更好的连接速度,你还需要多做几步,打开TCP Fast Open。

@TFO|center|200x0

  1. 配置rc.local
nano /etc/rc.local
# 添加 echo 3 > /proc/sys/net/ipv4/tcp_fastopen

|center|500x0

  1. 配置sysctl.conf
nano /etc/sysctl.conf
# 添加 net.ipv4.tcp_fastopen = 3

|center|500x0

  1. 配置shadowsocks.json
nano /etc/shadowsocks.json
# 修改 "fast_open"为true

|center|500x0

  1. 重启shadowsocks服务
/etc/init.d/shadowsocks restart

shadowsocks扩展:

  1. shadowsocks.json文件,可以配置多用户多端口,例如:
{
		"server":"0.0.0.0",
	"local_address":"127.0.0.1",
		"local_port":1080,
		"port_password":{
			 "8989":"password0",
	     "9001":"password1",
				 "9002":"password2",
			 "9003":"password3",
	     "9004":"password4"
		},
	"timeout":300,
		"method":"your_encryption_method",
	"fast_open": false
}
  1. shadowsocks使用命令
# 启动
/etc/init.d/shadowsocks start
# 停止
/etc/init.d/shadowsocks stop
# 重启
/etc/init.d/shadowsocks restart
# 状态
/etc/init.d/shadowsocks status

五、部署BBR加速工具

一般而言,服务器本身的速度是决定我们项目打开速度、下载速度的关键,但是我们也可以借助第三方软件工具等提高加速效果,比如我们肯定很多人都熟悉的锐速、Net-Speeder可以双倍发包流量,可以减少超时和提高下载速度。谷歌发布开源Google BBR工具,可以提高发包数据量,起到加速作用。

  1. 一键安装BBR

     wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
    chmod +x bbr.sh
    ./bbr.sh
  2. 重启VPS

     lsmod | grep bbr
     # 返回值有tcp_bbr模块,说明bbr已启动

六、大功告成,感受非一般的感觉吧。👻👻👻

|center|200x0

参考文章

😆书签

博客

团队

腾讯

阿里

百度

京东

360

其他

资源

工具

平台

开源

跨平台

小程序

iOS、MacOS

Swift

前端

持续集成

效率、规范

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.