Keal's Blog

我的天空, 是雨是风

关于人生的思考

人生

最近因为感情问题, 情绪上的波动很大, 自身作为一个比较理性的人, 在度过了情绪的波动之后, 开始思考一下人生(笑), 写在这里既是记录, 也是分享 读书 读书是学习知识的手段, 读书本身不是目的. 一开始上学读书大家都是被家长和学校安排, 现在很多时候我读书是因为我对某个领域感兴趣, 对某本书的介绍产生了兴趣. 虽然我是一名编程技术人员(这个名词是我刚刚想到的), 但我读的最多的书...

HTTP请求全部使用POST的一些思考

之前技术群里有人转发了一个建议后端所有接口都使用POST来与前端交互. 当时仔细看了下,大概的思路是觉得用POST更统一,也没什么坏处云云.. 现在比较流行的使用HTTP来做前后端交互的应该是RESTful风格. REST把HTTP里的动词作为对资源的一种操作,例如GET对应获取,POST对应创建,PUT和PATCH对应更新等.这里不详细说规范的细节.只说一些我认为的原则上的问题和一些设计...

2021读书总结&2022计划

2021 «伊芙琳的七次死亡» 斯图尔特·特顿 简评:kindle上推荐说是英国的畅销推理书,设定新颖.作为在一个特殊设定下完成的推理小说,我觉得认真推敲的话可能还是呼存在一些漏洞,但是对于一个案件,不仅给予了不同参与者的角度,还赋予了其行动的能力,这样的想象设定的确很适合写推理案件. 因为推理小说本身总是存在一个侦探式的角色来去串联起参与事件的每个人物. 伊芙琳的七次死亡里的”我”...

黑客帝国3刷观感

Matrix

The Matrix, 中文翻译”黑客帝国”, 前系列一共三部.赶在第四部上映之前,重新在看了一遍三部曲. 新看又有新想法.整理一下我认知中的时间线和关键点.(线索都来自影片) 20世纪初期,人类设计出了AI(人工智能), AI孕育了机器的自我意识, 最终产生了人类与AI的大战.最终AI赢得了胜利.在战斗过程中,人类认为机器依赖于太阳的能源,于是选择染黑了天空. AI利用人类本身...

Tencent interview

事情的开始,是11.15早上,接到了腾讯HR的电话,约了11-16晚上的面试。 毕竟腾讯是我在国内最喜欢的公司, 国内几个大厂里,阿里给我的感觉像个成熟大叔,什么都懂但是很无趣。字节跳动像个蛮劲很大的年轻人,只有腾讯给我的感觉是年轻自由且开放的。虽然还没有打算跳槽,但是我没法拒绝腾讯的第一次邀请. 接到面试后,整个人的状态就变了。变得紧张,兴奋,和担忧。后果是引发了情绪性胃炎,直到我码字...

从gRPC源码学习Golang默认参数和可变参数的使用

Golang默认参数和可变参数 Golang函数支持默认参数吗?No Golang函数支持可变参数吗?Yes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package main import "fmt" //可变参数的声明 func test(a ...int) { var total int...

Golang之array,slice,map的底层实现

Slice, Map

Array Array即常说的数组数据类型. Golang中的数组类型由两个部分组成,即元素类型和数组长度.例如 [10]int 10个int元素类型的数组 [10]string 10个string元素类型的数组 即使元素类型相同, 但是数组长度不同,在Golang中也被视为是类型不一样. 声明数组 1 2 arr1 := [3]int{1, 2, 3} arr2 := [...

Golang的踩坑记录

记录Golang一些小坑,避免 uint类型直接相减如果是负数,会得到一个非常大的值 gorm更新时如果使用orm去更新会忽略类型的零值,比如将某个int类型改为0时,会被忽略. goroutine中如果不注意panic的话可能会导致整个程序的崩溃 小心在循环中直接使用临时变量,循环中的临时变量复用了地址,而循环的执行顺序问题会使得程序运行情况不一定符合预期

Golang之Channel

"channel chan?"

Channel channel是golang实现的”通过通信来实现共享内存”并发同步方案. Channel有点类似python里的Queue, 例如内部通过锁的机制实现了并发安全.遵循先入先出的设计. Channel的三种类型: 同步 Channel — 不需要缓冲区,发送方会直接将数据交给(Handoff)接收方; 异步 Channel — 基于环形缓存的传统生产者消费者...

Golang之context

"context for ?"

Context 1 2 3 4 5 6 type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{} } 通过Go源码可知,Context接口需要实现Deadlin...