首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我选择使用原型工具来代替纸原型

在大学的时候,导师会叫我们只用纸笔来做原型图,这样能更直观地看出我们的想法和信息架构。刚工作的时候,我也习惯只用纸笔来画原型图,这样能快速地表达我的想法。...纸原型的好处就在于与他人沟通的时候可以进行及时修改,也容易修改,并且能随时随地完善我的想法和思路。但当我在实际工作中使用纸原型一年后,使用纸原型的诸多弊端开始暴露出来: 1. 不易保存。...由于经常修改,所以我习惯使用铅笔,铅笔画的图容易模糊,时间久了以后就不够清晰。而且纸张容易损坏和丢失。在经历过多次原型文件丢失以后,我只能通过拍照记录的方式保存下来,但是照片效果并不理想。 ?...在使用了一年纸原型后我接触了许多原型软件, 原型软件的好处就在于它保真度较高,提高工作效率,适合用于用户测试,能够更好给老板和客户演示,更直观地看到最终产品的模型。...我一般只需要把组件拖到页面上然后调整一下就可以了。使用一段时间后,我发现它在交互设计方面也很好用,无论是跳转页面还是在页面内做组件交互都挺快的。 ?

77950

为什么我选择使用原型工具来代替纸原型

在大学的时候,导师会叫我们只用纸笔来做原型图,这样能更直观地看出我们的想法和信息架构。刚工作的时候,我也习惯只用纸笔来画原型图,这样能快速地表达我的想法。...纸原型的好处就在于与他人沟通的时候可以进行及时修改,也容易修改,并且能随时随地完善我的想法和思路。但当我在实际工作中使用纸原型一年后,使用纸原型的诸多弊端开始暴露出来: 1. 不易保存。...由于经常修改,所以我习惯使用铅笔,铅笔画的图容易模糊,时间久了以后就不够清晰。而且纸张容易损坏和丢失。在经历过多次原型文件丢失以后,我只能通过拍照记录的方式保存下来,但是照片效果并不理想。 ?...在使用了一年纸原型后我接触了许多原型软件, 原型软件的好处就在于它保真度较高,提高工作效率,适合用于用户测试,能够更好给老板和客户演示,更直观地看到最终产品的模型。...我一般只需要把组件拖到页面上然后调整一下就可以了。使用一段时间后,我发现它在交互设计方面也很好用,无论是跳转页面还是在页面内做组件交互都挺快的。 ?

70530
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我应该使用 PyCharm 在 Python 中编程吗?

    选择正确的环境来编写和调试 Python 代码可能具有挑战性,但 PyCharm 是一个很好的选择,从其他选项中脱颖而出。 下面的文章将深入探讨PyCharm是否是你的Python编程的正确选择。...什么是PyCharm? PyCharm是专门为Python语言设计的集成开发环境(IDE)。它旨在通过提供一系列工具和模块使程序员更快、更轻松地编码。...此外,它可以在多种平台上使用,包括Windows,Linux和macOS。...版本控制集成 - PyCharm支持广泛的版本控制系统,如Git,Mercurial和SVN,使得使用存储在版本控制存储库中的代码变得容易。...但是,您是否应该使用它取决于您的特定需求和偏好。如果您不熟悉编程或更喜欢简单的文本编辑器,则可能需要从更基本的工具开始。但是,如果您正在处理大型项目或需要高级功能,PyCharm可能是您的最佳选择。

    4.6K30

    【React】249-当我开始使用React 时,我希望我知道这些知识

    使用箭头函数时不需要 .bind(this)   通常,如果有一个受控组件时,会有如下的结构: class Foo extends React.Component{ constructor( props...当你想按时完成任务时,把精力集中在它能推动你前进的地方。 ESlint Auto 保存自动格式化可节省大量时间   你可能已经从某些没有格式化的地方复制了一些代码。...使用 ESLint 和 Visual Studio 代码插件,它可以在保存时为你格式化它。 ?...我要解决的问题是什么 这个项目能长久地受益于这个库吗 React是否已经提供了一些现成的东西   现在可以使用 React 的 Context 和 Hook,你还需要Redux吗?   ...当你的用户处于糟糕的互联网连接环境时,我强烈建议使用 Redux Offline。

    79210

    当我开始使用React 时,我希望我知道这些知识

    自2013年5月29日首次发布以来,React.js已经占领了互联网。我和许多其他开发人员将他们的成功归功于这个了不起的框架,这已经不是什么秘密了。...使用箭头函数时不需要 .bind(this) 通常,如果有一个受控组件时,会有如下的结构: class Foo extends React.Component{ constructor( props...1.gif 使用 ESLint 和 Visual Studio 代码插件,它可以在保存时为你格式化它。...我要解决的问题是什么 这个项目能长久地受益于这个库吗 React是否已经提供了一些现成的东西 现在可以使用 React 的 Context 和 Hook,你还需要Redux吗?...当你的用户处于糟糕的互联网连接环境时,我强烈建议使用 Redux Offline。

    93730

    在使用Git时你应该这样提交代码

    前言 目前大部分公司都在使用 Git 作为版本控制,每个程序员每天都要进行代码的提交。...很多开发者也包括我自己,有时候赶时间或者图省事,就这么提交: git commit -m "修改bug,优化代码" 过了一段,突然去查找一个具体的提交你会发现不是特别好找。...如果产生了上述的影响强烈建议在提交信息中写明break change,有利于出问题时快速定位,回滚,复盘。...那么在 Git 提交时,我们可以在foot区域关联本次提交涉及的issue。...这里推荐一些有用的工具来帮助你将这些规范落实到位。在Intellij IDEA的插件市场有很多 Git Commit Message 模板插件,可以可视化的实现这些规范。

    1.3K20

    我应该在什么时候使用 Apache Druid

    请访问 使用 Apache Druid 的公司 页面来了解都有哪些公司使用了 Druid。...如果您的使用场景符合下面的一些特性,那么Druid 将会是一个非常不错的选择: 数据的插入频率非常高,但是更新频率非常低。...大部分的查询为聚合查询(aggregation)和报表查询(reporting queries),例如我们常使用的 “group by” 查询。同时还有一些检索和扫描查询。...查询的延迟被限制在 100ms 到 几秒钟之间。 你的数据具有时间组件(属性)。针对时间相关的属性,Druid 进行特殊的设计和优化。...如果你的使用场景是下面的一些情况的话,Druid 不是一个较好的选择: 针对一个已经存在的记录,使用主键(primary key)进行低延迟的更新操作。

    67730

    为什么我应该使用指针而不是对象本身

    我发现使用 C++ 的人经常用指针表示对象,比如像下面这样: Object *myObject = new Object; 而不是, Object myObject; 或者在调用成员函数的时候,都会这样...回答 对于现代 C++ (尤其是 C++ 11 之后),大量使用 new 动态分配是不明智的选择。 下面从两个方面来解释: 什么时候该使用 new? 什么时候该使用指针?...什么时候该使用 new? 你需要延长对象生命周期。 意思是说你想一直使用某个地址位置的变量,而不是它的副本,对于后者,我们更应该使用 Object myObject; 的语法。 你需要很多内存。...当你确实要用动态内存分配的话,我们应该用智能指针或者其它的 RAII 技术来管理这部分资源。 什么时候该使用指针? 不过,除了动态分配内存之外,原始指针还有其它用途。...切片的意思就是说:在函数传参处理多态变量时,如果一个派生类对象在向上转换(upcast),用的是传值的方式,而不是指针和引用,那么,这个派生类对象在 upcast 以后,将会被 slice 成基类对象,

    1.4K10

    使用Python时绝对不应该做什么?

    在本文中,我们将学习在使用 Python 时不应该做什么。 谨慎使用类变量 在 Python 中,类变量用作字典,称为方法解析顺序 (MRO)。此外,如果一个类缺少一个属性,则该类缺少一个属性。...缩进不当 在 Python 中,缩进就是一切。Python 在线使用缩进,不像 Java、C++ 和其他编程语言使用大括号来构造代码块。许多属性受缩进的影响。...但是,Python使用独特的编程范式来克服这一点。 如果使用得当,范式可以简化然后简化代码,确保不会意外删除和迭代重要项目。 变量绑定 这是一个学习者难以掌握和欣赏的话题。Python 支持后期绑定。...调用命令“_ _ del _ _”时,代码中的名称设置为“None”。相反,使用 “atexit.register()” 在关闭解释器之前启动注册的处理程序。...解决方案是什么?使用 () 更改模块。 不使用注释和文档字符串 注释是编程的重要组成部分。注释提高了代码的可读性和自我解释。如果不使用注释或文档字符串会怎样?太可怕了!

    1.2K40

    为什么我在 Linux 上使用 exa 而不是 ls?

    我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。...当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢? exa 是一个常规 ls 命令的现代替代品,它让生活变得更轻松。这个工具是用 Rust 编写的,该语言以并行性和安全性而闻名。...它使用颜色来区分文件类型和元数据。它能识别符号链接、扩展属性和 Git。而且它体积小、速度快,只有一个二进制文件。 跟踪文件 你可以使用 exa 来跟踪某个 Git 仓库中新增的文件。...image.png 递归 当你想递归当前目录下所有目录的列表时,exa 能进行递归。 image.png 我相信 `exa 是最简单、最容易适应的工具之一。...它的颜色编码让我更容易在多个子目录中进行搜索,它还能帮助我了解当前的 xattrs。

    2K40

    在 React 表单开发时,有时没有必要使用State 数据状态

    说到在React中处理表单,最流行的方法是将输入值存储在状态变量中。遵循这种方法的原因之一是因为毕竟它是React,每个人都倾向于使用它附带的hooks。...使用hooks可以解决React中的许多问题,但是在处理表单时是否必需呢?让我们来看看。...虽然在小型应用程序中这不是一个大问题,但随着应用程序规模的增长,它可能导致性能瓶颈。当涉及到表单时,React会尝试在每次输入(状态)发生变化时重新渲染组件。...小提示:我在StackOverflow上找到了一个非常有用的答案,可以用来计算组件渲染的次数。我们也会在我们的代码中使用这个实用函数。...我们将使用状态来管理表单输入。 import { useEffect, useRef, useState } from "react"; import ".

    41630

    S7-1500调用一个功能块时,应该使用整个结构代替大量的单个元素来传递参数

    描述 本条目将阐述如何处理“传送整个元素来代替大量的单个元素”,及其在 STEP 7 V5.x 和 STEP 7 (TIA 博途) V12 中不同的处理步骤。...在传送数据块的变量时,符号名不再可用。 在 STEP 7 TIA 博途中的步骤 在 STEP 7 (TIA 博途) 中也可以传送结构体参数。...使用这个数据类型来声明一个数据块或者 DB 块中的变量。 在块的接口中定义 VAR_IN_OUT 类型的形参。 对于块调用可以参数化整个数据记录(DB 或者 DB 中的变量)作为一个参数。...拷贝数据结构时, 在系统中填充位会被插入到数据传输中,因为UDT在系统中总是以16位存在。这会导致当您在程序中使用非优化访问的块时整个输出字将会被覆盖。输入和输出区域没有被优化。...如果您传送如图1所示的整个数据结构,那么您应该使用优化的块访问。 S7-1200/S7-1500 新生成的DB块会默认设置为优化访问。

    1.3K10

    你知道什么是 HTTP 长轮询么?什么场景下需要使用?我来告诉你!

    什么是 HTTP 长轮询? 那么,什么是长轮询?HTTP 长轮询是标准轮询的一种变体,它模拟服务器有效地将消息推送到客户端(或浏览器)。...当然,许多外部因素也会影响连接,例如,移动浏览器在 WiFi 和蜂窝连接之间切换时更有可能暂时断开连接。 通常,除非您可以控制整个架构堆栈,否则没有单一的轮询持续时间。...使用长轮询时的注意事项 在您的应用程序中使用 HTTP 长轮询构建实时交互时,需要考虑几件事情,无论是在开发方面还是在操作/扩展方面。 随着使用量的增长,您将如何编排实时后端?...服务器性能和扩展 使用您的解决方案的每个客户端将至少每 5 分钟启动一次与您的服务器的连接,并且您的服务器将需要分配资源来管理该连接,直到它准备好满足客户端的请求。...然后出现几个明显的问题: 服务器应该将数据缓存或排队多长时间? 应该如何处理失败的客户端连接? 服务器如何知道同一个客户端正在重新连接,而不是新客户端?

    1.2K40

    为什么你永远不应该在CSS中使用px来设置字体大小

    在Josh Collinsworth的博客文章“永远不要用px作为字体大小”中,作者讨论了为什么不应该使用像素(px)作为网页字体大小的单位[1]。...案例证明:在CSS中, px , em 或 rem 单位之间没有功能上的区别的想法是一个我一遍又一遍听到的误解,因此我想在这里发帖来解决这个问题。 我们要非常清楚:在CSS中使用的单位绝对很重要。...并且在设置时 font-size 应尽可能避免使用 px 。 我们在谈论什么单位,它们是做什么的?...在我们讨论为什么应该避免使用 px 作为 font-size 之前,让我们确保我们都清楚我们正在谈论哪些单位,以及它们的一般行为。...我个人建议使用 rem 来设置所有的大小。我只在想要与当前字体大小成比例的东西(例如,与一些文本旁边的图标应该与字符的高度完全相同,并且在一侧有半个字符的情况)中添加 em 。

    1.8K20

    Spark为什么只有在调用action时才会触发任务执行呢(附算子优化和使用示例)?

    微信图片_20200709201425.jpg但初学Spark的人往往都会有这样的疑惑,为什么Spark任务只有在调用action算子的时候,才会真正执行呢?...咱们来假设一种情况:假如Spark中transformation直接触发Spark任务!那么会产生什么结果呢? 1....导致map执行完了要立即输出,数据也必然要落地(内存和磁盘) 2. map任务的生成、调度、执行,以及彼此之间的rpc通信等等,当牵扯到大量任务、大数据量时,会很影响性能 看到这两点是不是很容易联想到...会将多个map算子pipeline起来应用到RDD分区的每个数据元素上(后续将要介绍的SparkSQL中的Dataset/DataFrame也是如此) 下面说几个算子的优化,这也是面试中经常问的问题: 在我们实际的业务场景中经常会使用到根据...当然reduceByKey在某些场景下性能会比aggregateByKey低,具体算子的替换要结合实际业务需求场景来定。

    2.4K00

    Spark为什么只有在调用action时才会触发任务执行呢(附算子优化和使用示例)?

    但初学Spark的人往往都会有这样的疑惑,为什么Spark任务只有在调用action算子的时候,才会真正执行呢?咱们来假设一种情况:假如Spark中transformation直接触发Spark任务!...那么会产生什么结果呢? 1....导致map执行完了要立即输出,数据也必然要落地(内存和磁盘) 2. map任务的生成、调度、执行,以及彼此之间的rpc通信等等,当牵扯到大量任务、大数据量时,会很影响性能 看到这两点是不是很容易联想到...会将多个map算子pipeline起来应用到RDD分区的每个数据元素上(后续将要介绍的SparkSQL中的Dataset/DataFrame也是如此) 下面说几个算子的优化,这也是面试中经常问的问题: 在我们实际的业务场景中经常会使用到根据...当然reduceByKey在某些场景下性能会比aggregateByKey低,具体算子的替换要结合实际业务需求场景来定。

    1.7K30

    0645-6.2.0-为什么我在CDH6上使用Spark2.4 Thrift失败了

    Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1 文档编写目的 Fayson在前面的文章中介绍过什么是Spark...2.2 编译Spark官网源码方式 在经过2.1章节使用Spark原生Thrift部署失败后,尝试使用Spark源码的方式编译Thrift。...通过部署测试发现, 可以通过beeline访问Thrift Server服务,在执行SQL命令时无法正常读取Hive上的库和表。通过后台也会报错 ?...总结:由于CDH5和CDH6和编译时Spark Thrift依赖的Hive版本有差异导致无法Thrift服务无法正常运行。...温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。 推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

    3.4K30
    领券