一个好的域名有哪些原则?从细节上提升网站的影响力。 image.png 如何选择域名? 1.选择一个好的域名注册网站。...有些域名是别人不得已放弃的,是之前做了一些操作违反了搜索引擎规则被处罚降权,所以,选择域名时候,一定要查域名的历史记录。 一个好的域名有哪些原则? 据小编从网站seo人员了解到。...一个好的域名应该具备以下原则。 1.域名对产品或服务在市场上有推广作用。一个好的域名能让客户轻松知道该网站是做什么的,方便客户判断是不是自己想要的,从而快速触达到真正的客户。...经过以上,许多企业对如何选择域名和一个好的域名有哪些原则的问题上,有一个简单直观的了解。...还没建网站的先以上文知识为基础去解决域名;如果已经建立网站的,发现域名没搞好,可以重新去选择一个域名注册,不要嫌麻烦,一个好的域名不管是对用户还是搜索引擎,都是极大利好。
CSS3 :last-child 选择器 指定属于其父元素的最后一个子元素的 p 元素的背景色 p:last-child { background:#ff0000; } CSS3 :nth-last-child...() 选择器 规定属于其父元素的第二个子元素的每个 p 元素,从最后一个子元素开始计数: p:nth-last-child(2) { background:#ff0000; } p:last-child...等同于 p:nth-last-child(1) CSS3 :nth-last-of-type() 选择器 规定属于其父元素的第二个 p 元素的每个 p,从最后一个子元素开始计数: p:nth-last-of-type...(2) { background:#ff0000; } 对于:nth-child选择器,在简单白话文中,意味着选择一个元素: 这是个段落元素 这是父标签的第二个孩子元素 对于:nth-of-type选择器...,意味着选择一个元素: 选择父标签的第二个段落子元素 例子: p:nth-child(2)悲剧了,其渲染的结果不是第二个p标签文字变红,而是第一个p标签,也就是父标签的第二个子元素。
目录 1 需求 2 实现 1 需求 现在从数据库查询出一个list 集合的数据,是一个实体类,现在需要根据多个字段进行分组,最后只是返回一个map 集合。...一层一层的 2 实现 如果你想在最后一层的列表数据上进行计算,并将计算结果保存并返回一个Map集合,可以按照以下方式修改代码: import java.util.List; import java.util.Map...calculateValue方法接收一个最后一层的列表数据,并根据实际需求进行计算,并返回计算结果。这样,最终的分组结果将包含计算结果的Map集合。...如果在最后一层,需要传另外的参数 如果calculateValue方法需要接收一个最后一层的列表数据和一个额外的字符串变量,你可以将该变量添加到方法的参数列表中,并在Collectors.collectingAndThen...,calculateValue方法的参数列表中添加了一个String类型的额外参数extraParameter。
如果多个端口都可通往目标地址,选择用哪个端口才是最优路径呢?依据的就是路由表。路由表就是路由器的灵魂,是多个路由条目的集合。路由条目必须有5个项目:前缀,掩码,下一跳,管理距离AD,度量。...路由协议会给每一条路径计算出一个数,这个数就是度量值,通常这个值是没有单位的。值越小,路径越佳。最后会选出该协议认为的最优路由,提交给路由表 路由条目格式知道后可以开始生成路由表了。...但实际上此时R1去ping R2的环回口22.1.1.1/24,仍会选择之前设置的静态路由,而非选择默认路由,原因就是最长匹配原则。...显然上图中的22.1.1.0/24比0.0.0.0/0掩码更长更精确,所以路由器会选择更精确的路由条目。可以认为默认路由是保底用的,其他都匹配不了,才选择默认路由。...前缀和掩码相同时AD值小的才加入路由表。当然如果前缀和掩码任一不同,则不论AD值大小,统统加入路由表。 路由条目被写入路由表后,具体选择哪条路由用最长匹配原则。
数据流图是软考当中比较重要的一部分考点,不仅上午的选择题会考,而且下午要考一个大题。所以对数据流图的学习不容忽视。...比如,人不可能只吃饭,不大小便。 ? 对于加工,只有输出,没有输入,违反了数据守恒原则。比如,人不可能一直大小便,但不吃饭。 ? 数据流经过加工之后,数据流的关系,如图: ?...在数据字典中有4种类型的条目: 1、数据项条目:通常为数据项的值类型,允许的取值范围等 2、数据流条目:给出某个数据流的定义,列出该数据流的各组成数据项。...应用 下面我看一道选择题,这道题完全能体现上面所有的原则,最具代表性。 ?...总结 数据流图题,相对而言还是很简单,只要记得三大原则,相信你没有问题,最后祝大家明天考试顺利,取得优异的成绩。
最后,通过两个地址翻译的例子,详细解释了MMU地址翻译的过程。 1. 什么是虚拟内存? 虚拟内存能够创建一个连续的更大的空间给进程使用,出现的原因是由于主存的空间是有限。...虚拟内存的作用 虚拟内存将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,可以高效地使用主存。...局部性原则保证了在任意时刻, 程序将往往在一个较小的活动页面集合上工作,这个集合叫做工作集或者常驻集。 换句话说, 局部性原则揭示了一个现象:在一段时间内,我们会反复调入或调出同一个或几个虚拟页页面。...我们只根据索引来查找组,每一个条目都有一个标记位。一个 TLB 条目如果有效,它就含有一个物理地址。 5.1.3 页表 ? 页表的前 16 个条目 现在,我们还需要页表。...遍历这 4 个条目,有一个标记位为 7 的项,但它不是我们想要的,它的有效位为 0。再往后找,找到一个标记位为 3 并且有效位为 1。 所以,我们在 TLB 中找到了页表条目。页表条目返回这个值。
例如这个: hasNext()方法告诉我们集合中是否还有剩余的条目没有遍历到. next()方法返回下一个条目....它只是用迭代器来遍历菜单里面的条目. 最后服务员的代码如下: 测试代码: 我们做了哪些修改? 我们只是为菜单添加了createIterator()方法....最后看下改进后的设计类图: 迭代器模式定义 迭代器模式提供了一种访问聚合对象(例如集合)元素的方式, 而且又不暴露该对象的内部表示....它所遍历的集合的顺序是根据集合来定的, 也有可能会遍历出来的元素值会重复. 单一职责设计原则 一个类应该只有一个变化发生的原因....写代码的时候这个原则很容易被忽略掉, 只能通过多检查设计来避免违反原则. 所谓的高内聚, 就是只这个类是围绕一套关连的函数而设计的. 而低内聚就是只这个类是围绕一些不相关的函数而设计的.
例如这个: hasNext()方法告诉我们集合中是否还有剩余的条目没有遍历到. next()方法返回下一个条目....它只是用迭代器来遍历菜单里面的条目. 最后服务员的代码如下: 测试代码: 我们做了哪些修改? 我们只是为菜单添加了createIterator()方法....还是需要手动实现的: 最后别忘了给菜单规定一个统一的接口: 服务员Waitress类里面也使用Menu来代替具体的菜单, 这样也减少了服务员对具体类的依赖(针对接口编程, 而不是具体的实现): 最后看下改进后的设计类图...它所遍历的集合的顺序是根据集合来定的, 也有可能会遍历出来的元素值会重复. 单一职责设计原则 一个类应该只有一个变化发生的原因....写代码的时候这个原则很容易被忽略掉, 只能通过多检查设计来避免违反原则. 所谓的高内聚, 就是只这个类是围绕一套关连的函数而设计的. 而低内聚就是只这个类是围绕一些不相关的函数而设计的.
前缀索引 使用索引的奇淫技巧 组合索引的最佳方式 ESR 原则 合理使用部分索引 后台创建索引 怎么查看我到有没有用到索引?...这些文本索引不存储特定于语言的停止词(例如**“the”,“a”,“or”**),并且在一个集合中只存储根词的词干。有关文本索引和搜索的更多信息,请参见文本索引。...这些索引在其范围内具有更随机的值分布,但只支持相等匹配,而不支持基于范围的查询。 索引特性 唯一索引 在创建集合期间,MongoDB 在_id字段上创建唯一索引,这也是默认的唯一索引。...比如该文档 2000 年前的数据为垃圾数据,不常用,那就可以根据时间大于 2000 年创建索引 稀疏索引 索引的稀疏属性可确保索引仅包含具有索引字段的文档的条目。索引会跳过没有索引字段的文档。...组合索引的最佳方式 ESR 原则 1.精准匹配(Equal)的放前面 2.排序(Sort)的放中间 3.范围匹配(Range)的方最后 比如一条查询语句 db.largeClass.find({className
不过对于 Python 程序员来说,我认为这并非是一个最佳选择。...你可以花上一大把时间,来学习如何在 Python 中利用 __new__ 方法或元类(metaclass)来实现单例设计模式,但最后你会发现,自己 95% 的需求都可以通过直接定义一个模块级全局变量来搞定...写在最前面的注意事项: “原则”不是“法律”,它只起到指导作用,并非不可以违反 “原则”的后两条与接口(Interface)有关,而 Python 没有接口,所以对这部分的诠释是我的个人理解,与原版可能略有出入...如何选择合适的方式来让代码符合“开放-关闭原则”,需要根据具体的需求和场景来判断。这也是一个无法一蹴而就、需要大量练习和经验积累的过程。...让我们最后再总结一下吧: “S: 单一职责原则”认为一个类只应该有一种被修改的原因 编写更小的类通常更不容易违反 S 原则 S 原则同样适用于函数,你可以让函数和类协同工作 “O: 开放-关闭原则”认为类应该对改动关闭
讲解了这两类复制的有点和缺点并讨论他们耗费和限制。 active-passive复制 一个主,接受写操作;主将其数据复制到一个或多个从。一旦主故障,则选择一个从提升为主。...因此减少访问网络是高效复制算法的设计原则。这两类技术通过交换网络请求和更多冗余处理来实现这个原则。图4说明该思想。日志传输到replica后,需要回放。...只存储更改字段的值,而不是整个记录的内容,大大减小了日志大小,从而也减小了每个事务需要发送的日志量。每个日志条目都有一个唯一符LogID。...主一旦构建了读写集合,就启动这个复制。active-memory假设,针对每个事务,主包含一个本地的write-set(包含一系列唯一键以及即将更改的新值)。...t的状态可能四种的一种:1)损坏日志:t的日志至少有一个LogID_check和LogID不匹配,或者最后一个日志的IsLast=true。这种情形下,数据记录保持不变,因为在更新前传输undo日志。
B+树的两个明显特点: 数据只出现在叶子节点(查询效率高) 所有叶子节点增加了一个链指针(便于范围查询) (2)B树(MongoDB采用) ?...(2) B+树的数据只出现在叶子节点上,因此在查询单条数据的时候,查询速度非常稳定。因此,在做单一数据的查询上,其平均性能并不如B树。...}); 和MySQL一样,组合索引具有一个特征:最左匹配原则。...(3)范围(Range)匹配的字段放在最后面,比如这里的age字段; 上面这个ESR原则,同样适用于MySQL 和 ElasticSearch。...这是某些类型的信息的理想选择,例如机器生成的事件数据,日志和会话信息,这些信息只需要在数据库中保存有限的时间。
2 raft的基础 raft也是采取了上述的状态机的模型,只是它使用了强领导人的机制,在集群中选择一个领导者,只由领导者从客户端接收处理数据,并将该数据复制到其他从属者的机器上,并在安全性的各种机制的保证下...特性 解释 选举安全特性 对于一个给定的任期号,最多只会有一个领导人被选举出来(5.2 节) 领导人只附加原则 领导人绝对不会删除或者覆盖自己的日志,只会增加(5.3 节) 日志匹配原则 如果两个日志在相同的索引位置的日志条目的任期号相同...如果一个领导人已经在给定的索引值位置的日志条目应用到状态机中,那么其他任何的服务器在这个索引位置不会提交一个不同的日志(5.4.3 节) 1)选举安全特性其实是通过了选择中具体的操作来确定在一次的选举中只有一个领导人被选择出来...2)领导人的只附加原则是指所有的信息流都是从领导者流入到跟随者中,这样可以保证领导者自身的数据的一致性,保证了不会出现领导者已经应用的日志被出现更改的情况。...如果对于一个跟随者,最后日志条目的索引值大于等于 nextIndex,那么:发送从 nextIndex 开始的所有日志条目: 如果成功:更新相应跟随者的 nextIndex 和 matchIndex 如果因为日志不一致而失败
“龙书”里的示例更为直观,例如表达式语句 E = M * C ** 2进行词法分析后会得到如下的类似结果: [id,指向符号表中E的条目的指针] [assign_op] [id,指向符号表中M的条目的指针...,else等 Whitespace- 指一组非空的空格字符或换行符或制表符 很多程序设计语言中的分词原则基本都会覆盖关键字,运算符,标识符,常量,标点符号,他们也会在后面的实现中被作为终止符集合,课程板书中也提供了...COOL分词原则的类正则形式。...这个过程是围绕ε -closure状态集合的概念展开的,大致的过程就是从起点开始,每次将当前状态和通过若干次ε转换(它是一个特殊的状态转移函数,表示转换后的状态还是当前状态)作为一个新的ε -closure...状态集合 ,使用矩阵记录每个ε -closure集合转换前后的集合,最后对整个状态转移矩阵进行标记重命名,就可以得到一个DFA,事实上转化后的DFA中的每一个状态,就是NFA中的一个ε -closure
一个典型的场景是,在一个分布式数据库系统中,如果各个节点的初始状态一致,每个节点执行相同的操作序列,那么他们最后能够得到一个一致的状态。...Paxos算法分为两个阶段,具体如下: 阶段一(preprae): (a) Proposer收到client请求或者发现本地有未提交的值,选择一个提案编号N,然后向半数以上的Acceptor发送编号为N...而选出的leader的logIndex必须大于等于大多数节点,因此leader肯定有最新的日志 安全原则: 选举安全原则:对于一个给定的任期号,最多只会有一个领导人被选举出来 状态机安全原则:如果一个leader...已经在给定的索引值位置的日志条目应用到状态机中,那么其他任何的服务器在这个索引位置不会提交一个不同的日志 领导人完全原则:如果某个日志条目在某个任期号中已经被提交,那么这个条目必然出现在更大任期号的所有领导人中...领导人只附加原则:领导人绝对不会删除或者覆盖自己的日志,只会增加 日志匹配原则:如果两个日志在相同的索引位置的日志条目的任期号相同,那么我们就认为这个日志从头到这个索引位置之间全部完全相同
聚合 正如前面所讲,一个聚合是一系列对象(实体和值对象)的集合,通过聚合根将所有关联对象绑定在一起。本节将介绍与聚合相关的最佳实践和原则。...因此,当你得到一个聚合时,所有的子集合已经作为查询的一部分被检索出来了,不需要任何额外配置。 ABP框架有助于在您的应用程序中实现这一原则。...然而,它是领域驱动设计的一个重要实践。 聚合和聚合根最佳实践 以下最佳实践确保实现上述原则。 只通过ID引用其他聚合 一个聚合应该只通过其他聚合的ID引用聚合,这意味着你不能添加导航属性到其他聚合。...考虑数据的完整性、有效性和一致性。 而实际: 大多数聚合根没有子集合。 一个子集合最多不应该包含超过100-150个条目。...一个设计良好的构造函数,担负以下职责: 获取所需的实体属性参数,来创建一个有效的实体。应该强制只传递必要的参数,并可以将非必要的属性作为可选参数。 检查参数的有效性。 初始化子集合。
而ipset就像一个集合,把需要封闭的ip地址放入这个集合中,ipset 是O(1)的性能,用的hash方式所以特别快。...ipset的一个优势是集合可以动态的修改,即使ipset的iptables规则目前已经启动,新加的入ipset的ip也生效。...port,hashsize,maxelem,timeout都是可选择参数,可以没有。...只后1.2.3.0/24 这一段 IP 是属于 r2d2 集合的,执行了 ipset add r2d2 1.2.3.0/30 nomatch 之后,1.2.3.0/24 里 1.2.3.0/30 这部分...没有注明协议,默认就是 TCP,下面一条命令则是指明了是 UDP 的 53 端口。最后一条命令指明了一个 IP 地址和一个端口号范围,这也是合法的命令。
当然,上述系统已经将单点问题压缩到了一个很小的部分,那么接下来,我们将进一步用一种共识算法 ——Raft,来将最后这个硬骨头啃下来。...多数票原则还有一个重要的性质就是,任何两个投出多数票的集群必定相交。...Start(command) (index, term, isleader) Start 只在 Leader 上调用才有效,其含义在于让多数服务器在一个新的日志条目(Log Entry,其中包含 Command...这样在某次选举撞车后,由于 election timeout 选择的不同,下一次发起选举就必然会错开。...但是新的 Leader 如果无从得知,就只等根据多数票原则(有半数以上的服务器有该日志条目)当做其提交了。 参考 英文板书 视频
如果大家想在 Python 中标记具有相同名称的条目,可以使用字典(Dictionary)或集合(Set)来实现。这取决于你们希望如何存储和使用这些条目。下面我将提供两种常见的方法来实现这个目标。...else: row['flag'] = 0最后,我们将更新后的 CSV 文件写回磁盘。...来找到列表中的唯一条目。...最后,函数返回一个包含唯一条目的集合。你可以直接遍历这个集合或将其转换为列表进行进一步处理。这几种方法可以根据你的具体需求选择。...如果你需要知道每个条目的出现次数,使用字典;如果只需要找到唯一的条目,使用集合即可。
领取专属 10元无门槛券
手把手带您无忧上云