引言

时间如梭,娃都可以打酱油了。

转眼间第一个五年计划,已过了一半。

年终总结是个打脸的好地方,曾经夸下的海口,有的真的成了海口。

所幸,一切都在按好的方向发展。但乐观背后容易忽略潜在的问题,所以,在2020来临之际,是时候对2019做个具体的回顾,并对来年做个具体的展望。

谈成长

那就先从收获开始讲起吧。

  1. 成功续任微软最有价值专家。

  2. 离开工作4年的老东家金蝶,前往自己看好的物联网行业发展。

  3. 码字3万+,写博10篇。

  4. 开始尝试进行架构设计,并应用微服务技术栈

  5. 第一次受企业邀约,前往厦门做技术分享

  6. 作为讲师,参加Microsoft Ignite The Tour 大会

这一切的收获得益于我坚强的后盾 —— 双方父母的支持,老婆的理解与督促,还有我那调皮捣蛋的小家伙给我源源不断的动力,所以感谢我至亲至爱的家人!也感谢一路走来给予我帮助、指引我方向的每一位可爱的人。

谈工作

今年做出了一个艰难的决定,就是跳出自己的舒适圈,从工作4年的老东家辞职,加入到一家物联网创业公司。这里十分感谢张队的引荐,才有一个好的落脚点,才得以实施自己的技术抱负,才得以转型自己期望的技术栈,从传统的.NET 后端转移到.NET Core 全栈开发。真正的去实践微服务,玩转K8S。当然,也得益于前期的理论知识的积累。

加入新公司,是机遇,是挑战。

记得入职后的第二天,就紧急前往武汉出差,对接智能电表的项目,忙前忙后两个月,但项目告吹了。也认识到,物联网行业的水很深,每个企业都想分物联网这杯羹,但真正能够做事的也少之又少,很多还是处于理想阶段。

回深后,工作重点转移到公司现有架构的重构上。将原有的缺乏结构、层次、抽象的代码进行重新梳理,基于原始Orleans的分布式框架的技术选型进行重新整理,充分发挥Orleans的virtual actor model的高并发的强大特性。

这也是第一次去做架构设计的工作。

这里,得很感谢技术出身老板的指点,以及平时工作中对软件设计的交流,让自身对物联网的技术细节有了很深的认知。也很大程度上避免了在技术选型上走入误区。

经过大概两周的时间,完成了整体解决方案的设计,得到了老板的认可。

这次难得的架构设计经验,是我往架构师方向发展道路上浓墨重彩的一笔。

也让我领悟到了架构设计不仅仅是代码结构的设计,更是产品业务结构的设计。她是交流中不断完善的结果。

另一次架构经验是年末尝试的一次前端架构经验。现在想想自己都觉得诧异,我一个偏后端的,怎么会去抢前端的饭碗,然而事实是这的的确确发生了,而且做对了。

这次前端架构是对小程序项目的一次推翻重做。之前的小程序虽然实现了所有的业务需要,但代码可读性、扩展性极差,更别谈封装。

对于创业公司,不断的去推翻之前的成果,是一个很艰难的决定,因为推翻的不仅仅是项目,推翻的是前期的投入。决定是痛苦的,但成果是可喜的。经过短短一周的时间,我一个前端小白就完成了小程序端的模块化设计,并基于原生UI,设计好交互逻辑。

如果现在再问我,前端难吗,不难。如果做后端的你想尝试做下前端,尽管去做,不要给自己设限,跨出去这一步,你就是全栈。

这次前端架构经验,让我明白,架构设计是相通的,是封装重用,确立边界,封装模块,封装层次,封装对象,封装逻辑,封装组件。

以上两次架构经验,算是在新公司做的最正确的两件事了。因为我也在不断犯错,而且最开始犯错而不自知,简称蠢。主要体现在两个方面:一是管理,一是自我认知。

提到管理,犹记得加入公司之前订阅了极客时间的技术管理的之道。读完之后深有感触,但实际上岗,放手不顾,异想天开无为而治。兵熊熊一个,将熊熊一窝。真是这个理。技术领导者除了技术过硬外,还需要有技术领导力,确保团队技术选型不跑偏,项目实施不走样。这需要时刻去关注项目的进度及代码质量。

这里面涉及到就涵盖了多个方面,一是技术管理,一是项目管理,一是团队管理。

团队人多的时候,也有7,8个开发,少的时候也就2,3个人。一段时间甚至怀疑公司的发展前景。现在想来,也并不是如此。团队再小,如果你不能把控团队按照既定的方向发展,那么团队扩张就是一颗定时炸弹。

所以,在我们发现不可控时,我们紧急的踩下了刹车。精简人员,反思整顿。当然,这里面我是最主要责任人。问题在于,上面所说的项目管理和团队管理的放任不顾。只是简单的进行任务分配和成果确认,但忽略了过程评审。换句话说,项目成员的沟通和反馈通道没有建立,这样就不能及时发现问题。中间也发现了问题,尝试要求团队每周提交周报,每天进行15分钟的早会进行状态反馈,但坚持一月有余,就无疾而终,一切沦为形式。

就措施而言,手段是好的。但忽略了手段的目的,就导致流于形式。所以在团队管理上一以贯之、以身作则是十分重要的。

另外一个问题是,沟通成本高。在组织会议时不能明确会议目的,导致无休止的讨论,这也是缺乏计划性的体现。

在两次架构设计,基于原始业务的重构工作不彻底,留下了系列隐患。总想把事情留到后面有时间了再做,是一种极不负责任的表现。因为时间证明,除非后续遇到问题,否则不会改进。所以做事做彻底,要有魄力去否定,也要有魄力去承担做好否定相关的善后工作。

另外一点需要谈到的是,对人员的招聘。项目的迫切程度,靠人月神话是解决不了的。在多个项目并行时,人手不足时,一心想通过增补人员来缓解项目压力,也并不总是有效。除非项目、团队在你的控制之内。

总以为站在高的位置,就不应该拘泥于细节。而编程这个行当,细节的把握的才真正体现高度。

一名合格的技术领导,决不能给自己设限,不能沉浸于自己擅长的技术栈。云生应用时代,从开发到测试到运维,从产品原型到技术预演,从前端到后端,从UI原型到交互设计都要有所了解。

另外一个问题,是缺乏严谨性,也就是数据的敬畏心。在处理新旧系统的兼容时,考虑不周,就会造成数据冲突,而且冲突修复成本极高。这期间我的自负心理在作祟,极力想扔掉历史包袱,就会造成对包袱的漠视。但凡一个公司都是有包袱的,接收它,才能慢慢扔掉它。

接触物联网后,愈发觉得对计算机原理,计算机网络等基础知识的缺乏,这一块是致命一击。

还有一点的感悟是,自身前期的技术积累被自己雪藏,在实际项目实施中,不能灵活运用,尤其是自己引以为傲的DDD、面向对象编程思想的把握,并没有学以致用。也就是两个问题,一对知识的理解并不深刻停留在皮毛,或并没有思考其实际的运用场景,也就是只有术没有道。另一方面,缺乏思考,做项目太急于求成,忽视了前期的总体布局规划,何谈运用呢,也就是不预不立。

谈写作

2019,主要完结了eShopOncontainers 系列文章,写了3篇Orleans系列文章,输出锐减。整体而言,不抵预期,不符计划。

从写博至今,每年的文章输出都在递减,连每月一篇的基本保证都没有做到。所以,是我变忙了吗?忙到没有时间去思考沉淀并输出了吗?内心的答案很明确,时间都是挤出来的。是自己以忙为借口罢了。手中的笔,勾勒的是成长的真实印记。没有输出,何谈内化。
2020年 会输出Orleans 系列文章,希望对Orleans有更深的理解。

谈学习

读书方面:2019,也读了几本书。C#并发编程经典实例,刷新,大型网站技术架构,从零开始学架构,自控力,微服务架构设计模式,kubernetes in action,用户故事地图。在技术栈上,对K8S有了一定的认知,虽谈不上精通,但至少够用,满足项目的运维需求。另外,微服务也算是简单入了门。C#并发编程经典实例修正了对并发编程的理解。用户故事地图,是一本帮助梳理业务逻辑的方法论,鼓励通过不断的讨论交流和可视化的方式进行需求确认,在进行系统业务梳理时帮助良多。

刷新和自控力,都是走马观花的看了一遍。好书是值得多次翻阅的,所以时刻刷新。微服务架构设计模式读了开头,需要继续。

就阅读量而言,还是很贫乏,缺少输入,那自然是缺乏输出。输入输出是成正比的,所以也解释了为什么每年的输出都在断崖式下降。也暴露了一个自身在知识积累上内化不足。

谈生活

2019年去了桂林,河源,武汉,北京,也算踏出广深。对于生活,永远相信美好的事情靠自己的双手可以得以实现,诗和远方也是需要努力努力再努力,所以,对未来依旧充满憧憬。

谈计划

2020,我要出书。

最后

2019 这一年,总体而言,看似收获满满,但内心深处一颗不安定的心告诉自己:你还差得远。是啊,半斤终究不是八两。

2020,谦卑沉淀务实,继续加油!

Goodbye 2019,Welcome 2020 | 沉淀 2020的更多相关文章

  1. CoachAI 2019年12月~2020年3月实习总结

    CoachAI 2019年12月~2020年3月实习总结 一句话总结: 方向对口,大有所得. CoachAI公司简介   CoachAI是一家做在线健身的公司,目前在手机端和IOS端都有自己的服务,并 ...

  2. IDEA 2019.3.3 + Pycharm 2020.2.1 安装包及破解步骤

    IDEA IDEA的破解流程就不用再说了,免费试用,添加VMOptions参数,选择破解jar的路径,重启IDEA. 下载地址:链接:https://pan.baidu.com/s/1aTRATVTL ...

  3. 我是如何一步步裹挟老板从.net 转到 java 阵营的

    我是如何一步步裹挟老板从.net 转到 java 阵营的 仅记录从 .net(C#) 转到 java 的一些心路历程 时间点跨度 2016 — 2017 一.前 xx 公司同事群的一次聊天 前公司同事 ...

  4. 我的 2020:出书、办签售会、发展 VS Code 中文社区、成为开源先锋、全网 10 万粉丝、10 场演讲、内推 21 人、955.WLB 发扬光大

    感觉写 2019 年终总结还是在不久之前.转眼间,2020 已经接近尾声了.是时候来写写 2020 年的年终总结了. 出书 今年最高兴的事情之一,就是出了全球首本 VS Code 中文书 -- < ...

  5. 资源:Intellij IDEA 最新旗舰版注册激活破解*附注册码(2020年亲测)

    永久激活 1. 下载jetbrains-agent.jar包(2020.03.22亲测) 链接: https://pan.baidu.com/s/1BFXPwlROEF03BkhGzGIgEA 提取码 ...

  6. Amazing 2020

    Amazing 2020 Intro 2020 转眼即逝,2020 是比较艰辛的一年,因为疫情原因,很多人的工作以及生活都多多少少受到了一些影响. 引用网上盛传的一句话--2020 实"鼠& ...

  7. JVM Ecosystem Report 2020 (2020年JVM生态系统报告)

    本文翻译自SNYK于2020年发布的< JVM Ecosystem Report 2020 >,全文使用机器翻译自动生成,人为将翻译的离谱和翻译明显错误的地方修正到勉强能看懂的程度. 英语 ...

  8. 2019最新idea注册码

    2019最新注册码到2020年1月7号 N757JE0KCT-eyJsaWNlbnNlSWQiOiJONzU3SkUwS0NUIiwibGljZW5zZWVOYW1lIjoid3UgYW5qdW4iL ...

  9. [更新] Jetbrains IntelliJ IDEA 2019 的许可证密钥

    亲测有效.转载目的:提供一种方法,当然可以看一下原网站的更新及其他方法.转载:[更新] Jetbrains IntelliJ IDEA 2019 的许可证密钥(100%工作),By Gideon    ...

随机推荐

  1. Spring Boot 2.X(十八):集成 Spring Security-登录认证和权限控制

    前言 在企业项目开发中,对系统的安全和权限控制往往是必需的,常见的安全框架有 Spring Security.Apache Shiro 等.本文主要简单介绍一下 Spring Security,再通过 ...

  2. 18063-圈中的游戏-(第九章第4题)-"数组指针的使用"-数学分析

    代码借鉴CSDN大佬https://blog.csdn.net/weixin_41409140/article/details/88071047(对大佬的大佬代码进行分析) 18063 圈中的游戏 时 ...

  3. Java学习笔记 线程池使用及详解

    有点笨,参考了好几篇大佬们写的文章才整理出来的笔记.... 字面意思上解释,线程池就是装有线程的池,我们可以把要执行的多线程交给线程池来处理,和连接池的概念一样,通过维护一定数量的线程池来达到多个线程 ...

  4. 2019-9-9:渗透测试,基础学习,windows基础命令,笔记

    windows系统基础命令学习 1,命令提示符界面进入方法 方法一: 某分区按住shift,右键单击选择在此处打开windows powershell,进入之后输入cmd 方法二:标题栏输入 方法三: ...

  5. 解决Mybatis-plus高版本不向后兼容的问题

    mybatis-plus插件后面的版本没有兼容低版本.即:不存在低版本中EntityWrapper这个类了.而该类采用数据库表真实字段名作查询条件,这样硬编码形式确实不友好,比如如果后面数据库表中字段 ...

  6. [转]Xtrabackup 的 xtrabackup_binlog_pos_innodb和xtrabackup_binlog_info 文件区别

    [转自] http://julyclyde.org/?p=403 在操作 innobackupex 的时候,执行 change master to 的时候发现 xtrabackup_binlog_po ...

  7. Feign超时设置

    转-原文:https://xli1224.github.io/2017/09/22/configure-feign/ 在分析 Feign 源码的时候,我们看到 Feign 构建代理对象是分了几层的,一 ...

  8. php踩过的那些坑(4) false,NULL,0,''详解

    一.前方有坑 php开发过程中,难免会遇到这四个值:false,null,0,’',并且也会对这四个值进行比较,然后分别进行业务代码处理.一招不慎,就会踩到坑,影响数据判断的正确性和安全性,以至于造成 ...

  9. Web安全测试实战之测试HTTP方法

    一. Http方法测试 有些Web服务器默认情况下开放了一些不必要的HTTP方法(如DELETE.PUT.TRACE.MOVE.COPY),这样就增加了受攻击面. 测试方法: 1.打开webscara ...

  10. 一、Java基础篇

    1.简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java 平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出 ...