最新 | 最热门 | 最高评价

+0  机器学习时代的体验设计(上)-对创造人类行为学习系统的设计师和数据学家的启示

Tag: 设计译文 | 人类行为学习系统 | 机器学习,体验设计,设计原则,设计师与数据学家合作,Seamful Design,注意力经济
UXC 发于 2018年01月31日 17:52 | 点击: 838 | 展开摘要
一般来讲,数字服务的体验遵循预定义的用户旅程,具有明确的状态和动作。一直以来,设计师的工作一直是创建线性工作流,并将其转化为可以理解和不引人注目的体验。但是这种情况可能会成为过去时。

过去6个月,我一直在BBVA Data&Analytics(D&A)任职一个相当独特的职位,这是一家卓越的财务数据分析中心。我的工作是利用新兴的机器学习技术,使用户体验设计得到提升平。除此之外,我的职责是为数据科学团队带来整体的体验设计,并使其成为算法解决方案的生命周期(例如预测模型、推荐系统

查看全文: http://www.udpwork.com/item/16640.html

+0  几个系统设计问题的解决思路

Tag: System Design & Architecture | 系统设计
四火 发于 2017年10月31日 10:22 | 点击: 1115 | 展开摘要
曾经写过一些系统设计方面的思考(比如这个和这个),但是最近准备面试,又接触了更多系统设计方面的问题。这里我想简单记录一些典型系统设计问题的思路。通过学习常见的系统,在心中形成一些问题解决的套路,以在思考和分析新问题的时候提供一些既定思路。很抱歉时间关系写得很简略,主要是提示一些思路和方向。

设计Tweeter

两种常见模型的trade off:

Pull on demand: merge x timelines

Push on change: async, read

查看全文: http://www.udpwork.com/item/16482.html

+0  API设计原则 – Qt官网的设计实践总结

Tag: C/C++语言 | 技术读物 | 程序设计 | 系统架构 | API | api-design | API设计 | C++ | Coding | Design | Programmer
李 鼎 发于 2017年07月25日 14:16 | 点击: 984 | 展开摘要
(感谢好友 @李鼎 翻译此文)

原文链接:API Design Principles – Qt Wiki

基于Gary的影响力上 Gary Gao 的译文稿:C++的API设计指导

译序

Qt的设计水准在业界很有口碑,一致、易于掌握和强大的API是Qt最著名的优点之一。此文既是Qt官网上的API设计指导准则,也是Qt在API设计上的实践总结。虽然Qt用的是C++,但其中设计原则和思考是具有普适性的(如果你对C++还不精通,可以忽略与C++强相关或是过于细节

查看全文: http://www.udpwork.com/item/16371.html

+0  AWS 的 S3 故障回顾和思考

Tag: 业界新闻 | 杂项资源 | 程序设计 | Amazon S3 | AWS | Design | High Availability
陈皓 发于 2017年03月03日 14:20 | 点击: 1378 | 展开摘要
继Gitlab的误删除数据事件没几天,“不沉航母” AWS S3 (Simple Storage Service)几天前也“沉”了4个小时,墙外的半个互联网也跟着挂了。如约,按 AWS 惯例,AWS今天给出了一个简单的故障报告《Summary of the Amazon S3 Service Disruption in the Northern Virginia (US-EAST-1) Region》。这个故障和简单来说和Gitlab一样,也是人员误操作。先简单的说一下这份报

查看全文: http://www.udpwork.com/item/16156.html

+0  从Gitlab误删除数据库想到的

Tag: 技术新闻 | 程序设计 | 系统架构 | Design | Gitlab | High Availability | Programmer | 分布式 | 程序员
陈皓 发于 2017年02月02日 16:11 | 点击: 1555 | 展开摘要
昨天,Gitlab.com发生了一个大事,某同学误删了数据库,这个事看似是个低级错误,不过,因为Gitlab把整个过程的细节都全部暴露出来了,所以,可以看到很多东西,而对于类似这样的事情,我自己以前也干过,而在最近的两公司中我也见过(Amazon中见过一次,阿里中见过至少四次),正好通过这个事来说说一下自己的一些感想和观点吧。我先放个观点:你觉得有备份系统就不会丢数据了吗?

事件回顾

整个事件的回顾Gitlab.com在第一时间就放到了Google Doc上,事后,又发了

查看全文: http://www.udpwork.com/item/16085.html

+0  关于高可用的系统

Tag: 技术管理 | 程序设计 | 系统架构 | Design | High Availability | Paxos | Programmer | 分布式 | 程序员
陈皓 发于 2016年08月21日 12:34 | 点击: 1434 | 展开摘要
在《这多年来我一直在钻研的技术》这篇文章中,我讲述了一下,我这么多年来一直在关注的技术领域,其中我多次提到了工业级的软件,我还以为有很多人会问我怎么定义工业级?以及一个高可用性的软件系统应该要怎么干出来?这样我也可以顺理成章的写下这篇文章,但是没有人问,那么,我只好厚颜无耻的自己写下这篇文章了。哈哈。

另外,我在一些讨论高可用系统的地方看到大家只讨论各个公司的技术方案,其实,高可用的系统并不简单的是技术方案,一个高可用的系统其实还包括很多别的东西,所以,我觉得大家对高可用的

查看全文: http://www.udpwork.com/item/15755.html

+0  工作流系统的设计

Tag: Recommended | System Design & Architecture | SWF | 工作流 | 设计
四火 发于 2016年08月19日 15:28 | 点击: 1562 | 展开摘要
几年前曾经写过一点点对于缓存框架设计的体会,这大半年和工作流系统打交道颇为丰富,因此想总结一点关于工作流系统的设计。

首先,明确工作流(workflow)系统的定义。维基百科上有极其简单的介绍。我记得以前在文章里面说过,作为大公司里面的小team,为了做一些有趣的东西,从而更好的招人,通常有几个众人皆知的突破口:比如一个更符合业务需求的storage,再比如一个自定义的工作流系统。在Amazon内部,我接触过好多个workflow,而且大多以Amazon SWF为原型(当时

查看全文: http://www.udpwork.com/item/15753.html

+0  缓存更新的套路

Tag: Unix/Linux | 程序设计 | cache | Design | design pattern | Linux
陈皓 发于 2016年07月27日 16:25 | 点击: 1272 | 展开摘要
看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。

我不知道为什么这么多人用的都是这个逻辑,当我在微博上发了这个贴以后,我发现好些人给了好多非常复杂和诡异的方案,所以,

查看全文: http://www.udpwork.com/item/15697.html

+0  一种工作流心跳机制的设计

Tag: System Design & Architecture | EMR | SWF | 工作流 | 心跳
四火 发于 2016年04月28日 13:38 | 点击: 878 | 展开摘要
最近工作中一直和SWF(Amazon的Simple Work Flow)打交道,在一个基于SWF的工作流框架上面开发和修bug。SWF的activity超时时间是5分钟,在activity task开始执行以后,activity worker需要主动发送心跳请求告知service端:“我还活着,我还在干活”,如果出现超过5分钟(可以配置)没有心跳,SWF的service端就认为,你已经挂了,我需要把这个activity安排到别的activity worker上来执行了。借用A

查看全文: http://www.udpwork.com/item/15440.html

+0  三次性能优化经历

Tag: System Design & Architecture | Portal | Service | Spark | 性能优化
四火 发于 2016年02月16日 14:22 | 点击: 1300 | 展开摘要
最近在做一些性能优化工作,回想起工作这些年来,参与过的三次集中性能优化,每次都得折腾少则一个月,多则半年。这些内容既是不同视角、不同思路的比较,也是挺有趣的工作经历。

Portal的性能优化

这已经是大概五年前了,搞了接近半年的Portal性能优化,后来某些内容总结在这篇文章里面。既然是Portal,性能优化上就有它的特点。比如说:

Portal的性能优化需要从前端和后端两个角度去思考问题,先考虑客户端和服务端之间的交互模型,然后再在客户端和服务端单独考虑分而治之。这个

查看全文: http://www.udpwork.com/item/15213.html

+0  系统设计的典型分层和涉及的知识点

Tag: System Design | 分层 | 系统设计 | 面试
四火 发于 2015年08月10日 03:56 | 点击: 1143 | 展开摘要
作为系统设计学习的一部分,不久前在梳理面试中典型的系统设计问题,发现大部分都可谓有套路可寻。我把思路梳理了一下,简单整理到下面这张图表里面:

对于其中的内容,稍微补充几句:

系统设计需要经验的积累,但也确确实实有章可循。问的问题考察的类型很集中,比如同步、异步,消息push和pull,根据实际问题设计存储的数据结构,对于scalability、availability的认识等等。最喜欢被问到的问题,我在《系统设计典型问题的思考》这里列了几个。

pull on deman

查看全文: http://www.udpwork.com/item/14473.html

+0  读写模型整理笔记

Tag: System Design | 笔记 | 读写模型
四火 发于 2015年04月27日 09:45 | 点击: 1275 | 展开摘要
读模型

1、主键读

最常见的读模型,说是主键,其实也包括其它索引键,或者联合主键。

常见实现:hash,时间复杂度可以接近O(1);B树或变种:时间复杂度接近O(log(n))。

关于B树和变种:

B树(B-树):本质上是二叉查找树的升级版,变成了平衡的N叉查找树,这个N的范围根据磁盘一次读取的块大小来调整,这样复杂度log n的底数就从2变成一个更大的数,减少了树的高度。除此以外,还有一些额外的优化,比如为了插入和删除的性能考虑,通常准备一些预留的空间,只要在当前

查看全文: http://www.udpwork.com/item/14145.html
|<<<1234567>>>| 一共9页, 102条记录