引言

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

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

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

所幸,一切都在按好的方向发展。但乐观背后容易忽略潜在的问题,所以,在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. Java第09次实验(IO流)-实验报告

    0. 字节流与二进制文件 使用DataOutputStream与FileOutputStream将Student对象写入二进制文件student.data 二进制文件与文本文件的区别 try...ca ...

  2. 网络图片的获取以及二级缓存策略(Volley框架+内存LruCache+磁盘DiskLruCache)

    在开发安卓应用中避免不了要使用到网络图片,获取网络图片很简单,但是需要付出一定的代价——流量.对于少数的图片而言问题不大,但如果手机应用中包含大量的图片,这势必会耗费用户的一定流量,如果我们不加以处理 ...

  3. DDCTF2019 的四道题wp

    MIsc:流量分析 这道题,在比赛的时候就差个key了,但是没想到要改高度,后来群里师傅说了下,就再试试, 导出来改高度. 导出来,把 把%5c(4)前面的hex删掉,改成png,就直接拿去那个img ...

  4. Java面向对象学习目录

    Java面向对象学习目录 以下为面向对象学习目录,有待补充的部分,我还会再后续的学习过程中加以补充与修改~ 一.面向对象编程思想 二.Java类及类中成员 属性 方法 构造器 代码块 内部类 面向对象 ...

  5. 2019-9-25:渗透测试,基础学习,medusa爆破学习

    Medusa(美杜莎)暴力破解使用 该文章仅供学习,利用方法来自网络文章,仅供参考 一.简介 medusa(美杜莎)是一个速度快,支持大规模并行,模块化,爆破登陆,可以同时对多个主机,用户或是密码执行 ...

  6. github上传文件让别人下载--xdd

    一.可以下载的条件 仓库要为公开(public) 该文件不可预览或者是图片,如.rar  .gif .png .doc .pdf 等格式 二.打开文件的预览界面,如下 三.将最上面的地址复制给别人即可 ...

  7. BeanUtils.copyProperties()怎样去掉字段首尾的空格

    背景 下午三时许,笔者正戴着耳机听着歌开心的敲着bug,忽然听到办公室的吵架声,原来是ios开发和产品小姐姐吵起来了,为了一个车牌号的校验问题.起因是ios传的车牌号没有将字符串的首尾空格去掉,后端直 ...

  8. 国内开源C# WPF控件库Panuon.UI.Silver推荐

    国内优秀的WPF开源控件库,Panuon.UI的优化版本.一个漂亮的.使用样式与附加属性的WPF UI控件库,值得向大家推荐使用与学习. 今天站长(Dotnet9,站长网址:https://dotne ...

  9. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(3)- Serial ISP模式(blhost)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的Serial ISP模式. 在上一篇文章 Boot配置(ISP Pin, OTP) 里痞子衡为大家 ...

  10. 手机端web(iPad)页面自适应js

    有关编写手机页面(ipad页面)自适应的方法有很多,比如:bootstrap,rem等等.下面分享给大家一个js控制viewPort视区自适应缩放的方法(我给它命名为phone.js): 将phone ...