CloudNativeEra
  • Introduction
  • 名词解释
  • Computer Science
    • Computer Organization
      • CPU
      • 二进制、电路、加法器、乘法器
      • 编译、链接、装载
      • 存储器
      • IO
    • Operating System
      • 操作系统基础知识
      • 系统初始化
      • 进程管理
      • Everything about Memory
      • 文件系统
      • 并行编程
      • Linux
        • CPU
        • IO 多路复用
        • DMA IO and Linux Zero Copy
    • Computer Network
      • 网络相关命令
      • 评估系统的网络性能
      • 网络抓包
      • Linux 最多支撑的 TCP 连接
      • 网络虚拟化
      • DHCP 工作原理
    • Data Structure and Algorithm
      • 题目列表
      • Summarize
        • 方法总结
        • 二分思想
        • 树的演化
        • 算法思想总结
      • Data Structure
        • Data Struct - Array
        • Tree
        • Heap
        • Hash
        • 字符串
      • Algorithm
        • Sorting Algorithm
        • 查找
        • 贪心算法
        • 动态规划
        • 位运算
      • Practice Topics
        • Data Struct in SDK
        • Topic - Tree
        • Topic - Graph
        • Topic - 滑动窗口
        • 剑指 Offer 题解
    • 并发编程
      • 并发模式
      • 并发模型
  • 系统设计
    • 软件设计
      • 软件架构
      • 编程范式
      • 系统设计题
      • 设计原则
      • 计算机程序的构造和解释 SICP
    • 领域驱动设计
      • 应用:在线请假考勤管理
      • 应用: library
    • 微服务与云原生
      • Designing and deploying microservices
      • 容器技术
      • Docker
      • Etcd
      • Kubernetes
        • Kubernetes - Mapping External Services
      • Istio
      • 监控
    • 分布式系统
      • 分布式理论
      • 分布式事务
    • 后端存储设计
      • 缓存设计
      • 数据库架构设计
    • CI/CD
    • 设计最佳实践
    • 测试
    • 安全
    • 综合
      • 开发实践
      • 分布式锁
      • 分布式计数服务
      • 弹幕系统设计
      • 消息队列设计
      • 分布式ID生成算法
      • 限流设计
      • 网关设计
      • 通用的幂等设计
      • 分布式任务调度
        • Timer
        • ScheduledExecutorService
        • Spring Task
        • Quartz
      • 交易系统
      • 权限设计
  • 编程语言
    • 编程语言
    • C & C++
    • Java
      • JVM
        • JVM Bytecode
      • Java 核心技术
      • Java 8 新特性
      • Java 集合框架
      • Java NIO
      • 并发编程
        • 线程生命周期与线程中断
        • 三个线程交替打印
        • 两个线程交替打印奇偶
        • 优雅终止线程
        • 等待通知机制
        • 万能钥匙:管程
        • 限流器
        • 无锁方案 CAS
    • Java 源码阅读
      • Unsafe
      • 异步计算 Future
      • Java Queue
      • CoalescingRingBuffer 分析
      • Java Collections
        • PriorityQueue 分析
        • HashMap 分析
        • TreeMap
    • Golang
    • Python
  • 框架/组件/类库
    • Guava
      • Guava Cache
      • Guava EventBus
    • RxJava
    • Apache MINA
    • Netty
      • 网络 IO 模型
      • Netty 生产问题
    • Apache Tomcat
    • MyBatis
    • 限流框架
    • Spring Framework
      • Spring Core
      • Spring 事务管理
    • Spring Boot
    • Spring Cloud
      • Feign & OpenFeign
      • Ribbon
      • Eurake
      • Spring Cloud Config
    • FixJ
    • Metrics
    • Vert.x
  • 中间件
    • Redis
      • Redis 基础
        • Redis 数据结构设计与实现
        • Redis 高性能网络模型
      • Redis checklist
      • 应用案例 - Redis 数据结构
      • 应用案例 - Redis 缓存应用
      • 应用案例 - Redis 集群
      • Redis 客户端
      • Redis 生产案例
        • [译] 在 Redis 中存储数亿个简单键值对
    • MySQL
      • MySQL 基础
      • MySQL Index
      • MySQL Transaction
      • MySQL 优化
      • MySQL 内核
      • MySQL Command
      • MySQL Checklist
      • MySQL Analysis Tool
      • 实现 MySQL
    • State Machine
    • 数据库连接池
    • MQ
      • 高性能内存队列 Disruptor
      • Kafka
      • Pulsar
      • RocketMQ
        • Broker 的设计与实现
      • NSQ
  • 实际案例
    • 线上 Case
      • Request Aborted
      • MySQL - Specified key was too long
      • Java 应用 CPU 100% 排查优化
      • 频繁 GC 导致的 Java 服务不响应
      • 导出优化
  • 大数据
    • 流计算
    • Flink
  • 其他
    • 工具
    • 读书
      • 设计数据密集型应用
      • 实现领域驱动设计
      • 精通比特币
      • 提问的智慧
    • 论文
    • 工程博客
    • 阅读源码
    • 面试
      • 如何在最短的时间里对对方有个全面的了解
    • 分享
    • 软技能
    • Todo
  • Blog
    • #算法
      • 查找
      • 位运算
      • 树
    • #架构
      • 1- 通信
    • Design & Dev & Opt
      • High Performance Data structure Design
  • Tiny Project
    • A Simple WeChat-like Instant Messaging Platform
由 GitBook 提供支持
在本页
  • Git
  • Gradle
  • OpenAPI Site
  • Maven
  • Shell
  • Java Libs
  • UML
  • Vagrant
  • Makefile
  • KanBan 看板

这有帮助吗?

  1. 其他

工具

上一页Flink下一页读书

最后更新于4年前

这有帮助吗?

Git

  • ,含有动画演示,非常生动

  • 关于 Git 的书

// --- 回退 merge
// 查看 操作记录,找到要回退的版本号
$ git reflog
3973c178 (HEAD -> test, origin/test) HEAD@{0}: merge feature-34: Merge made by the 'recursive' strategy.
58ed7d9b HEAD@{1}: checkout: moving from feature-34 to test
09140632 (origin/feature-34, feature-34) HEAD@{2}: commit:
....

// 执行 git reset
$ git reset --hard HEAD^
// or
$ git reset --hard HEAD@{2}
// or
$ git reset --hard 09140632

//// 另外还可以使用 git revert

// ---
git merge
git rebase

// The error is resolved by toggling the allow-unrelated-histories switch.
// https://www.educative.io/edpresso/the-fatal-refusing-to-merge-unrelated-histories-git-error
git pull origin master --allow-unrelated-histories

Gradle

使用 Gradle 构建 Spring 的项目,关于 Spring 的配置依赖

// https://www.jianshu.com/p/01588c396a29
// buildscript
buildscript {
    repositories {
        maven {
            // url 'https://repo.spring.io/libs-milestone'
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath("io.spring.gradle:dependency-management-plugin:1.0.9.RELEASE")
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath("gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties:1.4.17")
        classpath("gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.13.0")
    }
}
apply plugin: 'org.springframework.boot'
// 会提供 bootJar task
apply plugin: 'java'
apply plugin: 'groovy'
// 当使用了该插件,Spring Boot的插件会自动地从你使用的Spring Boot
// 版本里导入spring-boot-dependencies bom
// 在声明依赖时,不需要带版本号
apply plugin: 'io.spring.dependency-management'

// ---
// ext 可以用来扩展属性
ext['slf4j.version'] = '1.7.20'
// or
ext {
    slf4jVersion = '1.7.20'
}

// bootJar
// springBoot
// maven 插件发布
// maven-publish 发布
  • 更新 gradle 的版本

$ ./gradlew wrapper --gradle-version=6.2.1 --distribution-type=all

OpenAPI Site

Maven

Shell

# 判断文件目录是否存在
dir="/tmp/workspace"
if [ ! -d "$dir" ]; then
  # mkdir /myfolder
  # ...
fi

# 判断文件是否存在并具备可执行权限
folder="/bin/bash"
if [ ! -x "$folder" ]; then
  # exec ...
fi

# -f 参数判断 $file 是否存在
file="/tmp/lock"
if [ ! -f "$file" ]; then
  touch "$file"
fi

# -n 判断一个变量是否有值
var=""
if [ ! -n "$var" ]; then
  echo "$var is empty"
  exit 0
fi

# 判断两个变量是否相等
if [ "$var1" = "$var2" ]; then
  echo '$var1 eq $var2'
else
  echo '$var1 not eq $var2'
fi
# 更多参考 https://www.cnblogs.com/jjzd/p/6397495.html

awk and sed

# 删除最后一个字段
$ minikube kubectl -- get pods -l app=redis-cluster -o jsonpath='{range.items[*]}{.status.podIP}:6379 ' | awk '{$NF="";print}'


# File Content as below, file.txt:
$ cat file.txt
Mike Harrington:[510] 548-1278:250:100 :25
Christian Dobbins:[408] 538-2358:155:90 :78
Susan Dalsass:[206] 654-6279:250:60 :49
Archie McNichol:[206] 548-1348:250:100 :200

$ awk -F: 'OFS=":"{$NF="";print}' file.txt
Mike Harrington:[510] 548-1278:250:100 :
Christian Dobbins:[408] 538-2358:155:90 :
Susan Dalsass:[206] 654-6279:250:60 :
Archie McNichol:[206] 548-1348:250:100 :

# 删除最后一个分隔符
$ awk -F: 'OFS=":"{$NF="";print}' file.txt | sed 's/:$//g'
Mike Harrington:[510] 548-1278:250:100
Christian Dobbins:[408] 538-2358:155:90
Susan Dalsass:[206] 654-6279:250:60
Archie McNichol:[206] 548-1348:250:100
  • shell map

# https://stackoverflow.com/questions/6047648/associative-arrays-error-declare-a-invalid-option
# 查看 bash 的版本
bash --version

# 使用 array 实现 hashmap 的功能
# 在 bash v3 版本中不支持 hashmap 的声明
array=(
    'hello::world.'
    'nice::to meet you'
)

for index in "${array[@]}" ; do
    KEY="${index%%::*}"
    VALUE="${index##*::}"
    echo "$KEY - $VALUE"
done

# 在 bash v4 中支持 map
declare -A hashmap
hashmap["key"]="value"
hashmap["key2"]="value2"
echo -e "${hashmap[\"key\"]}"
for key in ${!hashmap[@]}; do echo $key; done
for value in ${hashmap[@]}; do echo $value; done

Java Libs

Lombok

开发工具

  • Arthas: Java 线上诊断工具

项目模版

实践

UML

Vagrant

HashiCorp Vagrant provides the same, easy workflow regardless of your role as a developer, operator, or designer. It leverages a declarative configuration file which describes all your software requirements, packages, operating system configuration, users, and more.

Vagrant 是一个非常好用的工具,仅仅声明一个定义文件就可以获得一个相同的环境;在开发阶段利用 Vagrant 可以获得相同的开发环境,屏蔽不同环境带来的差异;Vagrant 底层是依赖于 VM 虚拟机的能力

使用 Vagrant 时,如何自动映射以及同步宿主机和虚拟机之间的目录和文件?

在 Vagrantfile 中声明 config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: ".git/" ,rsync 默认开启了 rsync__auto=true ,但是如果需要自动双向同步修改后的内容,需要在宿主机上运行 vagrant rsync-auto

Makefile

KanBan 看板

kanban 的本质是一个朴素的思想:在制品(work in progress, WIP)必须被限制;

Open API

nc:

Java 代码规约,

应用实时监控工具 ARMS,提供前端、应用、自定义监控,可快速构建实时的应用性能和业务监控能力;

, ,一款集官网、文档、博客和社区为一体的静态开源站点的解决方案,具有简单易上手、上手不撒手的特质,同时支持 react 和静态渲染、PC端和移动端、支持中英文国际化、SEO、markdown文档、全局站点搜索、站点风格自定义、页面自定义等功能。

性能测试工具

云效开发者工具,简化在 Kubernetes 下进行联调测试的复杂度,提高基于Kubernetes的研发效率;,这是一款好工具

架构可视化 ,为 K8s 等容器环境提供了架构可视化的功能,同时,具有故障注入式高可用能力评测和一键流控降级等功能,可以快速低成本的提升应用可用性

数据处理工具

数据库连接池 ,Java 语言下的数据库连接池,它能够提供强大的监控和扩展功能

关于项目模版,有一个 的项目。

比较有用的项目模版: 1. 2.

Box:

Introduction:

Doc:

Tutorial:

Learn Git Branching
卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!
寓教于乐,用玩游戏的方式学习 Git!
https://ohshitgit.com/#accidental-commit-wrong-branch
Linus 在 Google 分享了 Git 的设计思路,顺带怼了一大波人(视频)
用好这几个工具,能大幅提升你的 Git/GitHub 操作效率!
强烈推荐下 GitHub 官方的这个教程
收好这份 Git 命令应急手册,关键时刻可保你一命
Git Book
Git 工作流,如何正确的合并自己的代码到某个分支
git-scm: git 分支
git pull 和 git fetch
git checkout tags, very detail
https://www.educative.io/edpresso/how-to-delete-remote-branches-in-git
https://devconnected.com/how-to-delete-local-and-remote-tags-on-git/
github fork 后如何 sync
GitHub 项目 fork 后同步最新的代码到自己的仓库中
Spring Dependency Management Plugin
Spring Boot Gradle Plugin Reference Guide
Spring Dependency Gradle Plugin
Public APIs
Github Public APIs
any-api
API List
发布自己的 Java 类库到 Maven 中央仓库
https://oss.sonatype.org/
https://issues.sonatype.org/browse/OSSRH-61341
https://linuxcommand.org/lc3_wss0120.php
shell 中的函数处理:入参、返回值等
如何编写 shell 脚本
https://linuxize.com/post/netcat-nc-command-with-examples/
获取某个目录下的所有文件或者目录
Google 关于 shell 的编码规范
echo 输出带颜色的内容
https://www.ruanyifeng.com/blog/2018/11/awk.html
https://segmentfault.com/a/1190000020613397
Lombok Log Annotations
阿里巴巴程序员常用的开发工具
alibaba/p3c
应用端监控接入
Docsite
中文版文档
PTS
KT
教程
AHAS
EasyExcel
Druid
cookiecutter
cookiecutter golang
cookiecutter-data-science
后端开发实践系列——开发者的第0个迭代
UML 各种图总结
https://www.vagrantup.com/
https://app.vagrantup.com/boxes/search
https://www.vagrantup.com/intro
https://www.vagrantup.com/docs
https://learn.hashicorp.com/vagrant
https://seisman.github.io/how-to-write-makefile/introduction.html