耦合(一)
耦合
1
在一个阳光明媚的下午,你高高兴兴的撸下了一百行代码,那优雅的代码,排版工整,命名考究,结构合理,逻辑自洽,恰如春风拂面,恰如和风细雨,你洋洋得意,仿佛只有优秀如你,才能写出如此优秀的代码。
得意之余,你也不忘时刻保持警觉,尤其作为老司机的你,深刻明白凡事高兴太早总没好事,像你这样软件开发领域的弄潮儿,码农届的翘楚,一定得真真正正的风里来雨里去,无数遭风浪打击,经历过无穷次打击成长才得以如斯般强大。
你时刻提醒自己要警醒,切不可因为几行代码写得666就沾沾自喜,得时刻小心代码深处会钻出几只虫子。他们的意外出现,虽然不会破坏你那完美的代码结构,虽然还能给你枯燥无味的生活带来一丝乐趣,但是可能会让你的小心脏掀起一丝波澜,作为老程序员的你,显然不能容忍虫子的出现。
2
然鹅紧接而来发生的一切却似乎从未出现在你的绸缪之中,你那俊秀的代码,居然在点击生成之后的几分钟内毫无反应,一没有警告,二没有异常!!
那一刻空气之宁静,仿佛如高考现场,一枚针落在地上都能听到,编译器静悄悄的,啥反应都没有。须臾之后,你那i5配置的渣电脑突然飞速运转起来,就像寂静的街角开过了一辆柴油动力的手扶拖拉机,风扇急剧的转动起来,嘈杂的声音随后充满了整个房间。你甚至感受到办公室里其他同事都突然向你侧目,向你致以了莫名的问候。
你安慰自己说:我的代码经得起时间和历史的考验,一看就很平稳,只是编译有点慢,而代码编译速度慢,这既不是异常、错误、警告,甚至连异味都算不上,如果愣是要找出一个错误,只能说计算机太渣,肯定是我的电脑算力赶不上我大脑的计算速度。
你开始为摩尔定律要18个月算力才能翻一番担忧,你为人类文明发展史感叹不已,看来人类要发展,还真的迫切需要量子计算机或生物计算机啊。
十分钟过去了,此刻你的visual studio不仅没有好转,反而陷入了无响应状态,你抓耳挠骚,如坐针毡,坐立不安,头上的汗滴开始如雨后春笋般不断冒出来,这是咋的啦,我的代码如此完美,究竟是什么东西在作祟!!
3
一切在20分钟之后才尘埃落定,只因为这一百行代码需要安装的依赖包太多,那么多优雅的.netcore依赖包,有的是框架天生的产物,这些包作为某软的亲儿子,安装速度自然飞起,一行powershell命令,即可让他们安静下来;有的则是某些开源社区大佬们无私的馈赠,你不知道他们为何出现,只因。。网上教程是这么写的。
还有的,是贵司某位大佬的杰作,看似简单的组件,却依赖了二三十个包,似乎业界那些叫得上名字的组件,这个组件都依赖了,而且由于某些特殊原因, 即使你仅仅只想用其中的某个枚举或方法,你也只能依赖这个包。由于这个包你还无法绕过,意味着你将陷入买一送一百的奇妙困境。
于是初次编译该项目成为一桩奇事,你的nuget目录将急剧扩充,直到把你那原本就硬盘塞满。。
除了这些后端包,由于你的代码还包括了一些前端代码,而这些前端包也同样有一些依赖项,这些依赖项,有的包竟然居然在墙外托管、只能借助于工具的帮助,且网速飞快的情况下才能安装!!
4
你骂骂咧咧的开始寻求某些工具的帮助,获得了开眼看世界的机会,你选择服务器,点击连接,ok,已连接。
此时,你又一次点击生成代码,这一次非常顺利,终于得以编译成功。你长舒一口气,心情终于平复,你那光亮的头皮上的汗终于不再涌出,此刻的你,终于又一次回归高级码农那波澜不兴的心境。
恰在此时,心中几个字突兀的窜了出来,难道。。“高内聚,低耦合,高内聚,低耦合“,你捶胸顿足,你长叹不已,作为一位卓越的国人码农,居然耦合了这么多不必要的包,甚至还有许多墙外的包?
你看着窗外渐渐暗淡的西下夕阳,深刻感受到肩上的重任更加艰巨。此刻,你的脸上,劳动者的汗水痕迹与夕阳的余晖映衬在一起,仿佛一股诡异的光洒在你的面庞之上。