十六、继续学习
设计好的系统需要多年的知识积累。一个捷径是深入现实世界的系统架构。以下是一些有用的阅读材料。我们强烈建议您关注共享原则和底层技术。研究每项技术并了解它能解决什么问题,这是巩固您的知识基础和优化设计流程的一个好方法。
现实世界的系统
以下资料可以帮助你了解不同公司背后真实系统架构的一般设计思路。
https://goo.gl/FCNrbm 时间线:用反规范化的力量带给你:
https://goo.gl/NGTdCs脸书:T3】T5】
建筑时间轴:放大到容纳你的人生故事:【https://goo.gl/8p5wDV】
大海捞针:脸书的照片储存:T3】https://goo.gl/edj4FLT5】
在 https://goo.gl/rZiAhX脸书T3扩展 Memcache
亚马逊架构:https://goo . GL/k4 feow
迪纳摩:亚马逊高可用键值商店:https://goo.gl/C7zxDL
都是测试:网飞实验平台:https://goo.gl/agbA4K
https://goo.gl/A4FkYi 推荐:超越 5 星(上):
https://goo.gl/XNPMXm 推荐:超越 5 星(下):
YouTube 体系结构:https://goo . GL/mcfre
西雅图可扩展性会议:YouTube 可扩展性:https://goo.gl/dH3zYq
Bigtable:结构化数据的分布式存储系统:【https://goo.gl/6NaZca】
Instagram 架构:1400 万用户,TB 级照片,100 个实例,几十种技术:https://goo.gl/s1VcW5
【Twitter 用来应对 1.5 亿活跃用户的架构:【https://goo.gl/EwvfRd】
缩放 Twitter:让 Twitter 快一万倍:【https://goo.gl/nYGC1k】
宣布雪花(雪花是一种大规模生成唯一 ID 号的网络服务,有一些简单的保证):【https://goo.gl/GzVWYm】T5】
时间轴缩放:【https://goo.gl/8KbqTy】
优步如何扩展其实时市场平台:【https://goo.gl/kGZuVy】
Pinterest 体系结构更新:https://goo . GL/w6 rrf
缩放 LinkedIn 简史:T3【https://goo.gl/8A1Pi8】T5】
Flickr 体系结构:https://goo . GL/dwtgya
我们如何缩放 Dropbox:【https://goo.gl/NjBDtC】
公司工程博客
如果你要去一家公司面试,阅读他们的工程博客,熟悉那里采用和实施的技术和系统是个好主意。此外,工程博客提供了某些领域的宝贵见解。定期阅读它们可以帮助我们成为更好的工程师。
以下是知名大公司和创业公司的工程博客列表。
Airbnb:T3】https://medium.com/airbnb-engineeringT5】
亚马逊:T3】https://developer.amazon.com/blogsT5】
大西洋:https://developer.atlassian.com/blog
Bittorrent:http://engineering.bittorrent.com
cloud era:T3】https://blog.cloudera.comT5】
码头工人:【https://blog.docker.com】T5】
Dropbox:【https://blogs.dropbox.com/tech】
易贝:T3】http://www.ebaytechblog.comT5】
脸书:T3】https://code.facebook.com/postsT5】
GitHub:T3】https://githubengineering.comT5】
谷歌:T3】https://developers.googleblog.comT5】
Groupon:T3】https://engineering.groupon.comT5】
insta cart:T3】https://tech.instacart.comT5】
insta gram:https://engineering.instagram.com
领英:https://engineering.linkedin.com/blog
网飞:T3】https://medium.com/netflix-techblogT5】
隔壁:T3】https://engblog.nextdoor.comT5】
支付宝:https://www.paypal-engineering.com
Pinterest:T3】https://engineering.pinterest.comT5】
Quora:T3】https://engineering.quora.comT5】
Reddit:https://Reddit blog . com
sales force:https://developer.salesforce.com/blogs/engineering
Shopify:【https://engineering.shopify.com】T5】
Slack:https://Slack . engineering
Soundcloud:T3】https://developers.soundcloud.com/blogT5】
Spotify:T3】https://labs.spotify.comT5】
碎碎念:【https://blog.twitter.com/engineering/en_us.html】T5】
图钉:【https://www.thumbtack.com/engineering】T5】
雅虎:T3】https://yahooeng.tumblr.comT5】
Yelp:T3】https://engineeringblog.yelp.comT5】
缩放:【https://medium.com/zoom-developer-blog】
补充阅读
软件工程面试很有挑战性,但好消息是正确的准备会带来很大的不同。一次技术面试通常涵盖这些领域中的一个:编码、系统设计或面向对象设计。为了帮助你找到一份理想的工作,我们整理了一份可能对你有帮助的书单。
了解分布式系统 罗伯特·维蒂洛
这本书教授分布式系统的基础知识。作者很好地解释了网络堆栈、数据一致性模型、弹性、可伸缩性和可靠性模式等等。链接:
由内而外的科技简历Gergely Orosz
一份出色的简历是你从众多竞争对手中脱颖而出的通行证。这本书的内容经过精心研究,旨在帮助你制作一份看起来专业的简历。最棒的部分:作者联系了几十位经验丰富的技术招聘人员和亲身实践的招聘经理,以确保这本书是有用的,事实上是正确的。充分披露:我个人认识他。链接:
设计数据密集型应用 马丁·克莱普曼
这本 616 页的经典书籍被认为是致力于分布式系统的工程师们的必读之作。最好的部分:这本书技术性很强,包含了很多关于可伸缩性、一致性、可靠性、效率和可维护性的深入讨论。链接:
免责声明:我只推荐我读过的书。此部分包含附属链接。如果你用这些链接买东西,我们可能会赚一小笔佣金。谢了。