我的2015下半年总结

随着工作年限的上升,花在写博客上的时间越来越少了,14年写了一篇,15年写了两篇。并不是由于没有在继续写代码,没在研究新的技术,可能是心态问题,有些事情一旦没有继续坚持就容易变成一种惯性,如下图:


 
  06年到15年,完整的十年。

十年老兵,算算已经过30几年了,刚开始工作时不断的听人说在中国程序员超过30如果还在做程序员,那么就会被后面的年轻人淘汰掉。这句话说的倒是有半分道理:如果老兵五年之后每年都在在吃老本,一直凭借五年前的经验混饭吃,那么五年后的确非常容易被淘汰,因为五年后的技术已经天翻地覆,对程序员的技能会有新的需求,此时不思进取的老兵在纯技术上跟刚工作一两年的年轻人的起点基本是相同的,而且年纪还是一大劣势:不光是人的学习精力没有年轻人旺盛而且时间上也不会有年轻人那个集中,我们会花很多时间在家庭上面。这也是很多人说过了30要转管理的原因,因为大部分人认为做了管理手上的事就少了,毕竟具体的活吩咐小兵做就可以了。但如果是一个一直对技术保有激情保有憧憬的程序员来讲,他每年也会吸收学习新的技术的话,那么在30+之后没有理由被淘汰。可能是时代变了,其实我周边也有不少像我一样30+的人也还是在写代码,国外更多例子了,好多老头也在写代码,而且写的很好。

2015年上半年之前,我一直工作在.net平台已经9年半,有好多人给我建议让我转转技术方向,大多的理由就是.net一般只服务于中小企业,工资待遇上面不如java或者andriod。但我一起没有因此放弃.net而去学习其它平台的技术,因为我认识的搞.net的人中,也有挣钱很多的,所以一直乐此不疲的研究.net。今年一个偶然的机会,我放弃了工作9年多的.net平台选择了不那么熟悉的java平台,理由可能会让大家笑话或者觉得我是个做事冲动的人:其实理由就是第一次有人邀请我去新平台奋斗。当时我的第一直觉是相当开心的,有人在组建团队时居然记的我,我认为至少说明自己的某方面的能力是得到认可的。而很有意思的是,我一个没有任何java实践经验的.net老兵并没有经过任何面试就给了offer,同事基本是无理由的信任他招的兵能够非常快速的适应新的平台。当时他说的话是:我有信息在一个月之内将你们变成JAVA专家。

我暂时不总结2015上半年的所得所失,先总结2015下半年的种种情况:

  • .net转JAVA过程的笑话以及不适应点,大部分是一些.net思维,还有一些是想当然。不全是我个人,这里我列表的是我们几个JAVA新兵做过的事:

    • 设计文档中将hashMap写成set,比如Set<int,int>,在技术评审时立马就被JAVA老鸟纠正过来。刚开始只做设计,没编码,所以出现此类事件。
    • 不知道JAVA基础数据类型与.net不一样,比如Long与long是不同的,Long是个引用类型,允许为空。.net中的Int32与int都是值类型,不可能为空。 这里还有个小问题一直没有研究,JPA工具生成的数据库类对象,将不可为空的自增主键也映射成Long,而不是long,其实我希望是long。
    • JAVA中的decimal很不适应,.net中,它可以直接像使用int一样直接使用,但java中没有这个类型,只有一个对象BigDecimal,无论是初始化还是做操作都是基于类的,很不爽,所以很容易出现直接用+-*/直接操作BigDecimal的想法。
    • 字符串判等,直接会写if(companyName=="FB"),结果发现功能不正常,仔细看代码也未发现哪逻辑有问题,不得已只能调试,第一轮基本都不会将断点打在if里面,最后才发现不能使用==号判断字符串。
  • 几件可能让老板比较着急的事情:

    • 项目关键时期,我电脑固态硬盘坏了。这事也真巧,当时买的质量上乘的INTEL固态硬盘在我手上居然真坏了,也就意味着短时间内无法工作,老板非常热心的想开车送我去电脑城,我当然不敢了,老板的时间比我宝贵多了,最后灰溜溜的跑了一下午先将系统安装在机械硬盘上,然后又是好一阵的各类软件安装,令人头疼的JAVA各种环境配置,终于跑起来了,浪费了整个大半天。颇有一种此人关键时刻容易出状态的情景,但此事我只能认载,只能祈祷我后续更换的不会出同样的问题。
    • eclipse运行spring mvc项目起不来。之前是正常的,突然有一天,debug时网站怎么也运行不起来,日志停留在初始化Spring MVC的信息中,具体的提示语这里就不贴了,最后就是报超时错误。刚开始我以为是家里VPN网络问题,第二天到了公司还是一样,赶巧的是正好线上有个问题需要解决,而我本地又无法正常调试,当时我能感觉到老板有多失望,估计心里在打鼓:怎么招了一个连eclipse配置都搞不定的人呢,耽误事呀。当时呢没有好的办法,尝试使用史上最智能的JAVA开发工具IDEA,配置后发现居然能正常调试,心里窃喜,于时先用IDEA解决了线上问题。但总要搞明白为什么这个eclipse不行呢,于时将日志的级别降低到DEBUG,此时出现了不少信息,比较有用的是在调试时一直有信息在输出,于是先将eclipse超时时间设置长一些,它默认是20S,我设置成60S,还是相同的超时问题,最后尝试几次设置到800S,系统神迹般的起来了,当时的兴奋劲不亚于当时玩足彩任9时中奖的喜悦之情。这个情况告诉我应该是某个环境消耗的时间过长导致的,于时想到我们的日志用到了logstash,它是需要连接redis的,于时将日志中的logstash关闭掉,网站再debug,飞一样的跑起来了。可能时当时我们本地连接redis有异常,导致消耗非常多的时间。但为什么相同的网络环境下idea能运行而eclipse不行,我未做深入研究,推测可能是idea做了某些优化。此事虽然并非真正是由于我不懂eclipse配置的原因,但经过这件事情也让我明白一个道理:不是程序员无能,是eclipse太恶心。这也是我们团队90%的人都改使用IDEA的原因之一。
    • 不熟悉kibana被批。之前有说过我们日志是通过logstash采集的,那么日志上哪看呢,就是这个kibana。当天项目上线后,有个系统功能显示不正常,于时排查,测试环境是正常的,看代码也没有看出逻辑问题,  我的直觉应该不是代码问题,随口说了句不专业的话:代码应该没有问题,要不重新部署下试试?顿时被批不专业,推荐我查查日志,由于当时我对这个kibana不熟悉,又说了句招人骂的话:还不太熟悉,不知道怎么查。顿时领导怒了,估计在想:你这样的老兵还需要我来教如此基本的东西,太不值了吧。于时亲自让SA在服务器上查看日志,并发现了一个重要线索,我根据此线索得以将问题解决。此后我火速找人补习了下如何使用kibana查询日志。
    • 一个系统登录权限认证问题,一个月内不止三次反应问题。根据项目需要我们决定采用shiro+redis来替换spring自带的认证授权模块,测试环境功能都正常,到了线了偶尔有用户反馈权限的判断不正常,明明是有权限的但提示没有权限,而这类情况是不定期发生,有时发生了刷新下页面又恢复正常。由于我从来未遇到过,所以比较难以下手分析。后来通过打印log,以及各种亡羊补牢的方式来试图解决,都以不理想告终。有一阵手上正有一个重要项目在做,临近收尾阶段,我特意请示了领导需要重点解决下登录认证问题,因为此事让我压力特别大,在别人眼中看来这应该是个很简单的功能,怎么到我这就这么多问题,质量太没有保障了,重要是我并不是新兵,而是一个混了10年的老油条,且不是应该是个多么大的NB人物至少也应该是独挡一面的。后来经过调试发现,我们每一次请求,都会操作很多次redis的读和写,这让我很不理解,虽然操作redis性能不是大问题,但一次请求多达几十次的写操作总觉得不太正确。于时尝试放弃远程缓存,改用ehcache的内存缓存,上线后什么事情都没有了,仿佛世界一下子清静了。原因可能是因为我们使用了腾讯云提供的redis,这类产品往往与原生太的有区别。至于腾讯云的redis为什么会有上面的现象,我由于时间问题未做后续追踪,因为我本来就认为权限不适合启用远程缓存,使用本地缓存更可靠。到此,困扰我一个月的问题终于有了结果,心里也踏实了许多,最近一个多月再也没有听到类似的问题反馈了,也因此让我对第三方产品有了更深层次的认识。
  • 真的1个月可以变成JAVA专家吗?1个月时间将你们变成JAVA专家,这是我们老板在项目启动前给我们的信心,因为新项目从启动到上线也就一个月多几天的时间。项目启动前,团队的成员有之前搞PHP,也有像我一样搞了好多年.net的,原生态搞JAVA的也有但比较少。我现在也不是非常清楚为什么老板能够那么有自信的说出那句话。下面我列一些,我新接受的工具以及技术,全部都需要在一个月内会用:

    • 开发工具,现在团队大部分人都用idea,我还是坚持使用eclipse,因为我想再多熟悉熟悉eclipse。eclipse有很多小问题,让人有时感觉比较头疼,往往需要通过不停的project clean这个一招鲜方法来解决,.net的VS重来不会出现如此低端的问题。
    • 语言,JAVA由于与.net比较相似,转过来比PHP容易一些,但也有很多小问题,在上面已经介绍了一部分。
    • 数据存储,我们比之前的mysql多了mongodb,redis,这些基本的语法也是需要简单学习的。
    • 日志,logstash这套方案也是需要学的。
    • 部署运维,传说中的docker,linux nginx,jenkins等,还好有NB的运维同学,否则起码我个人对这块不是那么感兴趣。想当初,jekins未配置好的时候,我们需要程序员手工打JAVA包然后登录服务器去部署。对于我这个linux文盲一讲,只能完全按运维人员的命令一步一步操作,效率可想而知,自从有了jekins这类高端工具后,我再也不用记那些命令了,只需要潇洒的登录网页,愉快的点击部署就好了。
    • 分布式服务,这里我们采用了淘宝的dubbo,简单使用并不难,但要想用好还是需要时间的。比如我们发现dubbo自身有3次重试机制,就不需要在程序中手工去做这件事情了,dubbo自身具备请求日志功能等。
    • 检索系统,我们采用了elasticsearch,用于商品数据的搜索等。
    • 统一配置,我们基于zookeeper自主开发了统一配置中心,用来解决各类项目中的配置集中管理问题。
    • sping相关,做网页要学spring mvc,做切面要懂AOP,做交互要会angularjs

上面这些经过我们团队的努力,在没有一名测试人员的情况上顺利上线,难道我们不是JAVA专家吗?我目前的QQ签名NB的写着1年JAVA经验专家,现在2016年了,我应该修改为2年JAVA经验专家。

  • 公司虽小,但我们的项目的确是一线公司的标准做法,公司技术团队虽然只有几十人,但做法基本都是按标准互联网模式来做的,我们有:

    • 严格按模块划分的服务,业界专业叫法是微服务。
    • 分布式服务,dubbo。
    • 基于zookeeper的统一配置中心。
    • 分布式日志,logstash+redis。
    • 检索系统,elasticsearch。
    • 多种数据存储,mysql,redis,mongodb。
    • 信息队列,rabbitmq。
    • 分布式事件总线,我们基于spring以及rebbitmq开发了一套具备持久化功能的分布式事件总线。

这里只列表了我熟悉的,不包括手机端以及JS前端的内容。从技术上来讲,足以做了一套支持高并发高性能高可用性的电商系统。

  • 以往的.net经验有用吗?之前有纠结过,都工作9年多了,现在换JAVA是不是有点晚有点可惜。但我的理由是有些技术是相通的,大体原理相同,只不过实现方式不同而已。就像同是WEB站点,无论是JAVA还是.net都是handle以及module,设计模式,算法的理念都是相同的。甚至可以说有丰富的.net经验能够更好的设计出优秀的JAVA系统。
  • 我们的老板真心不错,搬新办工楼时,原来的灯光有点暗随后更换了非常敞亮的灯,椅子也是为程序员考虑的,可减少颈椎病;北京第一次发雾霾预警时,老板让我们第二天在家办工;12月25西方人的节日,老板除了微信红包外,因有人说没有抢到老板的微信红包,于时对所有发再发大招红包,红包的内容是第二天不上班;当我报了软考的班,只能晚上回来临时解决任务时,老板很支持并且当月并未扣工资;老板平时会在冰箱放一些小吃,大家工位附近会放各种零食;2015年最后一天,我们下午就放假休息了;还是很人性化的弹性工作,平时晚来一会,早走一会,下午学个车什么的,只要不影响工作老板都会批准。还有好多,不列举了,总之这是我工作10年来遇到的对员工最好的老板了。
  • 我身边有一群狼十足的战友。无论是工作能力还是人品都是没得说,在一群狼合作,还是很有意思的。

回顾这半年,再看看哪些是做的不错的哪些是需要改进的:

  1. 优点

    1. 转JAV这半年,除了头一个月搞了一些JAV新兵蛋子做的事,后续的几个月基本都能按要求保质保量的完成任务。
    2. 工作情绪进一步得到控制,我是一个性情中人,有时工作中会带着自己的情绪,上半年在公司有同事投诉我态度强硬。下半年在新的团队中很少与同事就工作红脸,争吵或者让其它同事比较不爽的事情了。
  2. 缺点
    1. 技术上还应该多花点心思,目前在技术上的贡献来讲还有所欠缺。
    2. 技术前瞻性上还不够,比较局限于当前的情况,需要多多对比业界的其它解决方案,这样才有可能做出一些有突破性的事情来。

2015已经过去,为了30+的程序员不被淘汰,总要有些想法呀,这里也列几条吧:

  1. 抽点时间再深入学习学习angularjs,之前公司项目使用knockoutjs,我就没有花时间学,两者中还是至少要懂一门的,要不然以后做项目容易被淘汰。
  2. 搞一搞项目开发规范,让所有开发类似系统的人都有一个模板可做参考,否则会出现各种聪明的实现方式,难以管理。有时候看似不灵活的方式效果会更好,因为有约束就会有标准。谁要抱怨标准不好,可以讨论修改,谁要抱怨看不懂别人写的代码,那就是因为没有形成标准。
  3. 在新的业务中能够起到负责人的作用,或者独立负责某个系统。
  4. 程序员除了写代码还应该看看理财的书,尽管看了可能比不看赔钱更多。

下半年是忙碌的,虽然有压力但很充实;有自己才疏学浅的窘境,也有解决问题之后的惊喜;有人说要想成长就需要跟比自己强的人工作,那么显然我下半年的选择是对的。2016年我要为了成为别人心目中的强人而努力。

时间: 2024-08-09 19:50:39

我的2015下半年总结的相关文章

2015下半年国产新机粉墨来袭...

2015下半年国产新机粉墨来袭... 俗语曰:金九银十,九月.十月这段时间老百姓的消费潜力非常旺盛,手缝最松,很多企业也借机扎堆进行产品发布.从几何起,下半年也成为手机厂商集体狂欢的时间. 国产手机不甘寂寞.后起直追,在西有果谷.东有星索的列强环伺之下,由米魅华酷等品牌互赶互追,硬生生挤出来一片安卓新天.国产手机一路上遵循着你死我活.优胜劣汰的自然法则,硝烟不断,争斗至今,多少品牌沦为炮灰,已难以统计了.只知道九.十月能露脸喘(zhuang)气(bi)的,多少都能算是国机中的英雄豪杰.好了,让我

2015下半年移动端手机网站优化要点

前几天在我博客分享了一下怎么做移动端网站的开放适配以及如何禁止百度对网站进行转码,希望给各位站长带来一些帮助.经过很多站长的反应得知,其实还有很多人不知道该如何做移动端网站的基础建设,不知道如何设计一个移动端网站,今天我来根据做太原雅辉装修公司手机站的经验来分享一下:2015年移动端手机网站优化要点. 1.手机站定位和页面设计 手机站和PC站除了页面大小.展现形式不一样之外,在分析用户需求方面是都要做的.举个例子,对于一个本地的装修网站来讲,PC站是重点展现装修效果图案例.装修报价以及公司的装修

2015下半年软件设计师考点,难点2

资源分配图,即进程资源图 化简: 第一步:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞("不阻塞"即:系统有足够的空闲资源分配给它)的 第二步:把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来 第三步:看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点. 第四步:最后,所有的资源和进程都变成孤立的点.这样的图就叫做"可完全简化". 如果一个图可完全简化,则不会产生死锁:如果一个图不可完全简化(即:图中还有"

2015下半年中项-yuansy-10月15日作业

一.质量管理 1.项目质量规划的方法/技术和工具,并简要描述: (1).效益/成本分析:质量管理原则的就是收益胜过成本 (2).基准比较:就是将本项目的实际做法或计划与其他项目的实践比较 (3).流程图:任何显示与某系统关系的各要素之间相互关系的示意图 (4).实验设计:实验设计是一种统计方法,它帮助确定影响特定变量的因素 (5).质量成本分析:质量成本包括预防成本.评估成本和缺陷成本. (6).质量功能展开:从客户对项目交付结果的质量出发,先识别出客户在功能方面的要求与产品特性的关系矩阵,根据

2015下半年软件设计师考点,难点3

数据库三级模式 包括:外模式.模式和内模式.用户级对应外模式,概念级对应模式,物理级对应内模式 在一个数据库系统中,只有唯一的数据库, 因而作为定义 .描述数据库存储结构的内模式和定义.描述数据库逻辑结构的模式,也是唯一的,但建立在数据库系统之上的应用则是非常广泛.多样的,所以对应的外模式不是唯一的,也不可能是唯一的. 应用视图根据外模式进行数据操作,通过外模式一模式映射,定义和建立某个外模式与模式间的对应关系,将外模式与模式联系起来,当模式发生改变时,只要改变其映射,就可以使外模式保持不变,对

2015年的展望

2015绝不会是很多评论员所说(特别是那种每天写博唱高调.迎合人心粉饰太平.除了轮流换点放卫星的标题之外内容总是说“什么都涨股市没有理由不涨”的伪评论员)的大牛市,更不要相信错过了2007千万不要再错过2015的令人热血沸腾的煽动性演讲!这里面顶多只有语言艺术,没有操盘技术!真要用操盘语言的话,让我告诉你2015年的正确思路:不放过下跌就会错过上涨!至少2015上半年不会有什么所谓的大牛市,充其量也就是“兔市”,活蹦乱跳的,但就是跳不太高,这已是最好的结果.最坏的结果呢?自己去想.反正我懒得想,

.top域名注册量2015年度报告:11家域名商走势分析

IDC评述网(idcps.com)01月07日报道:根据ntldstats.com数据显示,截止2015年12月31日,国内.top域名市场上,西部数码以强大气势排在首位,注册量高达374,788个,年净增量367,721个,增势极为强劲.易名中国居亚,注册量为221,477个,涨幅同样明显.其他域名商的注册量均在十万之下.下面,请看IDC评述网整理的详尽数据情况. (图1)国内域名商(.top)域名注册量TOP7-2015年度走势图 如图1所示,截止2015年12月31日,在国内.top域名注

2015年下半年信息系统项目管理师考试报名时间和流程指南

2015下半年全国计算机软考报名7月份已陆续开始,像天津.湖北.福建等省7月1日就已开始报名,请各位考生密切关注希赛软考学院,我们将为第一时间提供考试相关资讯. 请点击>>>>2015下半年软考报名时间及入口专题 考试时间: 2015年下半年信息系统项目管理师考试时间安排在2015年11月7日. 具体具体各科目考试时间安排为: 综合知识(选择题):上午:9:00-11:30 案例分析(简答题):下午:1:30-3:00 论文(写作题):下午:3:20-5:20 报名条件: 不限学历

井喷:一场互联网电视品牌的马拉松

如今的年轻群体对小米电视.乐视TV等互联网电视品牌如数家珍,但究其历史,却远称不上是"老字号".小米电视是在2013年9月份发布的,而乐视TV则是在2013年5月份发布的,至多不过3年的电视品牌成立时间. 但正是因为互联网电视品牌在涌现,才让整个电视市场的发展进程发生极大改变.尤其是从去年到今年,更是进入井喷期.目前风光无限的互联网品牌要想在残酷的竞争中活下去,必须要做好马拉松式的准备. 从品牌塑造到资本游戏 互联网电视品牌愈跑愈偏 实事求是地说,即使这些互联网电视品牌出货量不多,但凭