最新 | 最热门 | 最高评价

+0  SystemsExpert 测评

Tag: interview | review | system design
Cat Chen 发于 2021年03月08日 06:17 | 点击: 328 | 展开摘要
SystemsExpert 是 AlgoExpert 新出的一系列针对系统设计面试的内容,包括系统设计常见概念的科普型视频,以及若干模拟面试题和答案。它的内容非常适合从来没有面过系统设计的人,用来了解系统设计是面什么的,以及需要用到哪些知识点。
我接触到不少学生,毕业时通过了算法面试、成为了软件工程师,工作一段时间后跳槽时发现需要面系统设计,但因为从来没接触过所以觉得心虚。其实大家工作一段时间后,都或多或少地在实践中接触到了系统设计,要么是看过已有系统被设计成什么样子,要么

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

+0  Go 编程模式:k8s Visitor 模式

Tag: Go 语言 | 程序设计 | 编程语言 | design pattern | Go | golang | Kubernetes | Visitor Pattern
陈皓 发于 2020年12月26日 19:25 | 点击: 428 | 展开摘要
本篇文章主要想讨论一下,Kubernetes 的 kubectl 命令中的使用到到的一个编程模式 – Visitor(注:其实,kubectl 主要使用到了两个一个是Builder,另一个是Visitor)。本来,Visitor 是面向对象设计模英中一个很重要的设计模款(参看Wikipedia Visitor Pattern词条),这个模式是一种将算法与操作对象的结构分离的一种方法。这种分离的实际结果是能够在不修改结构的情况下向现有对象结构添加新操作,是遵循开放/

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

+0  System Deep Dive 系统设计小班

Tag: career coaching | class | system design
Cat Chen 发于 2020年02月13日 08:48 | 点击: 282 | 展开摘要
System Deep Dive 系统设计小班
我开了一个叫做 System Deep Dive 的系统设计小班,面向在美国寻求软件工程师工作的人。系统设计面试跟算法编码面试有相似的地方也有不一样的地方。相似的地方是,你都需要让面试官想要和你共事,这需要说服他你能跟他一起解决复杂系统的设计难题。不一样的地方在于,系统设计问题没有标准答案,不存在 LeetCode 这样的系统为你的训练提供实时反馈。
System Deep Dive 采用教练带领学生探索复杂系统的小班教学模

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

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

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

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

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

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

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

设计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 | 点击: 1914 | 展开摘要
(感谢好友 @李鼎 翻译此文)

原文链接: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 | 点击: 2562 | 展开摘要
继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 | 点击: 2699 | 展开摘要
昨天,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 | 点击: 2571 | 展开摘要
在《这多年来我一直在钻研的技术》这篇文章中,我讲述了一下,我这么多年来一直在关注的技术领域,其中我多次提到了工业级的软件,我还以为有很多人会问我怎么定义工业级?以及一个高可用性的软件系统应该要怎么干出来?这样我也可以顺理成章的写下这篇文章,但是没有人问,那么,我只好厚颜无耻的自己写下这篇文章了。哈哈。

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

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

+0  工作流系统的设计

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

首先,明确工作流(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 | 点击: 2304 | 展开摘要
看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。

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

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

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

Tag: System Design & Architecture | EMR | SWF | 工作流 | 心跳
四火 发于 2016年04月28日 13:38 | 点击: 1622 | 展开摘要
最近工作中一直和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
|<<<1234567>>>| 一共9页, 105条记录