2015年终总结

Posted by hqpsoft on December 31, 2015

回顾

2015年,本命年,这一年变化还蛮大的,工作从厦门软件园回到了成都软件园,经历了人生的第一次跳槽,换城市,感慨蛮多. 有了3年的工作经验,在找工作时候也有底气了,也会去筛选符合自己条件的公司,选择自己想到的团队,就这样我开始在成都 找工作的经历.

先说下第一家公司,第一家公司算外企,IEG集团下的,做六西格玛企业管理,当初进去的时候主要是面试官感觉 还不错,福利待遇都还行,而且刚进去公司还组织是西岭雪山滑雪,因为当时自己的想法是加入创业团队,能主导下公司技术, 不过理想与现实差距,真正入职之后才发现,团队的人执行力不够,却什么都想做,就那么几个人还要做app原生开发,业务逻 逻辑全部放在后段,这无可厚非,但是后段框架不忍直视,WebApi没有用对,在进去花了一个星期了解情况后,准备先把 后段框架重新调整下,正好公司产品也要进行下个版本开发,当时准备采用WebApi+EF开发,框架调整来团队其他同事也 觉得确实改进了不少,层次清晰,给移动端提供标准的restful api接口.随着对公司的了解,发现没有产品这个职位, 每天就开产品会议,就像菜市场一样进行头脑风暴,boss也对自己想要做啥样的产品没有一个清晰的定位,总之就是感觉 这公司目标不明确,一边要推自主产品,一边又要接定制项目开发,就那么几个人,也没专业前端,也不知道当时怎么考虑的 就接受这家公司的offer了,当时已经拿到3家公司的offer,一家上市公司子公司,另外一家是初创公司刚刚来到成都 ,当时面试还要我手写代码,我也是醉了.总之这家公司是怀着美好的憧憬进来,结果发现却是另外一种团队氛围.当然 也跟当时自己有心高气傲有点关系,毕竟在厦门那家公司呆了3年,公司还是多少有点影响力,回到成都这边来,一切都要 重新开始了.在过了年之后裸辞了.

再来说下第二家公司,这家公司是做在线教育的,当时是看中他们在开发win8平板应用,因为学校的 学生都是用win8平板电脑,可是进去之后,才发现这块人家外包出去做的,公司的技术团队是搞后段业务开发跟提供api 接口,被忽悠了,干了一个月就走了.公司作息时间也是奇葩,8:30上班,16:30就下班了,虽然下班时间早,中午吃饭休息 时间太短了,搞得每天都很累,加上这种性质的公司,氛围跟互联网企业还是蛮多差距的,一堆规章制度,不够扁平化.果断 走了.

最后现在就职的公司.经过前面2家公司经历,更加清晰自己想要加入什么团队的公司,所以在这次面试过程中, 面试我的leader非常nice,没有问那些什么算法的刷存在感的,直接聊场景,以及告诉进来之后是参与公司业务系统重构, 然后就针对重构展开讨论,整个过程非常nice,而且在这之前我也了解到公司已经到B轮融资,在成都还具有蛮大影响力的 最后顺利拿到offer,不过在薪资这块还是不是太满意.不过还好的是跟着我一起进来的同事还蛮有缘分的,一个是从北京 赶集回来的J,还要后面进来的同事跟着当初面试我的leader一起组成了公司基础架构事业部.入职公司之后, 就开始进行公司业务系统的重构,总负责人是也是从北京回来的架构师,由于公司现有的业务系统由于历史原因,在最早版本 开发的时候,没有充分考虑以后业务发展问题,导致目前系统想在此基础进行新的需求开发非常困难,业务部门也反应系统 慢,不好使用,bug太多,甚至出现了Excel都比我们系统好用这样的说法.加上公司要进行C轮融资,公司也想此方面有更好 的系统支撑,基于这些原因,公司进行业务系统的重构.重构方案架构师是采用先把重构系统底层,根据业务进行拆分, 各个系统之间通过api相互调用,数据库还是保留现有的,在进行重构过程中进行添加字段,新表.在重构过程中我跟着J 进行组织架构权限这块开发,采用前后端分离方案,我们给前端提供restful接口,他们前端用angularJS,不过是运行是 寄宿在我们后段,这样做是方便后面进行授权等.我们后端的开发方案采用mvc+EF陌模式,EF用的是基于T4模板的反向 代理生成实体.面向对象接口,不过我在开发过程中没有实施好,用了个形式,总体流程是前端调用我们后端的专门给前端 提供的一个站点,这个理论上是负责做viewmodel的,不过我在开发过程中为了省事,把这块放在webapi里面一起做, 然后这个site站点再访问webapi这样的模式.webapi除了提供给前端接口之外,还负责提供给其他子系统接口.这里要 重点说下,当初开发的时候,数据库是全新设计的,当时想法是把老系统数据迁移过来,不过在开发到一半过程中,J 发现迁移成本太大,而且当时公司的重构方案一期只进行底层重构,上层的webform不改,好在是使用EF开发,只用了一天 的时间就把数据库表结构替换到老系统,不得不说EF开发在这方面的优势.重构项目还算顺利上线,不过效果不是很好,毕竟 上层没有进行重构,加之引入了K2流程系统,却没有实施好,加上架构师离职了,总之项目还是上线了,经过短暂休息之后, 来了CTO,进行团队业务部门拆分,我就跟着J进入了基础机构事业部,搭建了公司的sso,esb,并且尝试用了 vnext尝试跨平台开发,不过最终没有部署到Linux上,在我们这个4人团队玩的挺开森的.

技能

说说这一年在技术上有什么收获吧.应该说这一年把.net平台下最流行的mvc+ef这套开发方式运用得比较熟练了, 在厦门就职的时候,虽然开始尝试使用这套,不过毕竟公司里面没啥这方面的先驱者,在使用上走了不少弯路和使用了 错误的使用方式,比如ef用的edmx模型,太不灵活了,实体被污染了.尝试前后端分离,也是没有用对,没有用restful api 接口,而是用的method,前端直接把method写死了.在搞mgmt项目过程中,J让我知道了正确的API使用方式.并且自己把开发 过程中不错的实践积累到自己的github项目.

  • 前端:angular基本使用,双向绑定
  • 后端:MVC+WebApi+EF,主要提升WebApi正确使用方式,EF的code first模式实战
  • 工具:学会尝试接触开源的东西,git,github,gitlab,markdown
  • 其他:受J的触动,开始养成随手记录工作中的点滴,并且搭配vscode+markdown,了解了下ruby,go语言

团队

离开了在厦门工作3年的团队,回到成都全新的环境,同事,让我对团队有了另外的认识.一个团队我觉得需要的更多是团队成员的素质, 每个人都有自己的style,如何在团队中融合不同的style,这就需要团队成语的’素质’,团队中每个人都有自己擅长和不擅长的地方,如何 发挥自己擅长的地方和让自己不擅长的地方能在团队中有所进步,这决定了团队是否具有凝聚力.幸运的是J作为我们团队的leader,并且 拥有4年一线互联网公司的工作经验,加上个人魅力,让我们这个团队充满想象力.从我们基础架构事业部成立来,在公司SSO,ESB,CI这几块 重大项目上,J一直给予我们充分的信任与时间,每次项目开发之初,都留给了我们充分的时间去进行相关概念了解,技术调研以及最终的方案 定夺,虽然我们在这期间做的工作不一定会被最终使用,但是这个过程是非常nice的,我们有了更全面的掌握认识,以至于不在开发中感到困惑 与茫然.

  • 个人素质
  • 凝聚力
  • leader人格魅力

架构

这个有点大,说说这一年我对架构的理解与思考吧.之前的公司从平台开发到项目开发这过程,其实接触架构这方面的应用很少,虽然公司有个平台,但是在 技术层面上讲,毫无架构可言.所以对架构的更多认知都是看写大咖门的博客接触到,然后在工作中尝试应用其中的某些技术.真正算得上有点像架构样子的 项目是在厦门的时候,开始使用mvc+ef方案开发,依葫芦画瓢使用了三层架构,如今回看起来就是纯粹为了架构而架构,不过也是因为如此,才有迈出了第一步 自己对架构的步伐.这一年工作上,也没有机会去参与大型项目架构,不过在几个项目中,一些设计,想法值得记录下.

  • 对面向接口编程有了一定的认知,虽然在具体的实现上还不够深入,不过这个形算是有了个认知,加之现在各种IOC工具的配合,让调用者与接口实现彻底解耦.
  • 在.Net领域,ORM框架微软自家的EF算是其中佼佼者,以前一直对EF正确的使用没有很明确的认知,在经历了使用EF的edmx,T4模板反向代理,以及Code First这三种模式之后,edmx是最糟糕的模式,完全依赖微软 的生成,拓展行极大受限,而且实体被污染. T4模板好处是实体不被污染,数据库字段改的只需要执行下文件保存就能同步更新,缺点是太依赖数据库设计,不太 符合ORM思想的以实体为中心,不关心数据库.所以Code First模式,即代码现行,根据实体生成比表结构,并且通过自动/手动迁移方式实现实体变动与数据库的 同步,这样就完全以业务出发,以前的是了解业务去思考数据库表结构,现在是了解业务之后去设计实体,然后自动生成数据库.看上去是很美好的,在真正使用中 还是发现很多模糊点,比如实体与实体之间的关系,是直接映射在实体关系上还是通过逻辑关系?就这个我觉得目前最大的模糊点来看,还是觉得走实体逻辑关系 比较可控,但是这样又有点回到数据库表设计先的思维去了.这是值得深入了解思考的地方.

  • 前后端分离上,自从出了WebApi之后,可以很好的实现前后端分离,WebApi提供标准的Restful接口.
  • 服务监控api get way,grafana,prometheus
  • SSO的用户中心化
  • GitLab管理源码
  • GtiLab CI

书籍

这一年惭愧,没有完整看过一本技术的书籍,都是在遇到具体问题再去翻看.虽然很大原因回成都有太多时间占据了,但这都不是原因,还是因为自己没有合理安排好, 没有对新环境的节奏合理安排好时间,这点必须在16年合理安排.

展望

16年,这年比较重要的一年,工作也有4年了,好像自己还没找到自己方向,没有找准往哪个方向去深入系统的学习,都是在工作需要什么去学/用什么,业务时间看到 新技术去了解鼓捣个demo,没有形成自己的擅长的领域.在互联网发展到今天,更大需要不是全,而是某一方面的专长;当然不是说全栈工程师不好,只是每个人的精力 有限,随着年龄增长,还有比工作更重要的事情,需要以自己擅长领域为中心,然后以这个中心辐射出更多的领域.而且在某一领域深入了,去学习其他领域的东西也是 触类旁通.
所以16年主方向还是web这块的.net领域相关技术,核心MVC,WebApi,EF,Vnext跨平台,前端关注下angularjs 2.0版本,其他前段mvvm框架了解下各自的 解决的前端领域的具体问题.还有一块要关注go语言,做服务端工具,以及开发android.


Creative Commons License
This work is licensed under a CC A-S 4.0 International License.