评价常用词汇 描述代码质量所有常用词汇 最常用的评价标准 评价属于主观, 主观的准确度与工程师自身经验有极大的关系. 接下来我们从以下几个维度评价代码, 也是更为常见的维度. 其中可维护性, 可读性, 可扩展性最重要的三个评价标准 1. 可维护性 (maintainability) 易维护的代码是指在不破坏原有的代码设计, 不引入新的Bug的情况下, 能够快速地修改或者添加代码. 不易维护的代码是指修改或者添加代码需要冒着极大的引入新Bug的风险,并且需要花费大量很长的时间才能完成 2. 可读性 (readability) 软件设计大师 Martin Fowler 金句: “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” 任何傻瓜都会编写计算机能理解的代码, 好的程序员能够编写人能够理的代码 代码的可读性是评价代码质量最重要的指标之一 我们编写代码的时候, 时刻要考虑到代码是否易读, 易理解. 除此之外, 代码的可读性在非常大程度上影响代码的可维护性. 以下为评介一段代码的可读性的几个维护 编码是否规范 命名是否达意 注释是否详尽 函数是否长短合适 模块划分是否清晰 是否符合高内聚合低耦合 Tip: Code review 是一个很好的测验代码的可读性手段. 3. 可扩展性 (extensibility) 可扩展性也是一个评价代码质量非常重要的标准 它表示我们的代码应对未来需求变化的能力. 易扩展是指在不修改或少量修改原有的代码情况下, 通过扩展方式添加新的功能代码. 不易扩展是指添加一个功能而大动干戈, 改动大量的原始代码.
命令行对 markdown 生成目录结构, 主要解决 markdown 不自动生成目录的困扰. 即[TOC]不支持. 工具源码 https://github.com/ekalinin/github-markdown-toc.go 下载安装 $ wget https://github.com/ekalinin/github-markdown-toc.go/releases/download/1.1.0/gh-md-toc.linux.amd64.tgz $ tar xzvf gh-md-toc.linux.amd64.tgz gh-md-toc $ ./gh-md-toc --version 1.1.0 mac brew install github-markdown-toc 使用方式 gh-md-toc README.md * [音乐开关,true/false](#音乐开关truefalse) * [只支持163的音乐,在生成外链播放器获取ID](#只支持163的音乐在生成外链播放器获取id) * [是否自动播放 1是,0否](#是否自动播放-1是0否) * [weight: 1](#weight-1) * [description: ""](#description-) * [镜像介绍](#镜像介绍) * [获取镜像](#获取镜像) * [查看镜像](#查看镜像) * [查找镜像](#查找镜像) * [删除镜像](#删除镜像) * [清理镜像](#清理镜像) * [创建镜像](#创建镜像) * [基本已有镜像](#基本已有镜像) * [基于Dockefile创建](#基于dockefile创建) * [导入与导出镜像](#导入与导出镜像) * [导出镜像](#导出镜像) * [导入镜像](#导入镜像) * [上传镜像](#上传镜像)
复现 package main import "errors" func main() { TestErr("go", "golang") } func TestErr(t, p string) (s string, err error) { switch t { case "go": err := check(p) if err != nil { // 返回参数里的 err 作用域是整个函数,即外层作用域 // check 返回的 err 作用域是 switch 范围.即内层作用域. // return 操作,不指明是将内层作用域 返回给外层作用域, 这样在 go 里是不允许的. return } } return } func check(s string) error { if s == "hello" { return nil } return errors.
背景: 在 windows 上安装了 vmware linux . 在 linux 上开启一个服务对外提供8080端口, 而在 windows 上无法访问到. 解决思路 使用 netstat -nplt 查看端口上 tcp, 还是 tcp6 查看是否只绑定在 ipv6 上 sysctl net.ipv6.bindv6only 查看ipv4 上可以转发数据 : sysctl net.ipv4.ip_forward 查看防火墙是否禁用端口. 第一步: 查看端口 netstat -nplt -> # netstat -nplt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1001/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1156/master tcp6 0 0 :::8080 :::* LISTEN 28187/output/bin/go 可以看出 8080端口只出现在 tcp6 上.
镜像是 Docker 三大核心概念中最重要的 Docker 三大核心: 镜像 容器 仓库 1. 镜像介绍 Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试远程仓库里拉取. 默认为 Docker Hub 仓库.用户也可以自定义镜像仓库. 1.1. 获取镜像 docker pull ubuntu:18.04 如果不指定TAG标签, 则拉取 latest标签, 如上面使用tag: 18.04 镜像文件一般由若干层(layer)组成, 每一层由唯一的ID标记 : 63ca9dsd732a1 (实际完整ID包括 256比特, 64个十六进制字符组成) 当不同镜像包括相同的层, 本地仅存储一份内容. 减少存储空间. 以上ubuntu:18.04 相当于 docker pull registry.hub.docker.com/ubuntu:18.04. 默认注册服务器为 Docker Hub. 有时需要代理服务来加速Docker镜像获取过程. 可能在docker 服务启时配置中增加--registry-mirror=proxy_URL, 如国内: https://registry.docker-cn.com 1.2. 查看镜像 列出本地镜像 docker images -> # docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql latest ab2f358b8612 5 days ago 545MB redis 5.

Git 简明命令

基本概念 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 初使化 新建仓库 git init 配置 # 显示全部配置 git config --list # 编辑配置 git config -e [--global] # 设置用户和邮箱 git config [--global] user.name "百里" git config [--global] user.email "freeit@126.com" 拉取 克隆仓库 git clone git@github.com:yezihack/barry.git 克隆指定分支 -b 指定分支名 git clone -b master git@github.com:yezihack/barry.git 分支 查看本地分支 git branch 查看所有远程分支 git branch -r 查看所有分支 git branch -a 创建并切换分支 git checkout -b dev 新建一个分支 git branch dev 切换分支 git checkout dev 合并分支 # 当前分支master, 要将dev分支合并到master分支 git checkout master git merge dev 删除分支 git branch -d dev
绿色安装包的概念来自于 win 的概念, 也就是说无需安装即可使用软件. 即为绿色安装包. 在 linux 为了方便, 我们也需要制作绿色安装包, 方便相同系统之间的 copy. 即高效又好用. 何乐不为. 你将了解到 LD_LIBRARY_PATH 的概念 ldd 是什么东西 如何制作绿色安装包 安装 mediainfo 在 CentOS7 192.168.1. 100 机器上操作. yum -y install mediainfo 制作ldd打包脚本 本脚本用于将 mediainfo 所依赖的动态库或依赖文件都复制出来 文件名:pack.sh #!/bin/bash set +x # 需要打包的命令全路径 file_path=$1 # 需要复制的目录 target_dir=$2 # check file path if [ ! -f $file_path ];then echo "$file_path is not file" exit 0 fi # 判断目录是否为空 if [ -z $target_dir ]; then echo "target_dir is null" exit 0 fi # 目录不存在,自动创建 if [ !
快捷安装 nginx CentOS 安装 yum -y install nginx 源码安装 # 下载, 解包 wget http://nginx.org/download/nginx-1.19.4.tar.gz && tar -zxvf nginx-1.19.4.tar.gz && cd nginx-1.19.4 # 编译安装 ./configure --prefix=/usr/local/nginx --without-http_rewrite_module make && make install # 建立软链 ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ 配置静态服务器 yum 安装的配置文件目录在 /etc/nginx 手动安装目录在: /usr/local/nginx 关键参数配置 root /data/wwwroot/;# 指向你的文件目录 autoindex on;# 显示目录 autoindex_exact_size on;# 显示文件大小 autoindex_localtime on;# 显示文件时间 yum 安装方式配置 vim /etc/nginx/nginx.conf 手动安装方式配置 vim /usr/local/nginx/conf/nginx.conf 可以找到默认的 server {} server { listen 80 default_server; listen [::]:80 default_server; server_name _; #root /usr/share/nginx/html; root /data/wwwroot/; autoindex on;# 显示目录 autoindex_exact_size on;# 显示文件大小 autoindex_localtime on;# 显示文件时间 # Load configuration files for the default server block.
.1. 概述 .2. 安装 nginx-module-vts 模块 .2.1. 下载 nginx-module-vts 模块文件 .2.2. 重新编译 nginx .2.3. 配置 server 信息 .3. 安装 nginx-vts-exporter .3.1. 下载软件 .3.2. 解压&安装 .3.3. 制作 systemctl .3.4. 管理 nginx-exporter .3.5. 查看 metrics .4. 添加到 prometheus 数据源 .5. MySQL Over 图表安装 .1. 概述 Prometheus 监控 nginx 需要用到两个模块 nginx-module-vts 主要用于收集 nginx 各项指标.能提供 json 数据 nginx-vts-exporter 向 prometheus 提供可以识别的数据结构 .2. 安装 nginx-module-vts 模块 需要对 nginx 进行重新编译, 对于正在运行的 nginx 需要热启动, 谨慎操作. .2.1. 下载 nginx-module-vts 模块文件 cd /usr/local/src git clone https://github.