代老师的博客 https://github.com/daichangya

探秘软件公司岗位职责:从项目启动到交付的全流程解析

在当今数字化时代,软件公司如雨后春笋般涌现,其内部的岗位职责分工犹如精密的齿轮,相互协作推动着项目的顺利前行。接下来,就让我们深入剖析软件公司中各个关键岗位的职责,揭开软件项目从诞生到成功交付背后的神秘面纱。 一、项目经理:项目的领航者 (一)职责概述 项目经理是项目的核心领导者,犹如一艘船的船长,

daicy daicy 发布于 2024-12-15

订单表的分库分表方案设计(大数据)

一、两种方案分库分表 一般业界,对订单数据的分库分表,笔者了解,有两类思路:按照订单号来切分、按照用户id来切分。方案一、按照订单号来做hash分散订单数据   把订单号看作是一个字符串,做hash,分散到多个服务器去。   具体到哪个库、哪个表存储数据呢?订单号里面的数字来记录着。  现在的微信红

daicy daicy 发布于 2020-11-02

如何设计Google文档

系统设计面试可能是开放式的,需要广泛的知识。为了为此类采访做好准备,重要的是覆盖不同的领域,而不是专注于单个主题。我们花了很多时间来选择系统设计问题进行分析,我们的主要标准是:这个问题很流行而且很经典我们关心选择的问题的多样性该分析可能对其他面试问题有所帮助本周,我们将讨论如何设计Google文档。

daicy daicy 发布于 2020-05-27

电子商务网站设计(第二部分)

这是“设计电子商务网站”系列文章的第二篇。如果您还没有阅读第一篇文章,那么最好先检查一下,因为我们将在这里继续我们的讨论。为了简短地提醒您我们在上一篇文章中讨论的内容,我们从电子商务网站的数据模型设计开始。尽管关系数据库是最常用的方法,但是我们注意到,像MongoDB这样的NoSQL数据库在构建电子

daicy daicy 发布于 2020-05-27
daicy daicy 发布于 2020-05-27

YouTube系统设计(第二部分)

这是有关如何设计Youtube的第二篇文章。我们将从第一个开始继续我们的讨论, 如果您还没有阅读,请检查一下。在上一篇文章中,我们主要讨论了数据库和存储。本周,我们将讨论更多主题,包括可伸缩性,Web服务器,缓存和安全性。扩展数据库一旦产品拥有数百万甚至数十亿的用户,就需要解决许多问题。可伸缩性是要

daicy daicy 发布于 2020-05-27

缓存系统设计

与我们以前的帖子类似,我们希望选择流行且实用的系统设计面试问题,这样您不仅可以获得关于如何分析面试问题的想法,而且还可以同时学习一些有趣的东西。如果您对系统设计面试一无所知,建议您先阅读本教程。在本文中,我们正在解决问题-如何设计缓存系统。这篇文章涵盖的主题包括:LRU缓存驱逐政策,缓存并发分布式缓

daicy daicy 发布于 2020-05-27

键值存储系统设计(第二部分)

这是“设计键值存储”系列文章的第二篇。如果您还没有阅读第一篇文章,请检查一下。在之前的文章中,我们主要关注键值存储的基本概念,尤其是单机方案。当涉及到扩展问题时,我们需要按照一些规则将所有数据分发到多台计算机中,并且协调器计算机可以将客户端定向到具有请求资源的计算机。设计分布式系统时,您需要考虑很多

daicy daicy 发布于 2020-05-27

键值存储系统设计(第一部分)

由于许多人给我们发送了电子邮件,说他们想阅读有关系统设计采访的更多信息,因此我们将在此主题上做更多介绍。我很高兴听到很多反馈,如果您有任何建议或问题,请通过发表评论告诉我们。本周,我将讨论键值存储。键值存储是一种非常强大的技术,几乎在世界上的每个系统中都使用。它可以像哈希表一样简单,同时也可以是分布

daicy daicy 发布于 2020-05-27

来自Google、Amazon和Facebook等7大知名互联网的系统扩展经验

摘要:Google、Amazon和Facebook等7家知名互联网都会针对不同使用场景做合适的设计,但总有一些万变不离其宗的思想。比如保持简单、让所有事情自动化、不断迭代、使用缓存、根据场景在数据一致性和可用性间取舍。 本文出自澳大利亚一位ID为Dodgy Coder的程序员2012年4月的博客文章。他从High Scalability上整理和总结了Google、YouTube、Twit

daicy daicy 发布于 2019-04-17

优化和架构之服务切分

切分是最基本,且最多变的思路之一,说基本,是因为在学习程序设计的第一天就应该知道,说多变,是因为在未来的很多年里,你会不停的应用这个方法来解决问题。不幸的是,切分这个思路并没有得到应有的重视。 大概是因为这个词比较土,说起来也比较普通,远不如并行,集群,负载平衡这些词听起来大。所以碰到一个问题的时候,往往被拿出来的解决方案会是以上3个大词之一,很少有人去认真的考虑切分问题。但事实上,这3个大

daicy daicy 发布于 2019-04-17

再谈最终一致

在世界范围构建可靠的分布式系统往往要求在一致性和可用性之间进行权衡。上个月,亚马逊公司的CTO Werner Vogels发表了一篇文章,描述在大型分布式系统中容忍最终数据一致性的方法。 正如InfoQ之前的一篇文章《牺牲一致性来换取分布式架构的可伸缩性》里所讨论的: 系统架构师角色关键的一方面就是衡量相互冲突的需求、决定解决方案,常常要牺牲一个方面来换取另一个方面。 亚马逊公司

daicy daicy 发布于 2019-04-17

构建的可伸缩性和达到的性能:一个虚拟座谈会

实现伸缩性和性能调优的经验所保有的价值容易被低估。两者都是“晚些时候”或“我们真正流行起来时”所面临的难题。早期创业公司确实不应该立即花这份钱,而大公司通常不能做出足够快速的反应以实现所需的改变。再加上这需要一个多学科的团队,它立刻就变成了一个需要解决的政治上和工程上的难题。 但是它从来不会从我们的视线中消失——在过去的少数几个Qcon会议上,“Architectures You"ve Al

daicy daicy 发布于 2019-04-17

可伸缩性最佳实践:来自eBay的经验

在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。

daicy daicy 发布于 2019-04-17

Linkedin网站技术架构简介

关于LinkedIn网站的架构技术的演讲 可以看一下LinkedIn网站的基本情况: 1. 2千2百万用户 2. 每个月4百万独立用户访问 3. 每天4千万Page View 4. 每天2百万搜索流量 5. 每天25万邀请发送 6. 每天1百万的回答提交 7. 每天2百万的Email消息

daicy daicy 发布于 2019-04-17

Java开源建站工具

美国程序员Jon Scott Stevens,公布了他的创业公司所使用的开发工具清单。 他的语言平台是Java,开发项目是一个网站(还未上线)。所用到的工具都是开源的,可以免费得到。 在目前的创业者之中,用Java作为网站开发语言的人似乎很少。这当然不是没有原因的,Java看上去确实不像是最便捷的网站开发工具,给人的感觉是用起来麻烦又费事。

daicy daicy 发布于 2019-04-17