不会飞的章鱼

熟能生巧,勤能补拙;念念不忘,必有回响。

转眼间,又是一年一度的教师节,在此记录那些年我遇到的好老师给予的鼓励与帮助。

小学

小学记不清了,唯一记得是二年级那会,冬天下着大雪,我课间玩耍,吸入了太多的冷空气,肠子扭在了一起,下午上课疼的馒头都是汗,脸色很不对,走路都不行,于是我的班主任就把我一步一步的,在大雪中把我背回了家。然后父母把我送到医院,打了一针就好了。

这件事令我着实感动,让我第一次对老师这个职业不再感到有所畏惧。(可能是小时候不经常写作业吧,看到老师就很怕…)

初中

阅读全文 »

本内容来源于书籍《Go语言编程之旅》

本文内容将运行让Go程序遇到“恐慌”的代码例子

数组/切片索引越界

1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import "fmt"

func main() {
names := []string{
"1",
"2",
"3",
}
name := names[len(names)] //应该改为 names[len(names) - 1]
fmt.Printf("name: %s",name) //panic: runtime error: index out of range [3] with length 3
}

空指针调用

阅读全文 »

起因

部门的小leaderC想让我熟悉整个业务,知道来龙去脉,让我从零开始搭建一套环境,也方便开发人员直接在上面进行测试,所以从这周一开始,我的工作就来了。

过程

刚开始感觉这不是So easy嘛,一顿apt install 外加vim编辑配置配件,打完收工….

结果一上来,就说用docker来部署,去写个docker-compose.yaml文件吧,好的呢,花了不到一个小时,整会了,然后直接拉起mysqlredisnginx三个docker容器,结果nginx一直启动报错,原因是我挂载了一个不存在的目录,好嘛,直接折腾了一个新的docker容器,搞定了。

阅读全文 »

优雅退出

监听系统信号

服务器难免要遇到重启、升级的问题。那么当我们的服务器关闭的时候,我们需要考虑:

  1. 拒绝新的请求
  2. 等待当前的所有请求处理完毕
  3. 释放资源
  4. 关闭服务器
  5. 如果这中间超时了, 我们要强制关闭了

基础语法 —— goroutine

阅读全文 »

错误处理

基础语法 —— 错误处理

  • error:一般用于表达可以被处理的错误
  • error只是一个内置的接口
  • panic:一般用于表达非常严重不可恢复的错误

基础语法 —— errors 包

  • New 创建一个新的 error
  • Is 判断是不是特定的某个error
  • As 类型转换为特定的 error
  • Unwrap 解除包装,返回被包装的 error
阅读全文 »

转眼间新工作已经入职了三周,接手了一个没有文档没有注释的项目,不过bug较少,前期先熟悉。

写这篇文章也算是梳理一下目前的资源,以及对未来半年做一个简单的规划。

目前个人终于可以hold住一些中小型的项目(代码量大概在一万行以下),但高并发、分布式、微服务、消息队列、云原生这块还是很薄弱的,正好入职的新公司在研发分布式云存储系统,可以好好提升一下。在保质保量完成工作的同事,计划跟一些实战项目,以及一些有深度的技术专栏,在学习完它们之后,提炼自己的感受,做好总结。

目前的规划

核心就三点:算法+系统设计+英语。

阅读全文 »

如果在噩梦中睁眼

直面着残忍的世界

风拨动了谁的心弦

留恋却来不及告别

如果结局仅剩惨烈

阅读全文 »

题目描述

力扣_509. 斐波那契数

斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

1
2
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1

给你 n ,请计算 F(n) 。

阅读全文 »