架构师训练营 第七周 个人感想
0 期 3 班 4 组 杨娴艳
如果说第四周开始是智慧老师对互联网分布式系统架构进行了广度的分析和介绍,那第七周的内容就是开始对计算机基础知识进行了深度的挖掘,很多的知识点包括:操作系统、堆栈、进程、线程、性能指标、锁等等,既让我想到了软考考试的备考过程又想到了在大学针对操作系统、数据结构等课程的学习。说实话,一系列的课程学习下来,智慧老师所传授的内容还有很大一部分是我不了解或者不熟悉的,又是特别重要的,看清自己的实力并且为自己的短板努力是我需要为之努力的。以下我将会就第七章的学习进行思考和总结。
写久了业务代码后的思考
当离开当初开发平台的研发后,工作的大部分时间和重心是围绕业务系统进行开发。当然在业务系统开发的过程中是能够获取到很多的经验的,包括需求分析能力、领域分析的能力、微服务架构的实践、Devops以及容器化的应用实践以及在不同的业务场景下对部分中间件的使用方案的抉择等等。但是经过了这几年的业务开发,渐渐觉得自己不能完全徜徉在业务的开发中,特别是随着年龄的增长,需要走出自己的舒适区去挑战自己,发展的方向包括两个:
1)横向的对于互联网分布式架构的深入的学习和实践,也就是第四周开始学习的内容,包括:缓存、NOSQL、分布式数据库、负载均衡等,针对这些内容,我们需要从更高层面去俯瞰整个架构,面对数据库的扩缩容、缓存服务器的扩缩容、负载均衡服务器的集群搭建方案的抉择等都需要有一套完整的解决方案体系在脑中,以便随时调用;
2)纵向在具体的研发过程中需要重视对代码编写的性能的要求,计算机基础知识的掌握,看过一个段子,“在java开发过程中有两类研发人员,一种是制造性能问题的,一种是解决性能问题的”,如果随意的堆砌代码、不懂设计和重构、不了解数据结构,过多的循环、使用不恰当的数据结构、不合理利用工具类、不了解原理对锁的应用不恰当等都会日积月累最终造成大的问题。
应试学习和全身心学习的区别
这次学习的过程我发现了自己一个很有趣的现象,之前在准备一些计算机等级考试如软考的时候,针对一些知识即便看了很多遍,刷了很多题还是一知半解怎么都理解不了;这次通过老师的讲授,对于很多知识都有一种豁然开朗的感觉,包括了性能测试中负载测试和压力测试的区别,堆和栈以及线程的相关知识,真心推荐智慧老师教科书级别的架构书籍《大型网站技术架构_核心原理与案例分析》,里面针对很多知识点都特别的详尽,课程过后可以再通过书本进行复盘加深记忆。
计算机基础知识常识性的记忆
其实针对老师强调所说的常识性的知识,我们在实际工作中如果不做相对底层或者平台级别的开发是比较少的接触的,大学毕业后很多基础知识随着时间也渐渐淡忘。当老师谈到偏向锁、轻量级锁、重量级锁、锁的自旋、锁原语、包括老师讲解了JAVA中如何通过锁原语再对象头中实现加锁,这些JVM中的基础知识是我的确没有听过的又觉得特别有趣的,说在日常开发中能不能用到,的确很少用到用,但是这些是属于“知其所以然”的部分,对于我们从业人员是有这个必要非常清楚其中原理的。
目前在研发过程中,我们常常用到了现成的开发框架、集成工具、部署平台,强大的Spring、强大的Jenkins,强大的Java虚拟机,强大的公有云基础设施,强大的中间件,但又如老师说的,如果一味只追求会用这些框架,那的确很厉害,但是框架在升级,新的更强大的平台也层出不穷,要想能够有真正的实力,那且不论去参与研发一个平台/框架,我们至少应该掌握一些标准化的、基础的原理,这样在接触到任意一个新事物的时候都有强大的基础知识作为后盾来支撑我们的学习力,学习的能力比固有的知识更加重要也在于此。
课程渐半,愿我们都能坚持下去,没听明白就多听几遍,没有实践机会就自己动手搭建创造实践机会,愿大家初心不变,心想事成。
版权声明: 本文为 InfoQ 作者【且听且吟】的原创文章。
原文链接:【http://xie.infoq.cn/article/fafde6d56ca566ddbeb36d0a9】。未经作者许可,禁止转载。
评论 (1 条评论)