获得徽章 1
#青训营笔记创作活动#
2月8日 打卡day9
Java 8 引入了一个十分实用的 Optional 类,它主要是为了解决空指针异常(NullPointerException)。当我们对对象的属性进行检查,判断它的值是否为期望的格式,最终却发现我们查看的并不是一个对象,而是一个空指针,它会立即抛出一个让人厌烦的 NullPointerException 异常。

本质上,Optional 类是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。

这个文章讲了如何optional解决空指针异常的问题,很具有启发意义
展开
评论
#青训营笔记创作活动#
2月7日 打卡day7
该文章主要讨论在秒杀的高并发场景下,传统订单架构存在的性能瓶颈,如何利用 redis、MQ 等中间件对系统做优化,解决缓存加速、防止重复提交、排队下单、超卖

像这种瞬时高并发的场景,传统的系统很难应对,我们需要设计一套全新的系统。可以从以下几个方面入手:

页面静态化

CDN加速

负载均衡

防重

缓存

异步

熔断、限流

分布式锁

总而言之:分层过滤,分而治之。
文章很好的讨论了并发的问题
展开
评论
#青训营笔记创作活动#
2月5日 打卡day7
websocket完美继承了TCP协议的全双工能力,并且还贴心的提供了解决粘包的方案。它适用于需要服务器和客户端(浏览器)频繁交互的大部分场景。比如网页/小程序游戏,网页聊天室,以及一些类似飞书这样的网页协同办公软件。在使用websocket协议的网页游戏里,怪物移动以及攻击玩家的行为是服务器逻辑产生的,对玩家产生的伤害等数据,都需要由服务器主动发送给客户端,客户端获得数据后展示对应的效果。
展开
评论
#青训营笔记创作活动#
2月4日 打卡day6
1.注释尽可能全面,写有意义的方法注释
2.项目拆分合理的目录结构
3. 不在循环里远程调用、或者数据库操作,优先考虑批量进行。

4. 封装方法形参

5. 封装通用模板

6. 封装复杂的逻辑判断条件

7. 保持优化性能的嗅觉

8. 可变参数的配置化处理

还有许多实用的开发习惯,值得学习与借鉴
展开
评论
#青训营笔记创作活动#
2月3日 打卡day5
一条SQL的诞生都源自于一个用户请求,在开发程序时,SQL的大体逻辑我们都会由业务层的编码决定,具体的SQL语句则是根据用户的请求参数,以及提前定制好的“SQL骨架”拼揍而成。当然,在Java程序或其他语言编写的程序中,只能生成SQL,而SQL真正的执行工作是需要交给数据库去完成的。
展开
评论
#青训营笔记创作活动#
2月2日 打卡day4
502其实是由网关代理(nginx)发出的,是因为网关代理把客户端的请求转发给了服务端,但服务端却发出了无效响应,而这里的无效响应,一般是指TCP的RST报文或四次挥手的FIN报文。
评论
#青训营笔记创作活动#
1月30日 打卡day3
该文章介绍了七个不常用但很有用的CSS属性,类似position: sticky实现的滚动栏吸顶功能,如果没有该属性显然实现起来很麻烦,诸如这样实用的CSS属性还有很多,收获多多。
评论
#青训营笔记创作活动#
1月19日 打卡day2
该文章给出了11个常用的JavaScript工具方法,类似回到顶部和复制文本,都是很实用的功能,但在第一个的使用上要注意 moment 的官方维护似乎已经停止。
评论
#青训营笔记创作活动#
1月14日 打卡day1
工欲善其事,必先利其器,学习前端的开始就是接触前端工具,但是似乎推荐的工具的使用是有风险的,另外一些网站如阿里巴巴矢量库很有用
评论
个人成就
文章被阅读 607
掘力值 52
收藏集
1
关注标签
0
加入于