2021回顾 & 2022展望

概述

还是工作、学习、生活三个方面吧。

工作

今年做的事情明显没有去年的多,更多的是新的系统,以及底层服务的一些重构,遇到的一些挑战有几点:

  1. 重构服务的时候,如何合理地设计高内聚低耦合的代码,这里会用到比较多的设计模式,这个挑战其实也是承接上一年想解决业务复杂度的憧憬;
  2. 大型系统要涉及很多子系统的开发,今年遇到的比较大型的需求开发涉及了近20个系统,若干个部门的小伙伴,作为负责人将整个业务串联起来,使得每人完成好自己的工作,保证项目交付,在项目管理、技术管理上其实是个比较有挑战的事情;
  3. 要开始转行Java了,对于Java生态其实需要很多学习和练习;

由这几个挑战开始,聊聊今年的工作

好的代码,高程应写的代码,高内聚低耦合的代码

怎么写好代码这个事情,其实不仅仅是后面要说的学习上的事情,也是工作上对“写好代码”的尝试。

首先在今年之前,重构系统的时候已经隐隐有想朝着高内聚低耦合的方向走的潜意识,所以在今年之前重构的系统其实已经是分层的一个应用架构了,框架原来的MVC结构其实没法应对当前业务的复杂度了,如后面公司内大神分享所言,面向数据库表的编程模式,以及这种千篇一律的MVC对于复杂一些的业务维护起来已经是比较吃力了,代码乱、复用率低,这些问题导致系统经过几个人开发就无法维护了,这是原因;因此之前重构的时候已经采用分层的应用架构,将系统分为api层和module层,api层是用于聚合及编排各模块逻辑的,module层是用于内聚各个底层业务逻辑的。

这种结构会将将某些底层的逻辑如核心信息的读写都会内聚到某个类的某个方法里,对我做今年一个比较复杂的重构底层表结构的项目而言非常友好,我只需要保证这些方法的单元测试的正常的,就基本会对项目的稳定性心里有数,剩下的开发工作量是在模块的能力内做代理、工厂、单例、灰度、双写,这样会极大地降低对系统稳定性的影响;如果没有业务级内聚,几千处的直接表操作的重构工作量将无法想象,一不小心引入bug,系统稳定肯定也无法把握;这个需求对底层模块的开发工作量连高达8K行代码,在这个需求中非常实在地了解到高内聚的必要性,设计模式在这里也正是一把利器。

但是在往后的迭代开发中,发现如何对业务逻辑内聚是个比较麻烦的问题,内聚设计地不好会导致内聚的粒度太粗或太细,太细干脆就直接读写表就行,何须内聚?太粗直接就变为大的api,直接被其它系统调用即可,就毫无内聚之实了。这里其实也是踩坑后才意识到的,在一个迭代中将系统的内聚设计得太细,后面才发现其实并不是理想中的好设计。

后面学习上的进度也走到DDD了,学习中发现作者对复杂度的解决非常透彻,书上读来也是与现有系统的思想有许多共鸣,只是现有系统的应用架构其实是非常粗粒度的分层,并不好把控,于是后面又将原来系统的应用架构推翻了,在一个新的需求中,采用书上对领域设计的概念对需求进行设计以及实践,其中也看了一些对DDD的实践和教程,如COLA的实践等等。领域设计确实是解决软件复杂度非常好的解决办法,方法论也是实在而可行的,核心就是面向对象设计,但是毫无疑问对程序员面向对象的思想和基本功要求更高,在作面向对象的领域设计时充分体会到。

后面对DDD肯定还会有更多的实践。

大型项目的管理

这个其实总体而言只有80分,能做到按期交付、功能正常,较于之前逐渐有了很多成长,owner必须充分理解项目或需求的主线,甚至要上升至比产品还高的业务层次;对于工作量的分配也是需要一一明确和跟进,遇到问题要首先出来明确方向,找到对应的人处理对应的事情;项目流程上需要对每一步的风险作预测,比如提前冒烟测试后预留一定的空余时间解决问题等等,因为大型项目逻辑极多,流程或主要问题一旦无法跑通或提前解决,各种子问题将会直接中断项目进度,使人焦头烂额,项目按期交付、系统稳定自然就无从谈起了。

Java大道

之前主要开发语言是PHP,在系统复杂度增加到一定程度后,需要各种对应用架构、系统架构的解决方案,在这方面确实PHP还是非常欠缺的,无论是在积累在这个语言上的能力还是生态,很多轮子都是需要自己造的;Java在这方面明显有很多前人的探索,应用架构有如DDD、CQRS等等,系统架构有如spring cloud全家桶、RESTful等等对分布式计算的生态和探索,各个小的轮子都有比较多的前人实践;转到Java是可以登到更多巨人的肩膀上继续攀登,从开发思想、架构上看其实还是使用同样的面向对象设计,语法和开发习惯倒是很快就能适应过来,因为对于基本开发而言PHP也基本都有类似的东西。

学习

学习上是接着上一年的方向的,主要是对软件复杂度的学习和探索,老实说我并没有太多对这个方向的进度的思考和把控,甚至这些学习都只是“旁线”学习,“主线”其实是希望去学习对找工作有好处的、对提高工资有好处的、比较焦虑的学习,所以非常啼笑皆非的是在焦虑和所谓的“努力学习,天天向上”的激励下,在每本书的大神引导下,这个学习之路妥妥地走成了“解决软件复杂度之道”。起码前半年是如此。

进度

前半年探索软件复杂度解决之道

2月到6月基本刷了以下这几本书和资料,翻阅的书籍还是挺多的:
《代码整洁之道》
《程序员修炼之道-从小工到专家》
《重构》
《软件体系结构》N本教材(沉淀下来是这本《软件系统分析与体系结构设计》(杨洋 刘全)
UML建模 资料
《面向模式的软件体系结构》
还有不少讲架构的书籍,如极客时间出的聊聊架构等等
微服务 资料
《代码精进之路 从码农到工匠》(知道了类似COLA的六边形架构)
《领域驱动设计》

看下来这些书籍发现其实已经妥妥是架构学习的方向了,开始只是解惑怎么写好代码,主要是看看一些大神比如马丁福勒等对怎么才是一个高级开发应有的素质的理解和定义,在看了整洁之道、重构、修炼之道几本书后,了解了好代码是怎么写的,以及高级开发要具备软硬技能等,这几本书都非常好理解,一些技巧都非常通俗简练,我也是从这时候意识到大神们对于高内聚低耦合的认可度;

往后就到软件体系结构了,这个大学的专业课,这个课其实就是用来讨论解决软件复杂度的,门类在软件工程之下,只是这个课程太多内容只是讨论比较“有愿景”的解决方向,偏向理论,只有在一些论文才能找到对一些体系结构风格的实践,如正交、黑板等等。但是后面翻阅外国一些将软件体系结构的书,发现在英文里这个词其实已经变为软件架构了,如面向模式的软件架构等等书籍,这些书更透彻和实际地阐述解决软件复杂度的方法,在这里已经有具体的模式了,并且上述不少书籍是有不少内容是重合的,比如UML的建模基本每本书都有描述。

往后通过软件架构模式就摸到应用架构了,一搜具体语言的实现,六边形架构、洋葱架构就蹦出来了,自此路就走到DDD了。

我理一下这里的知识网络,我们个人的发展其实能从软件的发展看到答案,应该学习什么自然也不会存在焦虑的问题了:

  1. 我们常聊到的高大上的系统架构其实不会脱离业务而单独存在,系统架构恰恰只是解决软件复杂度里的一类问题而已,诸如分布式缓存、分布式存储、分布式网关等等,并且都有很通用的解决方案,相比系统架构,应用架构更有社会基础意义和来源,说白了没有业务何来系统,系统架构设计都是基于应用架构设计的;
  2. 而应用架构的设计中,业务建模通常是设计的第一步,这时候UML就充当主角了,实际上在设计类图的时候需要考虑使用很多方式去降低耦合和提高内聚,如设计模式、设计原则、代码整洁标准、重构技巧等等,这些都是高级程序员必备的素质,否则产出的UML并没有什么设计沉淀;
  3. 应用架构的设计中,如果使用DDD,设计过程和方案产出将会更明了和清晰,最后输出领域模型、service、module、factory等等;
  4. 当应用架构的基本业务模型有产出后,就可以讨论设计应用模式了,体系结构里的各个 架构模式 对设计是有着标杆性指引的作用的,如分层、事件,或者采用类似 六边形架构 等模式,这个通常是采用或改进现有应用架构;
  5. 能发现到最后其实才能依据一个清晰的应用架构方案,以及系统架构需求(像是并发、QPS、响应时间等需求),去做系统架构的设计,如设计服务的通信方式、设定各类服务器数量等等;
后半年看算法

后半年的算法的计划其实还是来源于焦虑,进度惨不忍睹,讽刺的是后半年不想学习的时间已经把领域驱动设计这本书前半部分看了两遍了,后面是讲重构的技巧所以一直没有看;
在11月底由于一些事情想通了,不想再为了找工作了硬啃算法了,算法本是学生时代很喜欢的科目,强行学习进度上却非常不乐观,打算和概率论一样先放放吧,来日方长;在基本解了软件复杂度的“心病”后,准备将方向转到自己之前想了解的方向上:分布式。或者也可以叫架构,但是实际上我想解决的问题是分布式计算,这是一个比分布式缓存、分布式存储等范畴更大,挑战更大的领域。

在年底的时间了解了分布式计算的一些历史,实际上这个领域已经有很多年的发展了,如CORBA、SOAP的发展等,很多大神已经有很多经典的著作了,如 Andrew S. Tanenbaum的《分布式系统原理与范型》等等。之前有一个梦想,想实现一个底层就透明支持的分布式计算世界,但是在前些天发现在周志明大神的书里Andrew Tanenbaum教授提出的分布式系统必解几个问题后,这个梦就被大神作者彻底击碎了。

生活

身体、心理

今年的心理健康在年初的时候其实是不怎么好的,因为毕竟原生家庭也是比较佛系或者冷漠吧,造成的性格本来就是有缺乏自信的bug,加上今年一直也在职业焦虑中挣扎,因为身体状况也一直不是很理想。诚然,这可能也是人生必经之路。

因此在今年还特意去了解了与人生哲理相关的书籍,如:
《日本人的生活哲学》:Ikigai,从生活中发现幸福和人生价值
《活法》
Ikigai 是非常厉害的一个判断职业和人生幸福的方法,确实也被震撼到了,人如果能从事有激情、有使命、有兴趣、有能力的职业,该是多么幸运的一件事情,身体也必将健康有活力。后面可能也会花一些时间读一下这些人类哲学杰作。

目前已经不愿去想急功近利地解决什么财富自由、职业躺平的问题了,先去走走分布式的路吧,性格bug也赌一把分布式计算,事在人为,大不了失败失业从头再来,信天必不绝人。

作息、饮食

调整理想作息和饮食一直是想去做的事情,无奈心理和身体一直处于一个不算理想的亚健康状态,今年这块也是马马虎虎勉勉强强,升阳、调整心态、慢慢改变饮食还是后面的方向。

锻炼

今年锻炼成绩近乎不及格,增肌是年底才有的计划,后面需要提升身体循环,HIIT或跑步先拾回来,再作打算。

2022展望

因为之前透明分布式世界的梦被大神击碎了,因此学习方面倒很佛系了,跟随巨人们的步履,先尽力爬上巨人们的肩膀吧。
心理方面保持乐观、放松,尽力而为即可。
其它的事情,随心所向吧,最近不是有一句话很火:

过去不回首,未来不将就

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

推荐阅读更多精彩内容