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

Human Interface Guidelines —— Alerts

除了这些可配置元素外,警报外观是固定,不能定制。 ·最小化警报 Alerts会破坏用户体验,只能用于重要情形,确认购买和破坏性行为(删除)或通知人们出现了问题。...确保每个alerts提供关键信息和有用选择。 ·在两个方向测试警报外观 Alerts在横向模式和纵向模式下可能会有所不同。 优化alerts文本,使其无需滚动即可在任何方向被读取。...---- Alert 标题与信息 ·使用简短、描述性、多字Alert标题 人们在屏幕上阅读文字越少越好。尝试制作一个标题,避免添加额外文本作为消息。...在极少数情况下,您必须提供指导,使用单词“tap”,在引用按钮时保留大写,并且不要将按钮标题放在引号。...这也应该产生与点击取消按钮相同效果——也就是说,在执行任何操作情况下alert被解除。 ---- MD中有类似的组件——DialogsAlerts

1.1K80

“分布式” 开发规范治理​

在确保了拥有统一规范情况下,A 团队开发人员,可以快速地到 B 团队开发,而不需要一些额外讨论。简单来说,规范就是一种用于规模化提升效能模式。...特别是开发团队质量不齐情况下,依附于个人自觉,已经难于控制团队质量。特别是,我们会因为越来越多 quick fix,导致一次又一次性破坏系统规范。...即结合开发过程工具( IDE、Git、CLI),将规范内置到开发流程。典型有 Git Hooks、IDE 插件等。 测试态。...为了支撑到分布式场景,一些潜在方案便是: 工具化代码块。使用额外代码模块( Git Submodule、软件包等)来执行规范自动化,诸如于 npm 包、jar 包形式。 工具检查器。...与 ArchUnit 相比,Guarding 推荐这种守护方式是: 以 CLI 方式运行。无需额外编码工作,担心系统被破坏。 配置在持续集成。 多系统多语言守护。

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

Python print() 函数,在同一打印

默认情况下, print() 函数每次都在新上打印,这是由于 Python 文档 print() 定义决定。 为什么 Python print 函数默认在新上打印?...如何在 Python 同一上打印 有时,我们需要在一上打印字符串,这在我们用 Python 读取文件时特别有用,当我们读取文件时,默认情况下在行之间会得到一个空白。...当我们打印内容时,结果如下: 额外空行是由于文件每一末尾都有 \n ,而 n\ 将光标移动到下一,由于 print 函数也会默认会输出空白,所以读取文件输出之后多出了一个空行。...,默认情况下,文件每一末尾都有 \n ,由于我们只关心右边字符,所以我们可使用 rstrip () ,它代表右边字符,接下来我们将讨论 rstrip () 一个示例。...,在下一步,我们用 rstrip('\n') 和 end ='' 再次删除额外,以便在一得到输出。

2.5K10

Angular Material 设计之美

顺便插一句,如果大家纠结用 Sass 还是 Less,可以看一下这篇文章 CSS 预处理器循环,个人建议用 Less,请原谅我无意引战?。...我最开始认为将所有样式全部写到 mixin 并不是很优雅做法,但是在编写 ng-matero 暗黑主题时候,我发现这样做是不行。以下是 Angular Material 主题定制方法。...ng-matero 在使用 ng add 初始化时候增加了预构建主题选项,生成主题只有一份,如果有特殊需求可以自行定制。实现方式就是不同主题传入不同变量,但是这种情况下多主题控制会有问题。...在熟悉了一种组件之后,几乎不需要额外记忆成本,就可以很容易猜到某些 API,简单易懂,使用很方便。不过时常翻文档还是很有必要。 再看一下菜单组件,使用方式同样非常简单。...然而仔细研究一下就会发现,mat-table 是在 DOM 层面的抽象,本质是一样

5K30

保持 Go 模块兼容

因此,通常最好以兼容方式更改现有的包。 在这篇文章,我们将探讨一些引入非破坏性变更技巧。常见主题是:添加更改或删除。我们还将从一开始就讨论如何设计您 API 以实现兼容性。...扩展如下函数: func Run(name string) 如果使用默认为零额外参数,则可能会建议: func Run(name string, size ...int) 理由是所有现有的调用都将继续工作...直接添加到接口是一个破坏变化,但是,我们如何在公开接口上支持新方法呢? 基本思想是用新方法定义一个新接口,然后在使用旧接口地方,动态检查所提供类型是旧类型还是新类型。...这可以防止在包外定义类型在嵌入情况下满足接口要求,从而使您可以在以后添加方法而不会破坏用户实现。例如,请参见 testing.TB’s private() 函数。...在不常见情况下,您有一个希望比较值结构,然后添加一个 doNotCompare 字段,您以后可以自由地更改结构,而不必担心破坏比较。缺点是,该类型不能作为映射键使用。

1.2K30

10 个迅速提升你 Git 水平提示

这个命令可以将文件每一作者、最新变更提交和提交时间展示出来。 git blame [file_name] ? 在下面的截图中你可以看到命令是如何在更大目录搜寻。 ? 4....这种情况下,你可以在 add 命令中加上 -p 参数 git add -p [file_name] 我们来演示一下在 file_name 文件添加了3文字,但只想提交第一和第三。...你有如下几个选项: 输入 y 来暂存该块 输入 n 暂存 输入 e 手工编辑该块 输入 d 退出或者转到下一个文件 输入 s 来分割该块 在我们这个例子,最终是希望分割成更小部分,然后有选择添加或者忽略其中一部分...正如你所看到,我们添加了第一和第三而忽略了第二。之后你可以查看仓库状态之后并进行提交。 ? 7....在你知道又要进行变更之前,你已经有了一些额外commit。理想情况下,你可以用rebase命令把多个commit压缩成一个。

73840

iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

4.3.2 添加联系人按钮 添加联系人按钮让用户将现有联系人添加到文本框或者其它文字视图中。 ? API注释 想要了解如何在代码定义添加联系人按钮,请参考UIButton....添加联系人按钮: 展示联系人列表 帮助用户将一个联系人添加到当前联系人按钮所在视图中 使用添加联系人按钮让用户在不需要使用键盘情况下就可以方便地访问到联系人。...由于添加联系人按钮属于键盘输入联系人方法替代品,我们推荐在不支持键盘输入界面中使用添加联系人按钮。...详情展开按钮以一个单独视图展示特定项目的更多详情信息与功能。 当详情展开按钮在表格中出现时,点击表格其它区域不会激活此按钮,只会选中该行,或者触发app其它自定义行为。...理想情况下,警告框文字应该给与用户足够情景和上下文联想,让他们可以清楚地知道为什么警告会出现,同时帮助他们判断自己应该点哪个按钮。 保证标题足够简短,最好在一之内。

13.2K30

对比Excel,更强大Python pandas筛选

此数据框架包括原始数据集中所有列,我们可以将其作为一个独立表(数据框架)使用,而不需要额外步骤(例如,如果我们在Excel中进行筛选后,需要将其复制到另一个工作表或删除其他以使其成为“一个表”)...图2 发生了什么(原理) 了解事情究竟是怎么发生很重要,这将帮助我们理解如何在pandas上使用筛选。...上面的代码翻译为:对于每一,如果“总部所在国家”是“中国”,则评估为Ture,否则为False。 为了更好地形象化这个思想,让我展示一下在Excel它是什么样子。...看看下面的Excel屏幕截图,添加了一个新列,名为“是否中国”,还使用了一个简单IF公式来评估一是否“总部所在国家”为中国,该公式返回1或0。实际上,我正在检查每一值。...在现实生活,我们经常需要根据多个条件进行筛选,接下来,我们将介绍如何在pandas中进行一些高级筛选。

3.9K20

vim编辑模式,命令模式以及vim实践

vim编辑模式:               从一般模式进入编辑模式,只需按i、I、a、A、o、O、r和R某一个键即可,当进入编辑模式时,在屏幕尾行显示INSERT字样(若支持中文,则显示插入)。...“:w /root/1.txt” 例:把正在编辑文件第10到第15另存为1.txt并保存到root目录下在一般模式下输入“:10,15 w /root/1.txt” 7.把其它文件内容导入到正在编辑文件光标所在处...例:把“/root/1.txt” 文件内容,导入到下在编辑文件第10下面 首先在一般模式下按“10G”把光标定位到第10 然后按“o”小写,当前行下面另起一,并进入插入模式...b I # ”然后回车,这时候在一般模式按键盘上ctrl+b时候就会在光标所在首插入“#”号了 注意:命令ctrl+v和ctrl+b是键盘上组合键,不是输入进去字符,是需要按组合键...“:only”那么只保留当前正在编辑窗口,其它全关闭 15.在vim查找关键字时区分大小写 在一般模式下输入“:set ic” 如果想取消就输入“:set noic” 16.

1.5K30

Golang GC机制

但是STW过程有明显资源浪费,对所有的用户程序都有很大影响。 如何能在保证对象丢失情况尽可能提高GC效率,减少STW时间呢? 破坏两个条件同时成立!...强三色不变式 即强制性不允许黑色对象引用白色对象来破坏条件1 弱三色不变式 黑色对象可以引用白色对象,但白色对象存在其他灰色对象对它引用,或者可达它链路上游存在灰色对象 来破坏条件2 在三色标记如果满足强.../弱之一,即可保证对象丢失 采用屏障机制来实现强三色/弱三色…… 屏障机制 屏障:在我们程序执行某个流程,可以额外在中间加一层判断机制。...如图所示: 思想:在不打扰正常业务流程情况下,做一些额外判断。 屏障机制有插入屏障和删除屏障: 插入屏障 具体操作:在A对象引用B对象时候,B对象被标记为灰色。...(不存在黑色对象引用白色对象情况了,因为白色会强制变成灰色) 场景: // A 之前没有下游,新添加一个下游对象B, B被标记为灰色 A.添加下游对象(nil, B) // A 将下游对象C 更换为

22340

最新iOS设计规范四|3大界面要素:视图(Views)

警示框标题和内容 尽可能写一些短小、描述性比较强多文本警告标题。屏幕上需要阅读文字应该越少越好,可以尝试编写一个标题并且避免添加额外信息。...如有需要,还可以添加更多手势来执行自定义操作。在集合,插入、删除或重新排序项目,都可以启用动画,并且还支持自定义动画。 当标准或网格布局足够时,避免创建新设计。...以分组形式显示,组上方可以出现页眉,下方则可以出现页脚。此样式列表至少包含一个组,每个组至少包含一。分组列表一般包含索引标记。 ? 插入分组。以具有圆角组显示,并从父视图边缘插入。...这种样式表始终包含至少一组,并且每组始终包含至少一,并且可以在其后跟一个页眉和一个页脚。插入分组表包含索引。插入分组样式在常规宽度环境效果最佳。...子标题模式:同一,包含左对齐标题和标题下面的左对齐文本。这种样式适用于视觉上相似的列表。而加上子标题有利于区分行与。 ? 右侧子标题:左对齐标题,右对齐子标题,位于同一

8.4K31

向后兼容,Go1.21,Go2

其次,我们可以添加API,但不能以破坏现有代码方式添加。 文件结尾警告说,“[它]无法保证没有任何未来变化会破坏任何程序。”然后它列出了一些程序可能仍然会破坏原因。...如果我们向包添加API,除非我们将其添加到API文件,否则测试就会失败。如果我们改变或删除API,测试也会失败。这有助于我们避免错误。...2.为了兼容性添加GODEBUG设置将被维护至少两年(四个Go版本)。一些,http2client和http2server,将被维护得更长,甚至无限期。...如果你程序go.mod文件说go 1.20,你更新到Go 1.21工具链,任何在Go 1.21改变GODEBUG控制行为将保持他们旧Go 1.20为,直到你改变go.mod说go 1.21...并且版本基础默认值可以通过在主包添加这样来显式覆盖: //go:debug panicnil=1 这种特性组合意味着程序可以更新到新工具链,同时保留他们使用早期工具链行为,可以根据需要对特定设置应用更细粒度控制

30230

JAVA代码覆盖率工具JaCoCo-原理篇

总结一下个人对JaCoCo优势理解: (1) JaCoCo支持分支覆盖、引入了Agent模式。 (2) EMMA官网已经维护了,JaCoCo是其团队开发,可以理解为一个升级版。...通过这个报告结果就可以知道代码真实执行情况,便于我们分析评估结果。 2.2 JaCoCo基本概念 覆盖率:度量被测程序每行代码是否被执行,判断标准是否至少有一个指令被执行。...分支覆盖率:度量if和switch语句分支覆盖情况,计算一个方法里面的总分支数,确定执行和执行 分支数量。...事实上,只需要一个几个探头,根据每个方法控制流方法,下面说明了如何在不同边缘类型情况添加额外指令: ? ? 一个instrumented class可以用以下代码检索其探针数组实例: ?...JaCoCo对探针是这样处理添加指令之间一个额外探针时,后续行至少包含一个方法调用。 以上是JaCoCo插桩原理,如果想深入了解,可以去看看它源码实现。

19.6K154

《微服务设计》第 4 章 集成

做得好的话,你微服务可以保持自治性,你也可以独立地修改和发布它们;但做得不好的话会带来灾难 ---- 4.1 寻找理想集成技术 4.1.1 避免破坏性修改 如果一个微服务在一个响应添加了一个字段,...它会增加开发流程复杂度,因为你需要一个额外系统(即消息代理)才能开发及测试服务。你也需要额外机器和专业知识来保持这些基础设施正常运行。...调用本身可以是阻塞或者非阻塞 ---- 4.11 微服务世界DRY和代码重用危险 我经验是:在微服务内部不要违反 DRY,但在跨服务情况下可以适当违反 DRY。...该法则认为,系统每个模块都应该“宽进严出”,即对自己发送东西要严格,对接收东西则要宽容 4.13.2 及早发现破坏性修改 强烈建议使用消费者驱动契约来及早定位这些问题,第 7 章会对该技术做详细讲解...这其实就是一个扩展 / 收缩模式实例,它允许我们对破坏性修改进行平滑过度。首先扩张服务能力,对新老两种方式都进行支持。

55940

「前端架构」React和Vue -CTO选择正确框架指南

现在,如果您客户端需要您从应用程序删除整个API功能,重要是您要将这些服务保存在一个单独模块,以便在破坏应用程序情况下轻松删除这些服务。这就是您需要框架模块化地方。...因此,React启用了SSR,但没有官方支持,并且使用了额外第三方包。 Vue服务器端呈现 还有一个官方发布Vue.js指南,用于构建在服务器上呈现Vue应用程序。...对这一进行操作是: 向表添加10, 向表添加1000, 每隔10更新一次表, 在表中选择一,并且 从表删除一 ?...拍摄了两个快照来演示在以下时间内存使用情况: 在执行任何操作之前加载页面 在表上执行5个添加10、5个添加1000和5个更新操作之后 研究结果如下: ?...尽管React需要大量样板代码来设置一个工作项目,但从长远来看,它架构是值得。 JSX提供了JavaScript全部功能(流控制)和高级IDE特性(组件视图模板自动完成)。

4.3K20

2024年值得关注8个未来数据库

PlanetScale分支工作流程 PlanetScale还为你数据库添加了分支,这样你就可以在一个独立开发分支上测试模式更改。这个分支与生产分支或你主数据库是分开。...特点 PlanetScale自动创建每日备份,并在开箱即用时保护生产分支上直接模式更改,减少了意外破坏生产数据库可能性。 非阻塞模式更改是它提供另一个有趣特性。...Dolt分支行为 和PlanetScale以及Neon一样,Dolt也实现了分支行为,你可以在破坏生产数据情况下对数据进行实验。...CloudFlare D1使用与传统SQL数据模型不同数据模型,它看起来和工作起来非常像面向文档数据库,MongoDB。 如何在CloudFlare D1存储数据? 让我们来看一个例子。...我们知道,在传统SQL数据库,数据存储在由和列组成。 假如一个名为“employees”表,它有以下列作为“id”、“name”、“age”和“department”。

63110

Spring5系列(八) | 静态代理和spring动态代理

所以我们引入了代理模式。 一. 代理模式 代理模式是设计模式一种,主要解决问题就是以一种优雅方式为上面所说核心功能添加额外功能,并且不破坏核心功能代码独立性。...目标类: 又称原始类 指的是业务类(核心功能),业务运算,dao调用等 2. 目标方法: 也称原始方法 目标类方法就是目标方法 3....System.out.println("------log------"); userService.login(name, password); } } 复制代码 通过实现相同接口并持有目标类引用,我们就优雅破坏原有类基础上...这就是静态代理实现方式。但是静态代理也是存在一些弊端 静态代理类文件过多,不利于项目管理(每为一个类添加额外功能就需要有一个代理类) 额外功能维护性差,代理类额外功能修改起来比较麻烦。 三....Spring动态代理 spring也为我们提供了动态代理实现。可以帮助我们为目标类添加额外功能。我们来看下如何实现。

27720

何在Ubuntu 16.04上添加和删除用户

介绍 您应该知道最基本任务之一是如何在Linux服务器上添加和删除用户。当您创建新系统时,您通常(例如在DigitalOcean Droplets上)默认情况下仅提供root帐户。...虽然以root用户身份运行会为您提供强大功能和灵活性,但它也很危险并且具有破坏性。添加额外,无特权用户来执行常见任务几乎总是更好主意。您还应该为系统上可能拥有的任何其他用户创建其他帐户。...将新用户添加到Sudo组 默认情况下,sudo在Ubuntu 16.04系统上配置为将完全权限扩展到sudo组任何用户。...默认情况下,在新Ubuntu安装,它应该使用nano,这提供了更熟悉文本编辑体验。...结论 您现在应该可以很好地处理如何在Ubuntu 16.04系统添加和删除用户。有效用户管理将允许您分离用户并仅为他们提供完成工作所需访问权限。

5.9K40
领券