孤尽班第14天 -- 第二周总结

博主分享了自己在学习UML图绘制过程中的体会,认识到与标准答案的差距,并强调了在Maven依赖仲裁机制上的理解。此外,讨论了TCP/IP协议中的TIME_WAIT状态对高并发服务器的影响,提出调整TCP超时时间的建议。同时,文章还涵盖了微服务架构选型的重要性,编码规约中需要注意的细节,以及浮点数在存储数字时的精度问题。
摘要由CSDN通过智能技术生成

在看完孤尽老师展示的UML图的标准答案后,说实话还是有点奔溃,自己做的和答案的差距还是挺大的。在绘制UML图上今后还需要多多努力。

工程结构规约

我使用Maven已经有段时间了,但一直不太清楚它的仲裁机制,通过这次学习算是搞了个基本明白。

Maven的依赖仲裁

  • 按照DependencyManager版本声明进行仲裁
  • 如无仲裁声明,则按照依赖最短路径确定版本。
  • 若相同路径,则按照第一声明优先原则。

要解决依赖冲突,可以查看工程的依赖树,Maven中可以在用“mvn dependency:tree”来查看。而在intellij中,则更方便,如下图所示,按一下红色圆圈里的按钮,就能可视化dependency tree。

在TCP/IP规约中,我们复习了TCP/IP的三次握手和四次挥手。在四次挥手中,我们发现在最后一次挥手后,主动关闭方需要等待TIME_WAIT的时间才会彻底关闭连接。而TIME_WAIT一般是MSL(Maximum Segment Lifetime)的2倍,而MSL一般是2分钟。这个确实有点长,在高并发的环境下,句柄资源(file descriptor)很快就会就消耗完。

高并发服务器建议

  • 调小TCP协议的time_wait超时时间

MSL: Maximum segment lifetime is the time a TCP segment can exist in the internetwork system. It is arbitrarily defined to be 2 minutes long.[1]

技术架构选型

我们回顾了各种服务架构的特点。在需求简单的时候,我们应该使用单体架构来开发。但是当需求变得越来越复杂,对于团队之间的合作的要求越来越高的时候,我们就应该选择微服务架构来进行协作和并行开发。

技术本身没有好坏,只有是不是适合特定的需求。为做好技术选型,我们要与时俱进,不仅要了解各种新兴技术工具,而且要从底层的原理去深入地解剖每个工具的优劣。在决定是否要采用一个技术框架时,我们要从多个方面去考虑,比如学习成本,维护成本,与现有技术的兼容性,是否满足业务的需求等等。

编码规约

在编写代码时,一定要注意细节。可能一个不经意的常量定义不规范就能导致产品在关键时刻掉链子。

当然,在这堂课中,印象最深刻的就是如何用Float类型来存储数字,以及为什么float存储数字会带来精度问题。其实float类型就没打算精准地来表示每个数字,它本身就是科学计数法的一种应用。而科学计数法则是用来表示极大数和极小数的,在表示这些极端数时,损失一些精度是完全在容忍的范围之内的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值