模块化-续

我先从现有的模块结构说起,然后做一个分类和总结,同时预测一下未来的趋势
最初的Fortran语言就提供了各种模块机制【当然,按照现在普遍的认识,不认为它们是模块,不过按照我的看法,它们显然是】。比如Routine,DataBlock等。后来出现了ADT,出现了Object,这些都是模块的具体例子。

例程 主要用于重用一个抽象
数据块 表达用于加工的原材料和结果的一种模块,可以认为是被动的实体
类 用于表达一个概念模型,实际上是数据块以及所有操纵该数据块的例程的综合
组件 实现一个或者数个约定好功能的模块,可以方便的装配成系统,语言无关
进程、线程 一个活动【可以是一个例程】加上其运行的环境或者操作的数据
Lambda 一个纯粹的Routine,其本质是一个映射或者关系,表达输入和输出之间的函数,被称作Pure例程的那种例程就是lambda
Closure lambda加上其环境数据构成closure
Aspect 这是对活动阶段共性的抽象,用来表达一些听起来比较抽象的领域问题。比如:安全性,事务之类的非功能性需求一般都可以方便的用Aspect表达。一个比较切贴的说法是横切的关注点
Service 拥有完整业务逻辑实现的组件
包、名字空间 一个逻辑容器,容纳下一层次的模块或者下一层次的包、名字空间。主要用于条理化的组织模块

上面所有的我识别出来的模块机制,可以按照数据和代码来分类,可以按照是静态的还是动态的来分类,可以按照是容器还是元素来进行分类,可以按照是粗粒度的还是细粒度的进行分类,可以按照是抽象的还是具体的进行分类,可以按照是主要用于重用还是主要用于控制复杂性进行分类。

这样,上面的模块和分类方式就形成一个二维表格
。。。省略。。。

可以看出,很多新的模块形式都只是旧的模块形式改变了粒度而形成的。混合了数据和代码的模块越来越受到青睐,原因是这样能更自然的控制复杂度,简化系统结构。虽然在逻辑上,作为模块逻辑容器的模块不必要,但是在实践上,这样的模块对于表达抽象来说仍然很必要。虽然数据类型的模块非常少,但是,现在主流的分解思想却是分解为数据类型的模块。作为代码类型的模块现在开始慢慢的侵入主流,虽然closure这种代码+数据【以代码为主】可以完整的以数据+()运算【以数据为主】表达,但仍然坚定的侵入主流,这说明语法问题不是一个无足轻重的问题,而是一个相当受到关注的问题。
你的OLED屏和MPU6050为啥通信失败?从IIC的7位地址冲突讲起 本文深入解析OLED屏与MPU6050传感器在I2C总线上的通信故障,重点探讨7位地址冲突问题。通过分析I2C协议中的地址分配机制,提供硬件调整和软件调试的完整解决方案,帮助开发者有效排查和解决设备无响应问题。 阅读详情

相关推荐

Vivado与VCS+Verdi联合仿真环境搭建全攻略

本文详细介绍了如何搭建Vivado与VCS+Verdi联合仿真环境,旨在解决Vivado Simulator在大型FPGA验证中速度慢、调试弱的问题。通过指导工具版本配对、环境变量设置、关键参数配置及Xilinx仿真库编译,帮助工程师高效整合Vivado的设计管理、VCS的高速仿真与Verdi的深度调试能力,从而显著提升验证效率。

weixin_29219189的博客 577

【续】跨域 + JS模块化问题

文章目录JS模块化跨域什么是跨域1. 为什么浏览器要限制跨域2. 为什么需要跨域?3. 当前这些方案避免这种机制的思路是什么?4. 这些解决方案的演进路线 前两天发了一篇快速搭建VUE + EXPRESS + MONGODB环境的文章: 快速搭建基于VUE + EXPRESS + MONGODB架构系统 后续留了两个问题,这几天在网上找了一下,做一个记录。 JS模块化 这个问题在知乎上找到几篇文章,基本上解决了我的疑惑,在这里转载一下: JavaScript 模块演化简史 JavaScript模块化演化史

新兴IT民工的专栏 1万+

硬件电路(22)-TTL和232切换电路

工作中会遇到TTL和232电平的通信的状态,为了实现一种便捷的切换方式,参考了一些文章,提供一种电路方便大家使用。

剑藏锋的博客 1864

《最优化理论基础》8课时模块化教案(续)

《最优化理论基础》8课时模块化教案详细介绍了最优化理论的基本概念和应用。课程分为四个模块:最优化问题分类、无约束优化、约束优化和应用专题。每个模块包含具体的教学目标、课堂内容和评估方式。课程通过数学推导、几何解释和实际案例分析,帮助学生掌握优化问题的分类、无约束和约束优化方法,以及在深度学习中的应用。教学工具建议包括可视化工具和数值实验平台,评估方式结合课堂互动和期末考试。

虽身在果壳之中,仍自以为无限宇宙之王 994

STorM BGC V1.31硬件+SimpleBGC固件:从零搭建三轴云台开发环境(Keil+JLink避坑指南)

本文详细介绍了如何从零搭建STorM BGC V1.31硬件+SimpleBGC固件的三轴云台开发环境,涵盖硬件连接、Keil+JLink开发工具配置、固件编译与烧录等关键步骤,并提供了常见问题的解决方案和调试技巧,帮助开发者快速上手三轴云台开发。

weixin_28693683的博客 380

【初阶】手把手教你轻松上手Denodo | 连接数据库并创建基本视图 (二)

在本教程的第二部分,我们将涵盖:连接到数据库,与创建基本视图。

Denodo的博客 1106

MCP续证学分不够?这5种高性价比学习方式帮你快速达标

掌握MCP续证的学分计算方法,轻松应对续证难题。本文分享5种高性价比学习方式,涵盖在线课程、技术社区贡献等适用场景,助你高效积累学分。方法实用、成本低、通过率高,值得收藏。

InitPulse的博客 407

Qt | linux+openCV+Qt6.5.3环境搭建成功版(带例子)

opencv安装 Qt 实战举例

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 1885

MCP认证续证新规则曝光,3类考生面临直接失效风险,你中招了吗?

掌握MCP认证的2025续证路径更新,提前规避失效风险。针对3类未及时更新资质的考生,新规明确续证条件与过渡期安排,涵盖适用场景、学分累计方式及补救措施。信息权威全面,助你顺利过渡新政策,值得收藏。

ProceShoal的博客 845

【遥感物候】植被物候与气候(气温和降水)条件的空间相关性分析

植被生长与气候的关系最为密切,通过计算植被各个生长季参数和气温、降水之间的相关系数可以分析生长季参数的变化与气温、降水之间的关系的程度。本文计算30年的植被物候参数和气候数据之间的相关性,最终效果如下: 一、相关性分析原理 植被生长季及其变化是其生长环境中多个影响因子综合作用的耦合过程,其中气候是最重要、最活跃的环境因子。通过计算各个生长季参数和气温、降水之间的相关系数...

智慧空间实验室 8260

30天入门 SAP BTP 开发系列之八:动手在 SAP BTP 上开发第一个 ABAP 透明表

ABAP Cloud 环境下创建透明表的方法与数据迁移实践 本文介绍了在 SAP BTP ABAP 环境中创建透明表并迁移数据的完整流程。与传统的 SE11 事务码不同,ABAP Cloud 需通过 ABAP Development Tool 创建数据库表,使用代码定义表结构。作者详细演示了如何: 在开发包中创建名为 Z优快云_TRAVEL 的透明表 使用 ABAP 代码定义表字段和约束 通过 ABAP 类实现数据从标准表/DMO/TRAVEL 到新建表的迁移 验证数据迁移结果 文中还提供了相关技术概念的

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1785

探索KJPlayer:一款功能强大的音视频播放器

探索KJPlayer:一款功能强大的音视频播放器 在数字媒体的时代,一个高效、多功能的播放器是每个开发者和用户的必备工具。今天,我们要介绍的是一款名为KJPlayer的开源音视频播放器,它以其丰富的功能和灵活的技术架构,正逐渐成为市场上的佼佼者。 项目介绍 KJPlayer是一款集成了多种先进功能的音视频播放器,它支持动态切换内核,实现边下边播,断点续载续播等高级功能。无论是本地播放还是在线播放,...

gitblog_00309的博客 643

布尔可满足性问题(SAT)深度研究

布尔可满足性问题(Boolean Satisfiability Problem, SAT)是计算机科学和数理逻辑中的一个核心决策问题。其定义为:对于一个给定的布尔逻辑公式,判断是否存在一组对其变量的真值赋值(即,为每个变量指定真 (True) 或假 (False)),使得该公式的最终计算结果为真。如果存在这样的赋值,则称该布尔公式是可满足的 (satisfiable);否则,称其为不可满足的 (unsatisfiable)。

步子哥的博客 497

【MCP Agent开发考核通关指南】:揭秘续证必过的5大核心技术要求

掌握MCP续证的Agent开发考核要求,轻松通过认证难关。本文详解适用场景、代码规范、接口兼容性、安全机制与性能优化五大核心技术要点,提供可落地的开发方法与避坑指南。系统梳理考核重点,提升过审效率,值得收藏。

ProceChat的博客 846

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

MCP认证续证路径更新(2025紧急指南)

掌握MCP认证的2025续证路径更新,轻松应对认证过期难题。本文详解适用人群、新版续证流程与关键时间节点,提供高效合规的续证策略,助您无缝衔接认证周期。信息权威全面,值得收藏。

simcode的专栏 1078

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

实战应用:基于快马AI构建支持多用户续播的在线课程系统

当检测到同一账号在不同设备登录时,会在播放器上方显示"您的学习进度已在其他设备更新"的提示条。虽然我们用的是本地存储模拟,但数据结构已经预留了接口,后续换成真实后端API也很方便。我采用了简单的本地存储方案,每个用户登录后会生成唯一的用户ID。这里有个小技巧:即使刷新页面,用户的登录状态也能保持,避免了重复登录的麻烦。章节列表特别做了高亮处理,当前播放的章节会有明显标识。最近在做一个在线教育平台的课程播放功能,其中"继续播放"这个看似简单的需求,实际开发时遇到了不少坑。这个项目最让我惊喜的是,在。

AgatePanther34的博客 28

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

MCP续证怎么准备:从零开始的4周高效复习计划

掌握MCP续证的考试内容,高效通过不再难。本文提供从零开始的4周科学复习计划,覆盖核心知识点与实操策略,适合在职备考者时间管理。合理规划每日任务,快速锁定重点难点,大幅提升学习效率。值得收藏的备考指南,点击了解完整安排。

InstrIsle的博客 1033

AugmentCode续杯插件架构解析与实现原理

AugmentCode续杯插件是一款专为Chrome浏览器设计的自动化测试工具,通过智能邮箱生成和表单自动填充技术,为开发者和测试人员提供高效的测试账户创建解决方案。该插件基于Manifest V3规范开发,采用现代化的浏览器扩展架构,实现了在Augment平台登录页面上的无缝集成和自动化操作。 ## 技术架构与核心组件 ### Manifest V3配置解析 插件采用Chrome扩展Man

gitblog_00589的博客 378

Matlab实现电动汽车等速工况续驶里程仿真

电动汽车续驶里程仿真是新能源汽车研发中的关键技术,通过建立数学模型模拟车辆能耗特性。其核心原理基于能量守恒定律,计算电池可用能量与行驶阻力的平衡关系。在工程实践中,等速工况仿真能够排除复杂驾驶行为干扰,准确评估基础性能指标。Matlab作为强大的科学计算工具,通过模块化编程实现车辆参数、电池系统、电机效率等关键模块的协同仿真。本项目提供完整源代码与详细文档,特别适合汽车电子工程师学习动力系统建模方法,也可用于电池选型、车身减阻设计等实际工程场景。代码中运用了滚动阻力计算、SOC估算等关键技术点,并包含参数敏

weixin_33462927的博客 254

MCP认证续证倒计时开始:2025新规下仅剩的4条合规路径

掌握MCP认证续证关键节点,应对2025合规挑战。本文详解MCP认证的2025续证路径更新,涵盖四种适用场景与核心方法,助您高效完成资格延续。路径清晰、操作性强,IT从业者不容错过,值得收藏。

PixelWander的博客 1073

【稀缺资源】MCP续证成功案例库公开:TOP 10贡献模式深度解析

掌握MCP续证社区贡献案例核心方法,助力高效通过续证评审。解析TOP 10贡献模式,涵盖教育、技术分享与公益服务等场景,提炼可复用策略。真实案例+实操路径,提升个人影响力与认证竞争力,值得收藏。

GatherTide的博客 258

微软认证续证新规出台(仅剩180天过渡期,速看应对策略)

掌握MCP认证续证政策与继续教育新规,助你顺利过渡180天窗口期。涵盖适用人群、续证路径及学习资源推荐,提供高效应对策略。一次通过,长效保认证,值得收藏。

LogicWander的博客 1069

什么是模块化编程如何在JavaScript中实现模块化

引言基本概念和作用说明什么是模块化编程?模块化编程的作用JavaScript中的模块化发展实现模块化的示例示例一:使用IIFE实现简单模块示例二:使用AMD(Asynchronous Module Definition)规范示例三:使用CommonJS规范示例四:使用ES6模块示例五:使用动态导入功能使用思路开发技巧分析模块化编程是一种将程序划分为多个独立模块的设计思想。每个模块负责完成特定的功能,并通过明确的接口与其他模块进行通信。模块之间的依赖关系应当尽量减少,以降低耦合度,提高代码的灵活性和可测试性。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1224

MCP认证续证不再难(2025最新Learn路径曝光),IT从业者必看的续证避坑手册

轻松掌握MCP认证续证的Microsoft Learn路径(2025版),解决续证难、路径不清痛点。适用于计划更新资质的IT从业者,提供官方学习模块顺序与备考策略,高效省时。关键优势在于免费资源+灵活安排,值得收藏。

IterLoom的博客 638

模块化的力量:JavaScript的模块化革命

🤍 前端开发工程师、技术日更博主、已过CET6🍨、23年度博客之星前端领域TOP1🕠高级专题作者、打造专栏🍚签约作者、上架课程。

你若盛开,清风自来 2018

[ 模块化 ] JS 模块化发展历程

JavaScript 模块化的发展

李赛赛的专栏 924
上一篇: 关于模块化
lifeNet
博客等级 码龄20年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值