Java开发成长之路第七年

介绍

入行已久,中毒很深。和那些职场新人相比较,已经显得“老迈”了很多,精力、体力都已经从优势变成了劣势。但是,身为“懒惰”的程序员,如何才能可持续地保持自己的这份“自豪感”呢,毕竟这是个残酷的世界——没人会关心你的过去,只在意你是否还有战斗力!

有核心竞争力的人,才会有持续的战斗力!为了不让自己过快、过于凄惨地被淘汰,我每天都在磨练、探索自己的核心竞争力。各位看客,你的每一天都是怎么度过的呢?

•测试

一直对测试这份工作了解很少,虽然身为开发的屌丝是经常和测试MM有工作上的交集。很多情况下,我们止步于功能完成,没有报错,Bug库里没有自己的名字;但这远远不够!

对于开发人员来说,设计、编码完成后,还要做“自测”——点点页面,单元测试。我们大部分做到的是,通过界面来操作,然后查看生成的数据是否符合要求;或者只是看看页面上有没有报错。但,开发人员的自测其实还可以做的更加深入和细致。

页面、浏览器控制台、服务器日志上都不能有未预料到的异常报错,或者本来应该有异常但是又没有给出异常提示或者日志。之后,再到数据库中核实数据是否符合预期。至于单元测试嘛,大家都在喊着要做,也都认为非常地重要,但没有几个人或者团队做到了。很多情况下,他们写的程序对“测试”并不友好,在编码过程中完全没有思考该如何进行测试——因为,我们不了解测试到底应该怎么进行。

这里,我提出一个概念,先设计,再思考如何测试,最后编码。

每一个开发人员,都应该是一个非常出色的测试。功能、WebUI、性能、安全、压力测试等等,我们一个都不能少。自己写出来的东西,居然不会测试,也不知道实际的效果(性能)是什么情况,怎么好意思说这个是你做的。

写一个自动化测试平台,然后用这个平台来对自身做WebUI测试。另外,性能、安全测试都必须上。JMeter、Selenium、SoapUI都是应该下功夫搞定的。下面是我开源的自动化测试平台的项目源码,欢迎拍砖!

https://github.com/LinuxSuRen/autotest.platform

•源码

阅读源码将不再是件神秘的事情,不高深,也不值得吹嘘,我们必须每天看、经常看。因为,我们已经到了必须尽快地掌握技巧,就和高中的语文阅读理解一样,抓重点、弄明白中心思想;提高阅读过程中的脑容量——有层次,看结构,挑刺,要无耻地把别人的东西统统变成自己的,哈哈!是不是很邪恶。

打算走技术路线的人,一定是要保持在最前线,读码、编码、调码一个都不能少。

•审查

说到代码审查、重构,有些人不屑一顾,认为这是每个程序员的自我欺骗。而我要说的是,有这种想法的人,是因为你做的不够专业——至少是没有专业精神,没有工匠精神。当然,如果你是在给“别人”写代码,环境不容许你有重构、审查代码的时间,是情有可原的;但,你为什么不给“自己”写点代码呢,难道就完全没有时机吗。

根据项目开发经验来说,有以下几种情况:
1.看着别人写的代码很烂,自己又想不出更好的办法来改进,周围又没有可供咨询、学习的前辈(或者觉得没有这个必要),所以就“同流合污”。
2.看着别人的代码很烂,很难改,但还是要努力跟上“烂”的节奏,尽力把任务完成。有的领导认为这种人很上进,不怕困难,值得表扬。可是,你在想想,他除了把之前“烂”(可读性差、难以维护)的代码变的更多以外,有什么贡献的;关键是,他哪天离职了,又有新人补充进来怎么办?这部分代码会渐渐地变成谁都不敢动的地方。
3.我能把功能、任务完成就不错了,人家之前也写了那么多的代码和功能,也能使用啊,大家都听不容易的。
4.项目经理说,不要轻易对代码或者模块进行重构甚至改进,这样的风险很大,测试的同事们还会因为你的改动不知道要加多少班。

所以说,在实际项目开发过程中,想要做到代码质量的持续改进是非常低困难的,主客观因素都是饱满的。

在这里,我给希望能做到精益求精、持续改进成长的童鞋们提一个建议:做开源项目吧。你是项目的发起人,你就是架构师、项目经理、需求、开发、测试,甚至你还是销售、运维;你将有机会接触到项目的全流程,你将会有权利来做任何程度的改进、重构,甚至,你可以把项目推翻,重来一次。只要你的热情是饱满的!当然,假设某天,你发起的开源项目做大了,也是不能随随便便地做改变;但是,从你刚进入开源的事业来,到你能搞大一个项目,路还很长;你真的走到那一步的生活,也就真的成了架构师了,你的项目也能做到高内聚低耦合。怎么样,有兴趣吗。

在我GitHub中的项目,都会不定期地进行代码审查,只为了能做到更专业!欢迎监督、拍砖。

•部署

说到项目部署,有的人可能认为是运维或者实施的人应该去做的事情。但我还是那句话,连写好的程序都不会部署,你还好意思说这是你写的吗?

项目部署绝非是件简单的事情,想想有多少人是死在环境的路上。虽然,Docker的出世就是为了解决环境的问题,但它本身不也需要一个环境吗?持续集成,应用虚拟机,构建工具我们都是要熟练地使用。在Windows上编码习惯了的人,Linux应该是必须会的吧。

首当其冲的,是JVM的部署或者安装了。Windows和Linux下的Java环境变量的配置,PATH、CLASSPATH、JAVA_HOME等变量的准确含义必须要弄明白。另外,Java的版本也是很重要的一块。每个程序都会有一个支持的最低版本。

•分享

我不是个多么高尚的人,但随着阅历的增长和对生活的理解,事实就是这样的——我们每个人都对周围的人、家庭、生活应该肩负起一定的责任。好了,这是个虚的理由。你可以忽略不管。但是,下面我再给出一个自私的理由,谁让我骨子里总是有自私的成分呢,哈哈。

如果您以为您对某个技术或者问题已经掌握的很好,甚至已经可以成为这方面的专家了,那么,这个结论一定是有待考证的。您一定也不希望自己是个自以为是,井底之蛙的人(假设碰巧是的话,请绕道),那么我推荐一个可以验证您是否“权威”的方法。那就是去给别人讲,讲给你周围的人,讲给圈子里的人,讲给外行抽热闹的人。

假如,您能讲明白了,大家伙也都听明白,而且都感觉有所收获的时候,您才可以诚惶诚恐地认为自己也许是某方面的专家或者权威了。或许,到这时候,您会觉得自己只是个刚刚跨过这个领域的小学童而已。

分享,除了可以让您成长,还可以发挥余热——照亮别人。温故而知新,也许就是这个道理。

但是,到这里就算完事了吗。记住一句话,学习和成长之路是没有尽头的。我们除了自己要变得喜欢做分享以外,还得努力感染别人也如此这般。我认为,一个好的团队的特点之一,应该包括热衷于分享,热衷于互相帮助成长!

•问题跟踪

Jira是比较优秀的一款问题(bug)跟踪管理系统,可以推荐给各位使用(当然,这是个收费的)。

如果,您已经做到了这个年头上,不论您是否已经走到管理岗位上,都应该多花点时间来把这个(或者其他的问题管理工具)玩的熟练了。我这里有个比较自私的理由,您迟早会用到这个的,不然您到时候怎么去管理、带领一个团队来干硬仗。

我认为,不管是项目经理还是开发技术经理,都已经对当前项目中的所有问题都掌握的很清楚。包括:问题的数量、严重程度的分布、问题负责人的分布等。

•争

如果您有幸已经到了管理岗位,最应该做的事情就是给团队里的每一位成员极力地争取。更多有关这方面的看法,请参考《团队建设》。

•本系列文章

Java开发成长之路第一年

Java开发成长之路第二年

Java开发成长之路第三年

Java开发成长之路第四年

Java开发成长之路第五年

Java开发成长之路第六年

Java开发成长之路第七年

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 本文将介绍在敏捷开发过程中如何通过采取一系列的步骤来保证和提高整个项目的代码质量,阐述了每一步可以利用的工具和最佳...
    Java_苏先生阅读 562评论 0 2
  • 五险一金中的“五险”就是我们常说的社保,其中包括养老保险,医疗保险,工伤保险,生育保险,失业保险。 社保只是最基本...
    a迎春阅读 288评论 2 1
  • 大三开始,舍友们纷纷安慰我,说王威就是渣男,其实,我知道她们的心思。但我却说:“谢谢你们,没有你们,我真不知道该怎...
    帕特森J阅读 255评论 0 2
  • 今日上巳,偶有所感,发乎内情,遂作诗一。 独坐深春夜, 敲窗落雨丝。 问君何所忆? 心念最初时。
    姑射阅读 149评论 0 1