例如,下例演示了如何以这种方式创建字 典alien_0: 往期快速传送门(在文章最后): 5.4 使用 if 语句处理列表 通过结合使用if语句和列表,可完成一些有趣的任务:对列表中特定的值做特殊处理;...高 效地管理不断变化的情形,如餐馆是否还有特定的食材;证明代码在各种情形下都将按预期那 样运行。...你学习了如何在利用高效的for循环的同时,以不同于其他元素 的方式对特定的列表元素进行处理。...我们将这个外星人放在屏幕左边缘,且离屏幕上边缘25像素的地方。...注意,键—值对的排列顺序与添加顺序不同。Python不关心键—值对的添加顺序, 而只关心键和值之间的关联关系。
数据耦合(Data Coupling) 模块之间仅通过简单的数据参数(如基本类型)进行交互。 耦合度最低,推荐使用。 内聚(Cohesion) 内聚是指模块内部各个元素之间的相关程度。...根据内聚的紧密程度,可以将内聚分为以下几种类型: 偶然内聚(Coincidental Cohesion) 模块内部的元素之间没有明显的关联,仅仅是为了完成某种目的而放在一起。...逻辑内聚(Logical Cohesion) 模块内部的元素在逻辑上相关,但执行的任务可能不同。 例如,一组执行不同操作的函数被放在同一个模块中。...过程内聚(Procedural Cohesion) 模块内部的元素在执行顺序上相关,即执行某个特定过程的各个步骤。 例如,处理某个请求的各个步骤被放在同一个模块中。...顺序内聚(Sequential Cohesion) 模块内部的元素需要按照特定顺序执行,一个元素的输出是下一个元素的输入。 例如,处理流水线中的各个阶段被放在同一个模块中。
数据结构是组织的数据资源中用于特定目的的特定数据模式的表现形式。 随着数据库在20世纪中期出现,数据库专业人员确定了两种数据模式。...这些更有意义的名称还建立了业务到逻辑到物理数据模式开发的顺序,在所有正式的数据资源设计中都应该遵循这个顺序。...然而,业务数据模式的数据规范化并不容易或直接导致逻辑数据模式的开发,因为数据规范化本质上是将数据分开的。没有正式的技术可以将类似的数据放在一起,例如所有员工数据放在一起,所有学生数据放在一起,等等。...然后根据需要组合各个数据视图模式,以确保将类似的数据(如employee、student等)分组在一起。数据优化过程的目的是防止正在开发的许多不同的数据。...概念数据模式可以是业务模式、业务模式的泛化、逻辑模式的泛化、任何以强力物理数据库开发为借口的东西等等。由于数据管理开始转向业务,概念数据模式没有什么意义,因此需要定义一个对业务专业人员有意义的术语。
可以想象成一个咖啡机,它的设计目的就是为了冲泡咖啡,所有部件都是为了这一功能服务的。 2. 顺序内聚(Sequential Cohesion) 顺序内聚发生在一个模块中的元素输出是另一个元素的输入。...过程内聚(Procedural Cohesion) 过程内聚是指模块中的元素是为了完成某个特定的过程而聚集的,但这些过程并非形成单一的功能。...逻辑内聚(Logical Cohesion) 逻辑内聚是指模块中的元素聚合在一起是因为它们逻辑上类似,通常通过一个控制逻辑(如if-else结构)来选择执行哪个功能。...偶然内聚(Coincidental Cohesion) 偶然内聚是最低级的内聚形式,指模块中的元素毫无逻辑地放在一起。...这就像是一个工具箱,里面既有锤子也有螺丝刀和胶带,这些工具之间没有直接的关系,只是碰巧放在一起。 总结来说,理想的内聚类型是功能内聚,因为它确保模块高度集中于执行单一任务,易于理解和维护。
说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。...可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。...6、序列图(顺序图) 序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。...顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。 7、协作图 和序列图相似,显示对象间的动态合作关系。...可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。
一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如关联、依赖和泛化。...图例: 6.序列图 反应若干对象之间的动态协作关系,在时间轴上,对象之间是如何交互的。 序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。...顺序图可以用来展示对象之间是如何进行交互的。顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。...如果一个用例明显的混合了两种或两种以上的不同场景,可以将这个用例分为一个基础用例和一个扩展用例。...扩展关系是基础用例在某些特定条件下才触发产生的,扩展用例不是基础用例必须存在的部分,扩展用例可以单独存在,扩展用例知道基础用例的存在,而基础用例不知道扩展用例的存在。
如果一组数据组成了一个序列,且数据在序列里有位置和顺序关系,则构成的序列被称为线性表,如 Python 中的列表。 ?...根据线性表的顺序关系,可以将线性表分成两种: 顺序表:将元素按顺序存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序决定。...链表:将元素存放在通过链接构造起来的一系列存储块中,元素间的顺序关系由它们之间的链接顺序来决定。 本文先介绍顺序表,链表后面再研究。 ?...直接存储数据:如果元素数据类型相同,占用的存储单元统一,则顺序表中直接存储数据本身。 元素外置存储:如果元素的数据类型不统一,则须采用元素外置的形式,将实际数据另行存储,顺序表中保存对应元素的引用。...扩充顺序表有两种常见的策略,分别是按固定数量扩充和按当前容量加倍。 按固定数量扩充:每次扩充增加固定数目的存储位置,如每次扩充增加10个元素位置,这种策略称为线性增长扩容。
UML中有3种构造块:事物、关系和图,事物是对模型中最具有代表性的成分的抽象,关系是把事物结合在一起,图聚集了相关的事物 UML中有九种图如下: 1、用例图 描述角色以及角色与用例之间的连接关系。...可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。...6、序列图(顺序图) 序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。...顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。 7、协作图 和序列图相似,显示对象间的动态合作关系。...在需求阶段:采用用例图来描述需求 在分析阶段:采用类图来描述静态结构 在设计阶段:采用类图、包图对类的接口进行设计 在实现阶段:将类用某个面向对象的语言实现 在集成与交付阶段:构件图、包图、部署图 在测试阶段
rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用,例如 http://seanlook.com/a/we/index.php?...很多情况下rewrite也会写在location里,它们的执行顺序是: 执行server块的rewrite指令 执行location匹配 执行选定的location中的rewrite指令 如果其中某步URI...$scheme : HTTP方法(如http,https)。 $server_protocol : 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。...$server_port : 请求到达服务器的端口号。 $request_uri : 包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。...try_files /$arg_file /image404.html; } location = /image404.html { # 图片不存在返回特定的信息
如A中只匹配根目录结尾的请求,后面不能带任何字符串。...rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递参数外的字符串起作用,例如http://linuxidc.com/a/we/index.php?...执行顺序: server块的rewrite指令 location匹配 选定location中的rewrite指令,如果其中某步url被重写,则重写循环执行1-3,直到找到真是存在的文件;循环超过10次,...$server_name:服务器名称 $server_port:请求到达服务器的端口号 $request_url:包含请求参数的原始url,不包含主机名,如“/foo/bar.php?...arg_file /image404.html; } location = /image404.html { # 图片不存在返回特定的信息
MongoDB中的一些最新特性(如多文档ACID事务)需要对底层的WiredTiger存储引擎中进行基础性的增强。...译者:牟天垒,郭远威 在这个由六篇文章组成的系列中,我们将一起看一下在MongoDB中使得数据库核心可以支持事务的一些变化。...这使得MongoDB的时间和顺序在概念上变为可查询的,以便可以只检索特定时间或之前的数据。它通过创建MongoDB快照,允许数据库操作和事务可以从一个公共时间点开始工作。...oplog中的操作顺序对于确保副本正确反映主节点的内容至关重要。 MongoDB负责管理oplog的排序以及副本如何以正确的顺序访问oplog。...WiredTiger应用这些更新的顺序与MongoDB的oplog顺序并不相同。这个顺序上的差异来源于WiredTiger会在可能的情况下将多个写操作并行应用到从节点。
一、location用法总结 location可以把不同方式的请求,定位到不同的处理方式上. 1.location的用法 location ~* /js/.*/\.js 以 = 开头,表示精确匹配;如只匹配根目录结尾的请求... location 的匹配顺序是“先匹配正则,再匹配普通”。...匹配度最低,上面实现的功能是:比如网站是www.blog.com;后面什么都不输入的时候, 其他的规则也不匹配的时候,最后交给负载均衡池的服务器 3.# 匹配任何以 /documents/ 开头的地址...rewrite只能放在 server{}, location{}, if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用。...不在再判断目录在不在,如果还不在就跳转到最后一个url里 try_files /$arg_file /image404.html; } location = /image404.html { # 图片不存在返回特定的信息
设计和实现一个领域特定语言并不难,如《领域特定语言设计技巧》一文中所描述的过程,在这个上下文之下就是: 定义呈现模式。寻找适合于呈现架构的方式,如 UML 图、依赖图、时序图等。 提炼领域特定名词。...一系列的架构相关元素,如架构风格:微内核等、架构分层:MVC 等。 设计关联关系与语法。如何以自然的方式来关联这些架构元素,如关键词、解析占位符等。 实现语法解析。...接下来的问题就是,如何将这个理念有机的与系统结合在一起?并友好地提供这样的 API 接口(DSL)?...稍有区别的是,你不需要将测试和代码放在代码库中,而是可以统一的去管理它们。 而对于其它一系列的更复杂的规则来说,我们可以自定义它们,并将他们与文档结合在一起。...两个 DSL 所做的事情是,围绕特定的规则将架构元素组合到一起,这里的架构元素。 如果没有做过,这一个过程看上去是挺麻烦的,实现上有一些颇为简单的东西可以参考(复制): 架构描述语言论文(ADL)。
ListBody 一个 Widget,它沿着一个给定的轴,顺序排列它的子元素。 ListView 可滚动的列表控件。...Wrap 可以在水平或垂直方向多行显示其子元素。 Flow 一个可以实现流式布局算法的 Widget。 Stack 可以允许其子元素简单的堆叠在一起。...IntrinsicHeight 一个 Widget,它将它的子元素的高度调整其本身实际的高度。 AspectRatio 一个 Widget,试图将子元素的大小指定为某个特定的长宽比。...CustomSingleChildLayout 一个自定义的拥有单个子元素的布局 Widget。 每一种 Widget 都会影响其子元素最终的视图显示效果,如大小、位置、边框、背景等。...FractionallySizedBox(五) 由于 CustomMultiChildLayout、CustomSingleChildLayout 较为相似,我将它们与 LayoutBuilder 放在一起
于是想出一个办法,把一些功能相对来 说能成为一个整体的代码放到一起打包,通过一些数据接口和外界通信。这就是函数的由来。 那函数能给我们带来什么好处呢?...一些函数执行某 些动作,如:printf()把数据打印到屏幕上;一些函数找出一个值供程序使用, 如strlen()把指定字符串的长度返回给程序。一般而言,函数可以同时具备以 上两种功能。 ...所有简单的程序都可以定义其他额外的函数,编写程序的时候,并不是将所有的内容都放在主函数 main 当中为了方便规划、组织、编写和调试,一般的做法是将一个程序划分成若干个程序模块,每一个模块都可以完成一个功能...Compare_size(num1, num2); printf("result = %d\n", result); return 0; } 数组 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合...如下图所示: 数组中的特定元素可以通过索引访问也就是数组下标,第一个索引值为 0 如下所示: 数组定义 类型说明符 数组标识符【常量表达式】 类型说明符:表示数组中所有元素的类型☑
image 1.数据结构 数据结构是指数据的组织和操作方式。它试图找到提高数据访问效率的方法。在处理数据结构时,我们不仅关注一个数据,而且关注不同的数据集以及它们如何以有组织的方式相互关联。...image Max-Heap:堆是基于树的数据结构,其中树的所有节点都按特定顺序排列。最大堆是二叉树。它是完整的。存储在每个节点中的数据项大于或等于存储在其子节点中的数据项。 ?...通过将trie从根节点向下遍历到特定节点n,可以形成字符或数字的公共前缀,其也由特里结构的其他分支共享。 ?...image LinkedHashSet: LinkedHashSet维护插入顺序。元素按照它们添加到Set中的相同顺序进行排序。复杂性与HashSet O(1)相同。 ?...合并排序:将数组分成两半,对每一半进行排序,然后将它们合并在一起。这些半部分中的每一部分都应用了相同的排序算法。最终,它合并了两个单元素数组。O(nlogn)平均值和最差值。 ?
对于这种需求,最简单的解决方案便是将这样一组元素看成一个序列,用元素在序列里的位置和顺序,表示实际应用中的某种有意义的信息,或者表示数据之间的某种关系。...根据线性表的实际存储方式,分为两种实现模型: 顺序表,将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。 链表,将元素存放在通过链接构造起来的一系列存储块中。...如果元素的大小不统一,则须采用图b的元素外置的形式,将实际数据元素另行存储,而顺序表中各单元位置保存对应元素的地址信息(即链接)。...图b为分离式结构,表对象里只保存与整个表有关的信息(即容量和元素个数),实际数据元素存放在另一个独立的元素存储区里,通过链接与基本表对象关联。...✍ 元素存储区替换 一体式结构由于顺序表信息区与数据区连续存储在一起,所以若想更换数据区,则只能整体搬迁,即整个顺序表对象(指存储顺序表的结构信息的区域)改变了。
将各阶段划分成不同的 任务 (task) ,每个任务都是数据和计算的合体。在进行下一阶段前,当前阶段的所有任务都要执行完成。...Task管理和序列化: Task的运行要解决的问题不外乎就是如何以正确的顺序,有效地管理和分派任务,如何将Task及运行所需相关数据有效地发送到远端,以及收集运行结果 Task的派发源起于DAGScheduler...调用TaskScheduler.submitTasks将一个Stage相关的一组Task一起提交调度。...在TaskSchedulerImpl中,这一组Task被交给一个新的TaskSetManager实例进行管理,所有的TaskSetManager经由SchedulableBuilder根据特定的调度策略进行排序...写出,而Task本身通过可配置的Serializer来序列化,当前可配制的Serializer包括如JavaSerializer ,KryoSerializer等 Task的运行结果在Executor
换句话说,您不希望将这些特定的文件包含或提交到项目的主版本。这就是为什么你可能不想使用git add .命令将当前git目录中的每一个文件进行升级。...从项目中使用的编程语言或框架自动生成的文件,以及编译后的特定于代码的文件,如.o文件。 包管理器生成的文件夹,比如npm的node_modules文件夹。...此模式将忽略位于项目中任何位置的具有该特定名称的所有文件。...但是,如果您想忽略任何以特定单词结尾的文件或目录,该怎么办呢? 如果希望忽略以特定文件扩展名结尾的所有文件,则需要使用*通配符选择器,后面跟着要忽略的文件扩展名。...例如,如果你想忽略所有以.md文件扩展名结尾的markdown文件,你可以在.gitignore文件中添加以下内容: *.md 该模式将匹配项目中任何以.md扩展名结尾的文件。
3.3 组织列表 在你创建的列表中,元素的排列顺序常常是无法预测的,因为你并非总能控制用户提供数据 的顺序。这虽然在大多数情况下都是不可避免的,但你经常需要以特定的顺序呈现信息。...,同时以特定的顺序呈现它们,可使用函数sorted()。...函数 sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。 下面尝试对汽车列表调用这个函数。...以特定顺序显示 列表后,我们进行核实,确认列表元素的排列顺序与以前相同(见3) Here is the original list: ['bmw', 'audi', 'toyota', 'subaru'...在第4章,你将学习如何以更高效的方式处理列表元素。通过使用为数不多的几行代码来遍 历列表元素,你就能高效地处理它们,即便列表包含数千乃至数百万个元素。
领取专属 10元无门槛券
手把手带您无忧上云