技术,继续,更深入的

来源:互联网 发布:js获取系统当前时间 编辑:程序博客网 时间:2024/04/30 12:09
有段时间没有更新blog了,好吧,不是有段时间,是两个月了。
先说说这段时间做了些什么事情,因为多少和本文有些关系。大概做了三个方面的事情,除了给小朋友喂饭、玩耍和换尿布之外。

1.    开始参与一个新的项目

因为是新的项目,所以和之前做的东西很不一样,而且不幸,或者应该说是幸运的是这个项目用到了大量的新的技术,准确的说,是对我们做的一些人来说新的技术。每逢这样的时候自然是学习曲线狂陡的一个阶段,而且发现不了解技术细节,很多工作难以开展,不知道怎么测,有些部分目前的工具都不ready,甚至业界也没有很好的方案。这个过程还在继续,不过因为很多的细节和项目的方案有关,目前还不便分享。

2.       回头补课

性能测试和系统稳定性测试一直是自己比较喜欢的方向。但是随着最近的一些工作发现很多地方的做法和理解还停留在比较黑盒的方面,能发现问题,但是很多时候不能更进一步去找到问题出在哪里,也就谈不上给出解决方案。而要达到这样的程度,就要下一个台阶到更底层一点的技术层面来看看。下面会有一些具体的例子聊聊这方面的体会。

3.       和业界同行的交流变多了

参加淘宝的技术嘉年华算是一个开头,借着这个机会认识了很多不同公司的同行,很多都非常的优秀和富有经验,另外就是和一些前同事的交流,知道不同组织的一些做法。在一个地方做久了,心中总会有一些危机感,担心自己积累的技术,方法和经验是不是会局限在狭小的领域而变得没有通用性,另一个方面就是想知道别人是怎么做的。最近的这些交流起到了很大的作用,不过结果其实也在意料之中,局限是一定有的,另一方面很多大家遇到的问题和一些思路做法很相似,也有一些东西被证明是有一定适用范围的。

围绕着上面的三个方面,每每要提笔写一篇blog的时候总是会有些犹豫,觉得有些地方讲得不够,或者有些时候想先学习再分享。

下面说说最近花时间比较多的两个技术方向。
一个是关于程序运行时的内存使用和管理。
这个topic的来源其实由来已久,比如谈到系统或者某个进程的内存使用情况,包括内存泄露问题的时候,都觉得有些含糊。因为操作系统(例如Linux)会给你一堆的关于内存使用的指标,搞不清楚具体的含义总是心里不踏实,也不能乱讲对吧。另外更进一步,这些内存使用和真正的代码的情况是如何对应的,比如栈和堆的分配使用等。要了解到这些,可能需要进一步了解程序的编译链接和加载。发现这一块有很多值得学习和研究的地方,顺便对于静态和动态链接这一部分也有了更多的一些认识。
学习的方法是看书和实践。
书是下面几本:

-          深入理解计算机系统

-          链接器和加载器

-          程序员的自我修养 – 链接、装载和库

实践就是自己写一些C/C++的小程序,在执行和调试的过程中加以观察和验证,加深理解。

第二个方面是关于高并发的服务器
这个其实和性能稳定性等也有很大的关系。因为大部分经验都是在做服务类的产品,都要支持比较高的并发。但是之前的测试工作都是黑盒为主,用工具设计好流量去压,看被测的产品能否达到预期的目标或者有没有什么异常的行为。这样的工作有意义,但是无法突破,而突破,我的理解就是要知道为什么它能或者不能支持高的并发,好的响应时间。而不只是黑盒的判断,因为很多时候,性能从架构和设计的时候就已经被框定了大致的范围。
这一块的学习也还在继续中,方法,还是看书加实践,另外也包含请教其他同事,比自己独自搜索和摸索的效率要高。
说到资料,自然要提R. Stevens的经典,《UNIX网络编程》。还有网上很多经典的文章,比如C10K等。
实践自是必不可少,之前只是写过最简单的socket client和server(这方面的hello world),以及一些从测试角度的了解。觉得这样很不够,需要自己动手去获得更深入的理解。
目前比较focus在Linux上,所以也顺便花时间熟悉更细节的Linux网络方面的东西。

这些东西对很多人来说可能是比较基本的,是的,应该掌握的。最近有个感受就是我们很多时候被一些所谓的新的技术吸引了,反倒不愿意静下来把这些影响深远的技术弄得更清楚一些。另一方面,对这些有长久生命力的技术的理解,不仅可以帮到现在的工作,而且对于新技术的理解和应用也会很有帮助。比如深入理解了传统的socket编程,select模型,再去学习epoll等技术肯定会更轻松。

除了工作和项目的需要以外,了解这些技术的细节也能给人带来很大的满足感,知道一个东西是怎么work的总是充满了吸引力。

其实从另外一个角度,我在想,可能还有一个原因,那就是国内的IT行业经过这么些年的发展和积累,已经可以给工程师们提供一个稍微静下心来研究产品和技术的环境,对把一个东西做得更好和更有效率的价值也有了更多的认可。

好吧,这里算是个开头,后面的一些学习和实践再来分享。


原创粉丝点击