热门标签 | 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模块,这又加了个联网平台,无语。

乱七八糟的管理!

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

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

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

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

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

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

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

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

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

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



推荐阅读
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
  • 开发笔记:前端之前端初识
    开发笔记:前端之前端初识 ... [详细]
  • iOS 百度地图使用指南:基本定位与地理编码
    本文详细介绍如何在 iOS 应用中集成百度地图,实现基本的地图定位和地理编码功能。配置详情请参考官方文档:http://developer.baidu.com/map/index.php?title=iossdk ... [详细]
  • 申请地址:https://developer.apple.com/appstore/contact/?topic=expedite 常见申请理由:1. 我们即将发布新产品,这是一个媒体活动,我们无法承担任何风险,因此在多个方面努力提升应用质量。 ... [详细]
  • 本文介绍如何在Access VBA中处理参数查询时将整数正确地传递给查询,避免因类型转换导致的数据类型不匹配错误。 ... [详细]
  • Java EE 平台集成了多种服务、API 和协议,旨在支持基于 Web 的多层应用程序开发。本文将详细介绍 Java EE 中的 13 种关键技术规范,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 本文探讨了 TypeScript 中泛型的重要性和应用场景,通过多个实例详细解析了泛型如何提升代码的复用性和类型安全性。 ... [详细]
  • 面试题总结_2019年全网最热门的123个Java并发面试题总结
    面试题总结_2019年全网最热门的123个Java并发面试题总结 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • 使用Tkinter构建51Ape无损音乐爬虫UI
    本文介绍了如何使用Python的内置模块Tkinter来构建一个简单的用户界面,用于爬取51Ape网站上的无损音乐百度云链接。虽然Tkinter入门相对简单,但在实际开发过程中由于文档不足可能会带来一些不便。 ... [详细]
  • 本文介绍了 Python 中的基本数据类型,包括不可变数据类型(数字、字符串、元组)和可变数据类型(列表、字典、集合),并详细解释了每种数据类型的使用方法和常见操作。 ... [详细]
  • CSS 百分比单位的取值依据是什么
    本文详细探讨了 CSS 中百分比单位的取值依据,包括不同定位方式下的包含块概念及其应用。通过具体的示例和代码,帮助读者更好地理解和掌握这一知识点。 ... [详细]
  • 在 CentOS 7 环境中使用 MySQL 5.6 镜像启动数据库时遇到权限问题,本文将详细探讨并提供解决方案。 ... [详细]
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社区 版权所有