极客时间与纸书
写书的时候,有的部分知识,为了“普世”的正确性,也就是不愿引起分歧性争议,有些作者就会写的很像“中医”,看了之后吧,“吃不好,也吃不坏”。
极客时间这样的不太一样,因为它底下有评论,而且不是一个人来评论,这样在众多学习者的互动和“监督“中,会逼迫作者去纠正那些“偷懒的地方”,这里区别于纸质书的重要一点是,可以迅速更正,这样偷懒的作者也就会写的更落地一些了。
另外呢,很多别人提的那些疑问,可能也是超出了你的理解范围的,刚好可以补充学习。
但其实这可能也会有个弊端,极客时间上的作者往往会被要求写的”多够一步“,如果写出来的知识点咀嚼的太碎,也就丧失了思考空间。
不知不觉间,我也”中医“了。
什么是好的系统
即使你开发的软件系统经过测试没有发现一个BUG,那么你也不能说你设计的软件架构或者你写的代码就是好的。
因为如果这套程序不便于扩展、不便于修改,我们说它同样不是一个好的系统或者不是好的代码。
考虑好,更多的是扩展的便利性,毕竟你要承接不停的需求。
没有BUG只是60分。
按下葫芦起来瓢
技术方案有时候就是这样的,按下葫芦起来瓢。
拿微服务的例子,它解决了原来中心化的问题,将功能系统从宏观上模块化,而且每个模块化的系统都是自治的(按下了葫芦),但是呢,这样也带来了,微服务治理的困难(起来了瓢)。
再比如,你做无状态化设计,需要将应用服务器上的状态去掉,那么就必须要把这个状态迁移到别处,比如远程的分布式缓存上(按下了葫芦),不过这也增加了缓存的成本,要多考虑热点的问题(起来了瓢)。
还有BFF的例子,APIGATE 的例子 等等,当然BFF也是一种特殊的网关。
在技术上,没有双利解。
成本不会消失,只能转移。
贫血模型是怎么流行起来的
我们都知道贫血模型,它们仅仅是将关系数据库中的数据模型映射到了对象而已,也就是那些对象都缺少了内在行为,就显得"营养不良"。
那么造成这种结果的原因,或者让这个方式流传的原因是什么呢,我最近看到《实现领域驱动》这本书的一段描述,觉得很有道理。
软件开发的学习过程中,大部份人刚开始的时候,都是参照书籍上或者博客上的示例代码来学习的,不过通常情况下这些示例代码只是用尽可能的简单方式来描述清楚一些概念或者把要表达的内容描述清楚即可。
这些代码起初也并不打算非要遵循那些较好的设计原则,这些示例代码中就包含了大量的getter和setter方法,于是这些包含getter和setter的代码每天被我们原封不动地来回复制。
贫血模型也不是不好,他也有适用的场景,那就是业务复杂度较小的业务环境中,那么如何识别一个业务场景是复杂还是简单呢。
业务复杂度的判断方法
仍然是在《实现领域驱动》这本书中给了些指导性的建议。
如果我们的软件就是以数据为中心,所有的操作都是CRUD,并且没有元数据的二次计算,那么这样的软件系统都是业务简单的,当然,这些系统也无需要借助DDD。
如果,系统有刚才说到的二次计算,但是呢,系统里面所有的业务操作少于30个,这里的业务操作怎么理解呢,就是我们当时梳理业务需求的时候的用户故事或者叫做用例流。
那么,你可能,要问了,30怎么来的,经验值,这不是你没有参考么,给一个经验值参考。
如果,系统里面的用户故事大于30个,基本上这个系统软件的业务复杂度就暴露出来了,这就已经数据业务复杂的系统了,当然了,按照书中的说法,我们就要采用DDD了。
也就最后用充血模型了,DDD提倡充血模型。
解决问题才是王道
无论你有什么本事,最终都是靠能否解决问题来验证的,更何况那种本事到底算不算上什么本事呢。
比如你有能力从外面请来一位专家,介绍了相关领域的知识,那么这些知识能否帮助到你的团队,去实际落地,有没有解决当前团队面临的问题呢,如果没有,也只是拓展了下大家的知识面而已。
比如你有“浑厚”的理论知识功力,讲的逻辑清晰、结构合理、思维饱满,但能否落地呢,或者当前不能落地,能否阶段性的落地呢。
如果都不能,说狠一点,也只是个“花瓶”,或者高大上点,成为“吉祥物”。
横向工作
你一个猛子扎进去,埋头苦干,最终实现出一个业务功能,进而上线,类似这样的工作是纵向,单个部门参与,或者是单个组参与,或者是外部依赖不用你协调。
反之,需要你协调,沟通、判断,跨多个组织,多个业务线,多个形态,这些都是横向工作,当然部门内部也有横向,只不过看“切面”的大小。
横向工作,根据目前我的认知判断,需要的技能,我总结下来有三力:专业力、思维力、反应力。
如果你是一位架构师。
专业力:需要你对业务背景以及将来所依赖的架构方向和基础都要有掌握,尤其是架构与架构之间的边界、依赖,这些都有依靠你的专业力来判断出来。
思维力:那就是要有高度和广度了,甚至就是需要立体起来,这里面有时候,不仅仅是技术层面的沟通,而是战略层面、意识形态层面的内容,对一个问题的认知要能够高度出来,这里的高度是动词。
反应力:这个就涉及到些,
这个反应力又分为两层,一层是响应外部工作的能力,比如别人对你工作进度的依赖,你要能够及时在内部及时组织起来,并把别人依赖的进度反馈出去。
另外一层,是你在横向的过程中,精确一点讲是在跟跨部门沟通的时候的自身反映能力,说的江湖一些,就是不要掉坑里。
生活二三事
一事。
我从某个时刻开始,一直控制着平时发朋友圈的次数,也是想着把自己的思考、学习心得等写在比如这期的XX思考中,捏在一起,发出来。
不过,由于我发的运动健身的朋友圈次数少了,甚至不发了,结果最近跟不少朋友沟通的时候,他们都会问起,现在是否还在运动。
于是,我下意识的想到,我偶尔发一次运动健身的朋友圈,是不是能给一些朋友带来某种力量呢,当然也可能我一厢情愿了,不过,我想,这毕竟也是正能量的事情吧。
二事。
上周,拉了一个几人的微信群,约好了周末聊点事情,由于是先前大家定下的时间,不巧,有一个朋友没有办法参加。
晚上的时候,这个朋友在群里发了一个红包,另外说了些表达歉意的话。
我注意到的时候,已经过去了一段时间,我第一想法是这个红包,一定要领,为什么呢,领了之后可以减少这位朋友由于未能参加约会而带来的“负罪感”。
而不是说,不去领,心里都想着,没事,没事,我们没有在意,但是为何不用行动表现出来呢。
哈,我给自己抢红包,还找了个借口。
三事。
早会上,有读书分享环节,这次有位同事分享了关于要思考的情节,原描述是,如果一个人忙,忙的无暇思考,肯定是不好的,结论是,要留出时间来思考。
我呢,一直也是这么认为的,人呢,肯定要思考的,比如我写的这篇就是思考嘛。
不过,老板给了自己的观点,忙,分两种,一种是被动的忙,一种是主动的忙。
如果一直是被动的忙,一味的是在接受工作,机械的完成,时间久了,人就废了。
如果是主动的忙,善于在忙中思考,总结,这种忙是有意义的,在进一步,还能够把被动变主动就更好了。
读了一点点“闲书”
我看了一点《亲密关系》这本书,给大家引荐一段话。
亲密关系的过程恶意分为这样几个阶段:绚丽、幻灭、内省和启示。
很多人都会觉得奇怪,为什么当初在绚丽期爱的死去活来的两个人,在幻灭期可以形同陌路或仇人。
用最简单的语言来描述就是,我们通常会把自己从小到大得不到的、未满足的需求,全部投射在那个爱我们、让我们觉得特殊的人身上,觉得有了他(她),这些需求都会得到满足了。
关于这点,书中还给了,描述。
从人性上来说,我们倾向于保护自我最脆弱的部分,然而这也是造成关系冲突的主要原因。