首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏数据的力量

    【干货】腾讯10年用户体验设计的核心方法

    《腾讯网UED体验设计之旅》是腾讯UED(用户体验设计,User Experience Design)的十年精华方法论,内容涉及网媒用户分析与研究方法、门户网站未来体验设计、H5技术在移动端打开的触控世界 、手绘原创设计、改版迭代方法、文字及信息图形化设计、媒体产品的交互设计、大项目设计管理方法等。 可用性测试 可用性测试是指在设计过程中被用来改善产品的可用性的一系列方法。 在典型的可用性测试中,用户研究员会根据测试目标设计一系列操作任务,通过测试5~10名用户完成这些任务的过程来观察用户实际如何使用产品,尤其是发现这些用户遇到的问题及原因,并最终达成测试目标。 首先简单解读如图1-10所示的两个眼动核心图表。

    1.6K30发布于 2018-07-20
  • 来自专栏BestSDK

    10方法,把人工智能融入到网页设计

    如今,网页设计不断发展,最好的网页设计师总是期待着他们工作中的下一件大事。人工智能(AI)正在成为中心舞台,并有可能彻底改变网页设计师的工作方式。 出于这个原因,网页设计师必须了解如何最大限度地利用人工智能。以下有十种在网页设计中使用人工智能的方法。 1.探索参数 在组织决定在其网页设计中使用人工智能之前,请先做一些研究,然后发现人工智能作为设计师必须为组织提供什么。 8.提升设计水平 网页设计者可以使用人工智能提升他们已经完成的设计水平,或者创建基于人工智能元素的新网站。这对设计师来说是一个自由发挥的过程,而不是让他们专注于编码。 10.理想的创造力 在网页设计中,人们需要注意流行术语,人工智能就是一个流行语,它不断吸引人们的注意力。组织通过人工智能可以在网站上创建工具,从而为各种查询生成智能答案。

    1.6K100发布于 2018-03-02
  • 来自专栏超级架构师

    【安全设计10种保护Spring Boot应用程序的绝佳方法

    Vault提供了一种自动化的方法,当时机成熟时,可以快速完成这项工作。 OWASP ZAP用于发现漏洞的两种方法是Spider和Active Scan。Spider工具从url种子开始,它将通过每个响应访问和解析url种子,识别超链接并将它们添加到列表中。 10. 您的安全团队是否进行了代码评审 代码评审对于任何高性能的软件开发团队都是必不可少的。在Okta,我们所有的生产代码和官方开源项目都需要经过专家安全团队的分析。

    4.5K30发布于 2019-05-14
  • 来自专栏Ywrby

    10-方法引用

    方法引用概述 目的 方法引用是为了进一步简化Lambda表达式的写法 格式 类型或对象::引用的方法 //关键语法 “::” 实例 package ComparatorDemo; import lists.forEach(System.out::println); } } 静态方法的引用 格式 类名::静态方法 简化步骤 定义一个静态方法,将需要简化的代码放到一个静态方法中去 注意事项 被引用的方法的参数列表和函数式接口中的抽象方法的参数列表必须完全一致 如果函数式接口中的抽象方法有返回值,则被应用的方法也必须有相同返回值 如果函数式接口中的抽象方法没有返回值,则被应用的方法也可以有返回值 ,也可以没有 实例 首先在Student类中重写一个静态方法 //首先定义静态方法 public static int compareByAge(Student s1,Student s2){ 格式 对象::实例方法 步骤 定义一个实力方法,把需要的代码放到实例中去 注意事项 被引用方法的参数列表和函数式接口的抽象方法的参数列表必须完全一致 实例 实例就是本节开头所引的System.out.println

    43420编辑于 2022-10-27
  • 来自专栏悠扬前奏的博客

    Kafka-10.设计-复制

    复制日志是分布式数据系统中最基本的原语之一,有许多实现方法。其他系统可以使用复制日志作为基元,以实现状态机样式中的分布式系统。复制日志模拟了一系列有序进入消费者进行处理的过程。 有很多方法可以实现这一点,但最简单和最快的方法是让领导者选择提供给它的值的顺序。只要leader还活着,所有follower都需要只复制值并跟随leader的选择。

    64820发布于 2019-06-16
  • 来自专栏Lixj's Blog

    设计模式】模板方法设计模式

    定义 模板方法设计模式的定义如下: 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 钩子就是在整体流程的设计中,故意留下的供子类灵活变更的钥匙。 钩子是一种被声明在抽象类中的方法,但钩子只有空的或者默认方法实现。钩子的存在,可以让子类有能力对算法的不同点进行挂钩。 但如果遇到适合的场景,使用这种设计模式也非常方便,因为可以控制整套逻辑的执行顺序和统一的输入、输出,而对于实现方,只需要关心自己的业务逻辑即可。 另外,模板模式也是为了解决子类通用方法,放到父类中优化设计。让每一个子类只做子类需要完成的内容,而不需要关心其他逻辑。再提取公用代码,行为由父类管理,扩展可变部分,也就非常有利于开发拓展和迭代了。 Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/设计模式-模板方法设计模式

    84710编辑于 2022-06-10
  • 来自专栏CSDN旧文

    设计模式』设计模式--模板方法模式

    模板方法模式是基于继承的代码复用的基本技术,模板方法模式的结构和用法也是面向对象设计的核心。 模板方法的本质:抽象封装流程,具体进行实现 模版方法模式需要开发抽象类和具体子类的设计师之间的协作。 一个设计师负责给出一个算法的轮廓和骨架 另一些设计师则负责给出这个算法的各个逻辑步骤。 代表这些具体逻辑步骤的方法称做基本方法(primitive method) 将这些基本方法总汇起来的方法叫做模版方法(template method),这个设计模式的名字就是从此而来。 多个子类有公有的方法,并且逻辑基本相同时; 重要,复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能则由各个子类实现; 重构时,模板方法模式 是一个经常使用的模式,把相同的代码抽取到父类,然后通过钩子函数约束其行为 最后,设计模式给出的是一种设计框架,而不是条条框框,你需要用的是他真正优秀的地方! 开发实例 ?

    1.5K20发布于 2020-10-28
  • 来自专栏everhad

    设计模式:模板方法

    模板方法 使用基类定义整体步骤,即若干方法的调用过程,将一些可变的步骤由子类去重写。这样就可以利用多态在不改变操作的整体结构下定制一些特殊细节。 代码解释 可以联想在线电子邮件和普通邮递的区别。 on**()方法,目标方法在调用子类重写的方法时通常做了很多额外准备工作和后续工作。 dirtyOpaque) onDraw(canvas); ... } ViewGroup事件分发 ViewGroup在方法dispatchTouchEvent()中定义了事件分发机制的整体结构。 子类需要重写以下方法来定制事件处理过程: public boolean onInterceptTouchEvent(MotionEvent ev); public boolean onTouchEvent 模板方法强调抽象过程的不变性,某些细节的可变性。

    80650发布于 2018-01-08
  • 来自专栏C/C++基础

    算法设计方法

    2.算法的常用设计方法 实际应用的算法千变万化,种类繁多。设计一个好的算法需要设计者根据实际要解决的问题,充分发挥自己的分析和综合能力,经过认真构思、仔细设计和耐心调整。 在算法的设计过程中,最重要的是创新精神。经过数千年无数前人的创新,人类不近积累了大量精妙的算法,同时在算法的设计方法上也进行了深入的探讨,发现许多不同问题的解决算法,它们的设计思想有相似之处。 经过科学的总结,找到了一些行之有效的能够用于设计算法的一般方法。下面列举最常用的算法设计方法。 2.3递归法 递归(Recursion)是设计和描述算法的一种有力的工具,由于它在复杂算法的描述中被经常采用,为此在进一步介绍其他算法设计方法之前先讨论它。 如迷宫问题和八皇后问题都可以采用回溯方法设计求解算法。

    95830发布于 2018-08-03
  • 来自专栏C++

    设计模式-模版方法

    什么是模版方法? 借助抽象类定义算法的骨架,再由具体子类实现算法的特定步骤。 这种设计模式让算法的整体结构得以固定,同时又能让不同的子类灵活地实现具体步骤; 简单来说就是使用抽象类,把要实现的功能框架写好,里面的具体实现细节设置为虚函数; 怎么理解抽象类的算法骨架? 首先我们要知道什么是抽象类,抽象类就是还有纯虚函数的类就叫做抽象类,抽象类是不可以实例化的,这也是抽象类作为模版的重要原因; 我们在抽象类中定义的纯虚函数,后面再继承的派生类中都是需要进行重写的,这算是模版方法的使用方法 ; Burn功能骨架 这里我以一个游戏中常见的角色类为例; #include<bits/stdc++.h> using namespace std; //模版方法--抽象类 class Factor ,骨架是一样的,但是里面的内容是不一样的,不同的对象可以从过重写骨架中的接口和方法,实现不同的效果,这就是多态的应用!!!

    22610编辑于 2025-04-09
  • 来自专栏憧憬博客分享

    设计模式 | 模版方法

    说明 模板方法是通过汇总 或排序基本方法而产生的结果集。 模板方法在一些开源框架中应用很多,它提供了一个抽象类,然后开源 框架写了一堆子类,在《XXX In Action》中就说明了,如果你需要扩展功能,可以继承了这个抽象类,然 后修改 protected 方法 父类调用子类的静态方法。 这三种都是父类直接调用子类的方法,好用不?好用!解决问题了吗?解决了!项目中允许使用不? 不允许! 其实这个问题可以换个角度去理解,在重写了父类部分方法后,再调用从父类继承的方法,产生 不同的结果(而这正是模板方法模式),这是不是也可以理解为父类调用了子类的方法呢? 你修改了子类, 影响了父类的结果,模板方法模式就是这样效果。 示例 // 别想了 这个设计过于简单 正常编码就能编写 别看啥例子了 要看再百度一下子

    56120发布于 2020-07-21
  • 来自专栏不蜇人的小蜜蜂

    设计模式---模板方法

    ; 3、然后是具体的类,XXXDisplay继承自AbstractDisplay,并去重写父类方法等 通常在第2步时发现,虽然当前类为一个抽象类,但是里面却有部分的有方法体的方法(可能被final修时, 也可能没有被final修时),并且这些方法体内部调用了抽象方法。 具有这种特征的模式即为模板方法。 显而易见,抽象类中定义了模板方法,但又需要子类自己的逻辑去配合父类的模板方法才能完成最终的方法调用。 ||||||||||||| 正如示例代码所示: 1、父类(抽象类)定义了抽象方法和模板方法 2、子类实现抽象方法 3、在执行父类的模板方法的时候发现,具体的逻辑会根据具体的子类型来确定。 这就 实现了一个模板算法下的不同的实现内容 到此大家应该也对模板方法有了个大概的认识,下面我们来总结一下模板方法的重要特征(敲黑板): 1、关于模板方法Template Method的角色划分:抽象类和具象子类

    50020发布于 2020-03-31
  • 来自专栏体验主义

    导航设计10种模式

    移动端产品导航的设计没有最好之说,只有最合适,根据你的产品采取最合适的导航设计。 纵观应用市场上的APP,导航设计的模式总是几种的组合使用。下面我们来看一下常见的10种导航设计模式。 02 顶部标签导航 描述: 顶部Tab是谷歌提出来的,为了区分与iOS的区别的一种导航模式,由于在顶部,手指难以触及,所以谷歌对应地提出了手势操作的解决方法:通过在屏幕左右滑动来切换标签。 缺点: 不适合展现顶层入口框架; 容易形成界面内容过多,显得杂乱; 设计效果容易呆板。 ? 10 组合式 描述: 一个网站或者APP内不可能只用一种导航,通常都是组合来使用。在不同使用场景下根据实际需要进行选择。但是通常主导航会对这个产品的格调起决定性作用。 总结 1.底部tab式 2.顶部标签式 3.轮播式 4.宫格式 5.卡片式 6.抽屉式 7.下拉式 8.列表式 9.弹窗式 10.组合式 导航可能不单单只有这几种,可能大家的叫法也不尽相同。

    5K40发布于 2020-04-08
  • 来自专栏技术客栈

    Java设计模式(10)代理模式

    前言 在软件开发的世界里,设计模式如同一本精妙的编码诗集,已经成为一种标准的编程实践。在Java编程中,设计模式很重要。 本人将制作一个关于Java设计模式的系列文章,总共23种设计模式将以一篇一篇文章讲解,代码笔记已开源:Gitee点击跳转。在上一篇《Java设计模式(9)享元模式》文章中,我们介绍了享元模式。 代理模式 在代理模式中,一个类代表另一个类的功能,这种类型的设计模式属于结构型模式。代理模式通过引入一个代理对象来控制对原对象的访问。 这个接口有一个方法 invoke,用于处理对代理实例的方法调用。 BankInvocationHandler 的构造方法接受一个对象作为参数(可代理多种对象),这个对象就是实际处理方法调用的对象。 invoke 方法会在代理实例上调用任何方法时被调用。它接受三个参数:proxy:代理实例、method:被调用的方法、args:方法调用的参数。

    26010编辑于 2024-07-03
  • 来自专栏wayn的程序开发

    10种微服务设计模式

    微服务设计模式是一种指导微服务架构设计和开发的一系列原则和实践。微服务设计模式的目的是为了解决微服务架构中遇到的一些常见的问题和挑战,比如服务划分、服务通信、服务治理、服务测试等。 微服务设计模式可以帮助我们构建出高效、可靠、可扩展、可维护的微服务系统。 1. 有两种常见的 Saga 实现方法,即协调和编排。每个方法都有自己的一组挑战和技术来协调工作流。 协调 协调是协调 Saga 的一种方法,参与者在没有集中控制点的情况下交换事件。 编排 编排是协调 Saga 的一种方法,在此方法中,中央控制器告诉 Saga 参与者要执行的本地事务。Saga 编排器处理所有事务,并告知参与者根据事件执行哪项操作。 10. BFF 模式 BFF 模式是一种为前端定制的后端的模式,它的全称是 Backend for Frontend。

    60620编辑于 2023-08-28
  • 来自专栏wayn的程序开发

    10个微服务设计模式

    微服务设计模式是一种指导微服务架构设计和开发的一系列原则和实践。微服务设计模式的目的是为了解决微服务架构中遇到的一些常见的问题和挑战,比如服务划分、服务通信、服务治理、服务测试等。 微服务设计模式可以帮助我们构建出高效、可靠、可扩展、可维护的微服务系统。 有两种常见的 Saga 实现方法,即协调和编排。 每个方法都有自己的一组挑战和技术来协调工作流。 协调 协调是协调 Saga 的一种方法,参与者在没有集中控制点的情况下交换事件。 编排 编排是协调 Saga 的一种方法,在此方法中,中央控制器告诉 Saga 参与者要执行的本地事务。 Saga 编排器处理所有事务,并告知参与者根据事件执行哪项操作。 10. BFF 模式 BFF 模式是一种为前端定制的后端的模式,它的全称是 Backend for Frontend。

    92921编辑于 2023-08-22
  • 来自专栏问答设计模式

    设计模式——模板方法

    菜鸟:大家伙儿常说的模板方法是什么? 码农:设计模式的经典名著中Design Patterns: Elements of Reusable Object-Oriented Software(《设计模式——可复用面向对象软件的基础》)提出的一种软件编码思想模式 菜鸟:这跟模板方法有什么关系? 码农:模板方法就是来解决这个问题的;将完成一件事情的稳定和变化独立开来,定义好一个操作的算法骨架(稳定),而将一些步骤延迟到具体场景中实现(变化);模板方法使得不同场景复用同一个算法框架,具体的场景重定义算法的某些特定步骤 / 上层应用逻辑程序代码class application : public library {public:application(){}virtual ~application(){}//重写父类方法

    45430编辑于 2022-09-03
  • 来自专栏阮一峰的网络日志

    Javascript的10设计缺陷

    前几篇文章,我经常说Javascript的设计不够严谨,有很多失误。 今天的这一篇,前半部分就谈为什么会这样,后半部分将列举Javascript的10设计缺陷。 1995年5月,设计方案定稿;10月,解释器开发成功;12月,向市场推出,立刻被广泛接受,全世界的用户大量使用。Javascript缺乏一个从小到大、慢慢积累用户的过程,而是连续的爆炸式扩散增长。 设计缺陷还没有充分暴露就成了标准。相比之下,C语言问世将近20年之后,国际标准才颁布。 二、Javascript的10设计缺陷 ? 1. alert(1+10); // 11   alert("1"+"10"); // 110 如果一个操作项是字符,另一个操作项是数字,则数字自动转化为字符。    alert(1+"10"); // 110   alert("10"+1); // 101 这样的设计,不必要地加剧了运算的复杂性,完全可以另行设置一个字符连接的运算符。 7.

    94381发布于 2018-04-12
  • 来自专栏深入浅出Java

    掌握8条方法设计规则,设计优雅健壮的Java方法

    掌握8条方法设计规则,设计优雅健壮的Java方法一个良好的方法设计可以提高代码的可读性、可维护性和可扩展性,而糟糕的方法设计则可能导致代码难以理解和修改本文基于 Effective Java 方法章节总结 8条设计方法的规则,帮助开发者更好进行方法设计检查参数的有效性为了防止错误发生,方法中一般会对参数进行校验,比如ArrayList的构造和添加方法传入容量为负数会抛出非法参数异常IllegalArgumentExceptionpublic :31 CST 2024 - Mon Apr 01 11:10:31 CST 2024 System.out.println(cp);方法返回通过拷贝的方式防止引用逃逸,但是这样可能存在频繁创建对象的性能问题如果调用方是可信任的 (不会修改逃逸的可变对象),那么也可以不进行保护性拷贝(在文档中说明)谨慎设计方法1.谨慎选择方法的名称见名知意2.不要过于追求提供便利的方法设计API时方法太多导致不好维护,有必要提供便利的方法可以放在工具类中 (入参、响应)解决设计方法时需要见名知意、避免参数过长、定义参数类型为接口而不是类、boolean类型考虑泛型,并且API中不要追求大量便利的方法,这种方法应该在工具类中重载编译时就能够确定,为了避免转换类型调用错重载方法

    42721编辑于 2024-07-30
  • 来自专栏猿人工厂

    设计10——真电商之完整商品设计

    嘿嘿似乎还有一定的距离,设计就是这样一个过程,不断的去回看之前的一些东西,从而发现遗漏的东西,查漏补缺。今天,我们一起来经历下这个过程,进一步完善商品系统的设计。 ? ? ? ? ? 额,到现在才发现这个问题,简直不可饶恕,要是真完成设计进入编码阶段,这个问题就搞大了。赶紧分析一下。 至于还不熟悉商品需求和设计是怎么从无到有地挖掘出来的朋友,为了方便你的理解,简易你看看之前的系列文章猿设计8——真电商之刷新你对商品的认识以及猿设计9——真电商之商品实体识别。 ? ? ? 嗯,看上去规格与包装的信息,似乎是可以和类目的属性有些联系,但是作为一个商品,除了我们之前抽取出来的销售信息之外,还有好多普通属性没有记录下来,考虑到系统设计的冗余性,商品和sku上应该体现出来。 在做设计工作的时候,也要有个度,懂得取舍之道,没有最完美的设计,只有最合适的道理。 ?

    55120发布于 2020-07-28
领券