前言
一面(2024-1.25)
首先上来是自我介绍。
(这里自我介绍时候项目只说了技术栈,没有说内容,不知道好不好)
(在校经历说的一点点口语化了)
先问的近期实习经历,和我确认我做的是什么。
实习经历1
1、存到Mysql时候是如何做的格式化?(有无字段提取如何)
有字段提取的实际,从kafka中提取出来来源的信息、目标的信息。(解析json绑定到结构体)
原始存的消息和Mysql存的都是json格式。
Pb+wire,主要是用到了哪些方面?
Mysql存储的消息,是如何制定清理规则。
这个服务的价值(讲了用途、和看日志相比这个服务的方便之处)
(重发功能:可以修改消息再发送。(比如配置错了的情况,直接改了就可以发))
实习经历2
简单问了一下内容就。。
学校项目
问我做了什么。我直说这个项目很水的hhhh。然后就没问了。
和我确定了一下之前用的什么,然后就开始做题了。
代码1
判断一个字符串是否回文。
和之前的[LeetCode-1题](https://leetcode.cn/problems/two-sum/description/)混了一点。。。想的用哈希表。
第一次循环赋进哈希表,第二次循环判断回文即可。复杂度O(N)。
让我优化…双指针那就是,一次循环 也是O(N)。
讲了一下go的goroutine、GMP模型。
代码2
两个goroutine,一个输出奇数一个输出偶数。通过通信,最终输出1-10。
发现很多小的细节还是有不完善… …代码放这里了,基础操作还是得巩固。
func main() {fmt.Println("begin")nums1 := []int{1, 3, 5, 7, 9}nums2 := []int{2, 4, 6, 8, 10}i, j := 0, 0var wg sync.WaitGroupchan1 := make(chan int)wg.Add(2)go func() {for ; i < 5; i++ {fmt.Println(nums1[i])chan1 <- 1}wg.Done()}()go func() {for ; j < 5; j++ {<-chan1fmt.Println(nums2[j])}wg.Done()}()wg.Wait()}
夸赞了一个习惯——写代码先把核心写出来,再去完善枝叶。
反问
公司是做什么的、技术栈
聊了些基本情况就结束了