获得徽章 1
- #青训营笔记创作活动#
1月21日 打卡day8
在你开发的过程中,可能会有其他开发同学已经把自己的PR merge到main分支了。
那么这时候我们就把修改merge到自己的开发分支。
展开评论点赞 - #青训营笔记创作活动#
1月20日 打卡day7
允许对值为 nil 的 slice 添加元素,但对值为 nil 的 map 添加元素,则会造成运行时 panic。
当访问 map 中不存在的 key 时,Go 则会返回元素对应数据类型的零值,比如 nil、’’ 、false 和 0,取值操作总有值返回,故不能通过取出来的值,来判断 key 是不是在 map 中。展开评论点赞 - #青训营笔记创作活动#
#第五届青训营阅读打卡#
1月17日 打卡day6
今日学习 websocket协议
为什么要学习websocket呢,TCP不能满足需求嘛?
TCP是全双工协议,当然可以满足需求,但是基于TCP的HTTP1.1
显然是不够的,我们需要用其他的手段,HTTP1.1出来的时候还不知道有网络游戏这栋西需要全双工。
所以搞了个半双工出来。
虽然名字带了个socket,但其实socket和websocket之间,就跟雷峰和雷峰塔一样,二者接近毫无关系。
特殊的头协议:
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Key: T2a6wZlAwhgQNqruZ2YUyg==\r\n
你在网上可能会看到一种说法:"websocket是基于HTTP的新协议",其实这并不对,因为websocket只有在建立连接时才用到了HTTP,升级完成之后就跟HTTP没有任何关系了。
TCP协议本身是全双工的,但我们最常用的HTTP1.1,虽然是基于TCP的协议,但它是半双工的,对于大部分需要服务器主动推送数据到客户端的场景,都不太友好,因此我们需要使用支持全双工的websocket协议。
在HTTP1.1里。只要客户端不问,服务端就不答。基于这样的特点,对于登录页面这样的简单场景,可以使用定时轮询或者长轮询的方式实现服务器推送(comet)的效果。
对于客户端和服务端之间需要频繁交互的复杂场景,比如网页游戏,都可以考虑使用websocket协议。
websocket和socket几乎没有任何关系,只是叫法相似。
正因为各个浏览器都支持HTTP协议,所以websocket会先利用HTTP协议加上一些特殊的header头进行握手升级操作,升级成功后就跟HTTP没有任何关系了,之后就用websocket的数据格式进行收发数据。展开评论点赞 - #青训营笔记创作活动#
1月17日 打卡day6
今日学习 MySQL调优
今天我学习了MySQL调优。通过调整参数、优化查询语句、使用索引等方法,我学会了如何提高MySQL的性能。这对我来说是一个很有趣的学习过程,也为今后的工作和项目做好了准备。
展开评论点赞 - #青训营笔记创作活动#
1月16日 打卡day5
Kafka 把消息持久化到磁盘,相比于其他基于内存存储的系统而言,有效地降低了数据丢失的风险。也正是得益于 Kafka 的消息持久化功能和多副本机制,我们可以把 Kafka 作为长期的数据存储系统来使用,只需要把对应的数据保留策略设置 为“永久”或启用主题的日志压缩功能即可。
展开评论点赞 - #青训营笔记创作活动#
1月15日 打卡day4
对于学习Go语言来说,一定要学习它的设计思维和编程思维,而不是带入别的语言来批判新的语言,这样你总归无路可循。
在掌握Go基础之后,可以 通过“三刷”的方式掌握SQL、Redis、Linux、Nginx的基础知识点,这样就有能力开发Web项目了。
要进阶就要学 “微服务” 和 “DDD”!
软件的架构模式总的说经历了三个阶段的演进:从单机、集中式到分布式微服务架构。
分布式微服务架构是主流趋势,越来越多的企业采用分布式微服务架构进行业务转型。
那么如何才能更好的从单体架构和集中式架构转型到分布式微服务架构呢?答案就是:DDD。 这也是我们的进阶之道。
DDD (Domain Driven Design):领域驱动设计。
展开评论点赞 - #青训营笔记创作活动#
1月14日 打卡day3
在日常工作中,尤其是程序员时时刻刻都会与英文打交道,虽然我们尽可能的在互联网和中文书籍中寻找我们需要的信息,但是,有时候总是不尽人意。对待翻译过来的文档或者书本可能有些定义依然无法明确理解,回到它原有的场景中才能明白究竟是什么意思?阅读英文文档应该是我们的基本技能。展开评论点赞 - #青训营笔记创作活动#
1月13日 打卡day2
我看了"看了我常用的IDEA插件,同事也开始悄悄安装了.."这篇文章,IDEA 插件对我帮助很大,我发现我的工作效率和代码质量都有了显著提升。使用插件如Lombok, GsonFormat, IDEA等能够让我更加方便地编写和调试代码,并且帮助我发现并消除了一些编码中的错误和问题。我很高兴我的同事也开始意识到了这些插件的重要性,并开始使用它们。我希望有更多的开发人员能够发现这些优秀的插件,并在日常工作中使用它们。展开评论点赞