个人介绍
01
大家好,我是涛哥。首先感谢小猪同学能给这次机会让我可以总结从业五年来的一些感悟,以下仅代表我的个人观点,如果能帮助到其他同学避免走弯路,很荣幸。如果觉得我的建议不太适合的同学,一读即可,谢谢。
我的历程
02
截止此时,迈入IT开发岗位已经五年零三个月,回首这五年的经历,回味无穷,做为一个IT人,我觉得最大的成就感莫过于自己做的系统可以承载各种流量冲击并稳定运行,服务于大众。
从毕业到现在一直都在银行参与业务系统的开发工作(JAVA),有负责过批处理应用(银行清结算),也有参与过银行高TPS的应用开发;在这里我想更多的介绍一下自己五年业务开发的一些感悟。
刚毕业步入工作岗位的时候,对于编程总是捉襟见肘,遇到新的技术点,认为觉得只要懂得如何使用即可,并没有去深挖底层原理;随着开发时间的增长以及在生产环境出现的各种问题排查才开始慢慢的去接触底层知识,了解底层原理。
现在回过头来看,觉得java是一门简单又很难的语言,简单是因为你很容易就可以上手,阅读api文档以后按照约定规则即可开启编程;难是因为JAVA底层帮我们封装了太多不知道东西,不知道很多小伙伴有没有这个疑问,反正我有,多线程在JAVA应用中随处可见,当我们启用多个线程以后底层是如何实现将应用的多线程映射到操作系统,操作系统的多核在我们处理并发任务时到底担任什么角色?
我们也经常会说到IO,我们可曾想过网络通信IO的数据流转过程,因为JAVA的各种框架帮我们做了太多封装,所以在上层应用对于这些底层无感知,一旦涉及到相关的生产问题排查就需要了解其原理了。说这个的意思是随着我们开发经验的逐步提升,底层原理也是需要学会的知识点,因为在打怪升级的道路上他们随时都会成为拦路虎。
记得之前有前辈给我说过一句话,在我们行业里边,三年一小槛,五年一大槛,只有跨过了这两个门槛,你未来才有可能成为高级开发工程师,如果跨不过去,就很难了,我想应该指的是技术的道路是无止境,需要我们时刻保持学习的状态。
个人建议
03
一、架构规划
现在每一家公司都有自己的架构规划,所有的应用系统都要服从统一架构规划,所以熟悉公司的架构是很重要的。
熟悉架构不仅能够帮助你全局的了解系统的部署,更能在系统设计阶段避免步入雷区。
二、系统设计
系统设计一定要谨慎,好的系统设计可以达到事半功倍的效果,如何让你的系统支持多节点部署并支持实例的线程扩展,如何保证在未来业务功能增加时代码层面可线程扩展,避免出现大规模的重构。
三、底层原理
知己知彼,方能百战不殆,熟悉底层原理可以帮助我们在编写业务代码时避免踩雷。
四、中间件原理
现阶段应用系统对于中间键的使用必不可少,常用的例如mysql,redis,mq等,熟悉常用中间件底层原理可以在我们使用的过程中提供最大帮助。
为什么redis很快,我们是否了解redis底层数据存储及简的设计?在不同隔离级别下,innodb是如何加锁的,如何保证数据的隔离等很多知识都值得我们去学习。
五、框架源码
阅读经典框架原码除了可以学习框架的设计模式还可以让你对整体框架有更深入的了解,比如Spring、Netty、AQS等;算法基础可以提升代码的运行效率。
总结
03
技术的道路没有尽头,唯有持续保持学习方可,希望以上建议会对大家的编程有些许帮助。