
获得徽章 1
- #青训营笔记创作活动#
2月13日 打卡day12
跨域是在浏览器端实现的安全机制。后端给浏览器返回的请求中可以包含access-control-allow-origin响应头来允许相关的跨域请求,此时浏览器就会允许指定的跨域请求发送。评论点赞 - #青训营笔记创作活动#
2月12日 打卡day11
分库分表是因为单机MySQL的处理能力有限,当单表超过500w行时就应该分库分表。可以使用垂直拆分或水平拆分:垂直拆分指按不用业务拆分,水平拆分则是将同一张表分到不同数据库中。
评论点赞 - #青训营笔记创作活动#
2月11日 打卡day10
RSA加密使用一对密钥来分别进行加解密操作,但是纯RSA加密的开销会比较大,因此一般使用RSA加密对称加密的密钥,而不是用来直接加密所有数据。评论点赞 - #青训营笔记创作活动#
2月10日 打卡day9
UDP和TCP都是基于网络层的TCP/IP协议实现的,网络层协议是无状态的,而UDP仅在其基础上增加了端口号和校验的信息,TCP则是自己实现了一套可靠传输机制。评论点赞 - #青训营笔记创作活动#
2月3日 打卡day8
提到了秒杀系统的各个方面,从前端静态资源、用户请求到后端的缓存、库存、熔断限流等手段都提到了。先收藏了,回头再来看各种秒杀问题的解决方案。评论点赞 - #青训营笔记创作活动#
2月2日 打卡day7
使用websocket的主要原因是HTTP1.1协议是半双工的,只支持客户端请求->服务端应答的方式。如果要实现长时间的连接,只能让客户端不断轮询服务端,而websocket则可以让服务端主动向客户端推送信息。展开评论点赞 - #青训营笔记创作活动#
1月31日 打卡day6
有些习惯不只是后端,写任何代码都需要注意。
包括写注释、封装通用操作、控制复杂度这些。使用一些代码检查工具可以帮助写出更好的代码,比如工具会提示代码的复杂度过高等情况,可以根据提示进行修改。展开评论点赞 - #青训营笔记创作活动#
1月30日 打卡day5
Optional在Rust和C++中也有。
在C++中,std::optional会在包装的对象之外占用额外的一个byte(对齐后可能占用额外的4B或8B)的内存空间。对象中有些可能存在或者不存在的属性用optional就很合适。展开评论点赞 - #青训营笔记创作活动#
1月29日 打卡day4
一些编码的技巧,前面的部分还是比较通用的,后面有些偏java的感觉。不过我觉得去实际操作,多读好的代码,然后回看,重构自己写的代码,对整体代码风格就很有帮助,只通过看这种小技巧很难应用上。然后必要的地方要写注释,主要是说明一些函数/变量的作用。
展开评论点赞 - #青训营笔记创作活动#
1月28日 打卡day3
跟著名的计算机网络自顶向下方法采用了相反的顺序,自底向上从物理层链路层网络层描述了计算机网络的基础结构。评论点赞