不要瞎写!不要瞎写!不要瞎写!
从前,有一户人家:一个老爷爷,一个老婆婆,还喂着一头黑脊背、白胸脯的小胖驴。山上住着一只老虎,山下住着一个贼。老虎嘴馋,一心想着吃这头小胖驴;贼手痒,一心想着偷这头小胖驴。 一天晚上,下着蒙蒙小雨。老虎来了,贼也来了。老虎用爪在墙壁上抓,贼用手在屋顶上挖,不一会儿,墙被老虎抓了个窟窿,屋顶被贼挖了个窟窿。老虎钻进驴圈,贼也正想往下跳。忽然,老爷爷和老婆婆在里屋说起话来,老虎和贼吓得大气都不敢出了。 老爷爷说:“好像有什么声音在响?”老婆婆说:“唉!管他狼哩,管他虎哩,我什么都不怕,就怕漏!”老虎趴在驴圈里想:“翻山越岭我什么都见过,就是没见过‘漏’,莫非‘漏’比我还厉害?”贼蹲在屋顶上想:“走南闯北我什么都听过,就是没听说过‘漏’,莫非‘漏’比我还厉害?” 老虎吓得浑身发抖,贼听得腿脚发软。贼心里害怕,脚下一滑,扑通从屋顶的窟窿里跌下来,正巧摔到虎背上。老虎未料到房上会有东西掉下来,心想:“坏事,‘漏’捉我来了!”撒腿就往外跑。贼栽得昏头转向,一摸是个毛乎乎的东西,心想:“坏事,‘漏’等着吃我哩!”拼命抱住虎脖子不敢松手。 老虎驮着贼,贼骑着老虎,跑哇,跑哇,累得老虎筋都快断了,颠得贼
很久很久以前,一般的动物之间没有战争,和睦相处。但在动物界,猴子的聪明都是知道的,比起其他动物来,总能想出一些聪明的点子,有时也搞个恶作剧。有一天,好动的猴子闲不住,想在平静的生活中弄出点动静来,给大家增添点乐趣。猴子平时觉得狐狸心眼太多,就想找个机会捉弄它一下。这天夜里,大家都睡下了,猴子悄悄地起来,看到狐狸贴着马的身边睡得正熟,便想出了个主意,它将狐狸的尾巴和马的尾巴死死地拴在了一起。然后,它就去找兔子,并对它说:“天快亮的时候,要有一场好戏看!”兔子问猴子什么好戏,猴子说天机不可泄露,你只要按我说的,到时候去看戏就行了。 猴子把计划给兔子说了,让它黎明时分到它们平时常走的一条路上去等着,躲在树丛里别出声,很快就有好戏看。兔子按猴子说的,就提前到那里去等着了。 回来之后,猴子发现狐狸和马都睡得很香,谁也没发现自己的尾巴被拴在了一起。这时候,眼看到了黎明时分,猴子大叫一声:“老虎来了,老虎来了!大家赶紧逃命啊!”猴子这一叫不要紧,很多动物都从睡梦中醒来,迷迷瞪瞪,起身拔腿就跑。那匹高头大马腾地站起来,夺路就跑,它哪里知道尾巴上还拴着那只狐狸!拖着狐狸朝着那条大路一路狂奔。这狐狸也不知
我们服务分层时可能会遇到一些问题: 比如在componentA里我们可能会查一下用户信息,同时componentB里可能也需要用到同一个用户信息,这时我们有几种选择: componentA里查一下db或rpc,componentB里再查一下db或rpc。这样的话会带来多次db或rpc查询,浪费了资源,带来性能损失 在componentA和componentB外层查一次db,然后再传给两个component。这样问题是我们每次遇到这种情况都要改代码,把查询不断往上层提,除非提到最上层,否则也不能从根本上解决,而如果全提到最上层的话那分层意义就会弱很多 其中一个component查完自己存起来,然后一层层往下传,哪里用到就通过参数传过去。这样一是会带来参数无限扩张;二是有顺序问题,比如现在是A请求了存起来B用,那就要求A要在B之前调用,如果A前面再来个C也要用,那就需要把A里请求的代码挪过去,很难维护 很多时候,我们的方法常会产生一些逻辑过程的中间值,用于后面其它逻辑使用,这样的话中间值就会在逻辑里各种传递,可能会越传越深,导致如果这个值有什么变动,就需要改很多地方 request
后端服务代码分层是个老话题,但最近几年没什么人聊了,因为吹牛的去聊虚拟化、高可用、k8s,骗钱的去聊ai了。也导致一些新人基础代码没怎么写过,就开始疯狂学习这些高大上的东西,不过我一直觉得,先把基础的搞好了,再提高大上也不迟。而且这些年来我见过了各种分层,但似乎没有哪一种是能够真正解决了高复用,低耦合,又不麻烦的,大部分是都是会偏向于理论化,实际用在项目上总会放人懵逼,这一块代码到底要放哪呢?怎么放更合理呢?以至于每次有新模块时,我都会纠结怎么设计,因为老觉得之前做的还有可改进的地方;经过好多年的思考和迭代,希望能总结出一些东西来 首先,MVC对于当下的服务分层有些太简单了,或者说最早设计出来时就太简单了,只是一个偏指导性的,而且当下前端的解耦,让View层更不变的可有可无,让我感觉更有指导方向的是阿里牵头出过的《java开发手册》,虽然我用过c,php,golang,甚至matlab,C#,js,但唯独没有正经用过java,不过java本身是一个工程向很重,架构方法论发展非常好的语言,哪怕不用java,它也会在设计模式、工程架构上对人有很高的启示和示范 再提问题,为什么要分层?我个人
水有什么问题? 先说结论,正常经过水处理厂出来的水肯定是没有问题的,这点还是可以放心的,要处理的是因为以下几个点。 水在从处理厂到家里这一路可能会因为管线老化之类问题,掺进来一些杂质。如铁锈、泥沙、颗粒物等 北方水质会相对硬一些,如北京当地水硬度在400左右,哪怕使用南水北调的水垢也在200以上 水质并不能保证冷水直饮,煮汤、煮粥、直饮这类入口的水还是应当使用纯净水,另外增加饮水机的话订水又比较繁琐,机器也占用空间 先直接给方案graph LR subgraph 前置大蓝瓶 pp1(PP棉) --> cto1(CTO压缩活性炭) end subgraph 厨房 洗菜盆 直饮龙头 管线机 洗碗机 end subgraph 饮水机 pp2(PP棉) --> 软化树脂 --> cto2(CTO压缩活性炭) --> RO膜反渗透 --> 后置椰壳活性炭 --> 储水桶 end subgraph 厕所 洗脸池 花洒 洗衣机 马桶 智能马桶盖 end 入户阀门 --> 前置过滤器 --> pp1 cto1 --> 洗菜盆 cto1 --> 中央软水机 --> 燃气热水器 cto1
eLangX