ARTS 是由左耳朵耗子陈皓在极客时间专栏《左耳听风》中发起的一个每周学习打卡计划。
Algorithm:至少做一个 LeetCode 的算法题。主要为了编程训练和学习。
Review :阅读并点评至少一篇英文技术文章。主要为了学习英文,如果你英文不行,很难成为技术高手。
Tip:学习至少一个技术技巧。主要是为了总结和归纳你日常工作中所遇到的知识点。
Share:分享一篇有观点和思考的技术文章。主要为了输出你的影响力,能够输出你的价值观。
Algorithm
二分查找求平方根精确六位小数
package main
import (
"fmt"
"testing"
)
func TestPrescibe(t *testing.T) {
//找一个正数的开方值
var showNum float32 = 8
res := Prescibe(showNum)
fmt.Println(res)
}
func Prescibe(n float32) float32 {
var start, end, mid, res float32
if n > 1 {
start = 1
end = n
} else if n > 0 {
start = 0
end = 1
}
for end > start {
if (n-res)*1000000 < 1 && n-res > 0 {
return mid
}
if (res-n)*1000000 < 1 && res-n > 0 {
return mid
}
mid = (start + end) / 2
res = mid * mid
fmt.Println(res)
if res > n {
end = mid
} else if res < n {
start = mid
} else {
return mid
}
}
return mid
}
Review
最近在做支付相关业务,用到消息队列配合全局 id 做幂等,这里是一个 go 实现的全局 id 的雪花算法。
https://github.com/sony/sonyflake/tree/master/awsutil
Tip
bash 的运行方式
- bash filename.sh
- 不需要执行权限,以子 shell 的方式运行
- ./filename.sh
- 需要执行权限,以子 shell 的方式运行
- source filename.sh
- 需要执行权限,以当前的 shell 运行
- . filename.sh
- 同上
变量的作用范围为当前的 shell,代码如下
LucianodeMacBook-Pro:~ Luciano$ demo_var="hello world"
LucianodeMacBook-Pro:~ Luciano$ bash
bash-3.2$ echo $demo_var
bash-3.2$ exit
exit
LucianodeMacBook-Pro:~ Luciano$ echo $demo_var
hello world
LucianodeMacBook-Pro:~ unset demo_var
LucianodeMacBook-Pro:~ demo_var="hello shell"
LucianodeMacBook-Pro:~ Luciano$ bash
bash-3.2$ echo $demo_var
hello shell
unset demo_var
如果在子 shell 中使用变量,需要用到 export,如果想让所有终端和 shell 都能共享变量需要加入环境变量。
预定义变量
- $? :上一条命令的执行结果: 0,成功 ;非 0 失败。
-
: 当前进程的pid。
- $0 : 当前当前进程的名称。
Share
-
最近开发机的 redis 的三个实例经常挂掉,经过简单排查发现是系统内存不足导致的 OOM,占用内存越大的进程越容易被系统杀掉,正好是 linux 性能优化第 15 讲的内容,等后续自己阅读后,补充详细知识点。
-
最近学习英语用,看文章用到一个人觉得很不错的插件 rememberry,可以实时查单词,并且加入单词记录卡片,方便后面复习。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于