精华内容
下载资源
问答
  • 模块内部许多私有属性,只向外暴露一部分公开的接口(如可以修改私有属性的方法等) 2.为什么要模块化? ES6之前,JavaScript语言一直没有模块(module)体系,无法把大文件组织地划分成小块,并管理之间地依赖。...

    前几天面试虾皮问了什么是模块化,没有解答清除。
    1.什么是模块化?
    简单地说,模块化就是有组织地把一个大程序拆分成独立并互相依赖的多个小文件(模块)。
    模块内部有许多私有属性,只向外暴露一部分公开的接口(如可以修改私有属性的方法等)

    2.为什么要模块化?
    ES6之前,JavaScript语言一直没有模块(module)体系,无法把大文件有组织地划分成小块,并管理之间地依赖。但是模块化的思想一直存在。因为用Javascript写的代码越来越庞大,而网页也越来越像桌面APP。如此庞杂的代码,如果不进行模块化,就可能引发命名冲突,造成不易复用、维护性高。

    一个文件对应一个模块。

    总结:
    最开始,JavaScript没有模块。后来:
    1.有CommoneJS规范,最典型的实践就是Node.js,主要使用在服务器端,同步加载模块;
    2.有AMD,最典型的实践就是RequireJS,依赖前置,主要使用在浏览器端,异步加载模块。
    3.有CMD,最典型的实践就是sea.js,依赖就近,主要使用在浏览器端,异步加载模块。
    4.有ES6的Module,在语言层面定义了模块,通过export和import,吸收了CommoneJS和AMD两者的优点,兼容两标准的规范。

    AMD和CMD的区别:
    1.在模块定义时对依赖的处理不同。AMD推荐依赖前置,定义模块时就声明其依赖的模块,而CMD就近依赖,只有在用到某个模块的时候再去require。
    2.对依赖模块的执行时机处理不同。首先都是异步加载,区别在于模块执行时机,AMD是在依赖模块加载完成后就直接执行依赖模块,执行顺序和书写顺序不一致;CMD是在依赖模块加载完成后并不执行,只是下载,等待所有的依赖的模块都加载好后,再进入回调函数,遇到require语句才执行对应的模块,书写顺序保持一致。

    import适合的场合
    (1)按需加载
    (2)条件加载
    (3)动态的模块路径

    参考:
    前端模块化是什么

    展开全文
  • 测试--功能模块划分8.3

    千次阅读 2018-09-03 09:55:09
    2.功能模块划分有哪些比较好的方法? 首先说一下第一个问题:功能模块划分时应遵循什么样的原则? 原则:高内聚,低耦合 不知道大家对于这个词熟不熟悉,但是对于我自己来说是挺熟悉的,因为以前在大学备考计算机...
    1. 高内聚,低耦合
    2. 功能流程法
    3. 层次划分法
    4. 类型划分法

    首先对于功能模块划分提出两个问题:

    1.功能模块划分时应遵循什么样的原则?
    2.功能模块划分有哪些比较好的方法?

    首先说一下第一个问题:功能模块划分时应遵循什么样的原则?

    原则:高内聚,低耦合
    不知道大家对于这个词熟不熟悉,但是对于我自己来说是挺熟悉的,因为以前在大学备考计算机二级的时候经常会遇到一道选择题,考点就是高内聚,低耦合;当时不知道这是在讲什么东西,而且也只是一个选择题,就选择了死记硬背。

    前一段时间看视屏学习的时候,又提到这个词,我就刻意去查了一下;后来才知道这个词挺有意思的;它分为两个部分的,第一部分是高内聚,第二部分是低耦合。下面就简单解释一下什么是高内聚,低耦合。

    内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间;我也不太了解语名是什么,程序段比较好理解一点吧)联系的越紧密,则它的内聚性就越高。
    耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
    经过了名词解释后,有些小伙伴可能明白了为什么模块划分要遵循这个原则,也有一些小伙伴跟我当时一样,看了这些还是一脸懵逼,没关系,那就再解释的直白一点。
    我本人的理解是:当一款软件(这里就拿全集来说吧),一个功能模块中的元素、小单元、选项之间关联得越紧密,这个软件的内聚性就越高,那么这个软件就越好。比如在全集的背包模块中分别包括:全部、比赛券、财神、表情四个选项按钮。这四个选项按钮之间关联得越紧密,那么对于背包系统就越好,即背包这个组件只负责物品方面的操作,房卡充值、元宝充值与它无关。
    高内聚提供了更好的可维护性和可复用性。
    这里写图片描述
    然后再说说低耦合,全集中有很多模块,比如说充值功能模块、商城、战绩、活动、背包等,这些模块之间的关联程度越低,则模块的独立性越高。当模块独立性高,若果某一个模块出现了BUG,如背包模块出了问题;它不会影响到活动系统、战绩、商城、充值;不至于整个游戏都会出现问题,玩家还可以继续打牌,而程序猿只需要集中注意力把出问题的模块解决好就没有问题了。
    这里写图片描述
    其实说这些感觉工作上也不一定用的上,但是在以后讨论测试的时候,你的想法可能会比以前更有深度;在以后你可能会去做软件测试,可能还会继续做棋牌类的测试,所谓艺多不压身,多了解一些总该是好的。

    好了,说完了功能模块划分的原则后,现在说一下功能模块划分的方法:

    1.功能流程法
    定义:将功能的基本流程画出来,根据流程的每个大的环节进行模块划分,然后再细化和查漏补缺。
    举一个例子,比如说:请就银行ATM的取款功能进行模块划分?
    那么对于这个问题,就可以得到下面的流程:
    (1)插卡环节
    (2)密码登录环节
    (3)输入金额环节
    (4)取走钱币环节
    (5)取卡环节
    看完这5个流程,有人可能会问,这样子就行了吗?密码的构成规定不需要研究一下吗?输入金额有没有最大值什么的也不需要研究一下吗?是的,你想的这些没有错,但是那些细节是在得到流程模块确定之后,再对某一个流程模块进行细化、查漏补缺等。对症下药很重要,回到这个问题,它是问如何进行模块划分,所以中但是模块的划分而不是某些小功能的研究;要做的是先将流程的模块确定出来,其次才是细化模块的一些东西,然后再查看缺漏的东西。
    如果结合到我们大唐游戏中可以有这样的一个问题,请针对于利用代理后台为玩家充值房卡的功能进行模块划分?
    对于这个问题,我们也可以得到下面的回答:
    (1)打开代理后台网页
    (2)密码登录
    (3)房卡充值
    (4)退出登录
    这么首先是要列出了主要的功能流程,再对主要每一个功能精心细化,如打开代理后台网页,利用IE浏览器是不是正常打开,谷歌浏览器、360浏览器等;登陆的账号密码后台的要求是什么?账号有规定是8-16位吗?密码是不是不可以有空格,必须要字母跟数字的结合?房卡充值有没有快速搜索玩家的功能?
    2.层次划分法
    定义:按照逻辑层次逐层细化处模块的过程,比较适合用于UI划分,大的系统模块划分等。
    结合我们平时测试的棋牌游戏,那么就可以理解为两部分,第一部分就是牌局外的内容,第二部分就是牌局内的内容。层次划分法其实就像剥洋葱一样,一层一层的往细的剥,直到最后最细的无法再分离出新的层次;然后把前面剥出来的每一层排列出来,这样子就得到了我们想要的功能层次划分图,我们进行测试就可以根据这个图一步一步的设计测试用例、执行测试用例;层次划分良好的测试用例用起来也会比较舒服。
    这里写图片描述
    这里只是简单地举一个例子,有些功能模块或许还可以分得更细,可以在私下自己深入研究。
    3.类型划分法
    定义:按照功能包含内容的不同类型进行划分。

    这里举一个例子就是我最近也在测试一个背包系统,背包里面就分为消耗后数量会减少的物品与消耗后数量不变的物品。

    比如说消耗后数量会减少的有:比赛劵、拜财神,这些物品用一个少一个,在背包中拥有数量也会根据使用或者获得而相应地改变。

    消耗后数量不变的有:免费的表情(飞吻、送花、敲桌子),这些物品不管你使用多少次,都不会有数量上的减少。

    设计测试用例的时候就可以根据数量会不会改变的这一类型而进行划分,你最后得到的测试用例会比较清晰明了、直观,

    上面跟大家分享的东西是我看的一些视频,然后结合我们工作上相关的东西,对测试的一些理解,可能会有理解不到位,也可能对于你的测试工作没有太大的帮助;当然这几个模块划分的方法并不是学会一个就能所有项目都通吃,要因地适宜,针对不同的项目使用合适的方法。然后就是说一下我个人对于IT行业的理解,不管你是开发还是测试,你不去学习不意味着你是原地踏步,更可能是退后,因为现在的技术更新迭代速度非常快,多了解,多理解才能让你进步,你正年轻,此时不努力,何时才努力?

    展开全文
  • Lambda架构作为一种模式,提供了在大型数据集上执行高度可伸缩和高性能分布式计算的方法,并且最终为批处理和近实时处理提供了一致的数据。 Lambda架构定义了能应对企业中各种数据负载的可水平扩展架构的实现方法与...

    写在前面

    本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

    本专栏目录结构和文献引用请见100个问题搞定大数据理论体系

    解答

    Lambda架构作为一种模式,提供了在大型数据集上执行高度可伸缩和高性能分布式计算的方法,并且最终为批处理和近实时处理提供了一致的数据。
    Lambda架构定义了能应对企业中各种数据负载的可水平扩展架构的实现方法与手段,并且具有较低的延迟预期。
    Lambda架构模式的实现方式是将整个架构划分为多个功能模块/层(layer)。
    分别是数据摄取层,批处理层,快速处理层,数据存储层,服务层,数据获取层和消息层。
    数据湖中的功能模块如图所示。
    

    数据湖中的功能模块

    补充

    数据摄取层一一摄取数据用于处理和存储

    快速的数据摄取层(data ingestion layer)是Lambda架构模式中的关键层之一。这一层需要控制将数据快速传递到Lambda架构的工作模型中。

    关键功能

    1. 该层必须具有高度可扩展性,满足各种需求,能够根据不同的负载情况进行伸缩。
    2. 该层必须具有容错(fault tolerant)能力,提供系统可靠性和故障转移(fail-over)能力。
    3. 该层必须支持多线程及多事件处理
    4. 该层必须能够快速地将所摄取数据的结构转换为目标数据格式,这是 Lambda架构处理层所要求的。
    5. 该层必须确保所交付的所有数据都以最纯粹的形式供下一步处理。

    批处理层一一批量处理已提取数据

    批处理层(batch layer)是Lambda架构中对已提取数据进行批量处理的层,以确保系统资源的最佳利用,同时也可将长时间运行的操作应用于数据,以确保输出数据的高质量。 输出数据也称为模型数据(modeled data)。

    将原始数据转换为模型数据是批处理层的主要职责,其中,模型数据中蕴含了Lambda架构中服务层(serving layer)向外提供数据的数据模型。

    关键功能

    1. 该层必须能在已摄取的原始数据之上执行数据清理、数据处理、数据建模算法。
    2. 该层必须提供重新执行(replay/rerun)某些操作的机制,以实现故障恢复。
    3. 该层必须支持在已摄取的原始数据之上执行机器学习算法或数据科学处理,以产生高质量的模型数据。
    4. 该层可能需要执行一些其他操作,以期通过移除重复数据、检測错误数据和提供数据世系视图来提高模型数据的整体质量。

    快速处理层一一近实时数据处理

    快速处理层(speed layer)将对从数据摄取层接收的数据执行近实时处理。由于处理预期接近实时,因此这些数据的处理需要快速、高效,为高并发场景提供支持和相应的精心设计,并且最终产生满足一致性要求的输出结果。

    关键功能

    1. 必须支持在特定数据流之上的快速操作。
    2. 必须能生成满足近实时处理需求的数据模型。所有需要长时间运行的处理必须被委托给批处理模式。
    3. 必须有快速访问能力和存储层的支持,这样就不会因为处理能力而导致事件的堆积。
    4. 必须与数据摄取层的批处理过程分离。
    5. 必须产生一个输出模型,该模型(从某种程度上来说)可以与批处理产生的数据集合并,进一步提供增强型的企业数据。

    数据存储层一一存储所有数据

    在 Lambda架构模式中,数据存储层(data storage layer)非常引人注目,因为该层定义了整个解决方案对传入事件/数据流的反应。

    由架构常识可知,一个系统的速度最多与处理链中最慢的子系统一样快,因此,如果存储层不够快,由近实时处理层执行的操作将会变得很慢,从而阻碍了该架构达到近实时的效果。

    在Lambda的总体架构中,针对已摄取的数据有两种主动操作:批处理和近实时处理。批处理和近实时处理的数据需求差别很大。

    例如,在大多数情况下,批处理模式需要执行串行读和串行写操作,此时使用 Hadoop存储层就足够了,但是如果我们考虑近实时处理, 需要快速查找和快速写入,那么 Hadoop存储层可能是不合适的(见下表)。

    为了支持近实时处理,需要数据层支持某些类型的索引数据存储。

    批处理 近实时处理
    串行写及串行读操作 快速查找,快速写入
    Hadoop存储层能胜任 Hadoop存储层不能胜任

    关键功能

    1. 同时支持串行读写及随机读写。
    2. 针对用户的使用情况,提供合适的层次性的解决方案。
    3. 支持以批量模式或近实时模式处理海量数据。
    4. 以灵活、可扩展的方式支持多种数据结构的存储。

    服务层一一数据交付与导出

    Lambda架构也强调了为消费者程序提供数据传输服务的重要性。

    众所周知,数据可以以多种方式在系统间传递。其中最重要的一种方式是通过服务(service)传递。在数据湖背景中,这些服务被称为数据服务(data service),因为它们的主要功能是传输数据。

    另外一种传输数据的方式是数据导出(export)。数据最终可导出为多种格式,如消息、文件、数据备份等,导出的数据供其他系统消费。

    数据传输/服务主要关注的是如何将数据转换为预期的格式。这种格式可以强制约定为数据契约(data contract),数据服务在对外提供服务时遵循该约定。

    然而,在执行数据传输操作时,合并批量处理及近实时处理产生的数据非常重要,因为这两类数据中都可能包含与组织机构相关的关键信息。

    数据服务层必须保证数据与数据契约(与消费者程序约定)的一致性。

    关键功能

    1. 支持多种机制为消费者程序提供数据服务。
    2. 每种支持数据服务的机制,必须与消费者程序的数据契约兼容。
    3. 支持批量处理及近实时处理数据视图的合并。
    4. 为消费者程序提供可扩展、快速响应的数据服务。

    因为数据服务层的核心职责是向数据湖以外的消费者提供数据服务,出于增强数据表现的考虑,该层可能会选择性地进行数据合并。

    数据获取层一一从源系统获取数据

    企业中数据格式多种多样,可大致分为结构化数据、半结构化数据和非结构化数据。

    结构化数据的常见例子包括关系数据库、XML/JSON、系统间传递的消息等。

    企业也非常青睐半结构化数据,尤其是E-Mail、聊天记录、文档等。

    非结构化数据的典型例子包括图片、视频、原始文本、音频文件等。

    对于这些类型的数据,部分数据可能无法对其定义模式( schema)。需要将数据转换为有意义的信息时,模式是非常重要的。

    为结构化数据定义模式的方法非常直接,但是无法为半结构化数据或非结构化数据定义模式。

    数据获取层的一个关键作用是将数据转换为在数据湖中可进行后续处理的消息

    因此数据获取层必须非常灵活,能适应多种数据模式。同时,它也必须支持快速的连接机制,无缝地推送所有转换过的数据消息到数据湖中去。
    数据获取层在数据获取端由多路连接(multi- connector)组件构成,然后将数据推送到特定的目的地。

    在数据湖的例子中,目的地指的是消息层。

    很多技术框架可以用于构建能支持多种源系统的低延迟的数据获取层。

    对于每种源系统类型,数据获取层的连接都需要根据所依赖的底层框架进行特殊配置。

    数据获取层会对已获取的数据做少量转换,其目的是最小化传输延迟。

    这里的数据转换指的是将已获取的数据转换为消息或事件,它们可以发送给消息层。

    如果消息层无法到达(由于网络中断或消息层处于停机期间),则数据获取层还必须提供所需的安全性保障和故障恢复机制。

    为了确保该层的安全性,它应该能够支持本地持久化的消息缓冲,这样,如果需要, 并且当消息层再次可用时,消息可以从本地缓冲区中恢复。

    该模块还应该支持故障转移如果其中一个数据获取进程失败,另一个进程将无缝接管,如图所示。

    数据获取层组件设计

    消息层一一数据传输的保障

    消息层其实就是数据湖架构里的消息中间件(Message Oriented Middleware,MOM), 该层的主要作用是让数据湖各层组件之间解耦,同时保证消息传递的安全性

    为了确保消息能被正确传输到目的地,消息将会被持久化到某种存储设备中去。被选用的存储设备需要与消息处理需求匹配(结合消息大小及数量等因素)。

    更进一步来看,不论是读操作还是写操作,消息中间件都是按队列(queue)方式来处理的,队列天然适合处理串行存取,机械硬盘足以应付此类I/O操作。

    对于那些需要每秒处理百万级的消息的大型应用程序来说,SSD能提供更好的I/O性能。

    消息层组件必须能对消息队列进行入队列和出队列操作。对于大多数消息处理框架来说,入队列和出队列操作对应的是消息发布与消息消费。

    每个消息处理框架都提供了一系列库函数,用于与消息队列的资源连接(如 topic/queue)。

    任意消息中间件都支持两类与队列通信的方式以及topic消息结构:

    1. 点对点模型:队列通常用于点对点(point-to-point)通信,每个消息应该只被某个消费者消费一次。
    2. 发布订阅模型:topic概念经常出现于发布/订阅机制中,在这里,一个消息被发布一次,但是被多个订阅者(消费者)消费。一条消息会被多次消费,但是每个消费者消费一次。在消息系统内部, topic基于队列来构建;消息引擎(message engine)对这些队列进行差异化管理,以实现一个发布/订阅机制。

    队列与topic都可以根据需要配置为持久化或非持久化。出于保障数据发布安全的目的,强烈建议将队列配置为持久化,这样消息将不会丢失。

    从较高的层次来看,消息中间件可以抽象为由消息代理(message broker)、消息存储、topic/queue等组件组成的框架。

    展开全文
  • 主要测试方法是对被测试部分按照窗口划分为若干模块,将作用在每个模块内界面部件上事件归为一类,创建事件流图生成测试用例进行测试。 冒烟测试 冒烟测试是针对每个版本或每次需求变更后,对系统进行一次...

    界面测试

     

    是指对使用界面的软件进行的软件测试,我们日常用到的web程序,办公软件等很多都是界面软件。主要测试方法是对被测试的部分按照窗口划分为若干模块,将作用在每个模块内界面部件上的事件归为一类,创建事件流图生成测试用例进行测试。

     

    冒烟测试

     

    冒烟测试是针对每个版本或每次需求变更后,对系统进行一次验证测试,看版本更新后是否存在bug

     

    回归测试

     

    回归测试是指测试过程中修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

     

    兼容性测试

     

    通过在不同的硬件平台,应用软件、操作系统上进行测试,看是否能够跑起来。

     

    易用性测试

     

    主要是评估软件产品能否让用户正确理解不同环境下软件适用,是否易于操作,能否吸引用户。

     

    安全测试

     

    安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,提升软件产品质量及其安全性,密保性的过程。

    下面我还收集了一些软件测试的视频资料:

    对于【软件测试】的的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你!

    有需要的可以关注我的微信公众号:【程序员二黑】,免费分享给你们。

    写给大家:每一个优秀的人,都不是带着与生俱来的光环的,也不一定是比别人幸运。他们只是在任何一件小事上,都对自己有所要求,不因舒适而散漫放纵,不因辛苦而放弃追求。雕塑自己的过程,必定伴随着疼痛与辛苦,可那一锤一凿的自我敲打,终究能让我们收获一个更好的自己。
     

    展开全文
  • C++接口工程实践:有哪些实现方法

    千次阅读 多人点赞 2020-09-03 13:47:28
    那么C++有哪些实现接口的方法呢,不同的方法又适用于哪些场景呢?本文分享在C++接口工程实践上的一些探索心得。一 接口的分类接口按照功能划分可以分为调用接口与回调接口:调用接口一段代码、一个模块、一个程序库...
  • 那么C++有哪些实现接口的方法呢,不同的方法又适用于哪些场景呢?本文分享在C++接口工程实践上的一些探索心得。 一、 接口的分类 接口按照功能划分可以分为调用接口与回调接口: 调用接口 一段代码、一个模块...
  • - module.json 这个文件内定义的是按 component 划分的模块列表,以及包含的模块文件 - modular-cocos2d-cut.js 这个文件是用于组合裁剪后的未模块化的文件。在正常打包任务中,会排除这个文件,...
  • 3.黑盒测试方法有哪些? 等价类划分法,边界值法,判定表法,因果图法,正交实验法,状态迁移法,场景法 4.等价类划分法 适用场合:输入条件之间独立无组合关系 作用:由于穷举法不可取 设计步骤:1.需求分析,确认...
  • 一、面向对象  编程方式  面向过程:根据业务逻辑从... 面向对象就不像面向过程那样按照功能划分模块了,它所关注是软件系统有哪些参与者,把这些参与者称为对象,找出这些软件系统参与者也就是对象之后,...
  • 如果在一个类中定义了多个同名的方法,它们或不同的参数个数或不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 18、error和exception什么区别?  error 表示恢复...
  • 游戏测试用例

    2021-05-24 11:03:50
    2.2 功能模块划分有哪些比较好的方法2.3 模块划分注意事项3. 测试用例编写3.1 格式3.2 常用的测试用例编写方法3.3 测试用例编写注意事项4. 测试用例整理与维护 1. 设计步骤 1. 需求文档分析 1.1 文档阅读 切忌不...
  • 公司的规模不大,做的项目不多,每个项目组的成员也少,最多的也就是四、五个人,目前的几个项目问题多多,各方面的问题都,但是开发...开发时的模块划分不是简单的按照功能模块划分;必须按照面向对象的方法进行...
  • 基本测试用例

    2020-11-23 20:55:02
    测试用例特性 有效性 测试用例能够被使用,且被不同人员使用测试结果一致 可重复性 良好测试用例具有重复使用功能 ...测试用例编写方法有哪些? 等价类划分,边界值,错误推测,因果图,场景发,正
  • 需求文档(PRD)主要讲述app某个模块有什么功能,每一项功能页面展示、页面操作有哪些,不同操作之间关系是什么。基于PRD用例设计是使用黑盒测试方法,而我平时主要使用了等价类划分、边界值分析法、状态...
  • P&R 5

    2019-09-23 14:43:37
    通常,遇到floorplan问题,大致debug步骤跟方法有哪些? 如何衡量floorplanQA? 芯片整体架构模块划分,低功耗结构,IP要求,IO要求,数据流,关键路径走向。做Floorplan既要有宏观大局也要关注细节...
  • 方案撰写几点心得

    2008-05-16 10:16:00
    一个方案交给你做肯定你熟悉的模块或者整体结构,先将熟悉部分厘清,写出纲要,具体后期填补。2、分析不熟悉部分,拟出“求助”几种方法。对于陌生领域,快速采用几种途径建立知识结构体系。哪些要依靠...
  • 一个方案交给你做肯定你熟悉的模块或者整体结构,先将熟悉部分厘清,写出纲要,具体后期填补。2、分析不熟悉部分,拟出“求助”几种方法。对于陌生领域,快速采用几种途径建立知识结构体系。哪些要依靠...
  • 体系结构之设计基础

    2015-04-02 13:07:00
    1.设计审美标准有哪些 1)简洁性: 模块化、易读易...已知软件设计方法与技术(至少5中),以及它们促进了哪些审美标准达成 1)模块化: 进行模块划分,隐藏一些程序片段(数据结构和算法)实现细节,暴露接...
  • 答:主要软件开发方法有:结构化开发方法、Jackson(JSP、JSD)方法、原型化开发方 法、维也纳开发方法(VDM)和面向对象开发方法。 6. 软件生命期各阶段任务是什么? 答:软件生命期瀑布模型分为六个阶段: ...
  • 比如:一个WEB开发项目。... 一般情况下都是按照功能模块划分比较好. MVC用来后期维护很好.在开发方面没什么长处? 大家怎么看. <strong>问题补充:</strong><br />没人补充了?
  • 31、你知道Request对象主要方法有哪些? 32、J2EE是技术还是平台还是框架? 我答案: J2EE是技术也是平台 网上答案: J2EE本身是一个标准,一个为企业分布式应用开发提供标准平台。 J2EE也是一个...
  • 7.3.2 带参数的方法有何不同? 162 7.3.3 让方法有多个参数 163 7.4 返回值:汽车超速了吗? 164 7.4.1 写一个有返回值的方法 164 7.4.2 调用有返回值的方法 165 7.4.3 发生了什么?如何使用方法的返回值? 166...
  • 什么是解耦?

    千次阅读 2018-08-10 08:44:52
    什么是解耦? 解耦就是用数学方法将两...优势、劣势有哪些? 多模块化项目优势在于:提高代码重用率,可维护性高,架构灵活,焦点分离。 劣势在于:性能损坏明显,系统分层,模块通信发送信息非常消耗性能。...

空空如也

空空如也

1 2 3 4 5
收藏数 91
精华内容 36
关键字:

模块划分的方法有哪些