猿创征文|技术之路不应该“闭门造车”
一、导读
曾经作为一只精致的“独狼”,也幻想着凭借一己之力去完成一些壮举,甚至有一段时间痴迷上了swing,开发了不少实用的工具,例如曾花了一周的业余时间在m1上打造了一款符合自己工作习惯的shell工具,可以定义各种快捷命令、快捷分组、批量操作等,确实提升了不少工作效率。
一位负责运维的同事正好需要这个工具,便顺水推舟在工作群里分享了出去,没想道竟然有人提起了需求,不仅要加上文件上传,还要有内网的文件共享,于是一个 FTP+网盘 的工具应运而生,也就是V1.0版本就是下面这个样子。
虽然技术研究学习上喜欢“独”,鉴于工作良好的工作氛围及人缘关系,所以工作中并不“孤”, 一些原本以为练手、冷门的技术,在某些特定场合下也会有一定的用处。
二、机遇
当自己研究的东西,被周围人发现了价值并且得到很大的认可时,有一种“内在”会被激发,进而开始喜欢这种被同事认可的感觉。
作为一名技术人员特别喜欢造轮子,有时候也会高仿一些其它的工具,或者想当然的设计一个奇奇怪怪的框架,虽然说有时候实用价值不大,但因为花费了一段时间用心的研究与学习,也会有所得。
正是因为前面分享了两个工具,在同事之间小有名声,后面在公司需要设计一个高并发架构时,被同事给推荐了出来,当时技术功底并不深厚,只是对技术有着极大的兴趣,敢打敢拼而已。
就这样莫名其妙的给自己打开了一扇门,开始配合一些技术前辈在架构上深耕。
在一次千万级数据压测时,出现了性能瓶颈,这个活落到了我的手里,整整一个星期毫无进展,四处求援也一无所获,其实当时已经处于一种心灰意冷的状态之下,但是对技术非常执着的我来说,技术上的问题——要么是行,要么是不行,怎么会出现一种中间态?
三、曙光
经过一番努力,迎来了曙光。
又经过一个星期的攻关,居然梳理出来一套性能方案。
- JVM:通过stat、jhat、jstack监控应用运行情况,内存使用情况,垃圾回收频率等。
- Linux:通过文件句柄配置、端口数配置、磁盘读写、系统缓存、虚拟空间等进行监控微调。
- 数据库:数据库活跃连接数、最大连接数、链接时间、sql优化、锁监控、数据优化等。
- 网络:局域网网速监控、并发连接数及状态、应用流量监控、负载均衡分流监控等。
这一个星期的下来,平均每天休息五个小时,一天当作两天用,在精神高度紧张的状态下察觉不到困意,但是当问题解决之后,休息了五天都没缓过劲来。
这次技术攻关,在毫无思路的情况下,只能通过排除法,把可能的情况一一排除,可能的情况也就是上面的这几点,其中设计的太多的各种命令的使用,趁着手眼灵活,顺遍整理一份技术手册,毕竟经过自己的实际验证可行。
当组内其他同事也遇到性能瓶颈时,可以相互借鉴,为了方便交流,提交到了公司内网git上,没想到大家根据各自的特殊场景可开始自发的维护修改补充起来,一个月的迭代,形成了公司级文档。
通过看其他人补充或修改的内容,更是学到了很多新的东西,而且在大前提大家都是在干同一件事情的时候,看的会更认真,理解也会更深刻。
其他未参与项目的同事,很多人也了解了一些优化手法,或者操作命令,但每当具体落实时,总会有这样或那样的问题,经常的来问我们。而我们在不断的交流过程中,又了解到各种形形色色的场景,以及千奇百怪的环境,让自己的技术沉淀更加的夯实。
甚至在技术上,感受到一种“道”与“术”的差距。
四、成长
原以为的技术成长,就是一步一步的走过来,然后一步一步的爬上去。
直到经历这次技术攻关,原来技术的进步是需要跨越的,平常都是平坦大道,不知道什么时候会出现一道坎,跨越了也就跨越了,无论是技术、思维,还是心境,都已然经历一次洗涤。
溪聚成河,河聚成江,江流入海。
让技术活起来,在分享与交流中会产生新的灵感,在碰撞与争论中会擦出火花,授人以渔的同时,也会得到响应的馈赠。
于是,自己作为一批技术“独狼”的想法发生了很大的转变,开始偶尔的闭门造车,偶尔的孤芳自赏,更多时候与技术团队共赋流殇。