系统分析师案例必备知识点汇总---2023系列文章二

需求获取

1、需求获取的技术:

用户访谈

优点:具有良好的灵活性,有较宽广的应用范围。 缺点是:用户忙,信息量大,记录困难,需要沟通技巧。

问卷调查

优点:短时间内收集数据。 缺点:缺乏灵活性,信息不全面,无法了解细节问题。

采样

优点:加快了数据收集的过程,提高了效率。利用数理统计原理,减少 数据收集的偏差。 缺点:主观性强。

情节串联板

优点:用户友好、交互性强,对用户界面提供了早期的评审。 缺点:花费时间,速度慢。

联合需求计划

优点:用户参与,有利于消除矛盾信息。 缺点:会议的组织与相关人员的能力。

其他方法:实地观察、收集资料等 。

四、系统架构设计

1、面向服务的架构 SOA

SOA 是一种在计算环境中设计、开发、部署和管理离散逻辑单元 (服务) 模型的方法。关于 服务,一些常见的设计原则有:明确定义的接口、自包含和模块化、粗粒度、松耦合、互操 作性。

SOA 紧密相关的技术主要有 UDDI、WSDL、SOAP 和 REST 等,而这些技术都是以 XML 为基础而 发展起来的。

UDDI

统一描述、发现和集成,提供了一种服务发布、查找和定位的方法,是服务的信 息注册规范, 以便被需要该服务的用户发现和使用它。

WSDL

Web 服务描述语言是对服务进行描述的语言。

SOAP

简单对象访问协议定义了服务请求者和服务提供者之间的消息传输规范。SOAP 用 XML 来格式化消息,用 HTTP 来承载消息。通过 SOAP,应用程序可以在网络中进 行数据交换和远程过程调用 RPC。

REST

表述性状态转移是一种只使用HTTP 和 XML 进行基于 Web 通信的技术,可以降低 开发的复杂性,提高系统的可伸缩性。 REST 提出了如下一些设计概念和准则: (1) 网络上的所有事物都被抽象为资源。 (2) 每个资源对应一个唯一的资源标识。 (3) 通过通用的连接件接口对资源进行操作。 (4) 对资源的各种操作不会改变资源标识。 (5) 所有的操作都是无状态的。

2 、微服务

微服务是一种架构风格,将单体应用划分成一组小的服务,服务之间相互协作,实现业务功 能每个服务运行在独立的进程中,服务间采用轻量级的通信机制协作 (通常是 HTTP/JSON), 每个服务围绕业务能力进行构建,并且能够通过自动化机制独立地部署。

微服务有以下优势:

(1) 通过分解巨大单体式应用为多个服务方法解决了复杂性问题。它把庞大的单一模块应 用分解为一系列的服务,同时保持总体功能不变。

(2) 让每个服务能够独立开发,开发者能够自由选择可行的技术,提供 API 服务。

(3) 微服务架构模式是每个微服务独立的部署。开发者不再需要协调其他服务部署对本服 务的影响。这种改变可以加快部署速度。

(4) 微服务使得每个服务独立扩展。你可以根据每个服务的规模来部署满足需求的规模。 甚至可以使用更适合于服务资源需求的硬件。

微服务架构带来的挑战如下:

(1) 并非所有的系统都能转成微服务。

(2) 部署较以往架构更加复杂:系统由众多微服务搭建,每个微服务需要单独部署,从而 增加部署的复杂度,容器技术能够解决这一问题。

(3) 性能问题:由于微服务注重独立性,互相通信时只能通过标准接口,可能产生延迟或 调用出错。

(4) 数据一致性问题:作为分布式部署的微服务,在保持数据一致性方面需要比传统架构 更加困难。

3、C/S 架构

二层 C/S 结构为单一服务器且以局域网为中心 ,所以难以扩展至大型企业广域网或 Internet;软、硬件的组合及集成能力有限;它的缺点主要有:

(1) 服务器的负荷太重,难以管理大量的客户机,系统的性能容易变坏;

(2) 数据安全性不好。因为客户端程序可以直接访问数据库服务器,那么,在客户端计算 机上的其他程序也可想办法访问数据库服务器,从而使数据库的安全性受到威胁。

与二层 C/S 架构相比,在三层 C/S 架构中,增加了一个应用服务器。可以将整个应用逻辑 驻留在应用服务器上,而只有表示层存在于客户机上。这种客户机称为瘦客户机。三层 C/S 架构将应用系统分成表示层、功能层和数据层三个部分。

与传统的二层架构相比,三层 C/S 架构具有以下优点:

(1) 允许合理地划分三层的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑 结构更为清晰,能提高系统的可维护性和可扩展性。

(2) 允许更灵活、有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性 上分别适应于结构清晰的三层,并且这些平台和各个组成部分可以具有良好的可升级性和开 放性。

(3) 系统的各层可以并行开发,各层也可以选择各自最适合的开发语言,使之能并行且高 效地进行开发,达到较高的性能价格比。对每一层的处理逻辑的开发和维护也会更容易些。 (4) 利用功能层可以有效地隔离表示层与数据层,未授权的用户难以绕过功能层而利用数 据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础。

B/浏览器/服务器 (Browser/Server, B/S) 架构是三层 C/S 架构的一种实现方式,其具体结 构为“浏览器/Web 服务器/数据库服务器” 。B/S 架构利用WWW 浏览器技术,结合浏览器的 多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节 约了开发成本。

  1. MVC

模型:执行业务流程 (不包括输入输出) ,存储业务数据。模型不依赖于视图和控制器,

提高了架构的灵活性。

视图:展示模型中的数据,用户的同一份数据可以通过不同的视图以不同的方式展示。

视图必须了解模型中的数据结构,对模型有很强的依赖性,但是模型对于视图则没有依 赖性。

控制器:把模型接收的事件和用户输入的数据转化为对模型方法的调用。控制器对用户

的行为作出解释,并决定调用模型的哪个方法。

使用MVC 模式来设计表现层,可以有以下的优点。

(1) 允许多种用户界面的扩展。在 MVC 模式中,视图与模型没有必然的联系,都是通过控 制器发生关系,这样如果要增加新类型的用户界面,只需要改动相应的视图和控制器即可, 而模型则不需发生改动。

(2) 易于维护。控制器和视图可以随着模型的扩展而进行相应的扩展,只要保持一种公共 的接口,控制器和视图的旧版本也可以继续使用。

(3) 功能强大的用户界面。用户界面与模型方法调用组合起来,使程序的使用更清 晰,可 将友好的界面发布给用户。

6、MVP

MVP 的优点包括:

(1) 低耦合。模型与视图完全分离,可以修改视图而不影响模型。

(2) 可以更高效地使用模型,因为所有的交互都发生在一个地方—Presenter 内部。

(3) 复用性好。可以将一个 Presenter 用于多个视图,而不需要改变 Presenter 的逻辑。 这个特性非常的有用,因为视图的变化总是比模型的变化频繁。

(4)可测试性好。如果把逻辑放在 Presenter 中,就可以脱离用户接口来测试这些逻辑(单

元测试) 。

7、MVVM

MVVM 是由 MVP 进化而来,MVVM 模式基本上与 MVP 相同,只是把 MVP 中的 P 变成了 VM,即 ViewModel,MVVM 中的数据可以实现双向绑定,当 Model 变化时,View-Model 会自动更新, View 也会自动变化。很好做到数据的一致性,不用担心,在模块的这一块数据是这个值, 在另一块就是另一个值了。所以 MVVM 模式有些时候又被称作:model-view-binder 模式。 因此 MVVM 框架比较适合逻辑复杂的前端项目,比如一些管理系统等。

8、轻量级架构

  1. SSH:指的是 Struts2(做前端控制器),Spring(管理各层的组件),Hibernate(负责持

久化层)

  1. SSM:指的是 SpringMVC(做前端控制器),Spring(管理各层的组件),Mybatis(负责持

久化层)

Hibernate 与 Mybatis 区别:

①开发方面:Hibernate 开发中,sql 语句已经被封装,直接可以使用;Mybatis 属于半自 动化,sql 需要手工完成。

②sql优化方面:对复杂查询的 sql语句进行人工调优的时候,Mybatis 更方便。

③可移植性方面:Hibernate 使用时自动生成相应的 sql语句,因此具备良好的数据库移植 性,而 Mybatis 中手动编写的 sql语句需要针对不同厂商的数据库进行修改。

本文转载于网络 如有侵权请联系删除

相关文章

  • 从B+树到LSM树,及LSM树在HBase中的应用

    Hi,我是王知无,一个大数据领域的原创作者。前言在有代表性的关系型数据库如MySQL、SQLServer、Oracle中,数据存储与索引的基本结构就是我们耳熟能详的B树和B+树。而在一些主流的NoSQL数据库如HBase、Cassandra、LevelDB、RocksDB中,则是使用日志结构合并树(Log-structuredMergeTree,LSMTree)来组织数据。本文先由B+树来引出对LSM树的介绍,然后说明HBase中是如何运用LSM树的。回顾B+树为什么在RDBMS中我们需要B+树(或者广义地说,索引)?一句话:减少寻道时间。在存储系统中广泛使用的HDD是磁性介质+机械旋转的,这就使得其顺序访问较快而随机访问较慢。使用B+树组织数据可以较好地利用HDD的这种特点,其本质是多路平衡查找树。下图是一棵高度为3的4路B+树示例。与普通B树相比,B+树的非叶子节点只有索引,所有数据都位于叶子节点,并且叶子节点上的数据会形成有序链表。B+树的主要优点如下:结构比较扁平,高度低(一般不超过4层),随机寻道次数少;数据存储密度大,且都位于叶子节点,查询稳定,遍历方便;叶子节点形成有序链

  • Java都到16了,为什么都还在用8,是越做越烂了么?

    送一波超大福利!不仅有低价ECS,更有机械键盘、AirPodsPro等好礼!昨天转了小胖哥关于Java16发布的解读(没看过的小伙伴点过来:Java16正式发布!你还学得动吗?),还是有童鞋不太了解Java目前的版本机制,所以还是有这样的留言:那么为什么大家都还在用Java8呢?从这张图可以一目了然,大家平时最喜欢的是什么?当然是白嫖啦~而从JDK8u211开始往后的版本,可都是需要商业收费的,所谓的商业收费,就是你自己开发程序使用不打紧,但是一旦当你开发的程序如果用于商业用途,也就是你的程序给你赚钱了,那此时此刻Oracle可是要跟你收费的,你的JDK的使用需要缴费获得授权才是合法的。有的人会问,如果我不缴费直接用呢?当然,Oracle也是不知道这个事情的,天底下那么多程序员他不可能每个都时刻紧盯有没有付费。不过万一你真的有那么点才华,你的产品越做越大,越被人熟知的话,总有一天树大招风会引起Oracle的注意,指不定哪天就来跟你打打知识产权的官司。毕竟这是Oracle的惯用手法了,DD毕业前在某视频网站(已被收购)实习的时候,就听闻有项目组因使用盗版Oarcle而收到律师信,最后被迫

  • 【赵渝强老师】MongoDB中的索引(上)

    索引是提高查询查询效率最有效的手段。索引是一种特殊的数据结构,索引以易于遍历的形式存储了数据的部分内容(如:一个特定的字段或一组字段值),索引会按一定规则对存储值进行排序,而且索引的存储位置在内存中,所在从索引中检索数据会非常快。如果没有索引,MongoDB必须扫描集合中的每一个文档,这种扫描的效率非常低,尤其是在数据量较大时。一、索引的基础知识下面以关系型数据库Oracle为例,介绍索引的基本原理,如下图所示:从上图可以看成,索引的本质其实就相当于是一本书的目录。当查询表中数据的时候,先查询目录(索引)中的行地址,再通过行地址查询到表中的数据,从而提高查询的性能。下图说明了在MongoDB中,索引在查询和排序中是如何工作的?通过这个例子,可以清楚的看到索引存储的是一个特定字段或者几个字段的集合,并且按照一定的规律排序。当创建集合的时候,MongoDB自动在_id上创建一个唯一性索引,由于是唯一性的,所以可以防止重复的_id值插入到集合中。通过getIndexes可以查询到MongoDB集合上的索引信息,如下图所示。当没有索引的时候,通过查看执行计划,可以看到查询的过程,如下:查询:1

  • 使用Pytorch和Matplotlib可视化卷积神经网络的特征

    在处理图像和图像数据时,CNN是最常用的架构。卷积神经网络已经被证明在深度学习和计算机视觉领域提供了许多最先进的解决方案。没有CNN,图像识别、目标检测、自动驾驶汽车就不可能实现。但当归结到CNN如何看待和识别他们所做的图像时,事情就变得更加棘手了。CNN如何判断一张图片是猫还是狗?在图像分类问题上,是什么让CNN比其他模型更强大?他们在图像中看到了什么?这是我第一次了解CNN时的一些问题。问题会随着你的深入而增加。那时候我听说过过滤器和特性映射,但不知道它们是什么,它们的作用是什么。后来我知道他们是什么,但不知道他们长什么样子,但现在我知道了。在处理深度卷积网络时,过滤器和特征映射很重要。滤镜是使特征被复制的东西,也是模型看到的东西。什么是CNN的滤镜和特性映射?过滤器是使用反向传播算法学习的一组权值。如果你做了很多实际的深度学习编码,你可能知道它们也被称作核。过滤器的尺寸可以是3×3,也可以是5×5,甚至7×7。过滤器在一个CNN层学习检测抽象概念,如人脸的边界,建筑物的边缘等。通过叠加越来越多的CNN层,我们可以从一个CNN中得到更加抽象和深入的信息。特性映射是我们通过图像的像素

  • 气象编程 | Google Earth Engine for R——提供250+ 实例

    中国第一封电子邮件之前有推送过关于GEE的文章,后台反馈的情况来看,很多人是想用,但是由于某些众所周知的原因无法使用GEE,还是那句话懂的人自然懂,想使用的人肯定想办法能用得上。就像中国第一封电子邮件富有深意的那句话:“AcrosstheGreatWallwecanreacheverycornerintheworld.(越过长城,走向世界)”,今天推荐基于R语言的GEE”工具箱“!GoogleEarthEngineforR rgeeisabindingpackageforcallingGoogleEarthEngineAPIfromwithinR.Additionally,severalfunctionshavebeenimplementedtomakesimpletheconnectionwiththeRspatialecosystem.Thecurrentversionofrgeehasbeenbuiltconsideringtheearthengine-api0.1.227.NotethataccesstoGoogleEarthEngineisonlyavailabletoreg

  • Android截屏的几种实现

    #Android截屏的几种实现##方式一 publicstaticBitmapcapture(Activityactivity){ activity.getWindow().getDecorView().setDrawingCacheEnabled(true); Bitmapbmp=activity.getWindow().getDecorView().getDrawingCache(); returnbmp; }复制此种方式比较简单只需传入当前要截取屏幕的Activity对象即可,不需要添加任何权限,后续可将截图的bitmap保存到本地即可;缺点:无法截取WebView页面,截屏后是白屏!##方式二使用adbShell命令截屏例如:adbshellscreencap-p/sdcard/sreenshot1.png命令格式:adbshellscreencap-p+文件路径+文件名##方式三从Android5.0开始Google开放了截屏的api截取方式如下:1.在Activity中开启截屏服务 if(Build.VERSION.SDK_INT>=21){ startActivit

  • 复杂场景下的复杂缺陷检测方法--深度学习算法综述

    来源:公众号器视觉授权一、背景知识随着自动化技术的快速发展,在工业生产中很多需要人工操作的环节逐渐转由机器完成,工业生产自动化也将越来越多的工人们从枯燥乏味的工作中解放出来,让他们去发挥更大的价值。产品表面缺陷检测是工业生产中的重要环节,是产品质量把控的关键步骤,借助缺陷检测技术可以有效的提高生产质量和效率。但是由于设备及工艺等因素的影响,产品表面的缺陷类型往往五花八门,比如织物生产中方出现的污点、破损,金属产品上的划痕、裂纹、凹凸不平等各种不同类型的缺陷,如下图所示。单张图片中的缺陷多样且不同缺陷表现形式的也不相同,给缺陷的自动化检测带来了困难。二、传统算法传统的表面缺陷检测算法结构通过图像预处理得到便于检测的图像,随后借助统计机器学习方法来提取图像特征,进而实现缺陷检测的目标。图像预处理通常包括直方图均衡化、滤波去噪、灰度二值化、再次滤波几部分,以得到前后景分离的简单化图像信息;随后利用数学形态学、傅里叶变换、Gabor变换等算法以及机器学习模型完成缺陷的标记与检测。上述传统算法在某些特定的应用中已经取得了较好的效果,但仍然存在许多不足。例如:图像预处理步骤繁多且具有强烈的针对性,

  • Django进阶-9-ORM分组与聚合查询

    一、ORM查询性能①普通查询#for循环10次发送10次数据库查询请求 obj_list=models.Articles.objects.all() forrowinobj_list: print(row.name)复制这种查询方式第一次发送查询请求每for循环一次也会发送查询请求②select_related()结果为对象注意query_set类型的对象都有该方法。查询时主动完成连表形成一张大表,for循环时不用额外发请求;试用场景:节省硬盘空间,数据量少时候适用相当于做了一次数据库查询;obj_list=models.Articles.objects.all().select_related('category') forrowinobj_list: print(row.category.name)复制③prefetch_related()做连表操作依然会影响查询性能,所以出现prefetch_related;prefetch_related:不做连表,多次单表查询外键表,去重之后显示,2次单表查询(有几个外键做几次1+N次单表查询)适用场景:效率高,数据量大的

  • 华为校招2016.09机试 第2题: 字符串查找

    华为校招2016.09机试第2题:字符串查找描述:输入两个字符串,查找字符串1中与字符串2最先匹配的内容,将匹配的字符串输出。字符串2支持?通配符,?代表任意一个字符。已知字符串2不可能出现只有?的情况。字符串1和字符串2的最大长度为128。运行时间限制:无限制内存限制:无限制输入:待查找字符串,关键字字符串输出:输出字符串样例输入:abcdefabcdeg,a?c??f样例输出:abcdef已AC代码:#include<cstdio> #include<cstring> usingnamespacestd; #defineN1000 intmystrncmp(char*s,char*t,intn){ for(intk=0;k<n;k++){ if(s[k]==t[k]||t[k]=='?'); elsereturn0; } return1; } intmain(){ charstr[N],s[N],t[N]; scanf("%s",s); char*pch=strtok(s,",");//str

  • 别再学习框架了

    来源:公众号码农翻身|作者:EduardsSizovs在网上看到了这篇文章,有标题党嫌疑,虽然作者说得有点极端,但是把大部分时间投入到学习那些基础的、不变的知识中去,这个观点我也认可,翻译过来大家看看。作者:EduardsSizovshttps://sizovs.net/2018/12/17/stop-learning-frameworks/ 我们是程序员,我们需要紧跟最新的技术,每天都学习新的编程语言,框架,类库,对于最新的工具,我们学得越多越好。能够紧跟Angular,React,Vue,Riot,Ember,Knockout这些最新的东西是一件有趣的事情。但是,我们在浪费时间!时间是我们最宝贵的资源,时间是有限的,不可再生,你也不能购买更多的时间。技术界就像时尚界,以“光速”在变化,我们必须跑得飞快才能跟上,这种竞赛没有赢家,因为竞赛没有尽头。©TheWolfofWallStreet(2013)byMartinScorsese我的导师曾经给我“上过一课”:导师:“爱德华,你在做什么?”我(很自豪):我在读一本书,是关于使用GWT构建现代的Java应用程序的。导师:“为了啥?”我:

  • MongoDB学习笔记

    本篇文章介绍学习MongoDB的一些常用命令,希望能帮助大家.常用操作Help查看命令提示db.help();db.yourColl.help();db.youColl.find().help();切换/创建数据库useyourDB;当创建一个集合(table)的时候会自动创建当前数据库查询所有数据库showdbs;删除当前使用数据库db.dropDatabase();从指定主机上克隆数据库从指定主机上克隆数据库从指定的机器上复制指定数据库数据到某个数据库db.copyDatabase("mydb","temp","127.0.0.1");将本机的mydb的数据复制到temp数据库中修复当前数据库db.repairDatabase();查看当前使用的数据库db.getName();显示当前db状态db.stats();当前db版本db.version();查看当前db的链接机器地址db.getMongo();Collection聚集集合操作创建一个聚集集合(table)db.createCollection(“collName

  • Python3下机器学习实战KNN代码出现AttributeError: ‘dict’ object has no attribute错误

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/78639317 出现错误的代码时:result=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)复制错误显示:AttributeError:'dict'objecthasnoattribute'iteritems'复制之所以会出现上述错误是因为python3中已经没有这个属性,直接改为items即可:result=sorted(classCount.items(),key=operator.itemgetter(1),reverse=True)复制知识点补充:operator.itemgetter函数operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。a=[1,2,3] b=operat

  • Scrypt算法

    Scrypt算法简介Scrypt是内存依赖型的POW算法,莱特币采用此算法。第一个使用Scrypt算法的数字货币是Tenebrix,而后该算法被莱特币使用。莱特币创始人在莱特币创世帖中介绍了莱特币采用的共识机制,挖矿算法,发行总量,挖矿难度等相关重要信息。李启威说明了莱特币所使用的挖矿算法为数字货币Tenebrix所使用的Scrypt算法,是一种符合PoW共识机制的算法。Scrypt算法过程中也需要计算哈希值,但是,Scrypt计算过程中需要使用较多的内存资源。其它使用Scrypt算法的数字货币还有数码币(DigitalCoin)、狗狗币(DogeCoin)、幸运币(LuckyCoin)、世界币(WorldCoin)等。Scrypt的诞生由于比特币将hash算法作为pow工作量证明的重要手段,后续的各种采用pow的数字货币也延续了这个设计,以SHA256、MD5(MD5后来被证明不具备强碰撞性数字货币一般不用)为代表算法在设计之初属于算法都是算力敏感型,意味着计算资源是瓶颈,主频越高的CPU进行Hash的速度也越快。这个设计直接导致后来的矿机出现,采用ASIC芯片的矿机更是将这种运算能

  • JDK容器学习之Queue:LinkedBlockingQueue

    基于链表阻塞队列LinkedBlockingQueue基于链表的无边界阻塞队列,常用与线程池创建中作为任务缓冲队列使用I.底层数据结构先看一下内部定义,与ArrayBlockingQueue做一下对比,顺带看下这两者的区别及不同的应用场景/**队列的容量,orInteger.MAX_VALUEifnone*/ privatefinalintcapacity; /**队列中实际的个数*/ privatefinalAtomicIntegercount=newAtomicInteger(); /** *队列头,但其中没有有效数据,它的下一个才保存实际的数据 *Headoflinkedlist. *Invariant:head.item==null */ transientNode<E>head; /** *队列尾,其内包含有效的数据 *Invariant:last.next==null */ privatetransientNode<E>last; /**出队的锁,etc*/ privatefinalReentrantLocktakeLock=newReent

  • springboot整合rabbitMQ 死信队列(基本)

    创建两个队列QA和QB,两者队列TTL分别设置为10S和40S,然后在创建一个交换机X和死信交换机Y,它们的类型都是direct,创建一个死信队列QD,它们的绑定关系如下 pom.xml文件<?xmlversion="1.0"encoding="UTF-8"?> <projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactI

  • 腾讯云媒体处理获取智能审核模板列表api接口

    1.接口描述接口请求域名:mps.tencentcloudapi.com。 根据智能审核模板唯一标识,获取智能审核模板详情列表。返回结果包含符合条件的所有用户自定义模板及系统预置智能审核模板。 默认接口请求频率限制:10次/秒。 APIExplorer提供了在线调用、签名验证、SDK代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成SDK调用示例。 2.输入参数以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。 参数名称 必选 类型 描述 Action 是 String 公共参数,本接口取值:DescribeContentReviewTemplates。 Version 是 String 公共参数,本接口取值:2019-06-12。 Region 否 String 公共参数,本接口不需要传递此参数。 Definitions.N 否 ArrayofInteger 智能审核模板唯一标识过滤条件,数组长度限制:50。 Offset 否 Integer 分页偏移量,默认值:0。 L

  • C语言初学者代码中的常见错误与瑕疵(22)

    C语言初学者代码中的常见错误与瑕疵(22)

  • 访问者模式

    是我没有理解正确还是?这个模式为什么要单独出来。不就是状态模式的广度增加版而已嘛? 个人感觉非常少的合适的场景。看状态模式就好了。一样的思想。 多个状态的状态模式=》多个元素需要分别处理状态=》多个元素需要有各自的操作=》访问者模式。 //又是一个貌似看懂结构,但无法理解的模式。 //根据之前的经验,例子非常重要,状态模式也是无法理解,做一个合适的例子,马上理解。恩。看定义,搞清正确场合,制定正确例子。 //Representanoperationtobeperformedontheelementsofanobjectstructure. //Visitorletsyoudefineanewoperationwithoutchangingtheclassesoftheelementsonwhichitoperates. //表示作用于某结构所有元素的一个操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。 //fk,不能理解英文,中文自己感觉肯定是直译。会对本质含义存在点不破的可能。再找一个解释吧。 //将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在

  • 完成个人中心—导航标签

    1.个人中心—视图函数带标签页面参数tag@app.route('/usercenter/<user_id>/<tag>')defusercenter(user_id,tag):  iftag==‘1':    returnrender_template('usercenter1.html',**context) 1#某用户发布过的所有评论 2@app.route('/commentaries/<user_id>',methods=['GET','POST']) 3defcommentaries(user_id): 4user=User.query.filter(User.id==user_id).first() 5content={ 6'userCommentaries':user.commentaries, 7'books':user.book, 8'num':len(user.commentaries), 9'user2':user 10} 11returnrender_templa

  • vscode自定义主题

    { "author":"akamud", "name":"OneLight", "colors":{ "activityBar.background":"#C7EDCC", "activityBar.foreground":"#121417", "activityBarBadge.background":"#526FFF", "activityBarBadge.foreground":"#FFFFFF", "button.background":"#5871EF", "button.foreground":"#FFFFFF", "button.hoverBackground":"#6B83ED", "diffEditor.insertedTextBackground":"#00809B33", "dropdown.background":"#FFFFFF", "dropdown.border":"#DBDBDC", "editor.background":"#C7EDCC", "editor.foreground":"#000000", "editor.lineHighlightBac

  • Android 动画 6问6答

    1.view动画有哪些需要注意的? 答:view动画本身比较简单。http://www.cnblogs.com/punkisnotdead/p/5179115.html看这篇文章的第五问就可以了。   2.如何给viewGroup子元素出场时增加动画效果? 答:以listview为例。 1<?xmlversion="1.0"encoding="utf-8"?> 2<layoutAnimationxmlns:android="http://schemas.android.com/apk/res/android" 3android:delay="0.5" 4android:animationOrder="normal" 5android:animation="@anim/viewanim" 6> 7</layoutAnimation>复制 ViewCode 1<?xmlversion="1.0"encoding="utf-8"?> 2<setxmlns:android="http://schemas.android.

相关推荐

推荐阅读