热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

得墨忒耳定律(LawofDemeter)

前阵子在微博上看到有人在说软件架构的东东,以前也没接触过,就放狗搜了一通,想简单了解学习以下。这种新东西,一般都是先找PPT看以下浓缩的大概,然后就找到了这这篇PPT:4

前阵子在微博上看到有人在说软件架构的东东,以前也没接触过,就放狗搜了一通,想简单了解学习以下。

这种新东西, 一般都是先找 PPT 看以下浓缩的大概,然后就找到了这这篇 PPT:

4+1 View Model of Software Architecture



在这篇 PPT 里看到了 Garlan and Shaw`s Architecture styles 这句话,然后又放狗搜。

找到了这两篇文档:


1. Garlan and Shaw describe several architectural styles for software.pdf

2. An Introduction to Software Architecture.pdf


在第一篇文档里看到了 Law of Demeter,然后继续放狗搜,学习了一下。

解耦合手段之四:Law of Demeter 这篇文章是搜到的, 写的不错, 解决了一些疑问, 在此感谢作者。


其实就是“最少知识原则(Principle of Least Knowledge)”,是一种软件开发的设计指导原则,在面向对象软件设计种用的较多,效果很好。得墨忒耳定律是松耦合的一种具体案例。使得软件更好的可维护性与适应性。因为对象较少依赖其它对象的内部结构,可以改变对象容器(container)而不用改变它的调用者(caller)。

这个就好像一个企业里最有效率的团队成员之间各自努力干着自己的事情:

不相关的不扯淡,弱相关的少扯蛋,尽量减少强相关。避免不必要的干扰和恢复中断之前状态所需要的成本。

这里包括心情成本,时间成本。。。

软件的各个模块之间也是同样的道理,尤其是越大的系统越要注意。

不仅仅是软件, 硬件也遵循着同样的道理。 一点点感悟, 尼玛, 又要开会了。 本来还要写点的。 卧槽。。。

====================会=======后========吐=======槽=============================

我靠。 开会决定了。临时让我加入联/网/平/台项目。 这下好了。

ED137五个产品,ED137标准文档, F4核心板,C919模块,这又加了个联网平台,无语。

乱七八糟的管理!

项目之间耦合严重啊。。。懂不懂?人的精力是有限的,识得唔识得啊?不要拉出来来回溜行不行?

图样图森破,萨么塔么拿衣服!

搞了快一年了,当初拍脑袋火急火燎的上马,功能需求都没有定义清楚,设计仓促决定。

后面一边改一边重新确立功能,现在烂摊子,让我们擦屁股。。。

统共就四块板子,结果硬件回来几个月了。还没有确定硬件是否可以用。。。

摔。。。玩我呢?还是逗我呢?抓狂

我虽然是新手,但是我也知道,一个新产品,既然客户的需求定义的少,也不知道要什么,我们是不是应该先捡常用的功能先期做出一个能用的简化版的产品?别贪多,想一次性把后面要升级换代时候的功能也加进来,一劳永逸,这不扯自己蛋吗?

涉及到硬件的研发,能像软件开发一样迭代进行吗?开板不要钱啊?看着那些浪费的板子,心疼啊。

日。懒得说了。瞎管理,怪不得产品各种问题频出。。。还不思悔改。简直了。

让我负责就少特么瞎掺和瞎指挥。失败了我负责。你掺和了算什么事?有没有职业节操?



推荐阅读
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 本文详细探讨了Netty中Future及其子类的设计与实现,包括其在并发编程中的作用和具体应用场景。我们将介绍Future的继承体系、关键方法的实现细节,并讨论如何通过监听器和回调机制来处理异步任务的结果。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本文介绍如何通过创建替代插入触发器,使对视图的插入操作能够正确更新相关的基本表。涉及的表包括:飞机(Aircraft)、员工(Employee)和认证(Certification)。 ... [详细]
  • 本文详细探讨了Java中StringBuffer类在不同情况下的扩容规则,包括空参构造、带初始字符串和指定初始容量的构造方法。通过实例代码和理论分析,帮助读者更好地理解StringBuffer的内部工作原理。 ... [详细]
  • VPX611是北京青翼科技推出的一款采用6U VPX架构的高性能数据存储板。该板卡搭载两片Xilinx Kintex-7系列FPGA作为主控单元,内置RAID控制器,支持多达8个mSATA盘,最大存储容量可达8TB,持续写入带宽高达3.2GB/s。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
author-avatar
安份丶小娚人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有