说说

3月08

  • 淘宝 NPM 镜像站切换新域名啦

    13:35 作者:amsds

    淘宝 NPM 镜像站(npm.taobao.org)自 2014 年 正式对外服务,一开始只是想简单地做 NPM 的中国镜像站点,回馈国内前端社区,不知不觉竟然一直运行到现在。当年参考 Ruby Gems 淘宝镜像 的方式,跟阿里开源组织申请了 taobao.org 的二级域名,镜像站点名称也自然而然地取名为 淘宝 NPM 镜像站 (下称 CNPM)。【转自慕课】https://www.imooc.com

    技术
    分享到

3月03

  • leetcode算法9.回文数

    19:19 作者:amsds

    👏👏👏哈喽!大家好,我是【学无止境小奇】,一位热爱分享各种技术的博主!😍😍😍⭐【学无止境小奇】的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过。✊✊✊⭐【学无止境小奇】的博客中所有涉及命令、代码的地方,除了提供图片供大家参考,另外会在图片下方提供一份纯文本格式的命令或者代码方便大家粘贴复制直接执行命令或者运行代码。🤝🤝🤝⭐如果你对技术有着浓厚的兴趣,欢迎关注【学无止境小奇】,欢迎大家和我一起交流。😘😘😘❤️❤️❤️感谢各位朋友接下来的阅读❤️❤️❤️【转自慕课】https://www.imooc.com

    技术
    分享到
  • 插入法排序

    19:19 作者:amsds

    插入排序法 所谓插入排序法乃是将一个数目插入该占据的位置。假设我们输入的是 "5,1,4,2,3" 我们从第二个数字开始,这个数字是1,我们的任务只要看看1有没有正确的位置,我们的做法是和这个数字左边的数字来比,因此我们比较1和5,1比5小,所以我们就交换1和5,原来的排列就变成了"1,5,4,2,3 "接下来,我们看第3个数字有没有在正确的位置。这个数字是4,它的左边数字是5,4比5小,所以我们将4和5交换,排列变成了 "1,4,5,2,3 "我们必须继续看4有没有在正确的位置,4的左边是1,1比4小,4就维持不动了。再来看第四个数字,这个数字是2,我们将2和它左边的数字相比,都比2大,所以就将2一路往左移动,一直移到2的左边是1,这时候排序变成了 "1,2,4,5,3 "最后,我们检查第五个数字,这个数字是3,3必须往左移,一直移到3的左边是2为止,所以我们的排列就变成了 "1,2,3,4,5 "排序因此完成了。所谓插入排序法,就是检查第i个数字,如果在它的左边的数字比它大,进行交换,这个动作一直继续下去,直到这个数字的左边数字比它还要小,就可以停止了。插入排序法主要的回圈有两个变数:i和j,每一次执行这个回圈,就会将第i个数字放到左边恰当的位置去。基本思想输入一个元素,检查数组列表中的每个元素,将其插入到一个已经排好序的数列中的适当位置,使数列依然有序,当最后一个元素放入合适位置时,该数组排序完毕。程序描述例1:输入一个数,插入一个各元素已经按照升序排列的数组中,插入后使数组中元素仍然是按照升序排列的。思想:把欲插入的数与数组中各数逐个比较, 当找到第一个比插入数大的元素i时,该元素之前即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个后移一个单元。最后把插入数赋予元素a[i]即可。如果被插入数比所有的元素值都小则插入最前位置。C语言:例2:输入一个数,插入一个各元素已经按照降序排列的数组中,插入后使数组中元素仍然是按照降序排列的。思想:把欲插入的数与数组中各数逐个比较, 当找到第一个比插入数小的元素i时。如果被插入数比所有的元素值都小则插入最后位置。【转自慕课】https://www.imooc.com

    技术
    分享到
  • Spring认证-Spring 安全架构专题教程

    19:19 作者:admin

    本指南是 Spring Security 的入门,提供对框架设计和基本构建块的深入了解。我们只涵盖应用程序安全的基础知识。但是,通过这样做,我们可以消除使用 Spring Security 的开发人员所遇到的一些困惑。为此,我们通过使用过滤器,更一般地说,通过使用方法注释来查看在 Web 应用程序中应用安全性的方式。当您需要对安全应用程序的工作原理、如何对其进行自定义,或者需要了解如何考虑应用程序安全性时,请使用本指南。本指南并非旨在作为解决最基本问题以外的其他问题的手册或方法(还有其他来源),但它可能对初学者和专家都有用。Spring Boot 也经常被引用,因为它为安全应用程序提供了一些默认行为,并且有助于理解它如何适应整体架构。笔记所有原则同样适用于不使用 Spring Boot 的应用程序。身份验证和访问控制应用程序安全归结为两个或多或少独立的问题:身份验证(你是谁?)和授权(你被允许做什么?)。有时人们会说“访问控制”而不是“授权”,这可能会让人感到困惑,但这样想是有帮助的,因为“授权”在其他地方超载。Spring Security 的架构旨在将身份验证与授权分开,并为两者提供策略和扩展点。验证认证的主要策略接口是AuthenticationManager,它只有一种方法:public interface AuthenticationManager {   Authentication authenticate(Authentication authentication)     throws AuthenticationException; }AnAuthenticationManager可以在其authenticate()方法中执行以下三件事之一:如果它可以验证输入代表有效的主体,则返回一个Authentication(通常带有authenticated=true)。AuthenticationException如果它认为输入代表无效的主体,则抛出一个。null如果不能决定就返回。AuthenticationException是运行时异常。它通常由应用程序以通用方式处理,具体取决于应用程序的样式或目的。换句话说,用户代码通常不会捕获并处理它。例如,Web UI 可能会呈现一个表明身份验证失败的页面,后端 HTTP 服务可能会发送 401 响应,WWW-Authenticate根据上下文带有或不带有标头。最常用的实现AuthenticationManager是ProviderManager,它委托给一个AuthenticationProvider实例链。AnAuthenticationProvider有点像 an AuthenticationManager,但它有一个额外的方法来允许调用者查询它是否支持给定Authentication类型:public interface AuthenticationProvider { Authentication authenticate(Authentication authentication) throws AuthenticationException; boolean supports(Class authentication); }方法中的Class参数supports()是真的Class(只询问它是否支持传递给authenticate()方法的东西)。AProviderManager可以通过委托给AuthenticationProviders. 如果 aProviderManager无法识别特定的Authentication实例类型,则会跳过它。AProviderManager有一个可选的父级,如果所有提供者都返回,它可以咨询null。如果父对象不可用,则null Authentication结果为AuthenticationException.有时,应用程序具有受保护资源的逻辑组(例如,匹配路径模式的所有 Web 资源,例如/api/**),并且每个组都可以有自己的专用AuthenticationManager. 通常,这些中的每一个都是一个ProviderManager,并且它们共享一个父级。父级是一种“全局”资源,充当所有提供者的后备。图 1.AuthenticationManager使用的层次结构ProviderManager自定义身份验证管理器Spring Security 提供了一些配置助手来快速获取在您的应用程序中设置的常见身份验证管理器功能。最常用的帮助器是AuthenticationManagerBuilder,它非常适合设置内存、JDBC 或 LDAP 用户详细信息或添加自定义UserDetailsService. 以下示例显示了配置全局(父)的应用程序AuthenticationManager:@Configuration public class ApplicationSecurity extends WebSecurityConfigurerAdapter {    ... // web stuff here   @Autowired   public void initialize(AuthenticationManagerBuilder builder, DataSource dataSource) {     builder.jdbcAuthentication().dataSource(dataSource).withUser("dave")       .password("secret").roles("USER");   } }此示例与 Web 应用程序有关,但 的用法AuthenticationManagerBuilder适用范围更广(有关如何实现 Web 应用程序安全性的更多详细信息,请参阅Web Security)。请注意,AuthenticationManagerBuilderis@Autowired进入 a 中的方法@Bean - 这就是它构建全局(父)的原因AuthenticationManager。相反,请考虑以下示例:@Configuration public class ApplicationSecurity extends WebSecurityConfigurerAdapter {   @Autowired   DataSource dataSource;    ... // web stuff here   @Override   public void configure(AuthenticationManagerBuilder builder) {     builder.jdbcAuthentication().dataSource(dataSource).withUser("dave")       .password("secret").roles("USER");   } }如果我们@Override在配置器中使用了of a 方法,AuthenticationManagerBuilder则将仅用于构建一个“本地”方法AuthenticationManager,它将是全局方法的子项。在 Spring Boot 应用程序中,您可以@Autowired将全局 bean 放入另一个 bean,但除非您自己显式地公开它,否则不能对本地 bean 执行此操作。Spring Boot 提供了一个默认的全局变量AuthenticationManager(只有一个用户),除非你通过提供你自己的类型 bean 来抢占它AuthenticationManager。默认值本身就足够安全,您不必担心太多,除非您主动需要自定义全局AuthenticationManager. 如果您执行任何构建AuthenticationManager.授权或访问控制一旦认证成功,我们就可以进行授权,这里的核心策略是AccessDecisionManager。有框架提供三种实现与所有三个委托链的AccessDecisionVoter情况下,有点像ProviderManager与会代表AuthenticationProviders。AnAccessDecisionVoter考虑一个Authentication(代表一个主体)和一个安全的Object,它已经被装饰了ConfigAttributes:boolean supports(ConfigAttribute attribute); boolean supports(Class clazz); int vote(Authentication authentication, S object,         Collection attributes);该Object是的签名完全通用的AccessDecisionManager和AccessDecisionVoter。它代表用户可能想要访问的任何内容(Web 资源或 Java 类中的方法是两种最常见的情况)。该ConfigAttributes也相当一般,较安全的装修Object用一些确定的权限级别元数据来访问它所需。ConfigAttribute是一个接口。它只有一个方法(非常通用并返回 a String),因此这些字符串以某种方式编码资源所有者的意图,表达允许谁访问它的规则。典型的ConfigAttribute是用户角色的名称(如ROLE_ADMIN或ROLE_AUDIT),它们通常具有特殊格式(如ROLE_ 前缀)或表示需要计算的表达式。大多数人使用默认值AccessDecisionManager,即AffirmativeBased(如果任何选民肯定返回,则授予访问权限)。通过添加新的或修改现有的工作方式,任何定制都倾向于在选民中发生。使用ConfigAttributesSpring 表达式语言 (SpEL) 表达式是很常见的——例如,isFullyAuthenticated() && hasRole('user'). 这由AccessDecisionVoter可以处理表达式并为它们创建上下文的 支持。要扩展可以处理的表达式范围,需要自定义实现 ,SecurityExpressionRoot有时还需要SecurityExpressionHandler.网络安全Web 层(用于 UI 和 HTTP 后端)中的 Spring Security 是基于 Servlet 的Filters,所以先看看Filters一般的作用是有帮助的。下图显示了单个 HTTP 请求的处理程序的典型分层。客户端向应用程序发送请求,容器根据请求 URI 的路径决定对其应用哪些过滤器和哪个 servlet。最多一个 servlet 可以处理单个请求,但过滤器形成一个链,因此它们是有序的。事实上,如果过滤器想要自己处理请求,它可以否决链的其余部分。过滤器还可以修改下游过滤器和 servlet 中使用的请求或响应。过滤器链的顺序很重要,Spring Boot 通过两种机制来管理它:@Beans类型Filter可以有一个@Order或实现Ordered,它们可以是一个FilterRegistrationBean它本身有一个订单作为其 API 的一部分。一些现成的过滤器定义了它们自己的常量来帮助表明它们相对于彼此的顺序(例如,SessionRepositoryFilter来自 Spring Session 的 a DEFAULT_ORDERof Integer.MIN_VALUE + 50,它告诉我们它喜欢在链的早期,但是它不排除在它之前出现的其他过滤器)。Spring SecurityFilter在链中作为单个安装,其具体类型为FilterChainProxy,原因我们稍后会介绍。在 Spring Boot 应用程序中,安全过滤器位于@Bean中ApplicationContext,默认情况下会安装它,以便将其应用于每个请求。它安装在由 定义的位置SecurityProperties.DEFAULT_FILTER_ORDER,而该位置又由FilterRegistrationBean.REQUEST_WRAPPER_FILTER_MAX_ORDER(Spring Boot 应用程序在包装请求、修改其行为时希望过滤器具有的最大顺序)锚定。但是,还有更多:从容器的角度来看,Spring Security 是一个单一的过滤器,但是,在它内部,还有额外的过滤器,每个过滤器都扮演着特殊的角色。下图显示了这种关系:图 2. Spring Security 是单个物理,Filter但将处理委托给一系列内部过滤器事实上,安全过滤器中甚至还有一层间接:它通常作为 安装在容器中DelegatingFilterProxy,它不一定是 Spring @Bean。代理委托给 a FilterChainProxy,它始终是 a @Bean,通常具有固定名称springSecurityFilterChain。它FilterChainProxy包含所有内部排列为过滤器链(或链)的安全逻辑。所有过滤器都具有相同的 API(它们都实现了FilterServlet 规范中的接口),并且它们都有机会否决链的其余部分。可以有多个过滤器链,所有过滤器链都由同一顶层的 Spring Security 管理,FilterChainProxy并且容器都不知道所有过滤器链。Spring Security 过滤器包含一个过滤器链列表,并将请求分派到匹配它的第一个链。下图显示了基于匹配请求路径(/foo/**匹配之前/**)发生的调度。这是很常见的,但不是匹配请求的唯一方法。这个调度过程最重要的特点是只有一个链处理一个请求。图 3. Spring SecurityFilterChainProxy将请求分派到第一个匹配的链。没有自定义安全配置的 vanilla Spring Boot 应用程序有多个(称为 n 个)过滤器链,其中通常 n=6。第一个 (n-1) 链只是为了忽略静态资源模式,比如/css/**和/images/**,以及错误视图:/error。(路径可以由用户security.ignored从SecurityProperties配置 bean 中控制。)最后一个链匹配捕获所有路径 ( /**) 并且更活跃,包含用于身份验证、授权、异常处理、会话处理、标题写入等的逻辑在。默认情况下,该链中共有 11 个过滤器,但通常用户无需关心使用哪些过滤器以及何时使用。笔记Spring Security 内部的所有过滤器对容器来说都是未知的这一事实很重要,特别是在 Spring Boot 应用程序中,默认情况下,所有@Beans类型都会Filter自动注册到容器中。因此,如果您想向安全链添加自定义过滤器,则需要不将其设为 a@Bean或将其包装在FilterRegistrationBean显式禁用容器注册的 a 中。创建和自定义过滤器链Spring Boot 应用程序(带有/**请求匹配器的应用程序)中的默认回退过滤器链的预定义顺序为SecurityProperties.BASIC_AUTH_ORDER. 您可以通过设置将其完全关闭security.basic.enabled=false,或者您可以将其用作后备并以较低的顺序定义其他规则。要执行后者,请添加@Bean类型WebSecurityConfigurerAdapter(或WebSecurityConfigurer)并使用 装饰类@Order,如下所示:@Configuration @Order(SecurityProperties.BASIC_AUTH_ORDER - 10) public class ApplicationConfigurerAdapter extends WebSecurityConfigurerAdapter {   @Override   protected void configure(HttpSecurity http) throws Exception {     http.antMatcher("/match1/**")      ...;   } }这个 bean 导致 Spring Security 添加一个新的过滤器链并在回退之前对其进行排序。与另一组资源相比,许多应用程序对一组资源具有完全不同的访问规则。例如,托管 UI 和后备 API 的应用程序可能支持基于 cookie 的身份验证,重定向到 UI 部分的登录页面,以及基于令牌的身份验证,对 API 部分的未经身份验证的请求发出 401 响应。每组资源都有自己WebSecurityConfigurerAdapter的唯一顺序和自己的请求匹配器。如果匹配规则重叠,则最早排序的过滤器链获胜。请求匹配调度和授权安全过滤器链(或等效的 a WebSecurityConfigurerAdapter)有一个请求匹配器,用于决定是否将其应用于 HTTP 请求。一旦决定应用特定的过滤器链,就不会再应用其他过滤器链。但是,在过滤器链中,您可以通过在HttpSecurity配置器中设置额外的匹配器来对授权进行更细粒度的控制,如下所示:@Configuration @Order(SecurityProperties.BASIC_AUTH_ORDER - 10) public class ApplicationConfigurerAdapter extends WebSecurityConfigurerAdapter {   @Override   protected void configure(HttpSecurity http) throws Exception {     http.antMatcher("/match1/**")       .authorizeRequests()         .antMatchers("/match1/user").hasRole("USER")         .antMatchers("/match1/spam").hasRole("SPAM")         .anyRequest().isAuthenticated();   } }配置 Spring Security 时最容易犯的错误之一是忘记了这些匹配器适用于不同的进程。一个是整个过滤器链的请求匹配器,另一个是只选择要应用的访问规则。将应用程序安全规则与执行器规则相结合如果您将 Spring Boot Actuator 用于管理端点,您可能希望它们是安全的,并且默认情况下,它们是安全的。事实上,只要您将 Actuator 添加到安全应用程序中,您就会获得一个仅适用于执行器端点的附加过滤器链。它使用仅匹配执行器端点的请求匹配器定义,它的顺序为ManagementServerProperties.BASIC_AUTH_ORDER,比默认SecurityProperties回退过滤器少 5 ,因此在回退之前进行咨询。如果您希望您的应用程序安全规则应用于执行器端点,您可以添加一个过滤器链,该过滤器链的顺序早于执行器,并且具有包含所有执行器端点的请求匹配器。如果您更喜欢执行器端点的默认安全设置,最简单的方法是在执行器之后添加您自己的过滤器,但在回退之前(例如,ManagementServerProperties.BASIC_AUTH_ORDER + 1),如下所示:@Configuration @Order(ManagementServerProperties.BASIC_AUTH_ORDER + 1) public class ApplicationConfigurerAdapter extends WebSecurityConfigurerAdapter {   @Override   protected void configure(HttpSecurity http) throws Exception {     http.antMatcher("/foo/**")      ...;   } }笔记Web 层中的 Spring Security 当前绑定到 Servlet API,因此它仅在 servlet 容器中运行应用程序时才真正适用,无论是嵌入式还是其他方式。但是,它不绑定到 Spring MVC 或 Spring Web 堆栈的其余部分,因此它可以在任何 servlet 应用程序中使用——例如,一个使用 JAX-RS 的应用程序。方法安全除了支持保护 Web 应用程序,Spring Security 还支持将访问规则应用于 Java 方法执行。对于 Spring Security,这只是一种不同类型的“受保护资源”。对于用户来说,这意味着访问规则是使用相同格式的ConfigAttribute字符串(例如,角色或表达式)声明的,但在代码中的不同位置。第一步是启用方法安全性——例如,在我们应用程序的顶级配置中:@SpringBootApplication @EnableGlobalMethodSecurity(securedEnabled = true) public class SampleSecureApplication { }然后我们可以直接装饰方法资源:@Service public class MyService {   @Secured("ROLE_USER")   public String secure() {     return "Hello Security";   } }此示例是具有安全方法的服务。如果 Spring 创建了@Bean这种类型的 a ,它会被代理并且调用者必须在该方法实际执行之前通过一个安全拦截器。如果访问被拒绝,调用者会得到一个AccessDeniedException而不是实际的方法结果。您还可以在方法上使用其他注释来强制实施安全约束,特别是@PreAuthorize和@PostAuthorize,它们分别允许您编写包含对方法参数和返回值的引用的表达式。提示将 Web 安全性和方法安全性结合起来的情况并不少见。过滤器链提供用户体验功能,例如身份验证和重定向到登录页面等,方法安全提供更细粒度的保护。使用线程Spring Security 基本上是线程绑定的,因为它需要使当前经过身份验证的主体可用于各种下游消费者。基本构建块是SecurityContext,它可能包含一个Authentication(并且当用户登录时,它Authentication是显式的authenticated)。您始终可以SecurityContext通过 中的静态便捷方法访问和操作SecurityContextHolder,而后者又操作ThreadLocal. 以下示例显示了这种安排:SecurityContext context = SecurityContextHolder.getContext(); Authentication authentication = context.getAuthentication(); assert(authentication.isAuthenticated);这是不是对用户应用程序代码来执行这个共同的,但它可以是有用的,如果你,比如,需要写一个自定义的验证过滤器(虽然,即使如此,也有Spring Security的基类,您可以使用,让你可以避免需要使用SecurityContextHolder)。如果您需要访问 Web 端点中当前经过身份验证的用户,您可以在 a 中使用方法参数@RequestMapping,如下所示:@RequestMapping("/foo") public String foo(@AuthenticationPrincipal User user) {   ... // do stuff with user }这个注解拉电流Authentication出来的SecurityContext,并调用getPrincipal()它的方法来产生方法的参数。Principalin an的类型Authentication取决于AuthenticationManager用于验证身份验证的 ,因此这是获取对用户数据的类型安全引用的有用小技巧。如果正在使用 Spring Security,则PrincipalfromHttpServletRequest是 type Authentication,因此您也可以直接使用它:@RequestMapping("/foo") public String foo(Principal principal) {   Authentication authentication = (Authentication) principal;   User = (User) authentication.getPrincipal();   ... // do stuff with user }如果您需要编写在不使用 Spring Security 时工作的代码(您需要对加载Authentication类更加防御),这有时会很有用。异步处理安全方法由于SecurityContext是线程绑定的,如果您想要进行任何调用安全方法的后台处理(例如, with @Async),您需要确保传播上下文。这归结为SecurityContext用在后台执行的任务(Runnable、Callable等)包装。Spring Security 提供了一些帮助程序来使这更容易,例如包装器Runnable和Callable. 要传播SecurityContextto@Async方法,您需要提供一个AsyncConfigurer并确保Executoris 的类型正确:@Configuration public class ApplicationConfiguration extends AsyncConfigurerSupport {   @Override   public Executor getAsyncExecutor() {     return new DelegatingSecurityContextExecutorService(Executors.newFixedThreadPool(5));   } }内容来源:Spring中国教育管理中心【转自慕课】https://www.imooc.com

    技术
    分享到
  • 什么是 Spring Cloud 数据流?

    19:18 作者:admin

    用于 CloudFoundry 和 Kubernetes 的基于微服务的后台和数据处理。Spring Cloud Data Flow 提供了为流数据管道创建组成的工具。数据程序管道由使用 Spring Cloud Stream 或 Spring Cloud 任务微服务框架构建的 Spring Boot 应用程序。Spring Cloud Data Flow 支持敏感数据处理实例,从 ETL 到导入/导出、事件流和预测分析。特征Spring Cloud Data Flow服务器使用Spring Cloud Deployer,将Spring Cloud Stream或Spring Cloud Task应用程序组成的数据管道部署到Cloud Foundry和Kubernetes等现代平台上。隐私用于各种数据集成和处理场景的预构建流和任务/启动器应用程序学习和实验。可以使用已知的 Spring Boot 风格的编程模型构建针对不同的中间件或数据服务的自定义流和应用程序任务。一个简单的流管道 DSL 可以轻松指定要部署的应用程序以及如何连接和输入。当请求任务应用程序需要有向图运行时,组合任务 DSL 非常特殊。该仪表板为构建数据管道程序,以及意见部署的应用程序,并使用监控他们的图形编辑器、波前、普罗米修斯、潮DB,或其他监控系统。Spring Cloud Data Flow 服务器公开了一个用于组合和开发数据管道的 REST API。一个单独的 shell 使从命令行使用 API 变得容易。【转自慕课】https://www.imooc.com

    技术
    分享到
  • 想要写优秀的设计测试用例,不懂这个可不行!

    19:18 作者:amsds

    什么是需求?需求是产品必须完成的事以及必须具备的品质。需求包括:功能性需求、非功能性需求和限制条件功能性需求: 功能性需求是产品必须完成的那些事,要求一定的功能和品质。案例:微信可以给好友发消息、发红包、发语音和视频等操作非功能性需求:非功能性需求是产品必须具备的属性或品质。诸如观感、可用性、安全性和法律限制等。例子:x平台用户数为5万人,每天登录用户数为1万左右,网络的带宽为100M带宽。在工作时间根据资料名称条件进行搜索,可以在3秒内得到搜索结果。2021年天猫活动的订单处理峰值达高于58.3万笔/秒,要求订单成功率为100%一>成功下单注意:在项目中一般优先分析功能性需求,产品的功能确定之后再分析非功能性需求。限制条件:在需求分析中需要考虑一些条件约束,规则等,比如客户的约束,行业的约束,法律的约束以及自己的约束。例如:客户需求:x平台必须在2021年开学的第一学期上线例如:每个APP必须要求对应的隐私条例等需求的重要性 测试用例/《医生和病人的故事》背景:冯大勇吃鱼时嗓子被鱼刺卡住了。现在正坐在椅子上候诊。大夫:(在桌上拿起一份挂号单,大声的喊)冯大勇!冯大勇:(病怏怏的样子,边走边咳嗽)我是。大夫:怎么了?(低头整理手中的资料,自言自语,并打手势,示意冯大勇坐下)冯大勇:我...(咳嗽)...我今天. . ﹒(咳嗽)大夫:不用说了,我知道了。(从桌子下面拿出一个大盒子,放在桌子上)我看你适合吃这种药。这是本院独家开创的哮喘新药“咽喉糖浆”,疗程短,见效快,一个疗程吃3盒,平均每天只需花费3块钱。给你先开6盒吧!(边说边开药方)冯大勇非常惊讶地瞪大眼睛并止不住地弯腰大声咳嗽,以至于把鱼刺都咳出来了。冯大勇从口里掏出一条巨型鱼刺,递给医生。医生见到鱼刺先是吃惊,而后又非常尴尬。符合尽早介入测试、文档也需要测试原则是设计测试用例的重要依据,有助于保证测试的质量和进度是衡量测试覆盖率的重要指标。如何进行需求分析测试需求分析的主要目的:根据需求文档提取测试点,根据测试点来编写测试用例。需求分析步骤:1.熟悉需求背景及商业目标2.找出功能性需求与约束:单个功能,如能否登录,等否发送信息;功能交互;业务流程,如登录成功-给好友发送红包-好友领取红包3.找出非功能性需求与约束:U、性能、网络、兼容性、易用性、特殊情况 案例一生活物品测试需求分析,如:杯子、笔、桌子面试题:怎么对杯子、笔、桌子进行测试?讲出测试的思维?测试点?1∶反问:笔、杯子、桌子需求是怎么样的? --测试思维软件质量特性:功能性、可靠性、可用性、效率、可维护性、可移植性给大家提供一个大概的思路,更多案例以及视频教程 公众号主页:点击(领取资料)免费获得功能性:笔头开合是否流程书写是否流畅笔头笔心大小是否合适笔筒和笔芯是否牢固笔芯替换是否方便U工(外观测试)尺寸大小:色彩搭配:绿色携带logo性能测试:笔能够写多长时间笔心(墨水) :能够持续多长时长高温低温气味:特殊人群测试用例设计方法黑盒测试用例设计方法等价类划分法边界值分析法错误推测法因果图法判定表法正交实验法状态迁移图法场景法白盒测试用例设计方法语句覆盖判定覆盖条件覆盖判定-条件覆盖基本路径覆盖循环覆盖黑盒测试黑盒测试:也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出结果。主要测试依据是需求文档、设计文档、用户手册业务能力测试策略(功能测试、uI测试,兼容性测试)设计用例--逻辑思维黑盒测试产生的原因从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出所有的错误。实际上测试情况是无穷多的,完全测试是不可能的。如何解决?必须将黑盒测试行为加以分类节约测试实施的时间和资源避免盲目测试、提高测试效率使测试的实施重点突出、目的更明确等价类划分是一种典型的、常用的黑盒测试方法,这种方法把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量有代表性的测试数据取得较好的测试结果。1.有效等价类:有效等价类是程序规格说明有意义,合理的输入数据--验证软件的功能是否实现2.无效等价类:无效等价类是程序规格说明无意义,不合理的输入数据--提高软件的安全性和体验性 测试用例等价类划分原则1.如果输入条件规定了取值范围或值的个数,则可以确定一个有效等价类和两个无效等价类。--公式案例:成绩输入有效值:【0,100】,用户名:长度8个字符长度 image.png2.在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。案例:输入数值必须是正整数有效:正整数无效:负数·小数字符3.在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。案例:第一个数和第二个数必填 测试用例4.在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立N个有效等价类和一个无效等价类(没有无效等价类)。案例:密保问题选择 测试用例5.如果我们确知,已划分的某个等价类的各元素,在程序中的处理方式是不同的,则应将此等价类进一步划分成更小的等价类。案例:分数:O-100,如果是81-100这个范围,则返回结果优秀,如果分数在71-80这个范围,则返回结果良好,如果在60-70这个范围,则返回结果合格,否则的话返回结果不及格 测试用例等价类分析步骤1.为每个输入划分等价类,得到等价类列表,为每个等价类规定一个唯一编号  测试用例2.设计一个测试用例,使其尽可能多的覆盖所有的有效等价类。重复这一步骤,使得所有有效等价类均被测试用例覆盖到3.设计一个测试用例,使其只覆盖一个无效等价类。重复这一步骤,使得所有无效等价类均被覆盖 希望大家能够举一反三,活学活用。【转自慕课】https://www.imooc.com

    技术
    分享到
  • 游戏建模师很抢手吗?

    19:18 作者:amsds

    《哪吒之魔童降世》票房突破40亿。导演饺子也因为这部电影走红,更多人开始了解台前幕后的故事,而在这之中“建模师”三个字频繁出现在大众眼前。1、建模师是做什么的?2、建模师有什么发展前途?3、成为一个优秀的建模师有什么要求?3D建模师转行和追求高薪职业的朋友关注的行业  3D建模师,建模这个工作是肯定要有的。建模这个过程是游戏设计里面的重要环节,主要用的工具就是3dMax、maya、zbrush等。  建模这块又可以分为角色建模、场景建模这两块,角色建模,即创建人物、NPC等角色的3D模型;场景建模,即建造游戏里面的整个场景的3D模型,如塔、树木、房屋等等。3D建模师是干什么的呢?1.角色建模  2.道具建模  3.场景建模      说白了——:大家应该都玩过吃鸡或者英雄联盟吧?里面有很多的人物还有人物道具这些都是建模师通过一系列的操作做出来的。(图片源自网络)每一款众人皆知的经典,无论是王者荣耀还是LOL,那些你一眼就能认出的游戏角色、动漫场景都是由原画设计师创作,建模师做出3D效果的!(图片源自网络)建模人物的形成过程:游戏建模师发展3D游戏建模师的一个作品价值高达15W+,这个行业不仅高薪缺人,上班自由,可接外单。招聘建模师公司:3d建模师的工资待遇以及晋升方向:建模师为什么如此吃香?前景如何?游戏行业的发展根据《2018年中国游戏产业报告》显示:在2018年中国游戏产业收入总体达到1655.7亿元,主要来自端游、页游、手游、社交游戏以及单机游戏五个部分。同比增长17.7%;自主研发的网络游戏达到1182.5亿元,同比增长19.9%;移动游戏用户规模达5.28亿,同比增长15.9%。2017年中国已超越美国成为全球最大游戏市场。所以,基于国内目前飞速发展以及日趋成熟的游戏产业,就业市场对原画师的需求是很大的。2.国产动漫的发展我国动漫产业处于高速发展时期。据中商产业研究院发布的《2017-2022年中国动漫行业市场前景及投资机会研究报告》数据显示2011 年,中国动漫行业产值仅为621亿元2016 年,动漫产业的总产值已达到1325亿元2017 年,动漫产业的总产值近1600亿元2018 年,动漫产业的总产值近1800亿元。比如 : 曾席卷全国的《秦时明月》;年初大热的国漫《白蛇缘起》上映之后好评如潮;7月份上映的《哪吒之魔童降世》票房飙升到40亿。在中国动漫从业人员的不懈研究和努力下中国动漫产业将逐步走向成熟未来动漫将成为中国娱乐文化的重要组成部分。目前全国的建模人才仅46万,未来3-5年内人才的缺口将高达150万。可以说,建模师是当今游戏行业发展最紧缺的人才!相信未来中国动漫会走出属于自己的一条道路怎样成为建模师?1.基础很重要高模:Maya、3Dmax、Zbrush中模:Maya、3Dmax低模:Maya、3Dmax、Topogun展UV:Maya、Zbrush、Unfold3D、Uvlayout烘焙:Maya、Zbrush、3Dmax、Xnormal、3DO、GrazyBump绘制贴图:Photoshop、Substance Painter 、Quixel SUITE、mari、Bodypaint、Mudbox导入引擎:UE4、Unity、CryEngine等看到这里,同学们可能有点方,要学这么多东西?这里只是列得比较全,一般只要精通其中出现率比较高的几种,其他的的软件顺带着了解一下,进入职场工作绰绰有余的啦。2.建模师在团队中的定位    一个项目团队的核心构架,通常是由策划、美术和程序组成的,当然还有一些其它职位的人员,在此就不展开细说了。其中建模师主要的作用就在团队中,根据原画师所画出来的二维平面图,做成三维空间图,使人物立体化。最后的人物角色和场景做出来是什么样,决定权最后还是在建模师手中。3.客观评价自己对美术基础的掌握以3D角色美术为例:你是否了解基本的人体结构,是否能准确的画出合理的结构(老师上的理论课一定要认真听)你是否能在了解结构的基础上作出合理的变形(夸张的美式,唯美的日韩,烂大街的Q版)你是否熟悉用软件中的笔刷或者是其他的手法去表达材质(最基础的肉体、布料、金属、皮革)你是否掌握了空间关系的表达(明暗,虚实)看了介绍是不是有点心动了,在小编看来建模师确实是个很不错的职业,不只是薪资待遇还有是建模师创作出来的东西让我们看到了另一个世界。不论是《大圣归来》还是《大鱼海棠》或者是今年的《白蛇缘起》和《哪吒之魔童降世》都给我们带来视觉上美的感受和心灵上的冲击。即便故事情节再美好,如果没有建模师可能就不会给我们呈现地如此完美。【转自慕课】https://www.imooc.com

    技术
    分享到
  • Joomla如何从URL中删除index.php

    19:18 作者:amsds

    本教程说明了如何从 Joomla 中的URL中删除index.php。首先,为了从网址中删除index.php,您应该在Joomla中启用“使用网址重写”。并将htaccess .txt 重命名为.htaccess要在Joomla中启用“使用URL重写”,您应该执行以下操作:登录到您的Joomla 仪表板;登录到您的Joomla 仪表板;在左侧菜单中,单击系统选项卡下的全局配置链接;页面顶部有几个选项卡,请单击“网站”。在页面右侧,找到SEO设置;将使用URL重写选项设置为是 ;注意:如果使用Apache服务器,请确保已在主机帐户上安装并启用了mod_rewrite。连接到您的FTP服务器,将htaccess .txt文件重命名为.htaccess。如果您使用IIS 7服务器,请确保为您的托管帐户启用了IIS URL重写模块。在激活使用URL重写选项之前,将web.config.txt文件重命名为web.config。将“页面标题中包含站点名称”设置为“之后”;然后点击左上方菜单中的保存;【转自慕课】https://www.imooc.com

    技术
    分享到
  • Joomla 4教程:本地主机上的简化安装

    19:18 作者:amsds

    Joomla 4即将尽快上线。Joomla 4的Alpha版本现已上线,具有许多惊人的功能和新技术,将要在Joomla 4中启动的新功能。为了向您介绍Joomla 4更加令人兴奋和更加顺畅的旅程,我们将发布一系列第一手Joomla 4教程。今天,我们将简化Joomla 4的安装过程。逐步地,我们将介绍有关各种Joomla 4功能的更多教程。第一步:下载Joomla 4打开Joomla 4 GitHub链接(目前为预发行版本,因为尚未提供稳定版本)。您会找到Joomla 4安装软件包。单击以您喜欢的格式下载文件。第二步:安装Web服务器对于本地主机安装,您必须安装本地Web服务器。您可以使用服务器环境,例如XAMPP,MAMP,WAMP,JAMP或您喜欢的任何其他环境。下载软件并安装。现在,将Joomla 4的安装zip文件放入文档根文件夹中,如果您使用的是XAMPP或MAMP,则为“ htdocs”文件夹。将Joomla 4安装zip文件解压缩到htdocs文件夹中。现在,您可以开始安装CMS了。第三步:运行安装向导在浏览器地址栏中输入您的Joomla 4本地主机站点的URL。例如:http://localhost/joomla-4.0.0-alpha2/。将会弹出安装屏幕。现在,按照以下步骤在本地主机上安装它。第四步:输入语言和站点名称在第一个屏幕上的第一个字段中输入Joomla网站的语言。使用下拉菜单选择一种语言。在第二个字段中,您必须添加站点名称。示例:example.com。第五步:设置用户数据单击“输入登录数据”按钮后,将打开一个新页面。在这里您必须输入您的登录详细信息。在第一个字段中,您必须添加超级管理员用户名。在第二个字段中,您必须添加超级用户的电子邮件地址。在最后一个字段中,为您的超级用户添加一个密码。第六步:数据库配置现在,您必须为Joomla网站配置数据库。在第一个输入字段中选择站点的数据库类型。在第二个字段中,您需要指定主机名。对于localhost,将主机名添加为“ localhost”。在第三个字段中,添加数据库用户名。对于本地主机安装,添加“ root”作为用户名。在第四个字段中,添加数据库的密码。对于本地主机安装,最好添加“ root”作为密码。在第五个输入字段中,插入数据库表名称。这是一个非常关键的领域。最好使用站点前缀来区分表,以便以后进行自定义。现在,在最后一个输入字段中,添加一个表前缀,或者您可以使用随机生成的一个。第七步:安装Joomla 4单击“安装Joomla”按钮后,将安装Joomla 4。然后完成页面将打开。您可以使用两个选项中的任何一个。您可以打开网站或转到管理员后端。如果选择“打开管理员”选项,它将带您进入管理员登录页面。如果选择“打开网站”选项,它将打开您网站的前端。因此,这是Joomla 4(简化的安装)所实现的另一项很酷的事情。将来,我们将发布更多有关Joomla 4的教程。【转自慕课】https://www.imooc.com

    技术
    分享到
  • 手游模拟器哪个好_安卓手游模拟器排行榜

    19:17 作者:amsds

    随着手游行业的突飞猛进,模拟器成为现如今手游用户的电脑标配。目前市场上的模拟器种类繁多,但体验却千差万别,比较受用户欢迎的几款:夜神模拟器、网易mumu模拟器、海马玩模拟器、靠谱助手、腾讯手游助手、蓝光手游大师、逍遥安卓模拟器、新浪手游助手、51模拟器和雷电安卓模拟器。1、游戏画质高清基本是市面上的模拟器游戏画质整体都还不错。要说画质优化最好的肯定是老牌的几款模拟器,如海马玩模拟器,蓝叠模拟器这两款;如果是腾讯和网易的游戏,旗下的腾讯手游助手和mumu模拟器针对自家游戏的优化肯定是最好的。2、游戏按键适配度高,游戏按键视频覆盖全面基本所有的模拟器都会热门游戏进行按键适配,但是适配的按键操作效果是不一样的。网易和腾讯的游戏如果对按键操作有要求建议选择对应的mumu模拟器和腾讯手游助手,也有的按键其他模拟器是实现不了的,原因你懂得,毕竟是官配。其他游戏的话按键配置每款模拟器其实差距不大。还有一些游戏某些模拟器是没有配置的,大部分是因为游戏热度不够和适配难度高。像之前小火的香肠派对这款手游,基本就只有tcgames模拟器适配了按键。适配游戏比较广的基本是第三方模拟器,雷电模拟器就很全面。基本的游戏都有配置游戏按键,省去了自己去设置的麻烦。3、对电脑配置要求低,占用电脑内存少占用电脑内存高是大部分安卓模拟器的通病,不过也没有办法,毕竟游戏需要在模拟器里面下载安装到电脑上。这方面优化最好的就是tcgames和ApowerMirror,因为他运行的游戏是手机端的不用再在电脑上安装游戏,所以tcgames和ApowerMirror基本在适配笔记本电脑和低配电脑方面是佼佼者,学生党可以考虑。4、延迟低、游戏流畅度高说到流畅度的话,其实现在的逍遥模拟器和夜神模拟器在这块的优化还不错。同一台台式电脑(不存在配置低问题),我用蓝叠模拟器测试基本卡死,逍遥模拟器、夜神模拟器流畅度是较高的......5、匹配手机玩家针对大部分游戏模拟器还是可以匹配手机玩家的,但由于部分游戏使用模拟器存在对手机玩家不公平的现象,例如刺激战场,所以现在只能和模拟器玩家匹配。经过测试目前只有tcgames还没有被检测模拟器可以匹配手机。ApowerMirror之前可以,最近已经被检测模拟器。本次测试排名仅针对一些比较知名用户比较多的模拟器,赶快参考自己对游戏和操作的要求,选择一款适合自己的安卓模拟器吧!如果是玩刺激战场的话个人良心推荐腾讯手游助手和tcgames,台式机用腾讯手游助手,笔记本电脑用tcgames,完美!!!【转自慕课】https://www.imooc.com

    技术
    分享到
  • 正式发布!微信小程序seo搜索优化指南!

    19:17 作者:admin

    继上次发布小程序页面搜索指导之后,微信新发布小程序seo搜索优化指南,推出新的小程序搜索标准以下是微信官方发布的具体搜索标准:1. 小程序里跳转的页面 (url) 可被直接打开。小程序页面内的跳转url是我们爬虫发现页面的重要来源,且搜索引擎召回的结果页面 (url) 是必须能直接打开,不依赖上下文状态的。特别的:建议页面所需的参数都包含在url2. 页面跳转优先采用navigator组件。小程序提供了两种页面路由方式:a.navigator 组件 b. 路由 API,包括 navigateTo / redirectTo / switchTab / navigateBack / reLaunch,建议使用 navigator 组件,若不得不使用API,可在爬虫访问时屏蔽针对点击设置的时间锁或变量锁。3.清晰简洁的页面参数。结构清晰、简洁、参数有含义的 querystring 对抓取以及后续的分析都有很大帮助,但是将 JSON 数据作为参数的方式是比较糟糕的实现。4. 必要的时候才请求用户进行授权、登录、绑定手机号等。建议在必须的时候才要求用户授权(比如阅读文章可以匿名,而发表评论需要留名)。5. 微信小程序不收录 web-view 中的任何内容。微信表示自己暂时做不到这一点,长期来看,短期可能也做不到,因此 微信小程序不收录 web-view 中的任何内容。6. 利用 sitemap 配置引导爬虫抓取,同时屏蔽无搜索价值的路径。https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html7. 设置一个清晰的标题和页面缩略图。页面标题和缩略图对于微信小程序理解页面和提高曝光转化有重要的作用。建议通过wx.setNavigationBarTitle或 自定义转发内容onShareAppMessage对页面的标题和缩略图设置,另外也为 video、audio 组件补齐 poster /poster-for-crawler属性。8. 使用页面路径推送能力建议使用页面路径推送能力,可极大丰富微信可以收录的内容,进而提高小程序内容的曝光机会。另外,不同于百度小程序的关键词搜索排名机制,微信小程序的搜索排名机制要求,因素更复杂,关键词只是一个点,即使小程序后台配置大量关键词,模糊搜索,也不一定能搜到,精准搜索,也不是都排在第一,而好友关系、使用记录,页面推送次数都是重要参考因素,因此,关键词布局在微信小程序倒显得不那么重要了,各位站长和开发者在做微信小程序seo优化时可以参考下。作者:磊哥来源:卢松松博客,欢迎分享。【转自慕课】https://www.imooc.com

    技术
    分享到
  • 仿伊对关于视频相亲交友系统开发了解这些就足够了

    19:17 作者:amsds

    2019年可以说是不平凡的一年,直播带货的崛起,李佳琦和薇娅直接让直播带货走到了巅峰,紧接着视频相亲交友app伊对在6月、7月连续拿到两轮融资后,据企查查信息显示,“伊对”隶属于北京米连科技有限公司,该公司成立于2015年9月,法定代表人为任喆。“伊对”APP于2018年上线,专门为下沉市场人群,提供实时视频互动和相亲场景。天眼查数据显示,我国经营范围含“婚姻介绍、婚介、相亲”的在业、存续及迁出状态的企业数量超过5万家,超过7成的婚姻介绍企业成立于近5年。自2016年起,保持近30%的增速;2019年达到近年来顶峰,年初至今已新增超过1.2万家,占总数的近3成。布谷视频相亲交友app是一款非常靠谱的视频相亲交友应用。致力让你更容易的遇见你的爱情哦,众多的优质单身男女汇聚于此,真人的视频相亲,畅快聊天,真心交友哦,遇见属于你的缘分,今天就为大家分享下关于我们布谷科技自己研发的类似仿伊对视频相亲交友系统开发功能体验分析的点:仿伊对视频相亲交友系统开发的模式:1、三方视频相亲:红娘、男女嘉宾3人视频,红娘作为直播间的主持人,暖场引导话题,帮助陌生男女更快破冰。其他观众可以自由出入直播间,也可以申请连麦;2、多人相亲:一两名红娘主持人+多名男女嘉宾,连麦互动,相当于在线版非诚勿扰;3、 专属相亲:第一种的私密版,需要申请才能加进入直播间。 仿伊对关于视频相亲交友系统开发的特点1、真人的视频相亲打造真实的约会恋爱氛围;2、专属房间相亲为您找到对象哦;3、多人的交友语音视频聊天愉快畅聊;4、通过多样的不同兴趣小组找到有着共同趣好的好友。 仿伊对关于视频相亲交友系统开发特色及应用场景     1、仿伊对关于视频相亲交友系统开发特色:视频找对象,红娘在线视频牵线、语音交友,群聊互嗨,恋爱乐翻天、社区动态,同城活动,相亲动态全知晓、兴趣群组,缘分相聚,群聊、天生伊对,在线视频相亲。2、仿伊对关于视频相亲交友系统开发软件应用场景:陌生人社交、语音聊天交友、游戏陪玩社交 3、仿伊对关于视频相亲交友系统开发应用案例:伊对、牵伴、同城陌约、玩洽、同城热恋、约会吧、红娘视频相亲一对缘。(程序源码开源,支持二次开发,根据不同应用场景需求,定制个性化解决方案)仿伊对关于视频相亲交友系统开发语言1、后台PHP语言2、Android是Java语言(安卓的开发工具脚本:Android Studio)、IOS是 objective-c.(ios开发脚本工具:xcode)3、框架是thinkphp5.0版本 php用的5.6的系统:linux:数据库: mysql。4、APP是原生开发的,PHP 视频互动系统由 WEB 系统、REDIS 服务、MYSQL 服务、视频服务、聊天服务、后台管理系统和定时监控组成,手机端安卓开发语言采用:java、IOS 苹果采用:object c 原生开发,后台管理采用PHP语言开发,基于TP框架,所有服务提供横向扩展。含app双端,web后台。 Android端: Java语言, 使用Android Studio 开发I0S端:采用0C语言,使用Xcod/5、工具开发前端:原生,无框架、采用PHP语言,基于TP框架。所有服务提供横向扩展,支持二次开发和修改。    仿伊对关于视频相亲交友系统开发平台主张的是无美颜无滤镜高度还原真实社交方式,也就意味着“照骗”无处遁逃,保证了用户的真实性;其次是提供就业机会,主播变“红娘”,如果在线异性吸引到你,一九八五三八  五八五四  可以通过红娘的邀约一起上麦连线进行互动,有红娘在,“尬聊”也不存在,还有多人视频、专属视频等多种方式,前者属于开放式大家可以进行围观,后者属于一对一互动模式,有眼缘的男女用户也可以进行私聊对话。而且红娘都是用户演变而成,平台也不需要再去开发红娘团队,有效的节省了自己的时间与成本。 欢迎大家可以继续关注我的文章,让我们一起展望视频相亲交友系统开发的蓝图。【转自慕课】https://www.imooc.com

    技术
    分享到
  • 分类信息网站如何增加搜索引收录

    19:16 作者:amsds

    互联网发展至今,分类信息仍然是网民重要的需求之一,伴随着“互联网+”的发展,分类信息的重要性越发突出,虽然互联网的流量被各类型的平台所瓜分,但通过搜索引获取分类信息仍然是网民重要的渠道之一,这就为我们运营分类信息的站长带来巨大的机遇。分类信息想依靠搜索引擎获取大量流量,前提是必须有海量的数据,越多越好,数据多,才有可能被收录,从而获得大量的流量,下面就介绍4种常见的利用搜索引擎推广分类信息方法。一、人为创造分类信息长尾关键词分类信息的长尾关键词非常多,也是互联网最丰富的关键字资源,通常是“地区+分类+属性”的结合,具体的分类数量没有统计过,但是参考58同城便可以发现,再结合统计学,不难理解,有无数个关键词资源供大家组合。在此提醒,虽然创造了大量的关键词,但是千万不可以标题党,信息内容一定要能称得起你的整个页面,这就需要你想尽办法为这个页面提供真实有效的内容数据,切莫造假,对用户和搜索引都不好。二、利用论坛吸引分类信息长尾词以外的关键词当前互联网法律执行越来越严格和细化,运营论坛需要专项备案,但是还没有到达全面禁止的程度,所以搭建论坛目前来说还是可行的,在这里说明的是,搭建论坛的目的不是针对用户,因为论坛已经落寞了,所以目的只有一个,给搜索引擎看的,通过论坛可以做大量的属地属性的长尾词,以北京为例“北京去哪儿好玩?”“北京最好吃的火锅”……可以说这类的词汇拥有太多太多,几万、几十万、几百万都是有的,试想一下,如果将这些词汇放到属地论坛,待搜索引擎收录并获取流量,将浏览用户引入分类信息主站里。三、利用本地企业数据很多分类信息网站除了分类信息外,还有企业登记等功能,企业数据也属于分类信息,并且企业数据搜索引擎比较喜欢收录,那么从哪儿获取大量的企业数据呢?一是可以跑市场,可以挨家挨户登记商家数据;二是采集,虽然不建议采集,但是采集确实是短时间内充实网站数据的最佳方法,那么采集源是哪儿呢?可以到各大提供企业数据的网站进行采集,但是采集完,不可以一次性都放出来,要每天放出一些数据,自然放出,慢慢培养蜘蛛来你网站采集数据的习惯。四、属地新闻由于分类信息都是简单的几句话,这就导致了搜索引擎不易收录,因此网站的长篇文章成为搜索引擎收录的重要方面,虽然《互联网新闻信息服务管理规定》规定了通过互联网站、应用程序、论坛、博客、微博客、公众账号、即时通信工具、网络直播等形式向社会公众提供互联网新闻信息服务,应当取得互联网新闻信息服务许可,禁止未经许可或超越许可范围开展互联网新闻信息服务活动。但是目前来说,对属地网站转载发布新闻行为未达到彻底明令禁止的程度,所以建议分类信息站长们,转载新闻来增加收录。作者:乌兰浩特生活网来源:卢松松博客,欢迎分享。【转自慕课】https://www.imooc.com

    技术
    分享到
  • 【MYSQL学习】数据库系统

    19:16 作者:admin

    第一章 数据库系统概述1. 什么是数据库管理系统,及其主要功能数据库管理系统是安装于操作系统,是管理控制数据库中各种数据库对象的系统软件。主要功能(1)数据库的建立与维护(2)数据定义(DDL)(3)数据组织存属和管理(4)数据操作功能(DML)(5)数据库事务管理以及运行管理2. 什么是数据库系统,及其特点数据库系统是指在计算机系统引入数据库后的系统,一般由数据库,数据库管理系统,数据库应用系统,用户(包括数据库管理员构成)(1)数据结构化(2)数据共享性(3)数据独立性(4)由DBMS管理控制(4)数据粒度变小3. 数据库的三级模式以及三者如何保证数据独立性(1)外模式(用户模式)它是对于数据用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图(2)模式(逻辑模式)所有用户的公共数据视图。(3)内模式(存储模式)它是对数据物理结构和存储方式的描述二级映像与数据独立性(1)外模式/模式映射当模式发生改变,由数据库管理员对各个 外模式/模式映射发生改变,从而应用程序不必修改保证了数据的逻辑独立性(2)内模式/模式映射内模式/模式映射是唯一的。它定义了数据库全局逻辑结构和存储结构之间的对应关系。当数据库的存储结构发生改变,可以通过 内模式/模式映射 的改变使模式不发生改变。从而保证了数据与程序的物理独立性。4. B/S与C/S的区别(1)C/S 客户服务器结构通过他可以充分利用两端硬件环境的优势,将任务和里的分配到客户段和服务器端。(2)B/S 浏览器服务器结构将系统的核心功能集中到服务器上,简化系统开发,维护和使用5. DBA的具体职责(1)决定数据库的信息内容和结构(2)决定数据库的存储结构和存取策略(3)定义数据的安全性要求和完整性约束条件(4)监控数据库的使用和运行(5)数据库的改进和重组重构第二章 信息与数据模型三个世界之间的关系现实世界:实体,特征,实体集以及实体集之间的联系。信息世界:实例,属性,对象计算机世界:数据项,记录,文件,数据模型现实世界的事物与联系————系统分析—>概念模型————数据库设计—>数据模型2. 什么是概念模型什么是数据模型数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式架构。一般地讲,数据模型是严格定义的概念的集合。这些概念精确描述了系统的静态特性,动态特性和完整性约束条件。因此数据模型通常由数据结构,数据操作和完整性约束三部分组成概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象:基本概念:实体:实体事物属性:实体所具有的某一特性实体型实体集码:可以唯一标识一个实体的属性集域:属性的取值范围联系:实体内部联系(属性之间的联系),实体之间的联系3. E-R模型4. 常见逻辑模型层次模型网状模型关系模型面向对象模型5. 概念模型向逻辑模型的转化技巧:1个实体转化为1个关系模式1对1 :在两个实体转化成的两个关系模式中的任意一个中加入另一个关系模式的码1对n :在数量多的n端,加入1端的码m对n :将两端关系的码加上联系的属性,单独成为一个模式【转自慕课】https://www.imooc.com

    技术
    分享到
  • 企业网站建设如何选择企业网站模板

    19:16 作者:admin

    现在大部分企业网站都是基于企业网站模板制作,很多企业网站模板的设计和制作甚至数万块钱的定制建站更美观大气,而且对于企业来说,企业网站模板的存在,不但可以节省很大的资金,减少企业开支。如果把建设企业网站同服装制作相比,那么目前的定制建站就好比80年代之前的裁缝店,每来一个客户,便根据客户的“尺码”、“形貌”等量身定做,而真正高品质的企业网站模板就好比现代时装设计,“设计师、制衣厂”首先根据市场特点、技术优势等设计制作出能代表时代潮流、外观高雅、舒适实用的“衣服成品”,然后批量推向市场,让广大消费者来选择适合自己的高档“衣服”。经过市场和消费者的反复锤炼之后,“设计师、制衣厂”便会根据市场反馈不断进行设计和技术改进,从而不断提升产品质量,并通过规模化生产不断降低生产成本,最终使消费者既能节省成本,又能获得高质量的产品和服务。所以,企业网站模板成为了企业建站的最好选择,也无需要花费人力在设计上,无需要思考如何设计,怎么设计合适企业的网站,只要直接浏览全部已完成的企业网站模板,看到、对比一下企业文化,按企业的需要直接选择企业网站模板就完事了,可以谈得上是方便、直接特点。企业网站模板分为静态模版(纯html)和动态模版(结合cms系统使用)静态模板静态模板是html格式的网页文件,这类模板下载后可以整合到cms系统中去,否则后期的修改管理和维护都不方便。动态模板动态模板一般都集成网站管理系统,不同网站管理系统一般都提供很多网站模板供用户选择,所以在选择企业网站模板的时候,还需要考虑网站管理系统的功能,易用性,扩展性和安全性等方面,避免给后期的管理维护带来麻烦。如果选择了一个很垃圾的网站管理系统,后期会出现各种网站,网站被黑,后台功能出错,各种bug等等影响网站的正常使用。小熊优化的小编这里推荐pageadmin cms系统或帝国cms系统,如果是购物类企业网站推荐ecshop系统,如果需要加上论坛,可以选择discuz系统来搭建。总结:目前国内的企业网站80%都是通过cms网站系统,加上对应的企业网站模板制作而成,所务必要选择高品质、高技术含量的网站管理系统对应的企业网站模板,这样才能大幅度的提高企业网站的开发效率和成本,还能为后期的网站管理维护真正的带来便捷和安全。【转自慕课】https://www.imooc.com

    技术
    分享到
  • 直播搭建,用户体验最重要

    19:16 作者:admin

    现阶段用户对直播搭建的专业化服务要求越来越高,期望也越来越高,对于传统的玩法已经不再满足,总是期望能够推出新的功能,直播搭建方也注意到,主播的热度会随时间的推移而发生变化,现在用户的体验才是决定用户去留的关键。现在的直播搭建功能和玩法上已经相当丰富,于是平台开始着手在平台系统的流畅长度上增加用户的使用体验。观看直播最重要的就是直播的流畅程度,流畅的视频对直播体验的提升非常大,谁想在看直播时,一会一卡顿一会一卡顿,因此在保证直播流畅的同时,减小直播间赠送礼物产生特效对直播流畅度的影响。视频清晰度同样重要,很多直播平台现在都支持蓝光4M、蓝光8M的画质,高清晰度的画质数据传输速率也要求更高,部分平台为了增加视频传输速度,直播间只支持720p或480p,对于颜值类直播间或唱歌类直播间这个画质完全够用,但游戏直播中,这个画质是达不到标准的,尤其对一些大型单机游戏,画质要求极高,保证直播流畅度的同时还要保证用户观看画质清晰,如此,不仅直播搭建的后台要做好是处理,主播使用的直播设配也不能太差。开屏时间,开屏时间过长是常见的问题,打开直播间后不能第一时间获取画面而是先听到声音,这是因为直播搭建后台对视频画面处理时间过长,导致视频和音频的时间戳不同步,两者不能同时到达播放端,开屏时间过长,用户的观看耐心也会下降,容易造成用户流失。直播讲究实时性和互动性,延迟是直播开发中一个重要的问题,延迟过大会对用户造成困扰,直播流畅度存在问题,用户体验自然会下降。其实直播中存在延迟很正常,简短的延迟可以有效的缓存视频数据,保证画面的流畅度,即使网络出现波动,也能抱枕直播正常播放。最后常见的问题就是网络堵塞。当用户在观看直播时网络出现问题,播放端没能接收到视频数据,播放画面出现中断,进入延迟状态,但这时主播的传输还在继续,传输上的数据仍然在通过CDN节点像用户输送,这就会导致线路内的数据堵塞,一个还在继续传一个没有接收到,网络恢复后,数据会正常流向播放端,这时为了保证实时画面的传输,系统会对画面自动进行加速处理,对前面没有播放出去但一直缓存着的数据进行跳过,造成直播画面的不完整性,这种现象也被称为延迟追赶。直播搭建中将以上的问题处理好,对于直播流畅度的优化也就做到了最好,用户的使用体验自然就上升了。 【转自慕课】https://www.imooc.com

    技术
    分享到
  • 汽车VIN码识别,车架号识别SDK

    19:15 作者:amsds

    VIN码(Vehicle Identification Number),中文名叫车辆识别代码, 是制造厂为了识别而给一辆车指定的一组字码。VIN码是由17位字母、数字组成的编码,又称17位识别代码、车架号。车辆识别代码经过排列组合,可以使同一车型的车在30年之内不会发生重号现象,具有对车辆的唯一识别性,因此可称为"汽车身份证"、“汽车ID号”。所谓汽车后市场是指汽车销售以后,围绕汽车使用过程中的各种服务,它涵盖了消费者买车后所需要的一切服务。也就是说,汽车从售出到报废的过程中,围绕汽车售后使用环节中各种后继需要和服务而产生的一系列交易活动的总称。汽车后市场大体上可分为七大行业:汽保行业;汽车金融行业;汽车IT行业;汽车精品、用品、美容、快修及改装行业又称汽车养护行业;技术支持百度OCR郭千龙获取免费接口数据汽车维修及配件行业;汽车文化及汽车运动行业;二手车及汽车租赁行业;后市场联盟平台整合。鉴于车架号的重要性,在与汽车后市场应用十分广泛,如汽车保险、移动查勘、汽车维修保养等行业。车架号由17位英文字母或数字组成,手工录入系统很麻烦,录入速度慢还容易出错,尤其是在手机端录入。应市场需求,我们开发了手机端VIN码识别软件。VIN码识别/车架号识别软件通过智能手机或Pad的摄像头对准车架号,无需拍照,采用视频流识别方式,实现自动采集车架号信息,方便、快速、准确,大大提升用户体验。VIN码识别/车架号识别软件支持Android、iOS平台,提供SDK开发包,支持接口开发。【转自慕课】https://www.imooc.com

    技术
    分享到
  • 分布式爬虫使用代理IP的几种方案

    19:15 作者:amsds

    没有代理IP的辅助,爬虫工作真的很难做。所以绝大部分的爬虫工程师都会去购买稳定高效安全的IP代理。有了高质量的代理IP之后,就能保障以后就没有麻烦了呢?如果真的这么简单,是个人都能做爬虫工程师,何必这么麻烦。他还需要做优化方案,资源的合理分配,提高工作效率,更加稳定快速的解决爬虫工作的问题。下面河马IP代理给大家介绍一下没有代理IP,爬虫工作将寸步难行,所以很多爬虫工程师都需要去选购高效稳定的代理IP。有了优质代理IP后,是不是就可以高枕无忧了呢?事情没有那么简单,还需要优化方案,合理分配资源,提高工作效率,更高效更快速更稳定的进行爬虫工作。下面一起来看看分布式爬虫使用代理IP的几种方案!分布式爬虫使用代理IP的几种方案方案一每个进程从接口API中随机取一个IP列表(比如一次提取50个IP)来循环使用,失败则再调用API获取,大概逻辑如下:每个线程,从接口随机取回一批IP回来,循环尝试IP列表去抓取数据;如果访问成功,则继续抓取下一条。如果失败了(比如超时、出现验证码等),再从接口取一批IP,继续尝试。方案缺点:IP代理都是有时间有效期的,如果提取了50个,你在一定期限内是有了前20个,后面的可能由于时间限制就用不了了。如果你把http请求设置的链接时间超时为3秒钟,毒物时间超时间5秒,那么这3-8秒就可能被你浪费掉,有这3-8秒能做好多事了。方案二每个进程从接口API中随机取一个IP来使用,失败则再调用API获取一个IP,大概逻辑如下:每个线程,从接口随机取回一个IP来,用这个IP去访问资源,如果访问成功,则继续抓下一条。如果失败了(比如超时、出现验证码等),再从接口随机取一个IP,继续尝试。方案缺点:频繁的调用API获取IP,会对代理服务器造成非常大的压力,影响API接口稳定,可能会被限制提取。这种方案不能持久稳定的运行。方案三先提取大量IP导入本地数据库,从数据库里面取IP,大概逻辑如下:在数据库里面建一个表,写一个导入脚本,每分钟请求多少次API(咨询代理IP服务商建议),把IP列表导入到数据库里面。在数据库里面记录好 导入时间、IP、Port、过期时间、IP可用状态 等字段;写一个抓取脚本,抓取脚本从数据库里面读取可用IP,每个进程从数据库获取一个IP进行使用。执行抓取,对结果进行判断,处理cookie等,只要出现验证码或者失败就放弃这个IP,重新换一个IP。注意事项:第三种方案有效的避开了代理服务器资源的消耗,有效的分配爬虫代理的使用,更加的高效和稳定,保障了爬虫工作的持久性和稳定性。【转自慕课】https://www.imooc.com

    技术
    分享到
  • 2080 Ti莫名起火,英伟达承认GPU有缺陷,财报后股价暴跌19%

    19:15 作者:admin

    RTX 2080 Ti,英伟达新一代图灵架构GPU,因为独特而鲜明的外观,一直以来被大家戏称为“燃气灶”。现在这个昵称总算名副其实了。昨天,2080 Ti用户shansoft正在上网,只是简单地浏览网页,没有做其他任何事情。突然,电脑突然黑屏自动关机了。不明所以的他往机箱里一看,不得了:2080Ti正在冒火!当时孩子也在旁边,可把这位用户吓坏了:“Scared the shit out of me”……这句话很直白了,就是所谓的吓出翔。2080 Ti莫名起火,英伟达承认GPU有缺陷,财报后股价暴跌19%这个真能点著火的燃气灶2080 Ti,是EVGA公司出品的GeForce RTX 2080 Ti XC GAMING。美国限购,一家只能买一块。显卡烧了,有没有波及其他电脑部件?不知道,用户说他没有其他GPU可用,所以现在还不清楚有什么其他损失。【转自慕课】https://www.imooc.com

    技术
    分享到
  • 别再总说无聊了,比起打游戏,自我总结更有意义-写博客

    19:15 作者:amsds

    没有人总能说对的话,做对的事情,一开始都是在试错,这个时候,加上你的见解,错了也不要紧,做的和别人不一样会让人“刮目先看”。比如领导安排了你做负载均衡的集群配置,你很可能做不出来,但是你却可以找别人帮你做出来,出一份相关配置手册,录一份操作视频,写一份心得,并且做一个集群配置的对比结果,这个对比结果可能不是领导安排的,但是这就是你的见解,很可能领导会认为你做的多余,但是这不重要,重要的是你做的和别人不一样。【转自慕课】https://www.imooc.com

    技术
    分享到

搜索