<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[爱思系统设计]]></title><description><![CDATA[爱思专注系统设计]]></description><link>https://blog.acecodeinterview.com/</link><image><url>https://blog.acecodeinterview.com/favicon.png</url><title>爱思系统设计</title><link>https://blog.acecodeinterview.com/</link></image><generator>Ghost 5.24</generator><lastBuildDate>Mon, 09 Mar 2026 03:40:11 GMT</lastBuildDate><atom:link href="https://blog.acecodeinterview.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[爱思系统设计集训营 第十二期开班 11/18 免费试听课]]></title><description><![CDATA[全网唯一资深面试官级深度的系统设计集训营免费试听课将于美西时间 11/18/2022 开讲。试听课覆盖系统设计考察要点，答题模板以及 Whatsapp 精解。完整课程共32课时，旨在培养扎实的系统设计能力。深挖20道常见系统设计面试原题，提炼面试答题技巧，详解设计图组件，总结分布式系统知识。有效帮你融会贯通，增加你的答题深度广度，让你能够举一反三，从容面对面试官的追问以及新题。]]></description><link>https://blog.acecodeinterview.com/system-design-class/</link><guid isPermaLink="false">5fb21cb71f2a0405d2f032da</guid><category><![CDATA[精品课]]></category><category><![CDATA[系统设计文本课]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Thu, 10 Nov 2022 18:00:00 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2021/04/system-design-bootcamp.png" medium="image"/><content:encoded><![CDATA[<h2 id="-">&#x6DFB;&#x52A0;&#x7F57;&#x8F91;&#x8001;&#x5E08;&#x597D;&#x53CB;&#x5373;&#x53EF;&#x52A0;&#x5165;&#x8BD5;&#x542C;&#x7FA4;</h2><!--kg-card-begin: markdown--><img src="https://blog.acecodeinterview.com/content/images/2021/04/system-design-bootcamp.png" alt="&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425; &#x7B2C;&#x5341;&#x4E8C;&#x671F;&#x5F00;&#x73ED; 11/18 &#x514D;&#x8D39;&#x8BD5;&#x542C;&#x8BFE;"><p align="center">
 <img alt="&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425; &#x7B2C;&#x5341;&#x4E8C;&#x671F;&#x5F00;&#x73ED; 11/18 &#x514D;&#x8D39;&#x8BD5;&#x542C;&#x8BFE;" src="https://blog.acecodeinterview.com/content/images/2020/05/luoji-wechat--1-.jpg" style="width: 400px; height:400px">
</p>
<!--kg-card-end: markdown--><p></p><h2 id="--1">&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425;&#x7B80;&#x4ECB;</h2><p></p><figure class="kg-card kg-embed-card"><iframe width="356" height="200" src="https://www.youtube.com/embed/9Qk3pVysMvQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><p><strong>&#x5168;&#x7F51;&#x552F;&#x4E00;&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x7EA7;&#x6DF1;&#x5EA6;&#x7684; 32 &#x8BFE;&#x65F6;</strong>&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425;&#xFF0C;<strong>&#x8986;&#x76D6; 20 &#x9053;&#x9AD8;&#x9891;&#x9898;</strong>&#x7684;&#x7CBE;&#x89E3;&#xFF0C;&#x6DF1;&#x6316;&#x4EE5;&#x53CA;&#x5F97;&#x5206;&#x70B9;&#xFF1B;<strong>&#x89E3;&#x6790;</strong>&#x7B54;&#x9898;&#x6A21;&#x677F;&#xFF0C;&#x6570;&#x636E;&#x6D41;&#x4EE5;&#x53CA;&#x9762;&#x8BD5;&#x6280;&#x5DE7;&#x3002;&#x7528;<strong> 23 &#x8282;&#x8BFE;</strong>&#x5E2E;&#x4F60;&#x5FEB;&#x901F;&#x63A5;&#x8FD1;&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x5B9E;&#x529B;&#x3002;</p><p>&#x96C6;&#x8BAD;&#x8425;&#x9002;&#x5408;&#x5404;&#x4E2A;&#x7EA7;&#x522B;&#x7684;&#x540E;&#x7AEF;&#x53CA;&#x5168;&#x6808;&#x5DE5;&#x7A0B;&#x5E08;&#xFF0C;&#x4F60;&#x5C06;&#x5B66;&#x4F1A;&#x7684;&#x4E0D;&#x4EC5;&#x6709;&#x9AD8;&#x9891;&#x9898;&#x7684;&#x6B63;&#x786E;&#x89E3;&#x6CD5;&#xFF0C;&#x8FD8;&#x6709;&#x5E94;&#x5BF9;&#x5404;&#x7C7B;&#x53D8;&#x4F53;&#x751A;&#x81F3;&#x65B0;&#x9898;&#x7684;&#x968F;&#x673A;&#x5E94;&#x53D8;&#x7684;&#x80FD;&#x529B;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://blog.acecodeinterview.com/content/images/2021/04/best_features.png" class="kg-image" alt="&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425; &#x7B2C;&#x5341;&#x4E8C;&#x671F;&#x5F00;&#x73ED; 11/18 &#x514D;&#x8D39;&#x8BD5;&#x542C;&#x8BFE;" loading="lazy"></figure><p>&#x96C6;&#x8BAD;&#x8425;&#x5728;&#x5F80;&#x671F;&#x76F4;&#x64AD;&#x8BFE;&#x4EE5;&#x53CA;&#x7231;&#x601D;&#x5B98;&#x7F51;&#x7684;&#x5341;&#x4E07;&#x5B57;&#x7684;&#x6587;&#x5B57;&#x7248;&#x8BFE;&#x7A0B;&#x57FA;&#x7840;&#x4E0A;&#x8FDB;&#x884C;&#x4E86;&#x5927;&#x5E45;&#x5185;&#x5BB9;&#x5347;&#x7EA7;&#xFF0C;&#x5305;&#x62EC;</p><ul><li><strong>32 &#x8BFE;&#x65F6;&#x9AD8;&#x6D53;&#x5EA6;&#x5E72;&#x8D27;&#xFF08;7&#x5929;&#x76F4;&#x64AD;&#x89C6;&#x9891;&#x56DE;&#x770B;&#xFF0C;2&#x4E2A;&#x6708;&#x5F55;&#x64AD;&#x4E92;&#x52A8;&#x8BFE;&#x65E0;&#x9650;&#x770B;&#xFF09;</strong></li><li><strong>20 &#x9053;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9AD8;&#x9891;&#x9898;&#x6DF1;&#x6316;&#xFF0C;&#x6269;&#x5C55;&#x53CA;&#x5F97;&#x5206;&#x70B9;</strong></li><li>&#x5343;&#x9524;&#x767E;&#x70BC;&#x7684;&#x9762;&#x8BD5;&#x7B54;&#x9898;&#x6A21;&#x677F;&#x53CA;&#x6280;&#x5DE7;&#x603B;&#x7ED3;</li><li>&#x5E38;&#x89C1;&#x8BBE;&#x8BA1;&#x56FE;&#x7EC4;&#x4EF6;&#x53CA;&#x6982;&#x5FF5;&#x4E32;&#x8BB2;</li></ul><h2 id="--2">&#x7231;&#x601D;&#x4F5C;&#x8005;&#x7F57;&#x8F91;&#x6388;&#x8BFE;</h2><p>&#x7845;&#x8C37;&#x591A;&#x5BB6;&#x9876;&#x5C16;&#x5927;&#x5382;&#x8FD1;&#x5341;&#x5E74;&#x5DE5;&#x4F5C;&#x7ECF;&#x9A8C;&#x8D44;&#x6DF1; Tech Lead&#xFF0C;&#x4F5C;&#x4E3A;&#x9762;&#x8BD5;&#x5B98;&#x8FDB;&#x884C;&#x9762;&#x8BD5;&#x8FD1;&#x767E;&#x573A;&#xFF0C;&#x5BF9; Facebook &#x7B49;&#x5927;&#x5382;&#x9762;&#x8BD5;&#x5957;&#x8DEF;&#x6DF1;&#x6709;&#x4F53;&#x4F1A;&#x3002;&#x4F5C;&#x4E3A;&#x53D7;&#x8BD5;&#x8005;&#x65A9;&#x83B7; FLAGUAP &#x4E2D;&#x7EDD;&#x5927;&#x591A;&#x6570; offer&#x3002;&#x62E5;&#x6709;&#x591A;&#x5E74;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9762;&#x8BD5;&#x8F85;&#x5BFC;&#x7ECF;&#x9A8C;&#xFF0C;&#x5DF2;&#x7ECF;&#x5E2E;&#x52A9;&#x4F17;&#x591A;&#x5B66;&#x751F;&#x65A9;&#x83B7;&#x4E00;&#x7EBF;&#x5927;&#x5382; offer&#xFF0C;&#x53E3;&#x7891;&#x4F18;&#x5F02;&#x3002;</p><h2 id="--3">&#x6388;&#x8BFE;&#x65F6;&#x95F4;</h2><p>&#x7B2C;&#x516D;&#x671F;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425;&#x5C06;&#x4E8E;2022&#x5E74;2&#x6708;11&#x65E5;&#x5F00;&#x59CB;&#xFF0C;&#x6301;&#x7EED;5&#x5468;&#xFF0C;&#x9996;&#x8282;&#x8BFE;&#x514D;&#x8D39;&#x8BD5;&#x542C;&#xFF0C;&#x514D;&#x8D39;&#x8BD5;&#x542C;&#x8BFE;&#x5C06;&#x4E8E;&#x7F8E;&#x897F;&#x65F6;&#x95F4; &#xA0;2/11 &#x5468;&#x4E94; 6:30pm-8:30pm &#x5F00;&#x8BB2;&#xFF08;&#x7F8E;&#x4E1C;&#x65F6;&#x95F4; 9:30pm-11:30pm&#xFF0C;&#x5317;&#x4EAC;&#x65F6;&#x95F4;&#x5468;&#x516D;&#x4E0A;&#x5348; 10:30-12:30)&#x3002;</p><p>&#x6BCF;&#x5468;1&#x8282;&#x76F4;&#x64AD;&#x8BFE;&#xFF08;&#x6BCF;&#x8282;2&#x5C0F;&#x65F6;&#xFF09;&#xFF0C;3-4&#x8282;&#x5F55;&#x64AD;&#x4E92;&#x52A8;&#x8BFE;&#xFF08;&#x6BCF;&#x8282;~1&#x5C0F;&#x65F6;&#xFF09;&#x3002;</p><p>&#x76F4;&#x64AD;&#x8BFE;&#x6BCF;&#x5468;&#x4E94;&#x7F8E;&#x897F;&#x65F6;&#x95F4; 6:30pm-8:30pm&#xFF08;&#x7F8E;&#x4E1C;&#x65F6;&#x95F4; 9:30pm-11:30pm&#xFF0C;&#x5317;&#x4EAC;&#x65F6;&#x95F4;&#x5468;&#x516D;&#x4E0A;&#x5348; 10:30-12:30)&#x3002;</p><p>&#x76F4;&#x64AD;&#x5185;&#x5BB9;&#x5C06;&#x901A;&#x8FC7; Zoom &#x5728;&#x7EBF;&#x76F4;&#x64AD;&#x3002;&#x76F4;&#x64AD;&#x56DE;&#x770B;&#x63D0;&#x4F9B; 7 &#x5929;&#x5185;&#x65E0;&#x9650;&#x89C6;&#x9891;&#x56DE;&#x770B;&#xFF0C;1&#x5E74;&#x5185;&#x56DE;&#x770B;&#x8BFE;&#x7A0B;&#x8BFE;&#x4EF6;&#x3002;&#x5F55;&#x64AD;&#x4E92;&#x52A8;&#x8BFE;&#x901A;&#x8FC7;&#x5728;&#x7EBF;&#x5E73;&#x53F0;&#xFF0C;2&#x4E2A;&#x6708;&#x65E0;&#x9650;&#x56DE;&#x770B;&#x3002;</p><h2 id="--4">&#x91D1;&#x724C;&#x7B54;&#x7591;&#x670D;&#x52A1;&#x1F3C5;</h2><p>&#x76F4;&#x64AD;&#x8BFE;&#x8FDB;&#x884C;&#x4E2D;&#xFF0C;&#x901A;&#x8FC7; Zoom Chat &#x63D0;&#x95EE;&#xFF0C;&#x7F57;&#x8F91;&#x4F1A;&#x5728;&#x6BCF;&#x9694;&#x4E00;&#x5C0F;&#x6BB5;&#x65F6;&#x95F4;&#x96C6;&#x4E2D;&#x7B54;&#x7591;&#xFF0C;&#x4FDD;&#x8BC1;&#x8BFE;&#x7A0B;&#x8282;&#x594F;&#x540C;&#x65F6;&#x505A;&#x5230;&#x5F53;&#x5802;&#x89E3;&#x7591;&#x91CA;&#x60D1;&#xFF0C;&#x4E0D;&#x8BA9;&#x95EE;&#x9898;&#x8FC7;&#x591C;&#x3002;</p><p>&#x6574;&#x4E2A;&#x8BFE;&#x7A0B;&#x671F;&#x95F4;&#xFF0C;&#x4E00;&#x65E6;&#x6709;&#x7591;&#x95EE;&#xFF0C;&#x7ACB;&#x523B;&#x901A;&#x8FC7;<a href="https://forum.acecodeinterview.com/">&#x7231;&#x601D;&#x95EE;&#x7B54;</a>&#x8BE2;&#x95EE;&#xFF0C;&#x7F57;&#x8F91;&#x672C;&#x4EBA;&#x4F5C;&#x7B54;&#xFF0C;&#x4FDD;&#x8BC1; 24&#x5C0F;&#x65F6;&#x5185;&#x56DE;&#x590D;&#x3002;</p><h2 id="--5">&#x8D2D;&#x4E70;&#x8BFE;&#x7A0B;</h2><p>&#x8BFE;&#x7A0B;&#x539F;&#x4EF7; $999&#xFF0C;&#x9650;&#x65F6;&#x4F18;&#x60E0; <strong>$599</strong>&#x3002;&#x8D2D;&#x4E70;&#x8BFE;&#x7A0B;&#x9644;&#x8D60;&#x4EF7;&#x503C; <strong>$60</strong> &#x7684;&#x7231;&#x601D;&#x4E00;&#x5E74;&#x514D;&#x8D39;&#x4F1A;&#x5458;&#xFF0C;&#x7545;&#x8BFB;&#x6587;&#x5B57;&#x7248;&#x8BFE;&#x7A0B;&#x3002;&#x8D2D;&#x4E70;&#x8BFE;&#x7A0B;&#x52A0;&#x4E0A;<a href="https://blog.acecodeinterview.com/mock_interview/">&#x8001;&#x5E08;&#x4EB2;&#x6388;&#x7684;&#x4E00;&#x5BF9;&#x4E00;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x670D;&#x52A1;</a>&#x6253;&#x5305;&#x4F18;&#x60E0;&#x4EF7; <strong>$949</strong>, &#x7528;&#x4E2A;&#x6027;&#x5316;&#x7684;&#x6307;&#x5BFC;&#x8BA9;&#x4F60;&#x77ED;&#x65F6;&#x95F4;&#x5185;&#x5FEB;&#x901F;&#x63D0;&#x4F9B;<strong>&#x3002;</strong></p><p><strong>&#x73B0;&#x5728;&#x8D77;&#x5230; 2/10/2022 </strong>&#x8D2D;&#x4E70;&#x8BFE;&#x7A0B;&#x7684;&#x540C;&#x5B66;&#xFF0C;&#x989D;&#x5916;&#x9644;&#x8D60;&#x4EF7;&#x503C;<strong> $149 </strong>&#x7684;&#x8F6F;&#x6280;&#x80FD;&#x9762;&#x8BD5;&#x901F;&#x6210;&#xFF0C;&#x5E2E;&#x4F60;&#x8F7B;&#x677E;&#x5E94;&#x5BF9;&#x9762;&#x8BD5;&#x4E2D;&#x7684;&#x8F6F;&#x6280;&#x80FD;&#x95EE;&#x9898;&#xFF0C;&#x85AA;&#x6C34;&#x8C08;&#x5224;&#x4E0D;&#x518D;&#x6015;&#x3002;</p><p>&#x6B22;&#x8FCE;&#x62C9;&#x5C0F;&#x4F19;&#x4F34;&#x8FDB;&#x5165;&#x8BD5;&#x542C;&#x7FA4;&#xFF0C;&#x4E0E;&#x62C9;&#x5165;&#x7FA4;&#x7684;&#x5C0F;&#x4F19;&#x4F34;&#x7EC4;&#x961F;&#x62A5;&#x540D;&#x6BCF;&#x4EBA;&#x4EAB;&#x53D7; $100 &#x4F18;&#x60E0;&#x3002;</p><p>&#x63A5;&#x6536;&#x63D2;&#x73ED;&#x62A5;&#x540D;&#xFF0C;&#x5E76;&#x63D0;&#x4F9B;&#x6240;&#x6709;&#x5F80;&#x671F;&#x89C6;&#x9891;&#x56DE;&#x770B;&#x3002;</p><p>&#x54A8;&#x8BE2;&#x8D2D;&#x4E70;&#x8BFE;&#x7A0B;&#x8BF7;&#x6DFB;&#x52A0;&#x7F57;&#x8F91;&#x5FAE;&#x4FE1;&#xFF0C;&#x6CE8;&#x660E; &#x201C;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425;&#x201D;&#xFF0C;24&#x5C0F;&#x65F6;&#x4EE5;&#x5185;&#x4F1A;&#x56DE;&#x590D;&#x3002;</p><h2 id="--6">&#x8BFE;&#x7A0B;&#x5927;&#x7EB2;</h2><p>&#x7B2C;&#x4E00;&#x8BFE;&#x3010;&#x76F4;&#x64AD;&#x3011;&#x9762;&#x8BD5;&#x5B98;&#x6559;&#x4F60;&#x5982;&#x4F55;&#x7B54;&#x597D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898; + &#x5373;&#x65F6;&#x901A;&#x8BAF;&#x670D;&#x52A1; (Whatsapp)</p><p>&#x7B2C;&#x4E8C;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x8BBE;&#x8BA1; Instagram &amp; Twitter</p><p>&#x7B2C;&#x4E09;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x5373;&#x65F6;&#x901A;&#x8BAF;&#x670D;&#x52A1; (Facebook Messenger)</p><p>&#x7B2C;&#x56DB;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x5E38;&#x89C1;&#x7CFB;&#x7EDF;&#x7EC4;&#x4EF6;&#x4E32;&#x8BB2;&#x4E00; - &#x6570;&#x636E;&#x5E93; &amp; &#x7F13;&#x5B58;</p><p>&#x7B2C;&#x4E94;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x5E38;&#x89C1;&#x7CFB;&#x7EDF;&#x7EC4;&#x4EF6;&#x4E32;&#x8BB2;&#x4E8C; - &#x6D88;&#x606F;&#x961F;&#x5217; &amp; API &#x8BBE;&#x8BA1; (Websocket, RESTful)</p><p>&#x7B2C;&#x516D;&#x8BFE;&#x3010;&#x76F4;&#x64AD;&#x3011;&#x57FA;&#x4E8E;&#x5730;&#x7406;&#x4F4D;&#x7F6E;&#x7684;&#x7CFB;&#x7EDF;&#x4E00; - Uber &amp; Uber Eats</p><p>&#x7B2C;&#x4E03;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x57FA;&#x4E8E;&#x5730;&#x7406;&#x4F4D;&#x7F6E;&#x7684;&#x7CFB;&#x7EDF;&#x4E8C; - Yelp</p><p>&#x7B2C;&#x516B;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x7F51;&#x7EDC;&#x722C;&#x866B; (Crawler)</p><p>&#x7B2C;&#x4E5D;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x9ED1;&#x5BA2;&#x7248;&#x722C;&#x866B; (Botnet Crawler)</p><p>&#x7B2C;&#x5341;&#x8BFE;&#x3010;&#x76F4;&#x64AD;&#x3011;&#x7535;&#x5F71;&#x8BA2;&#x7968;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1; (Fandango, Atom) + &#x5238;&#x5546;&#x7CFB;&#x7EDF; (Robinhood)</p><p>&#x7B2C;&#x5341;&#x4E00;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x5206;&#x5E03;&#x5F0F;&#x4E8B;&#x52A1; Distributed Transaction</p><p>&#x7B2C;&#x5341;&#x4E8C;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x5728;&#x7EBF;&#x6587;&#x672C;&#x534F;&#x4F5C;&#x7CFB;&#x7EDF; (Google Doc)</p><p>&#x7B2C;&#x5341;&#x4E09;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x4E91;&#x5B58;&#x50A8;&#x670D;&#x52A1;&#x7CFB;&#x7EDF; (Dropbox)</p><p>&#x7B2C;&#x5341;&#x56DB;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x641C;&#x7D22;&#x5F15;&#x64CE;&#x8BBE;&#x8BA1; (Google, Twitter Search)</p><p>&#x7B2C;&#x5341;&#x4E94;&#x8BFE;&#x3010;&#x76F4;&#x64AD;&#x3011;&#x73B0;&#x573A;&#x5B66;&#x5458;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x70B9;&#x8BC4;</p><p>&#x7B2C;&#x5341;&#x516D;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9762;&#x8BD5;&#x6280;&#x5DE7;&#x4E0E;&#x8BEF;&#x533A;</p><p>&#x7B2C;&#x5341;&#x4E03;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x5728;&#x7EBF;&#x89C6;&#x9891;&#x7F51;&#x7AD9;&#x8BBE;&#x8BA1; (Netflix) + CDN &#x8BBE;&#x8BA1;</p><p>&#x7B2C;&#x5341;&#x516B;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x4EE3;&#x7801;&#x7ADE;&#x8D5B;&#x5E73;&#x53F0; (Leetcode)</p><p>&#x7B2C;&#x5341;&#x4E5D;&#x8BFE;&#x3010;&#x76F4;&#x64AD;&#x3011;&#x5B9E;&#x65F6;&#x76D1;&#x63A7;&#x7CFB;&#x7EDF; (Datadog) + &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1; Scalability &#x603B;&#x7ED3;</p><p>&#x7B2C;&#x4E8C;&#x5341;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;Trending / TopK &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1; (Spotify Top 10 Music)</p><p>&#x7B2C;&#x4E8C;&#x5341;&#x4E00;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x641C;&#x7D22;&#x8BCD;&#x6761;&#x8865;&#x5168;&#x7CFB;&#x7EDF; (Autocomplete)</p><p>&#x7B2C;&#x4E8C;&#x5341;&#x4E8C;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x5206;&#x5E03;&#x5F0F;&#x7F13;&#x5B58;&#x8BBE;&#x8BA1; (Distributed Cache)</p><p>&#x7B2C;&#x4E8C;&#x5341;&#x4E09;&#x8BFE;&#x3010;&#x5F55;&#x64AD;&#x3011;&#x9650;&#x6D41;&#x5668; (Ratelimiter)</p>]]></content:encoded></item><item><title><![CDATA[裁员大潮下的职场规划｜2022 科技大裁员自救]]></title><description><![CDATA[在本期视频里，罗辑会用他在3次裁员中学到的经验，为你在裁员大潮里指明方向。教你看透公司裁员的蛛丝马迹，帮你调整心态面对可能的裁员，带你未雨绸缪快速求职。]]></description><link>https://blog.acecodeinterview.com/techlayoff2022/</link><guid isPermaLink="false">636c76d11c20d30b7fc4d2e8</guid><category><![CDATA[免费资源]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Thu, 10 Nov 2022 04:06:31 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2022/11/---Youtube-Thumbnail.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/5YsWOtQO7UE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="&#x88C1;&#x5458;&#x5927;&#x6F6E;&#x4E0B;&#x7684;&#x804C;&#x573A;&#x89C4;&#x5212;&#xFF5C;&#x770B;&#x900F;&#x88C1;&#x5458;&#x7684;&#x86DB;&#x4E1D;&#x9A6C;&#x8FF9; &#xFF5C;2022 &#x79D1;&#x6280;&#x5927;&#x88C1;&#x5458;&#x81EA;&#x6551;"></iframe></figure><img src="https://blog.acecodeinterview.com/content/images/2022/11/---Youtube-Thumbnail.png" alt="&#x88C1;&#x5458;&#x5927;&#x6F6E;&#x4E0B;&#x7684;&#x804C;&#x573A;&#x89C4;&#x5212;&#xFF5C;2022 &#x79D1;&#x6280;&#x5927;&#x88C1;&#x5458;&#x81EA;&#x6551;"><p>Meta, Twitter, Stripe, Salesforce &#x7B49;&#x7B49;&#x516C;&#x53F8;&#x63A5;&#x8FDE;&#x88C1;&#x5458;&#xFF0C;&#x79D1;&#x6280;&#x4E1A;&#x4EBA;&#x5FC3;&#x60F6;&#x60F6;&#x3002;</p><p>&#x6211;&#x4F1A;&#x7528;&#x6211;&#x7ECF;&#x5386;&#x8FC7;&#x7684;3&#x6B21;&#x88C1;&#x5458;&#x4E2D;&#x5B66;&#x5230;&#x7684;&#x7ECF;&#x9A8C;&#xFF0C;&#x6559;&#x4F60;&#x770B;&#x900F;&#x516C;&#x53F8;&#x88C1;&#x5458;&#x7684;&#x86DB;&#x4E1D;&#x9A6C;&#x8FF9;&#xFF0C;&#x5E2E;&#x4F60;&#x8C03;&#x6574;&#x5FC3;&#x6001;&#x9762;&#x5BF9;&#x53EF;&#x80FD;&#x7684;&#x88C1;&#x5458;&#xFF0C;&#x5E26;&#x4F60;&#x672A;&#x96E8;&#x7EF8;&#x7F2A;&#x5FEB;&#x901F;&#x6C42;&#x804C;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://blog.acecodeinterview.com/content/images/2022/11/-------.png" class="kg-image" alt="&#x88C1;&#x5458;&#x5927;&#x6F6E;&#x4E0B;&#x7684;&#x804C;&#x573A;&#x89C4;&#x5212;&#xFF5C;2022 &#x79D1;&#x6280;&#x5927;&#x88C1;&#x5458;&#x81EA;&#x6551;" loading="lazy" width="1728" height="2304" srcset="https://blog.acecodeinterview.com/content/images/size/w600/2022/11/-------.png 600w, https://blog.acecodeinterview.com/content/images/size/w1000/2022/11/-------.png 1000w, https://blog.acecodeinterview.com/content/images/size/w1600/2022/11/-------.png 1600w, https://blog.acecodeinterview.com/content/images/2022/11/-------.png 1728w" sizes="(min-width: 720px) 720px"></figure>]]></content:encoded></item><item><title><![CDATA[跟罗辑逐章精读 Designing Data-Intensive Applications]]></title><description><![CDATA[10/27 起每周四美西时间 6:30-7:30pm，罗辑会开启 Youtube 直播，带你阅读一章 DDIA，用十年架构经验帮你读懂好书。 
第一章回看已更新，下周四开讲第二章。欢迎订阅频道，点亮小铃铛，我们直播见！]]></description><link>https://blog.acecodeinterview.com/ddia_book_review/</link><guid isPermaLink="false">635867201c20d30b7fc4ccd4</guid><category><![CDATA[系统设计文本课]]></category><category><![CDATA[免费资源]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Tue, 25 Oct 2022 23:22:39 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2022/10/DDIA---.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="150" src="https://www.youtube.com/embed/BaeyTru_GSE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="&#x7F57;&#x8F91;&#x7CBE;&#x8BFB;DDIA &#x7B2C;&#x4E8C;&#x7AE0; Data Models &amp; Query Languages"></iframe><figcaption>&#x70B9;&#x51FB;&#x8FDB;&#x5165;&#x76F4;&#x64AD;&#xFF0C;&#x70B9;&#x51FB; Notify Me &#x9884;&#x7EA6;&#x83B7;&#x5F97;&#x76F4;&#x64AD;&#x63D0;&#x9192;</figcaption></figure><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>&#x65E5;&#x671F;</th>
<th>&#x5185;&#x5BB9;</th>
</tr>
</thead>
<tbody>
<tr>
<td>10/27</td>
<td>Chapter 1: Reliable, Scalable and Maintainable Applications</td>
</tr>
<tr>
<td>11/3</td>
<td>Chapter 2: Data Models and Query Languages</td>
</tr>
<tr>
<td>11/10</td>
<td>Skip for Layoff Special Topic</td>
</tr>
<tr>
<td>11/17</td>
<td>Chapter 3: Storage and Retrieval</td>
</tr>
<tr>
<td>11/24</td>
<td>Skip for Thanksgiving</td>
</tr>
<tr>
<td>12/1</td>
<td>Chapter 4: Encoding and Evolution</td>
</tr>
<tr>
<td>12/8</td>
<td>Chapter 5: Replication</td>
</tr>
<tr>
<td>12/15</td>
<td>Chapter 6: Partitioning</td>
</tr>
<tr>
<td>12/22</td>
<td>Skip for Holiday Season</td>
</tr>
<tr>
<td>12/29</td>
<td>Skip for Holiday Season</td>
</tr>
<tr>
<td>1/5</td>
<td>Chapter 7: Transactions</td>
</tr>
<tr>
<td>1/12</td>
<td>Chapter 8: The Trouble with Distributed System</td>
</tr>
<tr>
<td>1/19</td>
<td>Chapter 9: Consistency and Consensus</td>
</tr>
<tr>
<td>1/26</td>
<td>Chapter 10: Batch Processing</td>
</tr>
<tr>
<td>2/2</td>
<td>Chapter 11: Streaming Processing</td>
</tr>
<tr>
<td>2/9</td>
<td>Chapter 12: The Future of Data Systems</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://www.youtube.com/playlist?list=PLdQDWw95rTMdvukCIuhxnjtfqPY3bFGNs"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x7F57;&#x8F91;&#x7CBE;&#x8BFB; Designing Data Intensive Applications (DDIA)</div><div class="kg-bookmark-description">&#x6BCF;&#x5468;&#x56DB;&#x7F57;&#x8F91;&#x5E26;&#x4F60;&#x7CBE;&#x8BFB; Design Data Intensive Application &#x7684;&#x4E00;&#x7AE0;&#xFF0C;&#x7528;&#x5341;&#x5E74;&#x67B6;&#x6784;&#x5E08;&#x7ECF;&#x9A8C;&#x5E2E;&#x4F60;&#x8BFB;&#x61C2;&#x597D;&#x4E66;&#x3002;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.youtube.com/s/desktop/f06ee14b/img/favicon_144x144.png" alt="&#x8DDF;&#x7F57;&#x8F91;&#x9010;&#x7AE0;&#x7CBE;&#x8BFB; Designing Data-Intensive Applications"><span class="kg-bookmark-author">YouTube</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://i.ytimg.com/vi/HBuAklMAjaA/hqdefault.jpg?sqp=-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ==&amp;rs=AOn4CLAlviO-WUwEUr-0G3w-af0dOETe8Q&amp;days_since_epoch=19293" alt="&#x8DDF;&#x7F57;&#x8F91;&#x9010;&#x7AE0;&#x7CBE;&#x8BFB; Designing Data-Intensive Applications"></div></a><figcaption>&#x5F80;&#x671F;&#x89C6;&#x9891;</figcaption></figure><img src="https://blog.acecodeinterview.com/content/images/2022/10/DDIA---.png" alt="&#x8DDF;&#x7F57;&#x8F91;&#x9010;&#x7AE0;&#x7CBE;&#x8BFB; Designing Data-Intensive Applications"><p>&#x8FD8;&#x672A;&#x4E70;&#x4E66;&#x7684;&#x540C;&#x5B66;&#xFF0C;&#x6B22;&#x8FCE;&#x5927;&#x5BB6;&#x901A;&#x8FC7;&#x4EE5;&#x4E0B;<a href="https://amzn.to/3VIgnm4">&#x94FE;&#x63A5;</a>&#x8D2D;&#x4E70; DDIA&#xFF0C;&#x5728;&#x652F;&#x6301;&#x539F;&#x4F5C;&#x8005;&#x7684;&#x540C;&#x65F6;&#xFF0C;&#x652F;&#x6301;&#x7231;&#x601D;&#x514D;&#x8D39;&#x516C;&#x5F00;&#x8BFE;&#xFF01;</p><p><a href="https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321?crid=3893WPYV5GHHK&amp;keywords=DDIA&amp;qid=1666247281&amp;qu=eyJxc2MiOiIxLjc3IiwicXNhIjoiMS4zOCIsInFzcCI6IjEuMzkifQ%3D%3D&amp;sprefix=ddia,aps,112&amp;sr=8-1&amp;linkCode=sl1&amp;tag=acecodeinterv-20&amp;linkId=a1d1df710a115396ba83c11ef166b6c1&amp;language=en_US&amp;ref_=as_li_ss_tl">&#x8D2D;&#x4E70; DDIA</a></p><p>&#x6B22;&#x8FCE;&#x540C;&#x5B66;&#x4EEC;&#x5C06;&#x516C;&#x5F00;&#x8BFE;&#x6D77;&#x62A5;&#x5206;&#x4EAB;&#x7ED9;&#x6709;&#x9700;&#x8981;&#x7684;&#x5C0F;&#x4F19;&#x4F34;&#xFF0C;&#x611F;&#x8C22;&#x540C;&#x5B66;&#x4EEC;&#x652F;&#x6301;&#x672C;&#x671F;&#x516C;&#x5F00;&#x8BFE;&#xFF0C;&#x6211;&#x4EEC;&#x5468;&#x56DB;&#x4E0D;&#x89C1;&#x4E0D;&#x6563;&#xFF01;</p><figure class="kg-card kg-image-card"><img src="https://blog.acecodeinterview.com/content/images/2022/10/-----------6-.png" class="kg-image" alt="&#x8DDF;&#x7F57;&#x8F91;&#x9010;&#x7AE0;&#x7CBE;&#x8BFB; Designing Data-Intensive Applications" loading="lazy" width="1728" height="2304" srcset="https://blog.acecodeinterview.com/content/images/size/w600/2022/10/-----------6-.png 600w, https://blog.acecodeinterview.com/content/images/size/w1000/2022/10/-----------6-.png 1000w, https://blog.acecodeinterview.com/content/images/size/w1600/2022/10/-----------6-.png 1600w, https://blog.acecodeinterview.com/content/images/2022/10/-----------6-.png 1728w" sizes="(min-width: 720px) 720px"></figure>]]></content:encoded></item><item><title><![CDATA[学长教你系统准备 Senior 面试]]></title><description><![CDATA[本周日 4/17 美西时间 6:30-7:30pm, 爱思优秀学员 Michael 在过去几个月里拿到5家一线热门公司的 Senior Offer，包括 Google, Linkedin, Tiktok, Doordash 和 Roblox。爱思有幸请他来为大家分享系统准备 Senior 级别面试的心得体会，回顾他从面试前期准备到多家公司临场面试的经历，包含独家的面经分享，希望大家不要错过！]]></description><link>https://blog.acecodeinterview.com/michael-webinar/</link><guid isPermaLink="false">625b7e92c4c6bd056d105eec</guid><category><![CDATA[免费资源]]></category><category><![CDATA[系统设计文本课]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Sun, 17 Apr 2022 03:01:11 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2022/04/Screen-Shot-2022-04-16-at-7.53.42-PM.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.acecodeinterview.com/content/images/2022/04/Screen-Shot-2022-04-16-at-7.53.42-PM.png" alt="&#x5B66;&#x957F;&#x6559;&#x4F60;&#x7CFB;&#x7EDF;&#x51C6;&#x5907; Senior &#x9762;&#x8BD5;"><p>&#x7231;&#x601D;&#x4F18;&#x79C0;&#x5B66;&#x5458; Michael &#x5728;&#x8FC7;&#x53BB;&#x51E0;&#x4E2A;&#x6708;&#x91CC;&#x62FF;&#x5230;5&#x5BB6;&#x4E00;&#x7EBF;&#x70ED;&#x95E8;&#x516C;&#x53F8;&#x7684; Senior Offer&#xFF0C;&#x5305;&#x62EC; Google, Linkedin, Tiktok, Doordash &#x548C; Roblox&#x3002;&#x7231;&#x601D;&#x6709;&#x5E78;&#x8BF7;&#x4ED6;&#x6765;&#x4E3A;&#x5927;&#x5BB6;&#x5206;&#x4EAB;&#x7CFB;&#x7EDF;&#x51C6;&#x5907; Senior &#x7EA7;&#x522B;&#x9762;&#x8BD5;&#x7684;&#x5FC3;&#x5F97;&#x4F53;&#x4F1A;&#xFF0C;&#x56DE;&#x987E;&#x4ED6;&#x4ECE;&#x9762;&#x8BD5;&#x524D;&#x671F;&#x51C6;&#x5907;&#x5230;&#x591A;&#x5BB6;&#x516C;&#x53F8;&#x4E34;&#x573A;&#x9762;&#x8BD5;&#x7684;&#x7ECF;&#x5386;&#xFF0C;&#x5305;&#x542B;&#x72EC;&#x5BB6;&#x7684;&#x9762;&#x7ECF;&#x5206;&#x4EAB;&#xFF0C;&#x5927;&#x5BB6;&#x4E0D;&#x8981;&#x9519;&#x8FC7;&#xFF01;</p><figure class="kg-card kg-embed-card"><iframe width="356" height="200" src="https://www.youtube.com/embed/K28VmcgsK8M?list=PLdQDWw95rTMe5mR4HlawIQaBpTSQY6pkH" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><p>&#x9891;&#x9053;&#x6BCF;&#x5468;&#x672B;&#x66F4;&#x65B0;&#xFF0C;&#x505C;&#x7559;&#x9F20;&#x6807;&#x5728;&#x89C6;&#x9891;&#x5DE6;&#x4E0A;&#x89D2;&#xFF0C;&#x7ACB;&#x523B;&#x8BA2;&#x9605;&#x5427;&#xFF5E;</p>]]></content:encoded></item><item><title><![CDATA[多家公司面试最新一手情报分享｜在职跳槽斩获6家顶尖公司Senior Offer]]></title><description><![CDATA[美西时间本周日 2/6 6pm，爱思免费讲座将分享李同学的成功求职经验。李同学在过去的几个月里在职跳槽陆续斩获 FB, Uber, Google, Stripe, Instacart, Doordash 六家公司的Senior Offer。本次免费讲座会回顾他从面试前期准备到多家公司临场面试的经历以及分享他对各家公司面试风格的第一手资料。]]></description><link>https://blog.acecodeinterview.com/webinar-li/</link><guid isPermaLink="false">61fc15c6c4c6bd056d105d6c</guid><category><![CDATA[系统设计文本课]]></category><category><![CDATA[一对一服务]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Thu, 06 Jan 2022 18:00:00 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2022/02/Screen-Shot-2022-02-03-at-9.59.04-AM.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.acecodeinterview.com/content/images/2022/02/Screen-Shot-2022-02-03-at-9.59.04-AM.png" alt="&#x591A;&#x5BB6;&#x516C;&#x53F8;&#x9762;&#x8BD5;&#x6700;&#x65B0;&#x4E00;&#x624B;&#x60C5;&#x62A5;&#x5206;&#x4EAB;&#xFF5C;&#x5728;&#x804C;&#x8DF3;&#x69FD;&#x65A9;&#x83B7;6&#x5BB6;&#x9876;&#x5C16;&#x516C;&#x53F8;Senior Offer"><p>&#x674E;&#x540C;&#x5B66;&#x5728;&#x8FC7;&#x53BB;&#x7684;&#x51E0;&#x4E2A;&#x6708;&#x91CC;&#x5728;&#x804C;&#x8DF3;&#x69FD;&#x9646;&#x7EED;&#x65A9;&#x83B7; FB, Uber, Google, Stripe, Instacart, Doordash &#x516D;&#x5BB6;&#x516C;&#x53F8;&#x7684;Senior Offer&#x3002;&#x672C;&#x6B21;&#x514D;&#x8D39;&#x8BB2;&#x5EA7;&#x4F1A;&#x56DE;&#x987E;&#x4ED6;&#x4ECE;&#x9762;&#x8BD5;&#x524D;&#x671F;&#x51C6;&#x5907;&#x5230;&#x591A;&#x5BB6;&#x516C;&#x53F8;&#x4E34;&#x573A;&#x9762;&#x8BD5;&#x7684;&#x7ECF;&#x5386;&#x4EE5;&#x53CA;&#x5206;&#x4EAB;&#x4ED6;&#x5BF9;&#x5404;&#x5BB6;&#x516C;&#x53F8;&#x9762;&#x8BD5;&#x98CE;&#x683C;&#x7684;&#x7B2C;&#x4E00;&#x624B;&#x8D44;&#x6599;&#x3002;</p><p>&#x6B22;&#x8FCE;&#x8BA2;&#x9605;&#x7231;&#x601D; Youtube &#x9891;&#x9053;&#xFF0C;&#x72EC;&#x5BB6;&#x5185;&#x5BB9;&#xFF0C;&#x5B9A;&#x671F;&#x66F4;&#x65B0;&#xFF01;</p><figure class="kg-card kg-embed-card"><iframe width="356" height="200" src="https://www.youtube.com/embed/PkvIA1EnZ0M?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure>]]></content:encoded></item><item><title><![CDATA[2022系统设计面试趋势前瞻]]></title><description><![CDATA[此次爱思免费讲座分享了对2022系统设计面试趋势的展望，总结大厂最新系统设计面试高频题，给同学们高效复习系统设计提出行之有效的建议。吐血总结 Linkedin, Facebook, Google, Amazon, Airbnb, Doordash, Robinhood, Snap, Uber 等大公司新题。]]></description><link>https://blog.acecodeinterview.com/2022_sd_preview/</link><guid isPermaLink="false">6180baddc4c6bd056d105b4f</guid><category><![CDATA[免费资源]]></category><category><![CDATA[系统设计文本课]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Wed, 03 Nov 2021 04:00:00 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2021/11/248435287_621557899018063_8011846202944258773_n.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.acecodeinterview.com/content/images/2021/11/248435287_621557899018063_8011846202944258773_n.png" alt="2022&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9762;&#x8BD5;&#x8D8B;&#x52BF;&#x524D;&#x77BB;"><p>&#x6B64;&#x6B21;&#x7231;&#x601D;&#x514D;&#x8D39;&#x8BB2;&#x5EA7;&#x5206;&#x4EAB;&#x4E86;&#x5BF9;2022&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9762;&#x8BD5;&#x8D8B;&#x52BF;&#x7684;&#x5C55;&#x671B;&#xFF0C;&#x7ED9;&#x540C;&#x5B66;&#x4EEC;&#x9AD8;&#x6548;&#x590D;&#x4E60;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x63D0;&#x51FA;&#x884C;&#x4E4B;&#x6709;&#x6548;&#x7684;&#x5EFA;&#x8BAE;&#x3002;&#x5410;&#x8840;&#x603B;&#x7ED3; Linkedin, Facebook, Google, Amazon, Airbnb, Doordash, Robinhood, Snap, Uber &#x7B49;&#x5927;&#x516C;&#x53F8;&#x65B0;&#x9898;&#x3002;</p><figure class="kg-card kg-embed-card"><iframe width="356" height="200" src="https://www.youtube.com/embed/H7hczfVlU84?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure>]]></content:encoded></item><item><title><![CDATA[资深面试官眼中的SQL面试]]></title><description><![CDATA[如果你正在为SQL面试和学习发愁，这篇总结文章可以帮你理清SQL学习备考的思路。1道面试真题和7个SQL常见问题梳理，本文用最精炼的总结助你高效备考。]]></description><link>https://blog.acecodeinterview.com/sql-interview-intro/</link><guid isPermaLink="false">613fe746c4c6bd056d105748</guid><category><![CDATA[数据科学文本课]]></category><category><![CDATA[免费资源]]></category><category><![CDATA[提纲]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Thu, 12 Aug 2021 03:51:00 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2021/09/sql-interview-question.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.acecodeinterview.com/content/images/2021/09/sql-interview-question.png" alt="&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x773C;&#x4E2D;&#x7684;SQL&#x9762;&#x8BD5;"><p>&#x968F;&#x7740;&#x4E16;&#x754C;&#x4E0A;&#x7684;&#x6570;&#x636E;&#x8D8A;&#x6765;&#x8D8A;&#x591A;&#xFF0C;&#x5BF9;&#x4E8E;&#x5904;&#x7406;&#x6570;&#x636E;&#x7684;&#x9700;&#x6C42;&#x4E5F;&#x65E5;&#x76CA;&#x589E;&#x52A0;&#xFF0C;&#x8D8A;&#x6765;&#x8D8A;&#x591A;&#x7684;&#x5C97;&#x4F4D;&#x5BF9;&#x4E8E;SQL&#x6709;&#x4E86;&#x66F4;&#x591A;&#x7684;&#x8981;&#x6C42;&#xFF0C;&#x4EE5;&#x81F3;&#x4E8E;&#x5F88;&#x591A;&#x9762;&#x5411;&#x6570;&#x636E;&#x7684;&#x5C97;&#x4F4D;&#x90FD;&#x4F1A;&#x5728;&#x9762;&#x8BD5;&#x4E2D;&#x5BF9;SQL&#x8FDB;&#x884C;&#x8003;&#x5BDF;&#x3002;SQL&#x7684;&#x9762;&#x8BD5;&#x53EF;&#x80FD;&#x4F1A;&#x8BA9;&#x5F88;&#x591A;&#x672A;&#x66FE;&#x63A5;&#x89E6;&#x8FC7;&#x7F16;&#x7A0B;&#x7684;&#x4EBA;&#x671B;&#x800C;&#x5374;&#x6B65;&#xFF0C;&#x800C;&#x6211;&#x5E0C;&#x671B;&#x901A;&#x8FC7;&#x8FD9;&#x7BC7;&#x6587;&#x7AE0;&#x80FD;&#x591F;&#x8BA9;&#x66F4;&#x591A;&#x7684;&#x6C42;&#x804C;&#x8005;&#x4E86;&#x89E3;SQL&#x7684;&#x9762;&#x8BD5;&#x548C;&#x4E00;&#x4E9B;&#x57FA;&#x672C;&#x7684;&#x601D;&#x8DEF;&#x3002;</p><p>&#x6211;&#x5728;&#x5DE5;&#x4E1A;&#x754C;&#x5DE5;&#x4F5C;&#x591A;&#x5E74;&#xFF0C;&#x4E00;&#x76F4;&#x4ECE;&#x4E8B;&#x6570;&#x636E;&#x5E93;&#x548C;SQL&#x76F8;&#x5173;&#x5F00;&#x53D1;&#x5DE5;&#x4F5C;&#xFF0C;&#x60F3;&#x4F5C;&#x4E3A;&#x76F8;&#x5173;&#x9886;&#x57DF;&#x7684;&#x4ECE;&#x4E1A;&#x8005;&#x548C;&#x9762;&#x8BD5;&#x5B98;&#x6765;&#x804A;&#x4E00;&#x804A;&#x6211;&#x5BF9;SQL&#x9762;&#x8BD5;&#x548C;&#x5B66;&#x4E60;&#x7684;&#x4E00;&#x4E9B;&#x770B;&#x6CD5;&#x548C;&#x601D;&#x8003;&#xFF0C;&#x4E0B;&#x9762;&#x4F1A;&#x5148;&#x4EE5;<strong>&#x4E00;&#x9053;&#x9762;&#x8BD5;&#x771F;&#x9898;</strong>&#x6765;&#x4ECB;&#x7ECD;SQL&#x7684;&#x9762;&#x8BD5;&#xFF0C;&#x4E4B;&#x540E;&#x4F1A;&#x56DE;&#x7B54;<strong>7&#x4E2A;&#x5E38;&#x89C1;&#x7684;SQL&#x95EE;&#x9898;</strong>&#x3002;</p><h2 id="1-sql-">1. SQL&#x9762;&#x8BD5;&#x771F;&#x9898;&#x89E3;&#x6790;</h2><p></p><blockquote>[<em>Social Network</em>] A user(user_id) could write a comment(content_id, type) to a post(target_id) or post(content_id, type) by him/herself. Table schema is shown as below.</blockquote><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>date</th>
<th>user_id</th>
<th>content_id</th>
<th>content_type (comment/post)</th>
<th>target_id</th>
</tr>
</thead>
</table>
<!--kg-card-end: markdown--><blockquote><em><strong>Q: What is the comment distribution?</strong></em></blockquote><p>&#x8FD9;&#x662F;&#x4E00;&#x9053;&#x5F88;&#x5178;&#x578B;&#x7684;SQL&#x9762;&#x8BD5;&#x9898;&#x76EE;&#xFF0C;&#x4ECE;&#x8FD9;&#x9053;&#x9898;&#x51FA;&#x53D1;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x603B;&#x7ED3;&#x51FA;&#x5F88;&#x591A;&#x505A;&#x9898;&#x7684;&#x601D;&#x8DEF;&#x548C;&#x6280;&#x5DE7;&#x3002;</p><ul><li><strong>&#x9996;&#x5148;&#x6211;&#x4EEC;&#x8981;&#x53BB;&#x7406;&#x89E3;&#x9898;&#x76EE;&#x7684;context</strong>&#x3002;&#x5F53;&#x4F60;&#x5BF9;&#x9898;&#x76EE;&#x6240;&#x8BA8;&#x8BBA;&#x7684;&#x9898;&#x76EE;&#x80CC;&#x666F;&#x4E0D;&#x662F;&#x5F88;&#x719F;&#x6089;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x8981;&#x591A;&#x8DDF;&#x9762;&#x8BD5;&#x5B98;&#x8BA8;&#x8BBA;&#x3002;&#x8FD9;&#x9053;&#x9898;&#x76EE;&#x7684;&#x80CC;&#x666F;&#x662F;<em>social network</em>&#xFF0C;&#x7528;&#x6237;&#x4F1A;post&#x6216;&#x8005;&#x5BF9;post&#x8FDB;&#x884C;comment&#xFF0C;&#x7F51;&#x7AD9;&#x8BB0;&#x5F55;&#x4E0B;&#x6765;&#x7528;&#x6237;&#x7684;action&#x5B58;&#x5165;&#x6570;&#x636E;&#x5E93;&#x3002;</li></ul><p></p><ul><li><strong>&#x5728;&#x6B64;&#x4E4B;&#x540E;&#x6211;&#x4EEC;&#x8981;&#x4E86;&#x89E3;&#x6240;&#x63D0;&#x4F9B;&#x7684;table(s)</strong>&#x3002;&#x8FD9;&#x91CC;&#x6211;&#x4EEC;&#x53EA;&#x6709;&#x4E00;&#x4E2A;table&#xFF0C;&#x4F46;&#x591A;&#x4E2A;table&#x7684;&#x60C5;&#x51B5;&#x4E5F;&#x4E0D;&#x5C11;&#x89C1;&#xFF0C;&#x8FD9;&#x4E2A;&#x65F6;&#x5019;&#x9700;&#x8981;&#x6CE8;&#x610F;&#x5404;&#x4E2A;table&#x4E4B;&#x95F4;&#x7684;&#x5173;&#x7CFB;(primary key/foreign key)&#x3002;&#x5728;&#x6B64;&#x4E4B;&#x540E;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5F00;&#x59CB;&#x89C2;&#x5BDF;&#x6BCF;&#x4E2A;table&#x91CC;&#x9762;&#x7684;columns&#x6709;&#x4EC0;&#x4E48;(&#x751A;&#x81F3;&#x9700;&#x8981;&#x4F60;&#x77E5;&#x9053;&#x6BCF;&#x4E2A;column&#x7684;data type)&#xFF0C;&#x5F88;&#x591A;&#x65F6;&#x5019;&#x9762;&#x8BD5;&#x5B98;&#x4E0D;&#x4F1A;&#x7ED9;&#x4F60;&#x5177;&#x4F53;&#x6570;&#x636E;&#xFF0C;&#x53EA;&#x4F1A;&#x7ED9;&#x4F60;&#x63D0;&#x4F9B;table schema&#xFF0C;&#x5C31;&#x50CF;&#x8FD9;&#x9053;&#x9898;&#x76EE;&#x4E00;&#x6837;&#xFF0C;&#x8FD9;&#x4E2A;&#x65F6;&#x5019;&#x4F60;&#x53EF;&#x4EE5;&#x81EA;&#x5DF1;&#x6DFB;&#x4E0A;&#x4E00;&#x4E9B;&#x6570;&#x636E;&#x4F5C;&#x4E3A;example&#xFF0C;&#x4F46;&#x662F;&#x4E00;&#x5B9A;&#x8981;&#x4ED4;&#x7EC6;&#x601D;&#x8003;corner case&#xFF0C;&#x5373;&#x4F7F;&#x9762;&#x8BD5;&#x5B98;&#x7ED9;&#x4F60;&#x5177;&#x4F53;&#x6570;&#x636E;&#x4E86;&#xFF0C;&#x4E5F;&#x4E0D;&#x8981;&#x88AB;&#x9650;&#x5236;&#x4F4F;&#xFF0C;&#x5F88;&#x591A;&#x65F6;&#x5019;&#x9762;&#x8BD5;&#x5B98;&#x5C31;&#x662F;&#x60F3;&#x53BB;&#x8003;&#x5BDF;&#x4F60;&#x5728;&#x5199;SQL&#x7684;&#x65F6;&#x5019;&#x80FD;&#x5426;&#x628A;corner case&#x8003;&#x8651;&#x5468;&#x5168;&#x3002;&#x2003;</li><li>&#x8FD9;&#x9053;&#x9898;&#x76EE;&#x53EA;&#x6709;&#x4E00;&#x4E2A;table&#xFF0C;table schema&#x4E5F;&#x6BD4;&#x8F83;&#x76F4;&#x63A5;&#x7B80;&#x5355;&#xFF0C;&#x91CC;&#x9762;&#x662F;date: &#x65E5;&#x671F;&#xFF0C;user_id: &#x7528;&#x6237;&#x7684;id&#xFF0C;content_id: &#x8BE5;&#x7528;&#x6237;&#x6240;&#x53D1;&#x5185;&#x5BB9;&#x7684;id&#xFF0C;content_type: &#x5185;&#x5BB9;&#x7684;type&#xFF0C;&#x8FD9;&#x91CC;&#x662F;post&#x6216;&#x8005;comment&#xFF0C;target_id: &#x5982;&#x679C;&#x5185;&#x5BB9;&#x7684;type&#x662F;comment&#xFF0C;&#x90A3;target_id&#x5C31;&#x662F;&#x88AB;&#x8BC4;&#x8BBA;&#x7684;post&#xFF0C;&#x5982;&#x679C;type&#x662F;post&#xFF0C;&#x90A3;target_id&#x5C31;&#x662F;NULL&#x3002;&#x6839;&#x636E;&#x8FD9;&#x4E9B;&#x4FE1;&#x606F;&#xFF0C;&#x5728;&#x4E0D;&#x770B;&#x95EE;&#x9898;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x9700;&#x8981;&#x6CE8;&#x610F;&#x7684;&#x53EF;&#x80FD;&#x6709;&#x4EE5;&#x4E0B;&#x51E0;&#x70B9;: &#x5173;&#x4E8E;date&#x7684;&#x64CD;&#x4F5C;&#xFF0C;&#x5BF9;NULL&#x7684;&#x5904;&#x7406;&#xFF0C;&#x4E00;&#x4E2A;user&#x53EF;&#x80FD;&#x4F1A;&#x5BF9;&#x67D0;&#x4E2A;post&#x8FDB;&#x884C;&#x591A;&#x6B21;comment(might be duplicates)&#x3002;&#x8FD9;&#x4E9B;&#x90FD;&#x662F;&#x6211;&#x5728;&#x770B;&#x5230;&#x8FD9;&#x4E2A;table&#x7684;&#x65F6;&#x5019;&#x4E00;&#x4E9B;&#x76F4;&#x89C9;&#x53CD;&#x5E94;&#xFF0C;&#x5177;&#x4F53;&#x4F1A;&#x4E0D;&#x4F1A;&#x6709;&#x5E2E;&#x52A9;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x7EE7;&#x7EED;&#x53BB;&#x770B;&#x9898;&#x76EE;&#x3002;</li></ul><p></p><ul><li><strong>&#x8BFB;&#x61C2;&#x5E76;&#x6B63;&#x786E;&#x7406;&#x89E3;&#x95EE;&#x9898;</strong>&#x3002;&#x4E00;&#x5B9A;&#x8981;&#x6B63;&#x786E;&#x7406;&#x89E3;&#x9898;&#x610F;&#xFF0C;&#x5F53;&#x4F60;&#x4E0D;&#x662F;&#x5F88;&#x786E;&#x5B9A;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x4E00;&#x5B9A;&#x8981;&#x8DDF;&#x9762;&#x8BD5;&#x5B98;&#x786E;&#x8BA4;&#xFF0C;&#x6709;&#x65F6;&#x5019;&#x9898;&#x76EE;&#x7A0D;&#x5FAE;&#x6A21;&#x7CCA;&#x4E00;&#x70B9;&#xFF0C;&#x53EF;&#x80FD;&#x4F60;&#x7684;&#x7406;&#x89E3;&#x548C;&#x9762;&#x8BD5;&#x5B98;&#x60F3;&#x8981;&#x7684;&#x5C31;&#x5929;&#x5DEE;&#x5730;&#x522B;&#x4E86;&#x3002;</li><li>&#x8FD9;&#x9053;&#x9898;&#x662F;&#x95EE;comment distribution&#xFF0C;&#x5C31;&#x662F;&#x4E00;&#x4E2A;&#x76F8;&#x5BF9;&#x6A21;&#x7CCA;&#x7684;&#x9898;&#x76EE;&#x4E86;&#xFF0C;&#x7528;&#x4E2D;&#x6587;&#x7FFB;&#x8BD1;&#x4E00;&#x4E0B;&#x5C31;&#x662F;&#x8BC4;&#x8BBA;&#x7684;&#x5206;&#x5E03;&#xFF0C;&#x4F46;&#x5176;&#x5B9E;&#x5B83;&#x60F3;&#x95EE;&#x7684;&#x662F;&#x8BC4;&#x8BBA;&#x6570;&#x91CF;&#x7684;&#x5206;&#x5E03;&#xFF0C;&#x6BCF;&#x4E2A;post&#x90FD;&#x4F1A;&#x6709;&#x4E00;&#x4E9B;&#x8BC4;&#x8BBA;&#xFF0C;&#x9898;&#x76EE;&#x5E0C;&#x671B;&#x80FD;&#x591F;&#x628A;&#x6BCF;&#x4E2A;post&#x7684;&#x8BC4;&#x8BBA;&#x6570;&#x91CF;&#x7EDF;&#x8BA1;&#x4E00;&#x4E0B;&#xFF0C;&#x7136;&#x540E;&#x770B;&#x4E00;&#x4E0B;&#x6BCF;&#x4E2A;&#x8BC4;&#x8BBA;&#x6570;&#x91CF;&#x7684;post&#x90FD;&#x6709;&#x591A;&#x5C11;&#x4E2A;&#xFF0C;&#x4F8B;&#x5982;0&#x6761;&#x8BC4;&#x8BBA;&#x7684;post&#x6570;&#x91CF;&#x662F;10&#x4E2A;&#xFF0C;1&#x6761;&#x8BC4;&#x8BBA;&#x7684;post&#x6570;&#x91CF;&#x662F;5&#x4E2A;&#x3002;</li></ul><p></p><ul><li><strong>&#x6B63;&#x786E;&#x7684;&#x4E66;&#x5199;SQL</strong>&#x3002;&#x5F53;&#x4F60;&#x6B63;&#x786E;&#x7406;&#x89E3;&#x9898;&#x76EE;&#x4E4B;&#x540E;&#xFF0C;&#x5927;&#x90E8;&#x5206;&#x60C5;&#x51B5;&#x4E0B;&#x4F60;&#x5DF2;&#x7ECF;&#x77E5;&#x9053;&#x8FD9;&#x4E2A;SQL&#x8BE5;&#x5982;&#x4F55;&#x5199;&#x4E86;&#xFF0C;&#x53EF;&#x4EE5;&#x5148;&#x628A;&#x6846;&#x67B6;&#x642D;&#x51FA;&#x6765;&#xFF0C;&#x518D;&#x4E00;&#x70B9;&#x70B9;&#x7684;&#x53BB;&#x586B;&#x5145;&#xFF0C;&#x8BF7;&#x8BB0;&#x4F4F;&#x4E00;&#x5B9A;&#x4E0D;&#x8981;&#x51FA;&#x73B0;&#x4F4E;&#x7EA7;&#x9519;&#x8BEF;&#xFF0C;&#x4E00;&#x4E2A;&#x662F;&#x56E0;&#x4E3A;&#x5F88;&#x5BB9;&#x6613;&#x88AB;&#x53D1;&#x73B0;&#xFF0C;&#x53E6;&#x5916;&#x4E5F;&#x5F88;&#x81F4;&#x547D;&#x3002;</li><li>&#x6211;&#x4EEC;&#x8FD9;&#x9053;&#x9898;&#x5DF2;&#x7ECF;&#x77E5;&#x9053;&#x9700;&#x8981;&#x4E00;&#x4E2A;subquery&#x5148;group by&#x548C;count()&#x6765;&#x5F97;&#x5230;&#x6BCF;&#x4E00;&#x4E2A;post&#x7684;comment&#x7684;&#x6570;&#x91CF;&#xFF0C;&#x4E4B;&#x540E;&#x518D;group by&#x548C;count()&#x4E0A;&#x9762;&#x5F97;&#x5230;&#x7684;&#x6570;&#x91CF;&#x5C31;&#x5F97;&#x5230;&#x4E86;comment distribution&#x3002;</li></ul><!--kg-card-begin: html--><p align="left">
 <img alt="&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x773C;&#x4E2D;&#x7684;SQL&#x9762;&#x8BD5;" src="https://blog.acecodeinterview.com/content/images/2021/09/Screen-Shot-2021-09-17-at-01.04.38.png" style="width: 500px; height:200px">
</p><!--kg-card-end: html--><ul><li><strong>Follow-up questions</strong>&#x3002;&#x73B0;&#x5728;&#x8FD9;&#x4E2A;&#x9898;&#x76EE;&#x8FD8;&#x662F;&#x76F8;&#x5BF9;&#x7B80;&#x5316;&#x7684;&#xFF0C;&#x6709;&#x7684;&#x65F6;&#x5019;&#x9762;&#x8BD5;&#x5B98;&#x4F1A;&#x9488;&#x5BF9;&#x8FD9;&#x4E2A;&#x9898;&#x76EE;&#x8FDB;&#x884C;&#x4E00;&#x4E9B;follow-up&#xFF0C;&#x6709;&#x53EF;&#x80FD;&#x662F;SQL&#x7684;&#x5EF6;&#x5C55;&#xFF0C;&#x4E5F;&#x6709;&#x53EF;&#x80FD;&#x662F;&#x9488;&#x5BF9;&#x522B;&#x7684;&#x77E5;&#x8BC6;&#x70B9;&#x7684;&#x8003;&#x5BDF;&#x3002;&#x4F8B;&#x5982;&#xFF1A;content type&#x62D3;&#x5C55;&#xFF0C;&#x589E;&#x52A0;like, etc; &#x9898;&#x76EE;&#x4E0A;&#x9762;&#x52A0;&#x4E00;&#x4E9B;&#x53D8;&#x5316;&#xFF0C;&#x5982;comment distribution per day; comment distribution&#x4F1A;&#x662F;&#x4E00;&#x4E2A;&#x4EC0;&#x4E48;distribution(&#x7EDF;&#x8BA1;&#x76F8;&#x5173;)&#xFF0C;&#x4EE5;&#x53CA;&#x4E3A;&#x4EC0;&#x4E48;&#x3002;<br></li></ul><h2 id="2-sql-">2. SQL&#x9762;&#x8BD5;&#x548C;&#x5B66;&#x4E60;&#x7684;&#x5E38;&#x89C1;&#x95EE;&#x9898;</h2><p></p><blockquote><em><strong>Q1: &#x4EC0;&#x4E48;&#x6837;&#x7684;&#x804C;&#x4F4D;&#x4F1A;&#x5728;&#x9762;&#x8BD5;&#x4E2D;&#x9047;&#x5230;SQL&#x9898;&#x76EE;&#xFF1F;</strong></em></blockquote><ul><li>Short answer: <strong>&#x51E0;&#x4E4E;&#x6240;&#x6709;&#x9762;&#x5411;&#x6570;&#x636E;&#x7684;&#x804C;&#x4F4D;</strong>&#x3002;</li><li>Long answer: &#x9762;&#x5411;&#x6570;&#x636E;&#x7684;&#x5C97;&#x4F4D;&#x5927;&#x81F4;&#x6709;&#x4EE5;&#x4E0B;&#x51E0;&#x4E2A;&#xFF1A;business analyst, data analyst, data scientist, data engineer, machine learning engineer&#x3002;machine learning engineer&#x4F1A;&#x8003;&#x5230;SQL&#x7684;&#x6982;&#x7387;&#x6BD4;&#x8F83;&#x4F4E;&#xFF0C;&#x4F46;&#x5176;&#x4ED6;&#x7684;&#x5C97;&#x4F4D;&#x90FD;&#x5F88;&#x6709;&#x53EF;&#x80FD;&#x4F1A;&#x8003;&#x5BDF;SQL&#xFF0C;&#x4E0D;&#x540C;&#x7684;&#x5C97;&#x4F4D;&#x5BF9;&#x4E8E;SQL&#x638C;&#x63E1;&#x7A0B;&#x5EA6;&#x7684;&#x8981;&#x6C42;&#x4E5F;&#x4F1A;&#x6709;&#x6240;&#x4E0D;&#x540C;&#xFF0C;&#x751A;&#x81F3;&#x6D89;&#x53CA;&#x7684;&#x65B9;&#x9762;&#x4E5F;&#x4F1A;&#x6709;&#x4E00;&#x4E9B;&#x5DEE;&#x5F02;&#xFF0C;&#x5177;&#x4F53;&#x60C5;&#x51B5;&#x9700;&#x8981;&#x6839;&#x636E;&#x7279;&#x5B9A;&#x516C;&#x53F8;&#x548C;&#x5C97;&#x4F4D;&#x7684;job description&#x518D;&#x53BB;&#x8FDB;&#x4E00;&#x6B65;&#x7684;&#x5206;&#x6790;&#x3002;&#x4F8B;&#x5982;data analyst&#x7684;SQL&#x9762;&#x8BD5;&#x53EF;&#x80FD;&#x9700;&#x8981;&#x4F60;&#x5199;&#x51FA;&#x4E00;&#x4E9B;SQL query&#x5C31;&#x597D;&#x4E86;&#xFF0C;&#x4F46;&#x662F;data engineer&#x53EF;&#x80FD;&#x9700;&#x8981;&#x4F60;&#x5BF9;&#x6570;&#x636E;&#x5E93;&#xFF0C;table schema design&#x4E5F;&#x6709;&#x6240;&#x6D89;&#x8DB3;&#x3002;<br></li></ul><blockquote><strong><em>Q2: SQL&#x7684;&#x9762;&#x8BD5;&#x8003;&#x5BDF;&#x7684;&#x5185;&#x5BB9;&#x6709;&#x54EA;&#x4E9B;&#xFF1F;</em></strong></blockquote><p>SQL&#x7684;&#x9762;&#x8BD5;&#x5185;&#x5BB9;&#x5927;&#x81F4;&#x5206;&#x4E3A;&#x4EE5;&#x4E0B;&#x51E0;&#x79CD;&#xFF1A;</p><ul><li>&#x6570;&#x636E;&#x5E93;&#x548C;SQL&#x7684;<strong>&#x57FA;&#x7840;&#x77E5;&#x8BC6;&#x7684;&#x95EE;&#x7B54;</strong>&#xFF0C;&#x4F8B;&#x5982;&#x4EC0;&#x4E48;&#x662F;left join&#xFF0C;&#x4EC0;&#x4E48;&#x662F;&#x5173;&#x7CFB;&#x578B;&#x6570;&#x636E;&#x5E93;&#x3002;</li><li>&#x63D0;&#x4F9B;&#x6570;&#x636E;&#x4FE1;&#x606F;(table)&#xFF0C; &#x7ED9;&#x4F60;&#x4E00;&#x4E9B;&#x95EE;&#x9898;&#xFF0C;&#x8BA9;&#x4F60;<strong>&#x5199;&#x51FA;&#x4E00;&#x4E9B;SQL query</strong>&#xFF0C;&#x57FA;&#x672C;&#x4EE5;select query&#x4E3A;&#x4E3B;&#xFF0C;&#x5F88;&#x5C11;&#x4F1A;&#x53BB;&#x8003;&#x5BDF;&#x4F60;create table&#x8FD9;&#x4E9B;&#x3002;&#x8FD9;&#x79CD;&#x8003;&#x5BDF;&#x662F;&#x6700;&#x4E3A;&#x5E38;&#x89C1;&#x7684;&#x3002;</li><li>&#x6700;&#x540E;&#x4E00;&#x79CD;&#x6211;&#x79F0;&#x4E3A;<strong>SQL case study</strong>&#xFF0C;&#x57FA;&#x4E8E;&#x4E00;&#x4E2A;case&#x548C;&#x9762;&#x8BD5;&#x5B98;&#x4EA4;&#x6D41;&#xFF0C;&#x53EF;&#x80FD;&#x4F1A;&#x7ECF;&#x5386;&#x6570;&#x636E;&#x90E8;&#x5206;&#x7684;&#x5934;&#x8111;&#x98CE;&#x66B4;&#xFF0C;table schema design&#xFF0C;&#x4EE5;&#x53CA;&#x6839;&#x636E;&#x9762;&#x8BD5;&#x5B98;&#x7684;&#x4E00;&#x4E9B;&#x8981;&#x6C42;&#x5199;&#x51FA;&#x4E00;&#x4E9B;query&#x3002;&#x8FD9;&#x7C7B;&#x8003;&#x5BDF;&#x5728;&#x5F88;&#x591A;&#x5927;&#x516C;&#x53F8;&#x6E10;&#x6E10;&#x63A8;&#x5E7F;&#x5F00;&#x6765;&#x3002;<br></li></ul><blockquote><strong><em>Q3: &#x9762;&#x8BD5;&#x4E2D;&#x7684;SQL&#x548C;&#x5DE5;&#x4F5C;&#x7684;SQL&#x6709;&#x4EC0;&#x4E48;&#x533A;&#x522B;&#xFF1F;</em></strong></blockquote><ul><li>&#x9762;&#x8BD5;&#x4E2D;&#x7684;&#x5177;&#x4F53;&#x573A;&#x666F;&#x7684;context&#x4E0D;&#x662F;&#x5F88;&#x5F3A;&#xFF0C;&#x66F4;&#x591A;&#x7684;&#x662F;&#x8003;&#x5BDF;&#x4F60;&#x7684;&#x57FA;&#x672C;&#x529F;&#xFF0C;&#x6216;&#x8005;&#x8BF4;&#x505A;&#x9898;&#x80FD;&#x529B;&#xFF0C;&#x4E0D;&#x4F1A;&#x6709;&#x7279;&#x522B;&#x590D;&#x6742;&#x7684;query&#x8BA9;&#x4F60;&#x53BB;&#x5199;&#x3002;</li><li>&#x5DE5;&#x4F5C;&#x4E2D;&#x4F60;&#x53EF;&#x80FD;&#x9762;&#x5BF9;&#x66F4;&#x4E3A;&#x5E9E;&#x5927;&#x7684;&#x6570;&#x636E;&#xFF0C;&#x66F4;&#x590D;&#x6742;&#x7684;schema&#xFF0C;&#x4F8B;&#x5982;10+&#x4E2A;table&#x7684;join&#xFF0C;&#x548C;&#x66F4;&#x4E3A;&#x4E25;&#x683C;&#x7684;&#x8981;&#x6C42;&#xFF0C;&#x4F8B;&#x5982;performance&#x7684;&#x8981;&#x6C42;&#xFF0C;&#x4F60;&#x7684;query&#x5FC5;&#x987B;&#x8981;&#x5728;&#x591A;&#x5C11;&#x79D2;&#x4E4B;&#x5185;&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x3002;</li><li>&#x603B;&#x7ED3;&#x4E00;&#x4E0B;&#xFF0C;&#x9762;&#x8BD5;&#x4E2D;&#x7684;SQL&#x66F4;&#x4FA7;&#x91CD;&#x4F60;&#x80FD;&#x4E0D;&#x80FD;&#x628A;&#x4E00;&#x4E2A;query&#x7B80;&#x6D01;&#xFF0C;&#x5FEB;&#x901F;&#xFF0C;bug-free&#x7684;&#x5199;&#x51FA;&#x6765;&#xFF0C;&#x800C;&#x5DE5;&#x4F5C;&#x4E2D;&#x66F4;&#x591A;&#x7684;&#x662F;&#x9700;&#x8981;&#x4F60;&#x5199;&#x51FA;&#x4E00;&#x4E2A;&#x80FD;&#x89E3;&#x51B3;&#x95EE;&#x9898;&#x7684;query&#xFF0C;query&#x8981;&#x80FD;&#x5FEB;&#x901F;&#x6B63;&#x786E;&#x7684;&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#xFF0C;&#x540C;&#x65F6;&#x9700;&#x8981;&#x4E00;&#x5B9A;&#x7684;readability&#x3002;<br></li></ul><blockquote><strong><em>Q4: &#x5982;&#x4F55;&#x5F00;&#x59CB;&#x5B66;&#x4E60;SQL&#xFF1F;</em></strong></blockquote><ul><li>&#x9996;&#x5148;&#xFF0C;&#x4F60;&#x9700;&#x8981;<strong>&#x660E;&#x786E;&#x4F60;&#x5B66;&#x4E60;SQL&#x7684;&#x76EE;&#x7684;</strong>&#xFF0C;&#x4F60;&#x662F;&#x5E0C;&#x671B;&#x5728;&#x5DE5;&#x4F5C;&#x4E2D;&#x6709;&#x66F4;&#x5927;&#x7684;impact&#xFF0C;&#x8FD8;&#x662F;&#x4F60;&#x4E4B;&#x540E;&#x7684;&#x9762;&#x8BD5;&#x4F1A;&#x8003;&#x5BDF;SQL&#xFF0C;&#x8FD9;&#x6837;&#x4F60;&#x624D;&#x80FD;&#x66F4;&#x6709;&#x6548;&#x7387;&#x7684;&#x53BB;&#x5B66;&#x4E60;&#x3002;</li><li>&#x5982;&#x679C;&#x5DE5;&#x4F5C;&#x4E2D;&#x80FD;&#x591F;&#x63A5;&#x89E6;&#x5230;&#x4E00;&#x4E9B;&#x9762;&#x5411;&#x6570;&#x636E;&#x7684;&#x5DE5;&#x5177;&#xFF0C;&#x5982;Spark, Snowflake&#xFF0C;&#x90A3;&#x6700;&#x597D;&#x7684;&#x65B9;&#x5F0F;&#x5C31;&#x662F;learn by doing&#xFF0C;&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x53BB;&#x770B;&#x522B;&#x4EBA;&#x600E;&#x4E48;&#x4F7F;&#x7528;&#x8FD9;&#x4E9B;&#x5DE5;&#x5177;&#xFF0C;&#x53BB;&#x8BFB;&#x522B;&#x4EBA;&#x7684;&#x4EE3;&#x7801;&#x3002;&#x5176;&#x5B9E;&#x8FD9;&#x5C31;&#x8DDF;&#x5B66;&#x4E00;&#x95E8;&#x5916;&#x8BED;&#x4E00;&#x6837;&#xFF0C;&#x5982;&#x679C;&#x628A;&#x4F60;&#x653E;&#x5230;&#x90A3;&#x4E2A;&#x73AF;&#x5883;&#x4E2D;&#xFF0C;&#x4F60;&#x81EA;&#x7136;&#x4F1A;&#x6210;&#x957F;&#x7684;&#x66F4;&#x5FEB;&#x3002;&#x5F53;&#x7136;&#x4F60;&#x4E5F;&#x8981;&#x53BB;&#x5B66;&#x4E60;&#x57FA;&#x672C;&#x7684;&#x77E5;&#x8BC6;&#xFF0C;&#x4E0E;&#x6B64;&#x540C;&#x65F6;&#xFF0C;&#x5177;&#x4F53;&#x751F;&#x4EA7;&#x73AF;&#x5883;&#x4E2D;&#x7684;&#x6848;&#x4F8B;&#x80FD;&#x5E2E;&#x52A9;&#x4F60;&#x66F4;&#x597D;&#x7684;&#x53BB;&#x7406;&#x89E3;&#x548C;&#x5B66;&#x4E60;&#x3002;</li><li>&#x5982;&#x679C;&#x6CA1;&#x6709;&#x8FD9;&#x79CD;&#x73AF;&#x5883;&#xFF0C;&#x90A3;&#x6211;&#x4EEC;&#x5C31;&#x9700;&#x8981;&#x4E00;&#x4E9B;&#x8BFE;&#x5802;&#x5F0F;&#x7684;&#x5B66;&#x4E60;&#xFF0C;&#x4F8B;&#x5982;&#x4E0A;&#x8BFE;&#x770B;&#x89C6;&#x9891;&#x8BFB;&#x4E66;&#xFF0C;&#x4ECE;SQL&#x7684;&#x57FA;&#x672C;&#x8BED;&#x6CD5;&#x5230;&#x4E00;&#x4E9B;&#x9AD8;&#x7EA7;&#x7528;&#x6CD5;&#xFF0C;&#x4E00;&#x4E2A;&#x4E00;&#x4E2A;&#x77E5;&#x8BC6;&#x70B9;&#x7684;&#x6765;&#x5B66;&#x4E60;&#x3002;&#x8F85;&#x52A9;&#x4EE5;&#x4E00;&#x4E9B;&#x7EC3;&#x4E60;&#xFF0C;&#x4F8B;&#x5982;Leetcode, hackerrank&#x4E0A;&#x9762;&#x7684;&#x9898;&#x76EE;&#x3002;</li><li>SQL&#x7684;&#x5165;&#x95E8;&#x4E0D;&#x662F;&#x5F88;&#x96BE;&#xFF0C;&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x8BF4;&#x662F;&#x76F8;&#x5BF9;&#x7B80;&#x5355;&#xFF0C;&#x8FD9;&#x4E5F;&#x8BA9;SQL&#x6210;&#x4E3A;&#x4E86;&#x4E00;&#x4E2A;&#x975E;&#x5E38;popular&#x7684;&#x8BED;&#x8A00;&#x3002;&#x4F46;&#x662F;&#x60F3;&#x8981;&#x6DF1;&#x5165;&#x5B66;&#x4E60;SQL&#x4E5F;&#x4E0D;&#x662F;&#x4E00;&#x4EF6;&#x5BB9;&#x6613;&#x7684;&#x4E8B;&#x60C5;&#xFF0C;&#x4F60;&#x9700;&#x8981;&#x5B66;&#x4E60;&#x66F4;&#x591A;&#x8BA1;&#x7B97;&#x673A;&#x77E5;&#x8BC6;&#xFF0C;&#x4E86;&#x89E3;&#x66F4;&#x591A;&#x7684;&#x7B97;&#x6CD5;&#x7EC6;&#x8282;&#xFF0C;&#x5BF9;&#x516C;&#x53F8;&#x7684;&#x5546;&#x52A1;&#x903B;&#x8F91;&#x4E5F;&#x8981;&#x6709;&#x6E05;&#x6670;&#x7684;&#x8BA4;&#x8BC6;&#x3002;<br></li></ul><blockquote><strong><em>Q5: &#x5E02;&#x9762;&#x4E0A;&#x9762;&#x5F88;&#x591A;SQL&#xFF0C;&#x5E94;&#x8BE5;&#x9009;&#x54EA;&#x4E2A;&#x5F00;&#x59CB;&#x5B66;&#xFF1F;</em></strong></blockquote><ul><li>&#x9996;&#x5148;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x77E5;&#x9053;&#x516C;&#x53F8;&#x5728;&#x7528;&#x7684;&#x6570;&#x636E;&#x5E93;&#xFF0C;&#x76F4;&#x63A5;&#x5B66;&#x90A3;&#x4E2A;&#x5C31;&#x597D;&#x4E86;&#x3002;</li><li>&#x5176;&#x6B21;&#xFF0C;&#x79D1;&#x6280;&#x516C;&#x53F8;&#x6700;&#x5E38;&#x4F7F;&#x7528;&#x7684;&#x662F;MySQL&#x548C;PostgreSQL&#xFF0C;&#x4F46;&#x662F;MySQL&#x7ED9;&#x4F60;&#x63D0;&#x4F9B;&#x4E86;&#x5F88;&#x591A;&#x8BED;&#x6CD5;&#x7CD6;&#xFF0C;&#x6709;&#x7684;&#x65F6;&#x5019;&#x53EF;&#x80FD;&#x4F1A;&#x8FDD;&#x80CC;&#x4E00;&#x4E9B;&#x4F60;&#x5B66;&#x4E60;&#x7684;&#x57FA;&#x672C;&#x77E5;&#x8BC6;&#xFF0C;&#x6709;&#x7684;&#x65F6;&#x5019;&#x4F1A;&#x6BD4;&#x8F83;&#x56F0;&#x60D1;&#x3002;&#x5982;&#x679C;&#x662F;&#x7B2C;&#x4E00;&#x95E8;&#x8BED;&#x8A00;&#x5165;&#x95E8;&#x7684;&#x8BDD;&#xFF0C;&#x6211;&#x6BD4;&#x8F83;&#x63A8;&#x8350;PostgreSQL&#x3002;&#x4F46;&#x662F;&#x5982;&#x679C;&#x4F60;&#x60F3;&#x53BB;&#x9762;&#x8BD5;&#x4E00;&#x4E9B;&#x4F20;&#x7EDF;&#x884C;&#x4E1A;&#x7684;&#x516C;&#x53F8;&#xFF0C;&#x5F88;&#x6709;&#x53EF;&#x80FD;&#x4ED6;&#x4EEC;&#x6709;&#x4E00;&#x5957;Microsoft stack&#xFF0C;&#x6240;&#x4EE5;SQL Server&#x5E94;&#x8BE5;&#x662F;&#x4F60;&#x7684;&#x9996;&#x9009;&#x3002;</li><li>&#x6700;&#x540E;&#xFF0C;&#x5176;&#x5B9E;&#x7CBE;&#x901A;&#x4E00;&#x4E2A;SQL&#x5C31;&#x597D;&#xFF0C;&#x57FA;&#x672C;&#x8BED;&#x6CD5;&#x90FD;&#x5DEE;&#x4E0D;&#x591A;&#xFF0C;&#x53EF;&#x80FD;&#x5728;&#x5904;&#x7406;timestamp&#x548C;null value&#x7684;&#x65F6;&#x5019;&#x4F1A;&#x6709;&#x4E00;&#x4E9B;&#x533A;&#x522B;&#xFF0C;&#x9664;&#x6B64;&#x4E4B;&#x5916;&#xFF0C;&#x66F4;&#x591A;&#x7684;&#x533A;&#x522B;&#x57FA;&#x672C;&#x4E0A;&#x662F;&#x611F;&#x53D7;&#x4E0D;&#x5230;&#x7684;&#x3002;&#x800C;&#x4E14;&#x4F60;&#x7CBE;&#x901A;&#x4E86;&#x4E00;&#x95E8;&#x4EE5;&#x540E;&#xFF0C;&#x5373;&#x4F7F;&#x6709;&#x533A;&#x522B;&#xFF0C;&#x4F60;&#x4E5F;&#x4F1A;&#x5F88;&#x5FEB;&#x7684;catch up&#xFF0C;&#x90FD;&#x662F;&#x6B8A;&#x9014;&#x540C;&#x5F52;&#x7684;&#x3002;</li></ul><blockquote><strong><em>Q6: &#x9700;&#x8981;&#x638C;&#x63E1;&#x54EA;&#x4E9B;SQL&#x77E5;&#x8BC6;?</em></strong></blockquote><p><strong>[&#x57FA;&#x7840;]</strong>&#xFF1A;</p><ul><li><strong>Basic syntax</strong>: <em>SELECT, FROM, WHERE, HAVING, GROUP BY, ORDER BY</em>, etc.</li><li><strong>Aggregation</strong>: <em>SUM(), MAX(), MIN(), AVG()</em>, etc.</li><li><strong>JOIN</strong>: <em>Inner/Left/Right/Outer/Cross</em></li><li><strong>Subquery, CTE</strong></li><li><strong>Query Execution Order</strong></li></ul><p><strong>[&#x8FDB;&#x9636;]</strong>&#xFF1A;</p><ul><li><strong>Window Function</strong></li><li><strong>CASE WHEN</strong></li><li><strong>NULL value</strong></li><li><strong>TIMESTAMP</strong></li></ul><p>&#x4E0A;&#x9762;&#x7684;&#x8FD9;&#x4E9B;&#x5185;&#x5BB9;&#x57FA;&#x672C;&#x4E0A;&#x6DB5;&#x76D6;&#x4E86;&#x9762;&#x8BD5;&#x4E2D;95%&#x7684;&#x77E5;&#x8BC6;&#x70B9;&#xFF0C;&#x5F53;&#x7136;&#x8FD8;&#x6709;&#x5F88;&#x591A;&#x5176;&#x4ED6;&#x5185;&#x5BB9;&#x5728;&#x8FD9;&#x9762;&#x6CA1;&#x6709;&#x63D0;&#x53CA;&#xFF0C;&#x4F8B;&#x5982;query plan&#xFF0C;query optimization&#xFF0C;database schema design&#xFF0C;primary/foreign key, etc.</p><blockquote><strong><em>Q7: &#x5982;&#x4F55;&#x5728;SQL&#x548C;&#x804C;&#x4E1A;&#x4E0A;&#x8FDB;&#x9636;&#xFF1F;</em></strong></blockquote><ul><li>&#x6709;&#x7684;&#x65F6;&#x5019;&#x6211;&#x4EEC;&#x4F1A;&#x542C;&#x5230;&#x8FD9;&#x4E48;&#x4E2A;&#x8BCD;&#xFF0C;&#x53EB;&#x505A;SQL boy&#xFF0C;&#x6709;&#x4E9B;&#x4EBA;&#x4F1A;&#x89E3;&#x8BFB;&#x6210;&#x4E3A;&#x5199;SQL&#x7684;&#x6D41;&#x6C34;&#x7EBF;&#x5DE5;&#x4EBA;&#xFF0C;&#x5199;&#x7740;&#x5199;&#x7740;SQL&#x5C31;&#x53EA;&#x5199;SQL&#x4E86;&#xFF0C;&#x6BCF;&#x5929;&#x5C31;&#x662F;&#x8DD1;&#x8DD1;&#x5199;&#x597D;&#x7684;SQL&#xFF0C;&#x770B;&#x770B;&#x7ED3;&#x679C;&#xFF0C;report&#x4E00;&#x4E0B;&#xFF0C;&#x804C;&#x4E1A;&#x53D1;&#x5C55;&#x770B;&#x4E0D;&#x5230;&#x4EC0;&#x4E48;&#x5E0C;&#x671B;&#xFF0C;&#x8FD9;&#x5176;&#x5B9E;&#x662F;&#x5F88;&#x591A;&#x4ECE;&#x4E1A;&#x8005;&#x7684;&#x62C5;&#x5FE7;&#x548C;&#x56F0;&#x60D1;&#x3002;&#x5728;&#x6211;&#x770B;&#x6765;&#xFF0C;SQL boy&#x4E5F;&#x4E0D;&#x662F;&#x90A3;&#x4E48;&#x597D;&#x5F53;&#x7684;&#xFF0C;&#x6211;&#x4EEC;&#x5F88;&#x591A;&#x65F6;&#x5019;&#x5BF9;&#x4E8E;SQL query&#x7684;&#x8981;&#x6C42;&#x5F88;&#x9AD8;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x5199;&#x7684;query&#x8D28;&#x91CF;&#x4E0D;&#x8FBE;&#x6807;&#xFF0C;&#x5341;&#x5206;&#x5F71;&#x54CD;&#x6574;&#x4E2A;&#x56E2;&#x961F;&#x7684;&#x5DE5;&#x4F5C;&#x8FDB;&#x7A0B;&#xFF0C;&#x6240;&#x4EE5;&#x5982;&#x679C;&#x4F60;&#x89C9;&#x5F97;&#x6CA1;&#x6709;&#x5E0C;&#x671B;&#x4E86;&#xFF0C;&#x53EF;&#x80FD;&#x4E0D;&#x662F;SQL boy&#x7684;&#x95EE;&#x9898;&#xFF0C;&#x66F4;&#x591A;&#x7684;&#x662F;&#x4F60;&#x9700;&#x8981;&#x6362;&#x516C;&#x53F8;&#x6216;&#x8005;team&#x4E86;&#x3002;</li><li>&#x5173;&#x4E8E;&#x804C;&#x4E1A;&#x7684;&#x8FDB;&#x9636;&#xFF0C;&#x9664;&#x4E86;&#x80FD;&#x628A;SQL&#x5199;&#x597D;&#x4EE5;&#x5916;&#xFF0C;&#x4F60;&#x66F4;&#x9700;&#x8981;&#x8003;&#x8651;&#x7684;&#x662F;&#x4E2A;&#x4EBA;&#x7684;&#x804C;&#x4E1A;&#x89C4;&#x5212;&#xFF0C;&#x4F60;&#x5E0C;&#x671B;&#x672A;&#x6765;&#x5411;&#x4EC0;&#x4E48;&#x65B9;&#x5411;&#x53D1;&#x5C55;&#xFF0C;&#x662F;&#x66F4;&#x504F;product&#x548C;bussiness&#xFF0C;&#x8FD8;&#x662F;&#x53BB;&#x505A;data scientist&#xFF0C;&#x8FD8;&#x662F;&#x8BF4;&#x5728;&#x6570;&#x636E;&#x548C;SQL&#x5904;&#x7406;&#x8FD9;&#x90E8;&#x5206;&#x66F4;&#x8FDB;&#x4E00;&#x6B65;&#x53BB;&#x505A;data engineer&#xFF0C;&#x8FD9;&#x4E2A;&#x53EF;&#x80FD;&#x662F;&#x66F4;&#x91CD;&#x8981;&#x7684;&#x4E8B;&#x60C5;&#xFF0C;&#x56E0;&#x4E3A;&#x4F60;&#x9664;&#x4E86;SQL&#x8FD8;&#x9700;&#x8981;&#x5B66;&#x4E60;&#x66F4;&#x591A;&#x5176;&#x4ED6;&#x7684;&#x6280;&#x80FD;&#x624D;&#x80FD;&#x8BA9;&#x4F60;&#x8D70;&#x7684;&#x66F4;&#x8FDC;&#x3002;</li></ul>]]></content:encoded></item><item><title><![CDATA[我是如何在职跳槽斩获4家大厂Offer]]></title><description><![CDATA[本次免费讲座，我们将分享爱思系统设计课第三期优秀学员 Adrian 的成功求职经验。Adrian 同学在过去的几个月里在职跳槽陆续斩获 FB, Uber, Linkedin, Doordash 四家大厂的Senior Offer。本次讲座会回顾他从面试前期准备到多家公司临场面试的经历以及分享他独到的学习心得和方法论。]]></description><link>https://blog.acecodeinterview.com/webinar-adrian/</link><guid isPermaLink="false">61252f9dc4c6bd056d1056a8</guid><category><![CDATA[系统设计文本课]]></category><category><![CDATA[免费资源]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Sun, 01 Aug 2021 18:36:00 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2021/08/WechatIMG1181-1.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.acecodeinterview.com/content/images/2021/08/WechatIMG1181-1.jpeg" alt="&#x6211;&#x662F;&#x5982;&#x4F55;&#x5728;&#x804C;&#x8DF3;&#x69FD;&#x65A9;&#x83B7;4&#x5BB6;&#x5927;&#x5382;Offer"><p>&#x672C;&#x6B21;&#x514D;&#x8D39;&#x8BB2;&#x5EA7;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x5206;&#x4EAB;&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x8BFE;&#x7B2C;&#x4E09;&#x671F;&#x4F18;&#x79C0;&#x5B66;&#x5458; Adrian &#x7684;&#x6210;&#x529F;&#x6C42;&#x804C;&#x7ECF;&#x9A8C;&#x3002;Adrian &#x540C;&#x5B66;&#x5728;&#x8FC7;&#x53BB;&#x7684;&#x51E0;&#x4E2A;&#x6708;&#x91CC;&#x5728;&#x804C;&#x8DF3;&#x69FD;&#x9646;&#x7EED;&#x65A9;&#x83B7; FB, Uber, Linkedin, Doordash &#x56DB;&#x5BB6;&#x5927;&#x5382;&#x7684;Senior Offer&#x3002;&#x672C;&#x6B21;&#x8BB2;&#x5EA7;&#x4F1A;&#x56DE;&#x987E;&#x4ED6;&#x4ECE;&#x9762;&#x8BD5;&#x524D;&#x671F;&#x51C6;&#x5907;&#x5230;&#x591A;&#x5BB6;&#x516C;&#x53F8;&#x4E34;&#x573A;&#x9762;&#x8BD5;&#x7684;&#x7ECF;&#x5386;&#x4EE5;&#x53CA;&#x5206;&#x4EAB;&#x4ED6;&#x72EC;&#x5230;&#x7684;&#x5B66;&#x4E60;&#x5FC3;&#x5F97;&#x548C;&#x65B9;&#x6CD5;&#x8BBA;&#x3002;</p><figure class="kg-card kg-embed-card"><iframe width="267" height="200" src="https://www.youtube.com/embed/tE5i6rVSwlA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure>]]></content:encoded></item><item><title><![CDATA[Instagram 系统设计题解]]></title><description><![CDATA[设计 Instagram 是一道高频题，它涵盖了信息流类设计题的主要考点。看完这篇题解，相信你对设计 Facebook, Twitter 这类的信息流设计都能游刃有余。]]></description><link>https://blog.acecodeinterview.com/instagram/</link><guid isPermaLink="false">5ecd820454379413cb923d6c</guid><category><![CDATA[系统设计文本课]]></category><category><![CDATA[免费资源]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Tue, 09 Feb 2021 00:05:00 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2020/05/Glyph-Icon-hero.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.acecodeinterview.com/content/images/2020/05/Glyph-Icon-hero.png" alt="Instagram &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#x89E3;"><p>&#x8FD9;&#x662F;&#x4E00;&#x9053;&#x8001;&#x9898;&#x4E86;&#xFF0C;&#x4E5F;&#x662F;&#x4E00;&#x9053;&#x9AD8;&#x9891;&#x9898;&#xFF0C;&#x4ECA;&#x5929;&#x5C31;&#x7528;&#x8FD9;&#x9053;&#x9898;&#x6765;&#x7ED9;<a href="https://blog.acecodeinterview.com/intro/">&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x773C;&#x4E2D;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;</a>&#x4E00;&#x6587;&#x4E2D;&#x7B54;&#x9898;&#x6D41;&#x7A0B;&#x505A;&#x4E00;&#x4E2A;&#x5B9E;&#x4F8B;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.acecodeinterview.com/intro/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x773C;&#x4E2D;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;</div><div class="kg-bookmark-description">&#x5982;&#x679C;&#x4F60;&#x5BF9;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9762;&#x8BD5;&#x8FD8;&#x6709;&#x4E00;&#x77E5;&#x534A;&#x89E3;&#xFF0C;&#x8FD9;&#x7BC7;&#x5DF2;&#x7ECF;&#x5E2E;&#x52A9;&#x8FC7;8000&#x540D;&#x540C;&#x5B66;&#x7684;&#x6559;&#x7A0B;&#x4E00;&#x5B9A;&#x80FD;&#x5E2E;&#x4F60;&#x7B54;&#x7591;&#x89E3;&#x60D1;&#x3002;&#x6211;&#x4EEC;&#x8FD9;&#x5C31;&#x6765;&#x804A;&#x804A;&#x4E3A;&#x4EC0;&#x4E48;&#x8981;&#x8003;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#xFF0C;&#x5177;&#x4F53;&#x8003;&#x4EC0;&#x4E48;&#xFF0C;&#x4EE5;&#x53CA;&#x5982;&#x4F55;&#x4F5C;&#x7B54;&#x3002;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.acecodeinterview.com/favicon.png" alt="Instagram &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#x89E3;"><span class="kg-bookmark-author">&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;</span><span class="kg-bookmark-publisher">&#x7F57;&#x8F91;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.acecodeinterview.com/content/images/2021/04/system-design-whiteboard.png" alt="Instagram &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#x89E3;"></div></a></figure><p>&#x5982;&#x679C;&#x4F60;&#x60F3;&#x8DDF;&#x7F57;&#x8F91;&#x4E00;&#x8D77;&#x66F4;&#x6DF1;&#x5165;&#x5730;&#x5B66;&#x4E60;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#xFF0C;&#x6709;&#x5174;&#x8DA3;&#x7684;&#x540C;&#x5B66;&#x62A5;&#x540D;&#x53C2;&#x52A0;&#x7231;&#x601D;&#x5907;&#x53D7;&#x597D;&#x8BC4;&#x7684;<a href="https://blog.acecodeinterview.com/system-design-class/">&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425;</a>&#x4EE5;&#x53CA;<a href="https://blog.acecodeinterview.com/mock_interview/">&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x670D;&#x52A1;</a>&#xFF0C;&#x7531;&#x4F5C;&#x8005;&#x672C;&#x4EBA;&#x4E3A;&#x540C;&#x5B66;&#x4EEC;&#x6559;&#x5B66;&#xFF0C;&#x529B;&#x6C42;&#x7ED9;&#x5927;&#x5BB6;&#x5E26;&#x6765;&#x6700;&#x6DF1;&#x5165;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9AD8;&#x9891;&#x9898;&#x8BB2;&#x89E3;&#x4EE5;&#x53CA;&#x6700;&#x9488;&#x5BF9;&#x9762;&#x8BD5;&#x5B9E;&#x6218;&#x7684;&#x6280;&#x5DE7;&#x89E3;&#x6790;&#xFF0C;&#x5E2E;&#x52A9;&#x540C;&#x5B66;&#x4EEC;&#x4E3E;&#x4E00;&#x53CD;&#x4E09;&#xFF0C;&#x9AD8;&#x6548;&#x51C6;&#x5907;&#x9762;&#x8BD5;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.acecodeinterview.com/system-design-class/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425;&#x300C;&#x514D;&#x8D39;&#x8BD5;&#x542C;&#x300D;</div><div class="kg-bookmark-description">&#x5168;&#x7F51;&#x552F;&#x4E00;&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x7EA7;&#x6DF1;&#x5EA6;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425;&#x514D;&#x8D39;&#x8BD5;&#x542C;&#x8BFE;&#x5C06;&#x4E8E;&#x7F8E;&#x897F;&#x65F6;&#x95F4; 4/22/2022 6:30pm &#x5F00;&#x8BB2;&#x3002;&#x8BD5;&#x542C;&#x8BFE;&#x8986;&#x76D6;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x8003;&#x5BDF;&#x8981;&#x70B9;&#xFF0C;&#x7B54;&#x9898;&#x6A21;&#x677F;&#x4EE5;&#x53CA; Whatsapp &#x7CBE;&#x89E3;&#x3002;&#x5B8C;&#x6574;&#x8BFE;&#x7A0B;&#x5171;32&#x8BFE;&#x65F6;&#xFF0C;&#x65E8;&#x5728;&#x57F9;&#x517B;&#x624E;&#x5B9E;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x80FD;&#x529B;&#x3002;&#x6DF1;&#x6316;20&#x9053;&#x5E38;&#x89C1;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9762;&#x8BD5;&#x539F;&#x9898;&#xFF0C;&#x63D0;&#x70BC;&#x9762;&#x8BD5;&#x7B54;&#x9898;&#x6280;&#x5DE7;&#xFF0C;&#x8BE6;&#x89E3;&#x8BBE;&#x8BA1;&#x56FE;&#x7EC4;&#x4EF6;&#xFF0C;&#x603B;&#x7ED3;&#x5206;&#x5E03;&#x5F0F;&#x7CFB;&#x7EDF;&#x77E5;&#x8BC6;&#x3002;&#x6709;&#x6548;&#x5E2E;&#x4F60;&#x878D;&#x4F1A;&#x8D2F;&#x901A;&#xFF0C;&#x589E;&#x52A0;&#x4F60;&#x7684;&#x7B54;&#x9898;&#x6DF1;&#x5EA6;&#x5E7F;&#x5EA6;&#xFF0C;&#x8BA9;&#x4F60;&#x80FD;&#x591F;&#x4E3E;&#x4E00;&#x53CD;&#x4E09;&#xFF0C;&#x4ECE;&#x5BB9;&#x9762;&#x5BF9;&#x9762;&#x8BD5;&#x5B98;&#x7684;&#x8FFD;&#x95EE;&#x4EE5;&#x53CA;&#x65B0;&#x9898;&#x3002;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.acecodeinterview.com/favicon.png" alt="Instagram &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#x89E3;"><span class="kg-bookmark-author">&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;</span><span class="kg-bookmark-publisher">&#x7F57;&#x8F91;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.acecodeinterview.com/content/images/2021/04/system-design-bootcamp.png" alt="Instagram &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#x89E3;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.acecodeinterview.com/mock_interview/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x670D;&#x52A1;</div><div class="kg-bookmark-description">&#x7231;&#x601D;&#x521B;&#x59CB;&#x4EBA;&#x7F57;&#x8F91;&#x62E5;&#x6709;&#x8FD1;&#x5341;&#x5E74;&#x7845;&#x8C37;&#x9762;&#x8BD5;&#x5B98;&#x7ECF;&#x9A8C;&#xFF0C;&#x4F5C;&#x4E3A;&#x9762;&#x8BD5;&#x5B98;&#xFF0C;&#x53C2;&#x52A0;&#x771F;&#x5B9E;&#x9762;&#x8BD5;&#x4EE5;&#x53CA;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x5206;&#x522B;&#x8D85;&#x8FC7; 100 &#x573A;&#xFF0C;&#x4E3A;&#x4F60;&#x5E26;&#x6765;&#x6700;&#x771F;&#x5B9E;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x3002;&#x597D;&#x8BC4;&#x7387; 100%&#xFF0C;&#x4E13;&#x4E1A;&#x5E2E;&#x540C;&#x5B66;&#x4EEC;&#x51C6;&#x5907;&#x4E00;&#x7EBF;&#x5927;&#x5382;&#x9762;&#x8BD5;&#xFF0C;&#x5DF2;&#x7ECF;&#x5E2E;&#x52A9;&#x5927;&#x91CF;&#x540C;&#x5B66;&#x62FF;&#x5230;&#x5927;&#x5382; Offer&#x3002;$399&#xFF0C;&#x8D60;&#x9001;&#x672C;&#x7AD9;&#x4E00;&#x5E74;&#x4F1A;&#x5458;&#xFF0C;&#x4EF7;&#x503C; $59.99&#xFF0C;&#x7545;&#x8BFB;&#x72EC;&#x5BB6;&#x9898;&#x89E3;&#xFF0C;&#x7B49;&#x4F60;&#x6765;&#x7EA6;&#xFF01;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.acecodeinterview.com/favicon.png" alt="Instagram &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#x89E3;"><span class="kg-bookmark-author">&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;</span><span class="kg-bookmark-publisher">&#x7F57;&#x8F91;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.acecodeinterview.com/content/images/2021/03/156467204_2844218152511490_8320630619629669081_n.png" alt="Instagram &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#x89E3;"></div></a></figure><p>&#x540C;&#x5B66;&#x4EEC;&#x4E0D;&#x8981;&#x6B7B;&#x8BB0;&#x786C;&#x80CC;&#x7B54;&#x6848;&#xFF0C;&#x800C;&#x662F;&#x4F53;&#x4F1A;&#x4E00;&#x4E0B;&#x4E00;&#x6B65;&#x6B65;&#x7834;&#x9898;&#x7684;&#x8FC7;&#x7A0B;&#x3002;&#x56E0;&#x4E3A;&#x9762;&#x8BD5;&#x6D41;&#x7A0B;&#x4E0D;&#x552F;&#x4E00;&#xFF0C;&#x771F;&#x6B63;&#x78B0;&#x5230;&#x8FD9;&#x9053;&#x9898;&#x7684;&#x65F6;&#x5019;&#x9762;&#x8BD5;&#x5B98;&#x7684; follow-up &#x4F1A;&#x4E0D;&#x4E00;&#x6837;&#xFF0C;&#x5927;&#x5BB6;&#x8FD8;&#x662F;&#x8981;&#x6CE8;&#x91CD;&#x79EF;&#x7D2F;&#xFF0C;&#x672C;&#x6587;&#x8BD5;&#x56FE;&#x5C3D;&#x91CF;&#x89E6;&#x53CA;&#x8DB3;&#x591F;&#x7684;&#x5E7F;&#x5EA6;&#xFF0C;&#x4F46;&#x4E5F;&#x65E0;&#x6CD5;&#x4FDD;&#x8BC1;&#x9762;&#x9762;&#x4FF1;&#x5230;&#x3002;</p><p>&#x5148;&#x6269;&#x5C55;&#x4E00;&#x4E0B;&#x8FD9;&#x9053;&#x9898;&#xFF0C;&#x8FD9;&#x672C;&#x8D28;&#x662F;&#x9053; New Feed &#x9898;&#xFF0C;Design Facebook, Design Instagram, Design Twitter &#x90FD;&#x662F;&#x4E00;&#x56DE;&#x4E8B;&#xFF0C;&#x4E0D;&#x8981;&#x88AB;&#x9A6C;&#x7532;&#x8FF7;&#x60D1;&#x3002;</p><p>&#x60F3;&#x8981;&#x76F4;&#x63A5;&#x770B;&#x7B54;&#x6848;&#x603B;&#x7ED3;&#x7684;&#x53EF;&#x4EE5;&#x8DF3;&#x5230;&#x672C;&#x6587;&#x672B;&#x5C3E;&#xFF0C;&#x6709;&#x5B8C;&#x6574;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x56FE;&#x3002;</p><p>&#x90A3;&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x8FD9;&#x5C31;&#x5F00;&#x59CB;&#x6309;&#x7167;<a href="http://www.acecodeinterview.com/intro">&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x773C;&#x4E2D;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;</a>&#x4E2D;&#x7684;&#x6D41;&#x7A0B;&#x6765;&#x7B54;&#x9898;&#x3002;</p><p></p><h2 id="1-requirement-exploration">1. &#x7406;&#x89E3;&#x9700;&#x6C42; - Requirement Exploration</h2><p></p><p>&#x4E0B;&#x9762;&#x662F;&#x4E00;&#x6BB5;&#x865A;&#x62DF;&#x7684;&#x5BF9;&#x8BDD;&#x3002;</p><blockquote>Interviewer: Today we are going to have a system design interview. Our goal is to design Instagram. You don&#x2019;t have to cover everything. We can drill into specific topic when we get there. Are you familiar with Instagram?</blockquote><blockquote>Interviewee: Ya, I use it all the time. It&#x2019;s photo sharing app. Before we start, can we take a step back? What&#x2019;s the purpose of this &#x201C;Instagram&#x201D; we are building? Are we trying to compete with the real thing?</blockquote><blockquote>Interviewer: Let&#x2019;s imagine that Instagram doesn&#x2019;t exist yet and people don&#x2019;t have a good app to share photos broadly.</blockquote><blockquote>Interviewee: Good to know. What features do we want to cover? I think we have two basic features - upload a photo, get a feed from followers and follow/unfollow . Sounds good?</blockquote><blockquote>Interviewer: Cool, that&#x2019;s a good list. Let&#x2019;s focus on the first two for the sake of time.</blockquote><blockquote>Interviewee: How about latency? I think this would be an important requirement too. I assume we want to have minimal latency - probably less than 0.5 second for loading feed.</blockquote><blockquote>Interviewer: That&#x2019;s a good call out.</blockquote><blockquote>Interviewee: OK. (write on whiteboard). So functional requirement is to support 1) uploading photo and 2) retrieve feed from followers. Non-functional requirement is 1) Feed retrieve latency of less than half a second, 2) highly available. 3) highly reliable (data never lost). Non-requirement is follow &amp; unfollow.</blockquote><blockquote>Interviewer: Makes sense.</blockquote><blockquote>Interviewee: Do we need to consider feed ranking?</blockquote><blockquote>Interviewer: Let&apos;s skip that for simplicity sake. Let&apos;s assume feed is ranked in reverse chronological order. Basically latest photo on top.</blockquote><blockquote>Interviewee: Sounds good.</blockquote><p>&#x4ECE;&#x8FD9;&#x6BB5;&#x5BF9;&#x8BDD;&#x91CC;&#x53D7;&#x8BD5;&#x8005;&#x8FDB;&#x884C;&#x4E86;&#x4EE5;&#x4E0B;&#x4E09;&#x6B65;&#x3002;</p><ul><li>&#x8BE2;&#x95EE;&#x7CFB;&#x7EDF;&#x7684;&#x5546;&#x4E1A;&#x76EE;&#x7684; - &#x5728;&#x6CA1;&#x6709; Instagram &#x7684;&#x4E16;&#x754C;&#x91CC;&#x91CD;&#x65B0;&#x9020;&#x4E00;&#x4E2A;&#xFF0C;&#x8BA9;&#x5927;&#x5BB6;&#x53EF;&#x4EE5;&#x5206;&#x4EAB;&#x7167;&#x7247;&#x3002;</li><li>&#x8BE2;&#x95EE;&#x529F;&#x80FD;&#x6027;&#x9700;&#x6C42; - &#x80FD;&#x4E0A;&#x4F20;&#x80FD;&#x770B; News feed, &#x65B0;&#x7167;&#x7247;&#x6392;&#x524D;&#x9762;&#xFF0C;&#x7528;&#x6237;&#x4F53;&#x9A8C;&#x8981;&#x6D41;&#x7545;&#x3002;</li><li>&#x8BE2;&#x95EE;&#x975E;&#x529F;&#x80FD;&#x6027;&#x9700;&#x6C42; - Feed Latency &lt;0.5 s, Highly available, Highly reliable</li></ul><p></p><h2 id="2-back-of-the-envelope-calculation">2. &#x8D44;&#x6E90;&#x4F30;&#x7B97; - Back of the Envelope Calculation</h2><p></p><p>&#x8BF4;&#x5230;&#x8FD9;&#x91CC;&#xFF0C;&#x6211;&#x4EEC;&#x7C97;&#x6D45;&#x5730;&#x4E86;&#x89E3;&#x4E86;&#x4E00;&#x4E0B;&#x9700;&#x6C42;&#xFF0C;&#x8FD8;&#x6CA1;&#x6709;&#x5BF9; non-functional requirement &#x8FDB;&#x884C;&#x91CF;&#x5316;&#x548C;&#x7EC6;&#x5316;&#xFF0C;&#x8FD9;&#x5C31;&#x9700;&#x8981;&#x6211;&#x4EEC;&#x8FDB;&#x4E00;&#x6B65;&#x505A;&#x8D44;&#x6E90;&#x4F30;&#x7B97;&#x3002;</p><p>&#x7EE7;&#x7EED;&#x6211;&#x4EEC;&#x865A;&#x62DF;&#x7684;&#x5BF9;&#x8BDD;&#x3002;</p><blockquote>Interviewee: I assume there are a lot of people want to use this service. Shall we assume the scale of the service is similar to the real one?</blockquote><blockquote>Interviewer: Yes. Let&#x2019;s assume daily active user is 800M.</blockquote><blockquote>Interviewee: How often do people upload?</blockquote><blockquote>Interviewer: Let&#x2019;s assume people post every 10 days.</blockquote><blockquote>Interviewee: Assuming daily active user makes 10 requests a day and post every 10 days. I think we can calculate the read/write QPS. (Write on whiteboard) I think read QPS is 800 * 1000 * 1000 * 10 / (3600 * 24), roughly 90k QPS and write QPS is 1/100th of that which is 900 QPS. Don&#x2019;t think this will fit on one machine. (Laugh)</blockquote><blockquote>Interviewer: No, it won&#x2019;t.</blockquote><blockquote>Interviewee: We will need a lot of storage here. Majority would be to store photos. Assuming we store all photos for 5 years and a photo is 1M, we will need 800 * 1000 * 1000 * 365 * 5 * 1M / 10 = 146000 TB = 146 PB. It will take one or multiple data centers to hold.</blockquote><blockquote>Interviewer: Sounds good. Let&#x2019;s proceed with a high level design.</blockquote><p>&#x6211;&#x4EEC;&#x8FDB;&#x4E00;&#x6B65;&#x5730;&#x5BF9;&#x975E;&#x529F;&#x80FD;&#x6027;&#x9700;&#x6C42;&#x8FDB;&#x884C;&#x91CF;&#x5316;&#x548C;&#x7EC6;&#x5316;&#x3002;</p><ul><li>Feed Latency &lt;0.5s</li><li>Support 800M DAU</li><li>Highly available (while supporting read 90k QPS, write 900 QPS)</li><li>Highly reliable (while storing ~146PB data)</li></ul><figure class="kg-card kg-image-card"><img src="https://blog.acecodeinterview.com/content/images/2020/05/instagram-requirement.PNG" class="kg-image" alt="Instagram &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#x89E3;" loading="lazy"></figure><p>&#x63D0;&#x793A;&#x4E24;&#x70B9;&#x3002;</p><ul><li>&#x6CE8;&#x610F;&#x6574;&#x4E2A;&#x8FC7;&#x7A0B;&#x4E2D;&#x53D7;&#x8BD5;&#x8005;&#x5728;&#x4E3B;&#x5BFC;&#x8FD9;&#x4E2A;&#x9700;&#x6C42;&#x63A2;&#x7D22;&#x7684;&#x8FC7;&#x7A0B;&#xFF0C;&#x9762;&#x8BD5;&#x5B98;&#x5BF9;&#x53D7;&#x8BD5;&#x8005;&#x7ED9;&#x51FA;&#x7684;&#x9700;&#x6C42;&#x548C;&#x6570;&#x5B57;&#x505A;&#x786E;&#x8BA4;&#x5E76;&#x5C11;&#x91CF;&#x7ED9;&#x51FA;&#x53D7;&#x8BD5;&#x8005;&#x4E0D;&#x77E5;&#x9053;&#x7684;&#x5173;&#x952E;&#x4FE1;&#x606F;&#xFF08;&#x6BD4;&#x5982; DAU 800M)&#x3002;&#x4E0D;&#x8981;&#x8BA9;&#x9762;&#x8BD5;&#x5B98;&#x505A;&#x8FC7;&#x591A;&#x7684;&#x5355;&#x65B9;&#x9762;&#x704C;&#x8F93;&#x4FE1;&#x606F;&#x3002;</li><li>&#x5173;&#x4E8E;&#x6570;&#x5B57;&#x7684;&#x8BA1;&#x7B97;&#x5C11;&#x6570;&#x60C5;&#x51B5;&#x4E0B;&#x56E0;&#x4E3A;&#x65F6;&#x95F4;&#x5173;&#x7CFB;&#xFF0C;&#x9762;&#x8BD5;&#x5B98;&#x4F1A;&#x8BA9;&#x4F60;&#x8DF3;&#x8FC7;&#x3002;&#x5982;&#x679C;&#x7B97;&#x5F97;&#x4E0D;&#x5229;&#x7D22;&#x7684;&#x8BDD;&#xFF0C;&#x5EFA;&#x8BAE;&#x8DDF;&#x9762;&#x8BD5;&#x5B98;&#x786E;&#x8BA4;&#x4E00;&#x4E0B;&#x3002;&#x76F8;&#x4FE1;&#x8FD9;&#x4E2A;&#x5C0F;&#x5B66;&#x6570;&#x5B66;&#x5BF9;&#x5927;&#x5BB6;&#x90FD;&#x4E0D;&#x96BE;&#xFF0C;&#x6211;&#x7684;&#x5C0F;&#x6280;&#x5DE7;&#x662F;365*24&#x5C31;&#x7B97;&#x4F5C;10000&#x5C31;&#x597D;&#xFF0C;&#x6570;&#x91CF;&#x7EA7;&#x5BF9;&#x5C31;&#x884C;&#x3002;</li></ul><p></p><h2 id="3-high-level-diagram">3. High-level Diagram</h2><p></p><p>&#x4E86;&#x89E3;&#x9700;&#x6C42;&#x4E4B;&#x540E;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5F00;&#x59CB;&#x753B;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x56FE;&#x6765;&#x8BF4;&#x660E;&#x6211;&#x4EEC;&#x7684;&#x6838;&#x5FC3;&#x670D;&#x52A1;&#x662F;&#x5982;&#x4F55;&#x6784;&#x5EFA;&#x7684;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://blog.acecodeinterview.com/content/images/2020/05/instagram-diagram.PNG" class="kg-image" alt="Instagram &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#x89E3;" loading="lazy"></figure><p>&#x5728;&#x4E0A;&#x56FE;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5E76;&#x6CA1;&#x6709;&#x8FC7;&#x591A;&#x8003;&#x8651; Scalability&#xFF0C;&#x800C;&#x662F;&#x63D0;&#x51FA;&#x4E00;&#x4E2A;&#x5C0F;&#x6D41;&#x91CF;&#x4E0B;&#x53EF;&#x884C;&#x7684;&#x65B9;&#x6848;&#x3002;&#x5728;&#x753B;&#x56FE;&#x8FC7;&#x7A0B;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x8003;&#x8651;&#x7684;&#x6838;&#x5FC3;&#x95EE;&#x9898;&#x662F; Push vs Pull. &#x4E0A;&#x56FE;&#x4E2D;&#x63D0;&#x51FA;&#x7684;&#x662F; Push &#x7684;&#x65B9;&#x6848;&#x3002;&#x6211;&#x4EEC;&#x4E00;&#x8FB9;&#x753B;&#x56FE;&#xFF0C;&#x4E00;&#x8FB9;&#x5C31;&#x53EF;&#x4EE5;&#x8DDF;&#x9762;&#x8BD5;&#x5B98;&#x63D0;&#x51FA;&#x8FD9;&#x4E2A; Trade-off. &#x6211;&#x4EEC;&#x63D0;&#x51FA;&#x6211;&#x4EEC;&#x610F;&#x8BC6;&#x5230;&#x8FD9;&#x662F;&#x4E00;&#x4E2A; Read-heavy application.</p><ul><li>Push &#x597D;&#x5904;&#x662F; Latency &#x4F4E;&#xFF0C;&#x7B26;&#x5408;&#x4E4B;&#x524D;&#x5B9A;&#x4E49;&#x7684; Latency &lt; 0.5s &#x7684;&#x8981;&#x6C42;&#x3002;</li><li>Push &#x574F;&#x5904;&#x662F; Fanout &#x8FC7;&#x7A0B;&#x4E2D;&#x8017;&#x65F6;&#x66F4;&#x957F;&#xFF08;&#x56E0;&#x4E3A;&#x4E00;&#x4E2A;&#x4EBA;&#x53EF;&#x4EE5;&#x88AB;&#x5F88;&#x591A;&#x4EBA; follow&#xFF0C;&#x6BD4;&#x5982;celebrity)&#xFF0C;&#x80FD;&#x4FDD;&#x8BC1;&#x6570;&#x636E;&#x7684; eventual consistency&#xFF0C;&#x4F46;&#x4E0D;&#x80FD;&#x4FDD;&#x8BC1;&#x6700;&#x65B0;&#x7167;&#x7247;&#x53CA;&#x65F6;&#x8FDB;Feed. &#x5F53;&#x7136;&#x8FD9;&#x91CC;&#x53EF;&#x4EE5;&#x63D0;&#x4E13;&#x95E8;&#x4E3A; celebrity &#x7684;&#x4F18;&#x5316;&#xFF0C; &#x540E;&#x9762;&#x6838;&#x5FC3;&#x5B50;&#x670D;&#x52A1;&#x4F1A;&#x63D0;&#x5230;&#x3002;</li></ul><p>&#x53EF;&#x4EE5;&#x8DDF;&#x9762;&#x8BD5;&#x5B98;&#x786E;&#x8BA4; Push &#x7684;&#x7F3A;&#x70B9;&#x662F;&#x4E0D;&#x662F;&#x53EF;&#x4EE5;&#x63A5;&#x53D7;&#x3002;</p><p></p><h2 id="4-">4. &#x6570;&#x636E;&#x7ED3;&#x6784;&#x4E0E;&#x5B58;&#x50A8;</h2><p></p><h3 id="4-1-">4.1 &#x6570;&#x636E;&#x5E93;&#x7684;&#x8BBE;&#x8BA1;</h3><p>&#x4EE5;&#x4E0B;&#x8BBE;&#x8BA1;&#x504F;&#x5411;&#x4E8E;&#x975E;&#x7EAF; key-value store &#x7684;&#x5B58;&#x50A8;&#x65B9;&#x6848;&#x3002;&#x5982;&#x679C;&#x60F3;&#x9009;&#x7528; key-value store&#xFF0C;&#x5982;Redis, &#x4EE5;&#x4E0B;&#x8868;&#x7684;&#x8BBE;&#x8BA1;&#x53EF;&#x4EE5;&#x914C;&#x60C5;&#x505A;&#x4E00;&#x4E9B;&#x8C03;&#x6574;&#x3002;</p><ul><li>Post Table (post id as sharding key)</li></ul><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>post id</th>
<th>user id</th>
<th>image url</th>
<th>create time</th>
</tr>
</thead>
</table>
<!--kg-card-end: markdown--><ul><li>User Table (user id as sharding key)</li></ul><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>user id</th>
<th>user name</th>
<th>profile photo url</th>
<th>join time</th>
</tr>
</thead>
</table>
<!--kg-card-end: markdown--><ul><li>Feed Table (user id as sharding key, create time as secondary index)</li></ul><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>user id</th>
<th>author name</th>
<th>photo url</th>
<th>create time</th>
</tr>
</thead>
</table>
<!--kg-card-end: markdown--><p>1) &#x8FD9;&#x91CC; create time &#x662F;&#x5FC5;&#x987B;&#x7684;&#xFF0C;&#x5728;&#x8FD4;&#x56DE; Feed &#x8FC7;&#x7A0B;&#x4E2D;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x6309;&#x7167;&#x8FD9;&#x4E2A;&#x6392;&#x5E8F;&#x3002;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x7528;&#x4E86; async worker &#x6765;&#x5199; feed table, &#x6211;&#x4EEC;&#x65E0;&#x6CD5;&#x4FDD;&#x8BC1;&#x5148;&#x5199;&#x8FDB;&#x6765;&#x7684;&#x4E00;&#x5B9A;&#x5C31;&#x662F;create time &#x66F4;&#x65E9;&#x7684;&#x7167;&#x7247;&#x3002;2) &#x9009;&#x7528; user id &#x505A; sharding key&#xFF0C;&#x4F7F;&#x7528; create time &#x6765;&#x505A; secondary index. &#xA0;3) &#x4F7F;&#x7528; author name &amp; photo URL &#x800C;&#x4E0D;&#x662F; author id &amp; photo id &#x907F;&#x514D;&#x4E86;&#x4E0E;&#x5176;&#x4ED6;&#x8868;&#x5728;&#x8BFB;&#x53D6;&#x65F6;&#x8FDB;&#x884C; JOIN&#x3002;</p><ul><li>Follow Table</li></ul><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>user id</th>
<th>follower id</th>
</tr>
</thead>
</table>
<!--kg-card-end: markdown--><p>&#x6216;</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>user id</th>
<th>following id</th>
</tr>
</thead>
</table>
<!--kg-card-end: markdown--><p>&#x8FD9;&#x8FB9;&#x8981;&#x8BF4;&#x660E; Trade off&#xFF1A;</p><p>Push &#x65B9;&#x6848;&#x91CC;&#x6211;&#x4EEC;&#x603B;&#x662F;&#x62FF; user id &#x53BB;&#x627E;&#x4ED6;&#x88AB;&#x8C01; follow &#x4E86;&#xFF0C;&#x800C; pull&#x65B9;&#x6848;&#x91CC;&#x6211;&#x4EEC;&#x603B;&#x662F;&#x62FF; user id &#x53BB;&#x627E;&#x4ED6; follow &#x4E86;&#x8C01;&#x3002;&#x5F53;&#x7136;&#x6211;&#x4EEC;&#x4E5F;&#x53EF;&#x4EE5;&#x4E24;&#x79CD;&#x90FD;&#x5B58;&#x6765;&#x505A;&#x4E00;&#x4E2A; hybrid approach&#xFF0C;&#x4E0B;&#x9762;&#x4F1A;&#x63D0;&#x5230;&#x3002;</p><h3 id="4-2-">4.2 &#x5B58;&#x50A8;&#x7CFB;&#x7EDF;</h3><p>&#x7F13;&#x5B58;, &#x6570;&#x636E;&#x5E93;&#x548C;&#x5BF9;&#x8C61;&#x5B58;&#x50A8;&#x5206;&#x522B;&#x7528;&#x4EC0;&#x4E48;&#xFF1F;</p><p><strong>4.2.1 &#x7F13;&#x5B58; (Cache)</strong></p><ul><li>&#x6570;&#x636E;&#x5E93;&#x7684;&#x7F13;&#x5B58; - Redis, Memcached &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5728; Feed Table &#x4E4B;&#x524D;&#x52A0;&#x4E00;&#x4E2A;&#x7F13;&#x5B58;&#xFF0C;&#x5728;&#x6BCF;&#x4E00;&#x6B21;&#x6709; Feed &#x7528;&#x6237;&#x8BF7;&#x6C42;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x53EF;&#x4EE5;&#x9884;&#x52A0;&#x8F7D;&#x6BD4; Feed &#x8BF7;&#x6C42;&#x591A;&#x51E0;&#x500D;&#x7684;&#x6570;&#x636E;&#xFF0C;&#x8FD9;&#x6837;&#x5728;&#x7528;&#x6237;&#x8BF7;&#x6C42;&#x4E0B;&#x4E00;&#x9875;&#x6216;&#x51E0;&#x9875;&#x7684;&#x65F6;&#x5019;&#x76F4;&#x63A5;&#x4ECE;&#x7F13;&#x5B58;&#x4E2D;&#x8BFB;&#x53D6;&#x3002;&#x8FD9;&#x4E2A;&#x7F13;&#x5B58;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; LRU &#x4F5C;&#x4E3A; eviction policy&#x3002;</li><li>&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;&#x7684;&#x7F13;&#x5B58; - CDN. &#x60F3;&#x8C61;&#x4E00;&#x4E2A;&#x6709;&#x5F88;&#x591A;&#x7C89;&#x4E1D;&#x7684;&#x660E;&#x661F;&#x53D1;&#x7684;&#x7167;&#x7247;&#x4F1A;&#x88AB;&#x5F88;&#x591A;&#x4EBA;&#x770B;&#x5230;&#xFF0C;&#x6211;&#x4EEC;&#x662F;&#x4E0D;&#x662F;&#x9700;&#x8981;&#x6BCF;&#x4E00;&#x6B21;&#x90FD;&#x4ECE;&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;&#x91CC;&#x62FF;&#x5462;&#xFF1F;&#x663E;&#x7136;&#x4E0D;&#x884C;&#x3002;&#x5BF9;&#x4E8E;&#x5927;&#x6587;&#x4EF6;&#x7684;&#x7F13;&#x5B58;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x628A;&#x6587;&#x4EF6;&#x63D0;&#x524D;&#x90E8;&#x7F72;&#x5230;&#x4E16;&#x754C;&#x5404;&#x5730;&#x7684; CDN &#x4E0A;&#xFF0C;&#x8FD9;&#x6837;&#x9700;&#x8981;&#x8BBF;&#x95EE;&#x65F6;&#x5C31;&#x80FD;&#x7B2C;&#x4E00;&#x65F6;&#x95F4;&#x4ECE;&#x6700;&#x8FD1;&#x7684; CDN &#x62FF;&#x5230;&#x6570;&#x636E;&#x3002;</li></ul><p><strong>4.2.2 &#x6570;&#x636E;&#x5E93; (Database)</strong></p><p>Cassandra, MySQL ... SQL vs NoSQL? &#x5728;&#x8FD9;&#x9053;&#x9898;&#x4E0A;&#x662F;&#x4E2A;&#x4EC1;&#x8005;&#x89C1;&#x4EC1;&#xFF0C;&#x667A;&#x8005;&#x89C1;&#x667A;&#x7684;&#x95EE;&#x9898;&#x3002;&#x6211;&#x4EEC;&#x81F3;&#x5C11;&#x8981;&#x610F;&#x8BC6;&#x5230;&#x8FD9;&#x662F; read-heavy application&#x3002;SQL &#x8FD9;&#x8FB9;&#x6709; <a href="https://en.wikipedia.org/wiki/MySQL" rel="noopener noreferrer">MySQL</a> &#xFF0C;&#x505A; key-value store &#x6027;&#x80FD;&#x4E5F;&#x4E0D;&#x9519;&#xFF0C;NoSQL &#x6709; <a href="https://en.wikipedia.org/wiki/Apache_Cassandra" rel="noopener noreferrer">Cassandra</a>, read-heavy, write heavy &#x90FD;&#x53EF;&#x4EE5;&#xFF0C;&#x4FDD;&#x8BC1;eventual consistency.</p><p><strong>4.2.3 &#x5BF9;&#x8C61;&#x5B58;&#x50A8; (Object Storage)</strong></p><p>Amazon S3 &#x662F;&#x53EF;&#x4EE5;&#x8003;&#x8651;&#x7684;&#x5206;&#x5E03;&#x5F0F;&#x5BF9;&#x8C61;&#x5B58;&#x50A8;&#x3002;</p><h2 id="5-">5. &#x6838;&#x5FC3;&#x5B50;&#x670D;&#x52A1;&#x8BBE;&#x8BA1;</h2><p></p><p>&#x6211;&#x4EEC;&#x6765;&#x7EC6;&#x5316; Feed Service &#x7684;&#x67B6;&#x6784;&#x3002;</p><p>&#x524D;&#x9762;&#x6211;&#x4EEC;&#x53D1;&#x73B0;&#x4E86; Push &#x5E26;&#x6765;&#x7684; Celebrity Fan-out &#x7684;&#x95EE;&#x9898;&#x3002;&#x6211;&#x4EEC;&#x5C31;&#x5728;&#x8FD9;&#x4E2A;&#x9636;&#x6BB5;&#x63D0;&#x51FA; Hybrid approach . &#x7B80;&#x5355;&#x6765;&#x8BF4;&#xFF0C;&#x6211;&#x4EEC;&#x7528;&#x4E00;&#x5F20;&#x65B0;&#x7684; post table &#x53BB;&#x4E13;&#x95E8;&#x5B58;&#x8D85;&#x8FC7;&#x4E00;&#x5B9A; Follower &#x6570;&#x91CF;&#x7684; celebrity post&#xFF0C;&#x7136;&#x540E;&#x6BCF;&#x6B21;&#x53D6; Feed &#x5C31;&#x76F4;&#x63A5;&#x4ECE;&#x8FD9;&#x5F20;&#x6BD4;&#x8F83;&#x5C0F;&#x7684;&#x8868;&#x91CC;&#x53BB;&#x627E; celebrity &#x7684; post&#xFF0C;&#x7136;&#x540E;&#x4E0E; Feed table &#x5408;&#x5E76;&#x6392;&#x5E8F;&#x3002;&#x4E0A;&#x8FF0;&#x7684;&#x65B9;&#x6848;&#x4F1A;&#x8BA9;&#x6211;&#x4EEC;&#x7684;&#x7CFB;&#x7EDF;&#x4E2D;&#x5305;&#x542B;&#x4E24;&#x4E2A; Post table&#xFF0C;&#x4E00;&#x4E2A;&#x662F; celebrity post&#xFF0C;&#x53E6;&#x4E00;&#x4E2A;&#x662F; non-celebrity post&#x3002;&#x4E00;&#x79CD;&#x66F4;&#x7B80;&#x5316;&#x7684;&#x65B9;&#x6848;&#x662F;&#x4ECD;&#x5C06;&#x6240;&#x6709;&#x7684; Post &#x5408;&#x5E76;&#x5230;&#x4E00;&#x5F20;Post table&#xFF0C;&#x4F46;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x5217;&#xFF0C;is_celebrity_post &#x6765;&#x52A0;&#x4EE5;&#x533A;&#x5206;&#xFF0C;&#x5728;&#x5206;&#x7247;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x7528;&#x8FD9;&#x4E00;&#x5217;&#x4F5C;&#x4E3A;&#x5206;&#x7247;&#x7684;&#x4F9D;&#x636E;&#x4E4B;&#x4E00;&#x3002;</p><p>&#x6CE8;&#x610F;&#x8FD9;&#x8FB9; celebrity post &#x6211;&#x4EEC;&#x5C31;&#x4E0D;&#x5199;&#x5230; Feed table &#x91CC;&#x4E86;&#xFF0C;&#x987A;&#x4FBF;&#x89E3;&#x51B3;&#x4E86;&#x6BCF;&#x6B21; celebrity post &#x65F6;&#xFF0C;async worker &#x7684;&#x8D1F;&#x8F7D;&#x5927;&#x5927;&#x589E;&#x52A0;&#x7684;&#x95EE;&#x9898;&#xFF0C;&#x4F7F;&#x5176;&#x66F4;&#x7A33;&#x5B9A;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://blog.acecodeinterview.com/content/images/2020/05/instagram-hybrid-push-pull.PNG" class="kg-image" alt="Instagram &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#x89E3;" loading="lazy"></figure><p>&#x8FD9;&#x91CC;&#x503C;&#x5F97;&#x8BA8;&#x8BBA;&#x4E00;&#x4E2A;&#x7EC6;&#x8282;&#xFF0C;&#x6211;&#x4EEC;&#x80FD;&#x4E0D;&#x80FD;&#x5B9A;&#x4E00;&#x4E2A; Follower &#x6570;&#x91CF;&#x7684;&#x9650;&#x5236;&#xFF0C;&#x8FD9;&#x6837;&#x662F;&#x4E0D;&#x662F;&#x5C31;&#x4E0D;&#x7528;&#x4E13;&#x95E8;&#x7528;&#x4E00;&#x5F20;&#x65B0;&#x7684; post table &#x53BB;&#x5B58;&#x4E86;&#x5462;&#xFF1F;&#x5176;&#x5B9E;&#x4E0D;&#x7136;&#xFF0C;&#x56E0;&#x4E3A;&#x7528;&#x6237;&#x7684; Follower &#x6570;&#x91CF;&#x662F;&#x4F1A;&#x6CE2;&#x52A8;&#x7684;&#xFF0C;&#x5982;&#x679C;&#x7528;&#x6237;&#x6B63;&#x597D;&#x5728;&#x90A3;&#x6761;&#x7EBF;&#x4E0A;&#xFF0C;&#x4F1A;&#x9020;&#x6210; fan-out &#x65F6;&#x6709;&#x65F6;&#x65E0;&#x7684;&#x60C5;&#x51B5;&#x3002;&#x5F53;&#x7136;&#xFF0C;&#x6211;&#x4EEC;&#x5EFA;&#x4E86;&#x65B0;&#x7684; celebrity post table &#x4E5F;&#x4F1A;&#x5E26;&#x6765;&#x95EE;&#x9898;&#xFF0C;&#x5C31;&#x662F;&#x5982;&#x679C;&#x6709;&#x4E86;&#x65B0;&#x4EBA;&#x4E00;&#x4E0B;&#x5B50;&#x53D8;&#x5F88;&#x706B;&#xFF0C;&#x6211;&#x4EEC;&#x600E;&#x4E48;&#x628A;&#x4ED6;&#x4EEC;&#x52A0;&#x5165;&#x8FD9;&#x4E2A;&#x6211;&#x4EEC;&#x8BA4;&#x5B9A;&#x7684; celebrity &#x7684;&#x884C;&#x5217;&#x3002;&#x65B9;&#x6CD5;&#x5F88;&#x7B80;&#x5355;&#xFF0C;&#x5176;&#x4E2D;&#x4E00;&#x79CD;&#x662F;&#x4ECE;&#x666E;&#x901A;&#x7684; post table &#x53BB; backfill celebrity post table&#xFF0C;&#x53E6;&#x4E00;&#x8FB9;&#x4ECE; Feed table &#x91CC;&#x53BB;&#x9664;&#x4ED6;&#x4EEC;&#x7684; post.</p><h2 id="6-">6. &#x63A5;&#x53E3;&#x8BBE;&#x8BA1;</h2><!--kg-card-begin: markdown--><pre><code>GET /v1/feed?count={count}&amp;last_timestamp={timestamp}
</code></pre>
<!--kg-card-end: markdown--><p>&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x601D;&#x8003;&#x4E00;&#x4E0B; Feed API &#x8FD9;&#x8FB9;&#x5199;&#x7684; count &#x548C; last timestamp &#x662F;&#x4EC0;&#x4E48;&#x7528;&#x610F;&#x5462;&#xFF1F;</p><p>&#x7B54;&#x6848;&#x662F;&#x5206;&#x9875; (Pagination)&#x3002;&#x6BCF;&#x4E00;&#x6B21; getFeed&#xFF0C;&#x6211;&#x4EEC;&#x4E0D;&#x53EF;&#x80FD;&#x628A;&#x6240;&#x6709;&#x7684;&#x8BE5;&#x7528;&#x6237;&#x7684; Feed &#x4E00;&#x80A1;&#x8111;&#x7684;&#x53D1;&#x56DE;&#x53BB;&#xFF0C;&#x6211;&#x4EEC;&#x5FC5;&#x987B;&#x5206;&#x6210;&#x4E00;&#x6BB5;&#x4E00;&#x6BB5;&#x5730;&#x53D1;&#x3002;&#x90A3;&#x4E48;&#x95EE;&#x9898;&#x6765;&#x4E86;&#xFF0C;&#x600E;&#x4E48;&#x624D;&#x80FD;&#x53D6;&#x56DE;&#x7B2C;&#x4E8C;&#x9875;&#x5462;&#xFF1F;</p><p>&#x6700;&#x76F4;&#x63A5;&#x7684;&#x60F3;&#x6CD5;&#x662F;&#x5728; getFeed &#x4E2D;&#x53D1;&#x4E00;&#x4E2A; page id &#x548C; page count&#xFF0C;&#x544A;&#x8BC9;&#x670D;&#x52A1;&#x5668;&#x6211;&#x60F3;&#x4ECE;&#x7B2C;&#x51E0;&#x9875;&#x5F00;&#x59CB;&#x53D6;&#xFF0C;&#x6BCF;&#x9875;&#x662F;&#x51E0;&#x5F20;&#x7167;&#x7247;&#x3002;&#x8FD9;&#x4E2A;&#x505A;&#x6CD5;&#x662F;&#x4E0D;&#x5BF9;&#x7684;&#xFF0C;&#x56E0;&#x4E3A;&#x7528;&#x6237;&#x7684; Feed &#x662F;&#x4F1A;&#x589E;&#x957F;&#x7684;&#xFF0C;&#x5982;&#x679C;&#x53D6;&#x7B2C;&#x4E00;&#x9875;&#x548C;&#x7B2C;&#x4E8C;&#x9875;&#x4E4B;&#x95F4;&#x6709;&#x4E86;&#x65B0;&#x7684; post, &#x90A3;&#x8FD4;&#x56DE;&#x7684;&#x56FE;&#x7247;&#x7684; index &#x5C31;&#x4F1A;&#x9519;&#x4F4D;&#x3002;</p><p>&#x6B63;&#x786E;&#x505A;&#x6CD5;&#x662F;&#x4F20; last timestamp &#x548C; page count&#xFF0C;&#x8FD9;&#x6837;&#x5C31;&#x89E3;&#x51B3;&#x4E86;&#x9519;&#x4F4D;&#x7684;&#x95EE;&#x9898;&#x3002;</p><!--kg-card-begin: markdown--><pre><code>POST /v1/images
</code></pre>
<!--kg-card-end: markdown--><p>&#x4EE5;&#x4E0A; API &#x7528;&#x4E8E;&#x628A;&#x56FE;&#x7247;&#x672C;&#x8EAB;&#x4E0A;&#x4F20;&#x5230;&#x670D;&#x52A1;&#x5668;&#x7AEF;&#xFF0C;&#x6362;&#x53D6;&#x4E00;&#x4E2A; URL&#xFF0C;S3 &#x63D0;&#x4F9B;&#x7C7B;&#x4F3C;&#x7684;&#x529F;&#x80FD;&#x3002;</p><!--kg-card-begin: markdown--><pre><code>POST /v1/posts
{
    &quot;image_url&quot;: image_url,
    &quot;description&quot;: &quot;hello world&quot;
}
</code></pre>
<!--kg-card-end: markdown--><p>&#x4EE5;&#x4E0A; API &#x7528;&#x4E8E;&#x628A; Post &#x4E0A;&#x4F20;&#x5230;&#x670D;&#x52A1;&#x5668;&#x7AEF;&#xFF0C;&#x5305;&#x62EC;&#x56FE;&#x7247;&#x94FE;&#x63A5;&#x4EE5;&#x53CA;&#x6587;&#x5B57;&#x4ECB;&#x7ECD;&#x3002;&#x5C06;&#x56FE;&#x7247;&#x672C;&#x8EAB;&#x7684;&#x4E0A;&#x4F20;&#x548C; Post &#x7684;&#x4E0A;&#x4F20;&#x5206;&#x5F00;&#x5141;&#x8BB8;&#x6211;&#x4EEC;&#x5728;&#x4EA7;&#x54C1;&#x903B;&#x8F91;&#x91CC;&#x5C06;&#x4E24;&#x8005;&#x7684;&#x53D1;&#x9001;&#x65F6;&#x95F4;&#x5206;&#x5F00;&#xFF08;&#x7167;&#x7247;&#x53EF;&#x4EE5;&#x5728;&#x6587;&#x5B57;&#x4ECB;&#x7ECD;&#x8FD8;&#x6CA1;&#x7F16;&#x5199;&#x597D;&#x4E4B;&#x524D;&#x5C31;&#x4E0A;&#x4F20;&#xFF09;&#xFF0C;&#x53E6;&#x4E00;&#x65B9;&#x9762;&#x5141;&#x8BB8;&#x6211;&#x4EEC;&#x66F4;&#x597D;&#x5730;&#x590D;&#x7528;&#x670D;&#x52A1;&#xFF0C;&#x7279;&#x522B;&#x662F;&#x524D;&#x8005;&#xFF0C;&#x56FE;&#x7247;&#x4E0A;&#x4F20;&#x670D;&#x52A1;&#x53EF;&#x4EE5;&#x88AB;&#x5F88;&#x591A;&#x522B;&#x7684; API &#x5229;&#x7528;&#x3002;</p><p>&#x8FD9;&#x91CC;&#x6CA1;&#x6709;&#x5C06; User ID &#x653E;&#x5728; API &#x7684;&#x8F93;&#x5165;&#x5F53;&#x4E2D;&#x662F;&#x8003;&#x8651;&#x6211;&#x4EEC;&#x4E0D;&#x4F1A;&#x53BB;&#x4EE5;&#x4ED6;&#x4EBA;&#x540D;&#x4E49;&#x53D1;&#x9001;&#x7167;&#x7247;&#x6216;&#x8005;&#x53D6;&#x5F97;&#x4ED6;&#x4EBA;&#x7684;&#x4FE1;&#x606F;&#x6D41;&#xFF0C;&#x6240;&#x4EE5;&#x4E24;&#x4E2A; API &#x53EF;&#x4EE5;&#x9ED8;&#x8BA4;&#x7528;&#x6237;&#x662F;&#x5F53;&#x524D;&#x88AB; Authenticated &#x7684;&#x7528;&#x6237;&#xFF0C;&#x5B9E;&#x73B0;&#x4E0A;&#x53EF;&#x4EE5;&#x4ECE; Auth Token &#x91CC;&#x62FF;&#xFF0C;&#x800C;&#x4E0D;&#x5FC5;&#x4ECE; API &#x4E2D;&#x62FF;&#x3002;</p><h2 id="7-">7. &#x6269;&#x5C55;&#x6027;&#xFF0C;&#x5BB9;&#x9519;&#x6027;&#xFF0C;&#x5EF6;&#x8FDF;&#x8981;&#x6C42;</h2><p></p><p>&#x6211;&#x4EEC;&#x6765;&#x8FDB;&#x4E00;&#x6B65;&#x6309;&#x7167;&#x4EE5;&#x4E0A;&#x56DB;&#x70B9;&#x6765;&#x8FDB;&#x4E00;&#x6B65;&#x4F18;&#x5316;&#x6211;&#x4EEC;&#x7684;&#x8BBE;&#x8BA1;&#x4EE5;&#x6EE1;&#x8DB3;&#x6211;&#x4EEC;&#x5728;&#x7B2C;&#x4E00;&#x8282;&#x4E2D;&#x6536;&#x96C6;&#x7684;&#x9700;&#x6C42; - Low Latency, High Reliability &#x548C; High Availability.</p><h3 id="7-1-scalability-">7.1 &#x6269;&#x5C55;&#x6027; (Scalability)</h3><p>Scalability &#x8BA8;&#x8BBA;&#x5728;&#x6570;&#x636E;&#x91CF;&#x548C;&#x8BBF;&#x95EE;&#x91CF;&#x589E;&#x5927;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x6211;&#x4EEC;&#x5982;&#x4F55;&#x5E94;&#x5BF9;&#x3002;&#x8FD9;&#x91CC;&#x6211;&#x4EEC;&#x68B3;&#x7406;&#x4E00;&#x4E0B;&#x4E4B;&#x524D;&#x4E3A;&#x4E86; Scalability &#x6240;&#x4F5C;&#x7684;&#x9009;&#x62E9;&#x3002;</p><ul><li>High-level diagram &#x4E2D;&#x7684; Load Balancer</li><li>&#x5B58;&#x50A8;&#x7CFB;&#x7EDF;&#x91CC;&#x7684;&#x7F13;&#x5B58;&#xFF0C;&#x6570;&#x636E;&#x5E93;&#x548C;&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;</li><li>&#x6838;&#x5FC3;&#x5B50;&#x670D;&#x52A1; Feed Service &#x8BBE;&#x8BA1;&#x4E2D;&#x7684; Hybrid approach</li><li>&#x63A5;&#x53E3;&#x8BBE;&#x8BA1;&#x4E2D;&#x7684;&#x5206;&#x9875; (Pagination)</li></ul><p>&#x4EE5;&#x4E0A;&#x8FD9;&#x4E9B;&#x8BBE;&#x8BA1;&#x8BA9;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x52A0;&#x673A;&#x5668;&#x7684;&#x65B9;&#x6CD5;&#x6765;&#x5E94;&#x5BF9;&#x4E0E;&#x65E5;&#x4FF1;&#x589E;&#x7684;&#x6570;&#x636E;&#x91CF;&#x548C;&#x8BBF;&#x95EE;&#x91CF;&#x3002;</p><h3 id="7-2-fault-tolerance-">7.2 &#x5BB9;&#x9519;&#x6027; (Fault-tolerance)</h3><p>&#x8981;&#x6784;&#x5EFA;&#x4E00;&#x4E2A;&#x5728;&#x670D;&#x52A1;&#x5668;&#x4F17;&#x591A;&#x7684;&#x670D;&#x52A1;&#xFF0C;&#x6211;&#x4EEC;&#x96BE;&#x514D;&#x4F1A;&#x78B0;&#x5230;&#x786C;&#x4EF6;&#x548C;&#x8F6F;&#x4EF6;&#x7684;&#x4E0D;&#x7A33;&#x5B9A;&#x6027;&#x3002;&#x9762;&#x5BF9;&#x8FD9;&#x4E9B;&#x96BE;&#x4EE5;&#x9884;&#x6D4B;&#x7684;&#x95EE;&#x9898;&#xFF0C;&#x6211;&#x4EEC;&#x600E;&#x4E48;&#x624D;&#x80FD;&#x8BA9;&#x7528;&#x6237;&#x611F;&#x53D7;&#x5230;&#x4E00;&#x81F4;&#x5E76;&#x4E14;&#x7406;&#x60F3;&#x7684;&#x4F53;&#x9A8C;&#x5462;&#xFF1F;&#x90A3;&#x5C31;&#x662F;&#x63D0;&#x9AD8;&#x5BB9;&#x9519;&#x6027;&#x3002;</p><p>&#x63D0;&#x9AD8;&#x5BB9;&#x9519;&#x6027;&#x7684;&#x76EE;&#x6807;&#x662F;&#x4E24;&#x70B9;&#x3002;</p><ul><li>&#x65E0;&#x5355;&#x70B9;&#x6545;&#x969C; (No single point of failure)</li><li>Fail gracefully</li></ul><p>&#x6211;&#x4EEC;&#x5728;&#x8FD9;&#x9898;&#x7684;&#x60C5;&#x666F;&#x4E0B;&#x5206;&#x522B;&#x68C0;&#x89C6;&#x6BCF;&#x4E2A;&#x7CFB;&#x7EDF;&#x7EC4;&#x4EF6;&#xFF0C;&#x770B;&#x770B;&#x5982;&#x4F55;&#x8FBE;&#x5230;&#x4EE5;&#x4E0A;&#x76EE;&#x6807;&#x3002;</p><ul><li>Post Service &#x548C; Feed Service &#x9700;&#x8981;&#x6709;&#x591A;&#x53F0;&#x670D;&#x52A1;&#x5668;&#x7531; Load Balancer &#x53BB;&#x5206;&#x914D;&#x8BF7;&#x6C42;&#xFF0C;&#x5F53;&#x67D0;&#x53F0;&#x673A;&#x5668;&#x51FA;&#x73B0;&#x6709;&#x95EE;&#x9898;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x8BF7;&#x6C42;&#x4F1A;&#x88AB;&#x53D1;&#x9001;&#x5230;&#x522B;&#x7684;&#x673A;&#x5668;&#x4E0A;&#xFF0C;&#x9020;&#x6210;&#x670D;&#x52A1;&#x7684;&#x5EF6;&#x8FDF;&#x589E;&#x52A0;&#x800C;&#x4E0D;&#x662F;&#x65E0;&#x670D;&#x52A1;&#x7684;&#x72B6;&#x6001;&#x3002;</li><li>&#x7F13;&#x5B58;&#x9700;&#x8981;&#x6709;&#x591A;&#x53F0;&#x670D;&#x52A1;&#x5668;&#xFF0C;&#x5982;&#x679C;&#x4E00;&#x53F0;&#x51FA;&#x73B0;&#x95EE;&#x9898;&#xFF0C;&#x5176;&#x4ED6;&#x7684;&#x7F13;&#x5B58;&#x4ECD;&#x80FD;&#x6B63;&#x5E38;&#x5DE5;&#x4F5C;&#xFF0C;&#x4F7F;&#x5F97;&#x8FD9;&#x6837;&#x6570;&#x636E;&#x5E93;&#x8BBF;&#x95EE;&#x6709;&#x9650;&#x5730;&#x589E;&#x52A0;&#x3002;&#x95EE;&#x9898;&#x7F13;&#x5B58;&#x91CD;&#x542F;&#x540E;&#xFF0C;&#x6211;&#x4EEC;&#x5931;&#x53BB;&#x4E86;&#x8BE5;&#x7F13;&#x5B58;&#x7684;&#x6570;&#x636E;&#xFF0C;&#x53EA;&#x80FD;&#x6162;&#x6162;&#x6062;&#x590D;&#xFF0C;&#x7136;&#x800C;&#x4E00;&#x6BB5;&#x65F6;&#x95F4;&#x540E;&#x6570;&#x636E;&#x5E93;&#x8BBF;&#x95EE;&#x4F1A;&#x56DE;&#x5230;&#x539F;&#x6765;&#x72B6;&#x6001;&#x3002;</li><li>&#x6570;&#x636E;&#x5E93;&#x548C;&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;&#x9700;&#x8981;&#x6709;&#x5907;&#x4EFD;&#xFF0C;&#x6211;&#x4EEC;&#x662F;&#x65E0;&#x6CD5;&#x5BB9;&#x5FCD;&#x6570;&#x636E;&#x4E22;&#x5931;&#x7684;&#x3002;&#x5E38;&#x89C1;&#x7684;&#x65B9;&#x6CD5;&#x6709;Master-slave replication, Master &#x627F;&#x62C5;&#x201C;&#x5199;&#x201D;&#x8BF7;&#x6C42;&#xFF0C;Slave &#x627F;&#x62C5;&#x201C;&#x8BFB;&#x201D;&#x8BF7;&#x6C42;&#xFF0C;Master &#x7684;&#x6570;&#x636E;&#x5728;&#x6EE1;&#x8DB3; eventual consistency &#x7684;&#x6761;&#x4EF6;&#x4E0B;&#x5907;&#x4EFD;&#x5230; Slave&#x4E0A;&#x3002;Master&#x5982;&#x679C;&#x51FA;&#x73B0;&#x95EE;&#x9898;&#xFF0C;&#x4E00;&#x53F0; Slave &#x4F1A;&#x88AB; promote &#x6210; Master&#x3002;Slave &#x56E0;&#x4E3A;&#x6709;&#x591A;&#x53F0;&#x5E76;&#x4E14;&#x627F;&#x62C5;&#x4E00;&#x6837;&#x7684;&#x4EFB;&#x52A1;&#xFF0C;&#x5176;&#x4E2D;&#x4E00;&#x53F0;&#x91CD;&#x542F;&#x7684;&#x65F6;&#x5019;&#xFF0C;Master &#x53EA;&#x9700;&#x7ED9;&#x5B83;&#x8865;&#x4E0A;&#x4E22;&#x5931;&#x7684;&#x6570;&#x636E;&#x5373;&#x53EF;&#x3002;&#x8FD9;&#x6837;&#x4E0D;&#x4EC5;&#x5907;&#x4EFD;&#x4E86;&#x6570;&#x636E;&#xFF0C;&#x800C;&#x4E14;&#x964D;&#x4F4E;&#x4E86;&#x6BCF;&#x53F0;&#x673A;&#x5668;&#x63A5;&#x53D7;&#x8BF7;&#x6C42;&#x7684;&#x538B;&#x529B;&#x3002;</li></ul><h3 id="7-3-latency-">7.3 &#x5EF6;&#x8FDF;&#x8981;&#x6C42; (Latency)</h3><p>&#x5728;&#x524D;&#x9762;&#x7684;&#x7B2C;&#x4E09;&#x5C0F;&#x8282; High-level Diagram &#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5728;&#x8BA8;&#x8BBA;push vs pull&#x7684;&#x65F6;&#x5019;&#x9009;&#x62E9;push&#x7684;&#x6838;&#x5FC3;&#x8BBA;&#x70B9;&#x662F;&#x8FD9;&#x4E2A;&#x670D;&#x52A1;&#x662F; read-heavy &#x5E76;&#x4E14;&#x5EF6;&#x8FDF;&#x5FC5;&#x987B;&#x8DB3;&#x591F;&#x4F4E;&#x3002;&#x5728;&#x6B64;&#x540E;&#x91C7;&#x53D6; hybrid approach &#x7684;&#x4F18;&#x5316;&#x540E;&#xFF0C;&#x7CFB;&#x7EDF;&#x5EF6;&#x8FDF;&#x4ECD;&#x4F1A;&#x4F4E;&#x4E8E; pull&#x3002;</p><h2 id="8-">8. &#x76D1;&#x63A7;&#x548C;&#x8B66;&#x62A5;</h2><p></p><p>&#x76D1;&#x63A7;&#x6838;&#x5FC3;&#x6307;&#x6807;&#x5E76;&#x8BBE;&#x7ACB;&#x8B66;&#x62A5;&#x3002;&#x5B9E;&#x9645;&#x7CFB;&#x7EDF;&#x91CC;&#x7684;&#x6307;&#x6807;&#x8FDC;&#x4E0D;&#x6B62;&#x4EE5;&#x4E0B;&#xFF0C;&#x8FD9;&#x91CC;&#x4E3E;&#x4E00;&#x4E9B;&#x91CD;&#x8981;&#x7684;&#x3002;</p><ul><li>&#x670D;&#x52A1;QPS</li><li>&#x670D;&#x52A1;&#x5EF6;&#x8FDF;</li><li>&#x670D;&#x52A1;&#x53EF;&#x7528;&#x6027; (Availability)</li><li>Async worker load</li><li>&#x7CFB;&#x7EDF;&#x7F13;&#x5B58;&#x547D;&#x4E2D;&#x7387;</li><li>CDN &#x7F13;&#x5B58;&#x547D;&#x4E2D;&#x7387;</li><li>&#x6570;&#x636E;&#x5E93;&#x4F7F;&#x7528;&#x6BD4;&#x4F8B;</li><li>&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;&#x4F7F;&#x7528;&#x6BD4;&#x4F8B;</li></ul><h2 id="9-deep-dive">9. &#x4E13;&#x9898; deep dive</h2><p></p><h3 id="9-1-sharding-">9.1 &#x6570;&#x636E;&#x5206;&#x7247; (Sharding)</h3><p>&#x8FD9;&#x9053;&#x9898;&#x9762;&#x8BD5;&#x5B98;&#x53EF;&#x4EE5;&#x627E;&#x5230;&#x5F88;&#x591A;&#x89D2;&#x5EA6;&#x53BB;&#x6DF1;&#x6316;&#xFF0C;&#x8FD9;&#x91CC;&#x5C31;&#x63D0;&#x4E00;&#x4E2A;&#x6BD4;&#x8F83;&#x5E38;&#x89C1;&#x7684;&#x8003;&#x70B9;&#x3002;&#x95EE;&#x9898;&#x662F;&#x8FD9;&#x6837;&#x7684; - Instagram &#x7684; Feed Table &#x6570;&#x636E;&#x91CF;&#x5355;&#x673A;&#x65E0;&#x6CD5;&#x627F;&#x53D7;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x4F60;&#x4F1A;&#x600E;&#x6837; Scale up?</p><p>&#x6700;&#x76F4;&#x63A5;&#x7684;&#x60F3;&#x6CD5;&#x662F;&#xFF0C;&#x5BF9;&#x4E8E;&#x6BCF;&#x4E2A; user id &#x505A; hashing&#xFF0C;&#x5206;&#x522B;&#x653E;&#x5728;&#x4E0D;&#x540C;&#x7684;&#x673A;&#x5668;&#x4E0A;&#x3002;&#x8FD9;&#x6837;&#x8BF4;&#x7B54;&#x5BF9;&#x4E86;&#x4E00;&#x534A;&#xFF0C;&#x9762;&#x8BD5;&#x5B98;&#x4F1A;&#x8DDF;&#x8FDB;&#xFF0C;&#x95EE;&#x8FD9;&#x6837;&#x4F1A;&#x4E0D;&#x4F1A;&#x9020;&#x6210;&#x6709;&#x7684;&#x673A;&#x5668;&#x5F88;&#x6EE1;&#xFF0C;&#x6709;&#x7684;&#x5F88;&#x7A7A;&#xFF0C;&#x5982;&#x679C;&#x67D0;&#x4E9B;&#x673A;&#x5668;&#x53C8;&#x6EE1;&#x4E86;&#x600E;&#x4E48;&#x529E;&#xFF1F;</p><p>&#x8981;&#x89E3;&#x51B3;&#x8FD9;&#x4E2A;&#x95EE;&#x9898;&#x7684;&#x673A;&#x5236;&#x6BD4;&#x8F83;&#x590D;&#x6742;&#xFF0C;Cassandra &#x7684;&#x8BBE;&#x8BA1;&#x7ED9;&#x6211;&#x4EEC;&#x63D0;&#x4F9B;&#x4E86;&#x5F88;&#x597D;&#x7684;&#x8BBE;&#x8BA1;&#x601D;&#x8DEF;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <a href="https://www.toptal.com/big-data/consistent-hashing" rel="noopener noreferrer">Consistent Hashing</a> &#x7684; Hash Ring &#x6765;&#x89E3;&#x51B3; node re-distribution &#x7684;&#x95EE;&#x9898;&#x3002;</p><h2 id="10-">10. &#x603B;&#x7ED3;</h2><p></p><p>&#x5728;&#x9762;&#x8BD5;&#x7684;&#x8FC7;&#x7A0B;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x4E00;&#x8FB9;&#x601D;&#x8003;&#xFF0C;&#x4E00;&#x8FB9;&#x6539;&#x8FDB;&#x6211;&#x4EEC;&#x7684;&#x7CFB;&#x7EDF;&#x3002;&#x6700;&#x7EC8;&#x7684;&#x7CFB;&#x7EDF;&#x5927;&#x6982;&#x662F;&#x8FD9;&#x6837;&#x7684;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://blog.acecodeinterview.com/content/images/2020/05/instagram-diagram-final.PNG" class="kg-image" alt="Instagram &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#x89E3;" loading="lazy"></figure><p>&#x6211;&#x4EEC;&#x56DE;&#x987E;&#x4E00;&#x4E0B;&#x6700;&#x521D;&#x5199;&#x4E0B;&#x7684;&#x9700;&#x6C42;&#xFF0C;&#x770B;&#x4E00;&#x4E0B;&#x662F;&#x4E0D;&#x662F;&#x90FD;&#x6EE1;&#x8DB3;&#x4E86;&#x3002;&#x6700;&#x540E;&#x518D;&#x8DDF;&#x9762;&#x8BD5;&#x5B98;&#x786E;&#x8BA4;&#x4E00;&#x6B21;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[资深面试官眼中的系统设计]]></title><description><![CDATA[如果你对系统设计面试还有一知半解，这篇已经帮助过8000名同学的教程一定能帮你答疑解惑。我们这就来聊聊为什么要考系统设计，具体考什么，以及如何作答。]]></description><link>https://blog.acecodeinterview.com/intro/</link><guid isPermaLink="false">5ec83f3154379413cb923cff</guid><category><![CDATA[系统设计文本课]]></category><category><![CDATA[免费资源]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Mon, 08 Feb 2021 00:08:00 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2021/04/system-design-whiteboard.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.acecodeinterview.com/content/images/2021/04/system-design-whiteboard.png" alt="&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x773C;&#x4E2D;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;"><p>&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x662F;&#x4E3A;&#x4E86;&#x6EE1;&#x8DB3;&#x7279;&#x5B9A;&#x9700;&#x6C42;&#xFF0C;&#x5B9A;&#x4E49;&#x8BA1;&#x7B97;&#x673A;&#x7CFB;&#x7EDF;&#x5185;&#x6784;&#x67B6;&#xFF0C;&#x6A21;&#x5757;&#xFF0C;&#x63A5;&#x53E3;&#x548C;&#x6570;&#x636E;&#x7684;&#x8FC7;&#x7A0B;&#x3002;&#x8FD9;&#x662F;&#x6BCF;&#x4E00;&#x4E2A;&#x540E;&#x7AEF;&#x6216;&#x8005;&#x5168;&#x6808;&#x5DE5;&#x7A0B;&#x5E08;&#x7684;&#x5FC5;&#x4FEE;&#x8BFE;&#xFF0C;&#x968F;&#x7740;&#x5DE5;&#x4F5C;&#x5E74;&#x9650;&#x7684;&#x589E;&#x957F;&#x548C;&#x9879;&#x76EE;&#x7684;&#x6269;&#x5927;&#xFF0C;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x5728;&#x65E5;&#x5E38;&#x5DE5;&#x4F5C;&#x7684;&#x91CD;&#x8981;&#x6027;&#x4F1A;&#x4E0D;&#x65AD;&#x589E;&#x52A0;&#x3002;</p><p>&#x5982;&#x679C;&#x4F60;&#x60F3;&#x8DDF;&#x7F57;&#x8F91;&#x4E00;&#x8D77;&#x66F4;&#x6DF1;&#x5165;&#x5730;&#x5B66;&#x4E60;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#xFF0C;&#x6709;&#x5174;&#x8DA3;&#x7684;&#x540C;&#x5B66;&#x62A5;&#x540D;&#x53C2;&#x52A0;&#x7231;&#x601D;&#x5907;&#x53D7;&#x597D;&#x8BC4;&#x7684;<a href="https://blog.acecodeinterview.com/system-design-class/">&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425;</a>&#x4EE5;&#x53CA;<a href="https://blog.acecodeinterview.com/mock_interview/">&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6A21;&#x62DF;&#x9762;&#x8BD5;</a>&#xFF0C;&#x7531;&#x4F5C;&#x8005;&#x672C;&#x4EBA;&#x4E3A;&#x540C;&#x5B66;&#x4EEC;&#x6559;&#x5B66;&#xFF0C;&#x529B;&#x6C42;&#x7ED9;&#x5927;&#x5BB6;&#x5E26;&#x6765;&#x6700;&#x6DF1;&#x5165;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9AD8;&#x9891;&#x9898;&#x8BB2;&#x89E3;&#x4EE5;&#x53CA;&#x6700;&#x9488;&#x5BF9;&#x9762;&#x8BD5;&#x5B9E;&#x6218;&#x7684;&#x6280;&#x5DE7;&#x89E3;&#x6790;&#xFF0C;&#x5E2E;&#x52A9;&#x540C;&#x5B66;&#x4EEC;&#x4E3E;&#x4E00;&#x53CD;&#x4E09;&#xFF0C;&#x9AD8;&#x6548;&#x51C6;&#x5907;&#x9762;&#x8BD5;&#x3002;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.acecodeinterview.com/system-design-class/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425;&#x300C;&#x514D;&#x8D39;&#x8BD5;&#x542C;&#x300D;</div><div class="kg-bookmark-description">&#x5168;&#x7F51;&#x552F;&#x4E00;&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x7EA7;&#x6DF1;&#x5EA6;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x96C6;&#x8BAD;&#x8425;&#x514D;&#x8D39;&#x8BD5;&#x542C;&#x8BFE;&#x5C06;&#x4E8E;&#x7F8E;&#x897F;&#x65F6;&#x95F4; 4/22/2022 6:30pm &#x5F00;&#x8BB2;&#x3002;&#x8BD5;&#x542C;&#x8BFE;&#x8986;&#x76D6;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x8003;&#x5BDF;&#x8981;&#x70B9;&#xFF0C;&#x7B54;&#x9898;&#x6A21;&#x677F;&#x4EE5;&#x53CA; Whatsapp &#x7CBE;&#x89E3;&#x3002;&#x5B8C;&#x6574;&#x8BFE;&#x7A0B;&#x5171;32&#x8BFE;&#x65F6;&#xFF0C;&#x65E8;&#x5728;&#x57F9;&#x517B;&#x624E;&#x5B9E;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x80FD;&#x529B;&#x3002;&#x6DF1;&#x6316;20&#x9053;&#x5E38;&#x89C1;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9762;&#x8BD5;&#x539F;&#x9898;&#xFF0C;&#x63D0;&#x70BC;&#x9762;&#x8BD5;&#x7B54;&#x9898;&#x6280;&#x5DE7;&#xFF0C;&#x8BE6;&#x89E3;&#x8BBE;&#x8BA1;&#x56FE;&#x7EC4;&#x4EF6;&#xFF0C;&#x603B;&#x7ED3;&#x5206;&#x5E03;&#x5F0F;&#x7CFB;&#x7EDF;&#x77E5;&#x8BC6;&#x3002;&#x6709;&#x6548;&#x5E2E;&#x4F60;&#x878D;&#x4F1A;&#x8D2F;&#x901A;&#xFF0C;&#x589E;&#x52A0;&#x4F60;&#x7684;&#x7B54;&#x9898;&#x6DF1;&#x5EA6;&#x5E7F;&#x5EA6;&#xFF0C;&#x8BA9;&#x4F60;&#x80FD;&#x591F;&#x4E3E;&#x4E00;&#x53CD;&#x4E09;&#xFF0C;&#x4ECE;&#x5BB9;&#x9762;&#x5BF9;&#x9762;&#x8BD5;&#x5B98;&#x7684;&#x8FFD;&#x95EE;&#x4EE5;&#x53CA;&#x65B0;&#x9898;&#x3002;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.acecodeinterview.com/favicon.png" alt="&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x773C;&#x4E2D;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;"><span class="kg-bookmark-author">&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;</span><span class="kg-bookmark-publisher">&#x7F57;&#x8F91;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.acecodeinterview.com/content/images/2021/04/system-design-bootcamp.png" alt="&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x773C;&#x4E2D;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.acecodeinterview.com/mock_interview/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x670D;&#x52A1;</div><div class="kg-bookmark-description">&#x7231;&#x601D;&#x521B;&#x59CB;&#x4EBA;&#x7F57;&#x8F91;&#x62E5;&#x6709;&#x8FD1;&#x5341;&#x5E74;&#x7845;&#x8C37;&#x9762;&#x8BD5;&#x5B98;&#x7ECF;&#x9A8C;&#xFF0C;&#x4F5C;&#x4E3A;&#x9762;&#x8BD5;&#x5B98;&#xFF0C;&#x53C2;&#x52A0;&#x771F;&#x5B9E;&#x9762;&#x8BD5;&#x4EE5;&#x53CA;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x5206;&#x522B;&#x8D85;&#x8FC7; 100 &#x573A;&#xFF0C;&#x4E3A;&#x4F60;&#x5E26;&#x6765;&#x6700;&#x771F;&#x5B9E;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x3002;&#x597D;&#x8BC4;&#x7387; 100%&#xFF0C;&#x4E13;&#x4E1A;&#x5E2E;&#x540C;&#x5B66;&#x4EEC;&#x51C6;&#x5907;&#x4E00;&#x7EBF;&#x5927;&#x5382;&#x9762;&#x8BD5;&#xFF0C;&#x5DF2;&#x7ECF;&#x5E2E;&#x52A9;&#x5927;&#x91CF;&#x540C;&#x5B66;&#x62FF;&#x5230;&#x5927;&#x5382; Offer&#x3002;$399&#xFF0C;&#x8D60;&#x9001;&#x672C;&#x7AD9;&#x4E00;&#x5E74;&#x4F1A;&#x5458;&#xFF0C;&#x4EF7;&#x503C; $59.99&#xFF0C;&#x7545;&#x8BFB;&#x72EC;&#x5BB6;&#x9898;&#x89E3;&#xFF0C;&#x7B49;&#x4F60;&#x6765;&#x7EA6;&#xFF01;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.acecodeinterview.com/favicon.png" alt="&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x773C;&#x4E2D;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;"><span class="kg-bookmark-author">&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;</span><span class="kg-bookmark-publisher">&#x7F57;&#x8F91;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.acecodeinterview.com/content/images/2021/03/156467204_2844218152511490_8320630619629669081_n.png" alt="&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;&#x773C;&#x4E2D;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;"></div></a></figure><h2 id="1-">1. &#x4E3A;&#x4EC0;&#x4E48;&#x8981;&#x8003;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9762;&#x8BD5;&#xFF1F;</h2><h3 id="-"><br>&#x5B9E;&#x9645;&#x610F;&#x4E49;&#x5927;</h3><p>&#x8DDF;&#x7B97;&#x6CD5;&#x9762;&#x8BD5;&#x7C7B;&#x4F3C;&#x7684;&#xFF0C;&#x9762;&#x8BD5;&#x5B98;&#x9700;&#x8981;&#x80FD;&#x4ECE;&#x4EBA;&#x7FA4;&#x91CC;&#x5206;&#x8FA8;&#x51FA;&#x8C01;&#x66F4;&#x9002;&#x5408;&#x6240;&#x62DB;&#x8058;&#x7684;&#x804C;&#x4F4D;&#x3002;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x4F5C;&#x4E3A;&#x65E5;&#x5E38;&#x5DE5;&#x4F5C;&#x4E2D;&#x4F1A;&#x7ECF;&#x5E38;&#x7528;&#x5230;&#x7684;&#x80FD;&#x529B;&#xFF0C;&#x5728;&#x8003;&#x5BDF;&#x4E2D;&#x6709;&#x5F88;&#x5F3A;&#x7684;&#x73B0;&#x5B9E;&#x610F;&#x4E49;&#x3002;&#x53EF;&#x4EE5;&#x60F3;&#x8C61;&#xFF0C;&#x5982;&#x679C;&#x4E00;&#x4E2A;&#x7EC4;&#x91CC;&#x9700;&#x8981;&#x627E;&#x8D44;&#x6DF1;&#x5DE5;&#x7A0B;&#x5E08;&#x6765;&#x5E2E;&#x52A9;&#x5347;&#x7EA7;&#x670D;&#x52A1;&#x7684;&#x6784;&#x67B6;&#xFF0C;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x80FD;&#x529B;&#x4F1A;&#x51B3;&#x5B9A;&#x5C97;&#x4F4D;&#x7684;&#x5F52;&#x5C5E;&#x3002;</p><h3 id="--1">&#x533A;&#x5206;&#x5EA6;&#x9AD8;</h3><p>&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9762;&#x8BD5;&#x53EF;&#x4EE5;&#x770B;&#x51FA;&#x53D7;&#x8BD5;&#x4EBA;&#x5BF9;&#x95EE;&#x9898;&#x591A;&#x65B9;&#x9762;&#x7684;&#x7406;&#x89E3;&#xFF0C;&#x4E0D;&#x540C;&#x6C34;&#x5E73;&#x7684;&#x53D7;&#x8BD5;&#x4EBA;&#x5BF9;&#x4E8E;&#x95EE;&#x9898;&#x7684;&#x5E7F;&#x5EA6;&#x548C;&#x6DF1;&#x5EA6;&#x4F1A;&#x6709;&#x5F88;&#x5927;&#x5DEE;&#x5F02;&#xFF0C;&#x5F88;&#x5927;&#x7A0B;&#x5EA6;&#x4E0A;&#x5E2E;&#x52A9;&#x9762;&#x8BD5;&#x5B98;&#x4E86;&#x89E3;&#x53D7;&#x8BD5;&#x4EBA;&#x7684;&#x80FD;&#x529B;&#x4EE5;&#x53CA;&#x786E;&#x5B9A;&#x672A;&#x6765;&#x804C;&#x4F4D;&#x7684;&#x7EA7;&#x522B;&#x3002;</p><h2 id="2-">2. &#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x8003;&#x4EC0;&#x4E48;&#xFF1F;</h2><p></p><ul><li><strong>&#x4EA4;&#x6D41;&#x6C9F;&#x901A;&#x548C;&#x7406;&#x89E3;&#x80FD;&#x529B;</strong> - &#x8DDF;&#x9762;&#x8BD5;&#x5B98;&#x5145;&#x5206;&#x4EA4;&#x6D41;&#x7406;&#x89E3;&#x6240;&#x8BBE;&#x8BA1;&#x7CFB;&#x7EDF;&#x7684;&#x76EE;&#x6807;&#xFF0C;&#x65B9;&#x4FBF;&#x505A;&#x8BBE;&#x8BA1;&#x4E2D;&#x7684;tradeoff&#xFF0C;&#x5728;&#x5382;&#x91CC;&#x5E72;&#x8FC7;&#x7684;&#x5C31;&#x77E5;&#x9053;&#x65E5;&#x5E38;&#x5DE5;&#x4F5C;&#x4E2D;&#x8FD9;&#x4E2A;&#x975E;&#x5E38;&#x91CD;&#x8981;</li><li><strong>&#x8BBE;&#x8BA1;&#x548C;&#x67B6;&#x6784;&#x80FD;&#x529B;</strong> - &#x5F88;&#x591A;&#x6211;&#x89C1;&#x8FC7;&#x7684;&#x9762;&#x8BD5;&#x8005;&#x90FD;&#x53EA;&#x6CE8;&#x91CD;&#x5728;&#x8FD9;&#x5757;&#x800C;&#x5FFD;&#x7565;&#x4E86;&#x5176;&#x4ED6;&#xFF0C;&#x5F88;&#x53EF;&#x60DC;</li><li><strong>&#x6269;&#x5C55;&#x6027; (Scalability)&#xFF0C;&#x5BB9;&#x9519;&#x6027;&#xFF0C;&#x5EF6;&#x8FDF;&#x8981;&#x6C42;</strong> - &#x8DDF;Operation&#x76F8;&#x5173;&#x7684;&#x8981;&#x6C42;&#xFF0C;&#x5982;&#x4ECA;Dev&#x548C;Ops&#x4E0D;&#x5206;&#x5BB6;&#xFF0C;&#x5E0C;&#x671B;&#x9762;&#x8BD5;&#x8005;&#x4E86;&#x89E3;&#x7CFB;&#x7EDF;&#x4ECA;&#x540E;&#x80FD;&#x5982;&#x4F55;&#x6269;&#x5C55;&#xFF0C;&#x6613;&#x4E8E;maintain</li><li><strong>&#x8D44;&#x6E90;&#x9700;&#x6C42;</strong> - &#x5BF9;&#x4E8E;&#x6211;&#x4EEC;&#x6240;&#x8981;&#x6C42;&#x7684;QPS&#x548C;latency&#xFF0C;&#x9700;&#x8981;&#x591A;&#x5C11;&#x53F0;&#x673A;&#x5668;&#xFF0C;&#x5176;&#x4E2D;CPU, &#x5185;&#x5B58;&#xFF0C;&#x786C;&#x76D8;&#x7B49;&#x8D44;&#x6E90;&#x90FD;&#x662F;&#x5982;&#x4F55;&#x914D;&#x7F6E;</li></ul><p>&#x5F53;&#x7136;&#xFF0C;&#x4EE5;&#x4E0A;&#x56DB;&#x70B9;&#xFF0C;&#x6839;&#x636E;&#x540C;&#x5B66;&#x4EEC;&#x7684;&#x5B9E;&#x9645;&#x60C5;&#x51B5;&#xFF0C;&#x5E76;&#x4E0D;&#x7528;&#x5728;&#x6BCF;&#x4E00;&#x70B9;&#x4E0A;&#x90FD;&#x7ED9;&#x51FA;&#x5B8C;&#x6574;&#x7684;&#x56DE;&#x7B54;&#xFF0C;&#x9762;&#x8BD5;&#x5B98;&#x4F1A;&#x5728;&#x9762;&#x8BD5;&#x8FC7;&#x7A0B;&#x4E2D;&#x6307;&#x51FA;&#x6DF1;&#x6316;&#x7684;&#x65B9;&#x5411;&#xFF0C;&#x6709;&#x53EF;&#x80FD;&#x662F;&#x6839;&#x636E;&#x540C;&#x5B66;&#x7684;&#x4E13;&#x4E1A;&#x6216;&#x8005;&#x804C;&#x4E1A;&#x80CC;&#x666F;&#xFF0C;&#x6709;&#x53EF;&#x80FD;&#x662F;&#x6839;&#x636E;&#x6240;&#x9762;&#x8BD5;&#x7684;&#x5C97;&#x4F4D;&#xFF0C;&#x6709;&#x53EF;&#x80FD;&#x662F;&#x6839;&#x636E;&#x9762;&#x8BD5;&#x4E2D;&#x540C;&#x5B66;&#x63D0;&#x5230;&#x7684;&#x4ED6;&#x719F;&#x6089;&#x7684;&#x6280;&#x672F;&#x3002;</p><h2 id="3-">3. &#x600E;&#x6837;&#x7B54;&#x597D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9898;&#xFF1F;</h2><p></p><p>&#x5728;&#x9762;&#x8BD5;&#x751F;&#x6DAF;&#x4E2D;&#xFF0C;&#x89C1;&#x8FC7;&#x7684;&#x6700;&#x4F18;&#x79C0;&#x7684;&#x9762;&#x8BD5;&#x8005;&#x6BD4;&#x6211;&#x7684;&#x7EA7;&#x522B;&#x8981;&#x9AD8;&#xFF0C;&#x8BA9;&#x6211;&#x5370;&#x8C61;&#x975E;&#x5E38;&#x6DF1;&#x523B;&#xFF0C;&#x56DB;&#x4E2A;&#x5B57;&#xFF0C;&#x6DF1;&#x4E0D;&#x89C1;&#x5E95;&#x3002;</p><p>&#x9762;&#x8BD5;&#x7684;&#x524D;&#x534A;&#x6BB5;&#xFF0C;&#x9762;&#x8BD5;&#x5B98;&#x4F1A;&#x5148;&#x4ECE;&#x5E7F;&#x5EA6;&#x4E0B;&#x624B;&#xFF0C;&#x8981;&#x6C42;&#x53D7;&#x8BD5;&#x8005;&#x5BF9;&#x9898;&#x76EE;&#x7684;&#x5927;&#x6846;&#x67B6;&#x7ED9;&#x51FA;&#x4E00;&#x4E2A;&#x5B8C;&#x6574;&#x7684;&#x6B63;&#x786E;&#x7684;&#x89E3;&#x6CD5;&#x3002;&#x5982;&#x679C;&#x53D7;&#x8BD5;&#x8005;&#x7ED9;&#x51FA;&#x4E86;&#x8DB3;&#x591F;&#x597D;&#x7684;&#x89E3;&#x6CD5;&#xFF0C;&#x90A3;&#x4E48;&#x9762;&#x8BD5;&#x5B98;&#x4F1A;&#x4ECE;&#x53D7;&#x8BD5;&#x8005;&#x7684;&#x63D0;&#x8FC7;&#x7684;&#x67D0;&#x4E00;&#x4E2A;&#x7EC6;&#x90E8;&#x8FDB;&#x884C;&#x6DF1;&#x6316;&#xFF0C;&#x53EF;&#x80FD;&#x662F;&#x6DF1;&#x6316;scalability&#xFF0C;&#x53EF;&#x80FD;&#x662F;&#x6539;&#x53D8;&#x4E00;&#x4E2A;&#x9700;&#x6C42;&#x8981;&#x6C42;&#x91CD;&#x65B0;&#x505A;tradeoff&#xFF0C;&#x53EF;&#x80FD;&#x662F;&#x67D0;&#x4E00;&#x4E2A;service&#x7684;&#x7EC6;&#x8282;&#x8BBE;&#x8BA1;&#x3002;&#x56E0;&#x4E3A;&#x5176;&#x4E2D;&#x7684;&#x7EC6;&#x8282;&#x8DB3;&#x591F;&#x591A;&#xFF0C;&#x53D7;&#x8BD5;&#x8005;&#x4E00;&#x822C;&#x5F88;&#x96BE;&#x51C6;&#x5907;&#x5F97;&#x9762;&#x9762;&#x4FF1;&#x5230;&#xFF0C;&#x9762;&#x8BD5;&#x5B98;&#x53EF;&#x4EE5;&#x6BD4;&#x8F83;&#x6E05;&#x695A;&#x7684;&#x753B;&#x51FA;&#x53D7;&#x8BD5;&#x8005;&#x7684;&#x80FD;&#x529B;&#x8FB9;&#x754C;&#x3002;&#x524D;&#x9762;&#x63D0;&#x5230;&#x7684;&#x8FD9;&#x4E2A;&#x53D7;&#x8BD5;&#x8005;&#x4E4B;&#x6240;&#x4EE5;&#x8BA9;&#x6211;&#x611F;&#x5230;&#x6DF1;&#x4E0D;&#x89C1;&#x5E95;&#xFF0C;&#x662F;&#x56E0;&#x4E3A;&#x6211;&#x624D;&#x758F;&#x5B66;&#x6D45;&#xFF0C;&#x753B;&#x4E0D;&#x51FA;&#x4ED6;&#x7684;&#x80FD;&#x529B;&#x8FB9;&#x754C;&#xFF0C;&#x4E0D;&#x5F97;&#x4E0D;&#x8D5E;&#x53F9;&#x5927;&#x795E;&#xFF0C;&#x5728;debrief&#x4E2D;&#x597D;&#x597D;&#x819C;&#x62DC;&#x4E86;&#x4E00;&#x756A;&#x3002; &#x8BF4;&#x4E86;&#x8FD9;&#x4E48;&#x591A;&#xFF0C;&#x8FD8;&#x662F;&#x60F3;&#x8BF4;&#x5E73;&#x65F6;&#x7684;&#x79EF;&#x7D2F;&#x5F88;&#x91CD;&#x8981;&#xFF0C;&#x9762;&#x8BD5;&#x901F;&#x6210;&#x80FD;&#x591F;&#x8BA9;&#x4F60;&#x5728;&#x5E7F;&#x5EA6;&#x4E0A;&#x505A;&#x7684;&#x5F88;&#x597D;&#xFF0C;&#x6DF1;&#x5EA6;&#x65B9;&#x9762;&#x8FD8;&#x662F;&#x8981;&#x591A;&#x82B1;&#x65F6;&#x95F4;&#x5B66;&#x4E60;&#x3002;</p><p>&#x8BB2;&#x5B8C;&#x4E86;&#x5E9F;&#x8BDD;&#xFF0C;&#x8BB2;&#x4E00;&#x4E9B;&#x53EF;&#x4EE5;&#x64CD;&#x4F5C;&#x6027;&#x5F3A;&#x7684;&#xFF0C;&#x6211;&#x4EEC;&#x7ED3;&#x5408;&#x8003;&#x5BDF;&#x5185;&#x5BB9;&#xFF0C;&#x5BF9;&#x4F18;&#x79C0;&#x56DE;&#x7B54;&#x7684;&#x7279;&#x5F81;&#x505A;&#x8FDB;&#x4E00;&#x6B65;&#x8868;&#x8FF0;&#x3002;</p><h3 id="--2">&#x4EA4;&#x6D41;&#x6C9F;&#x901A;&#x548C;&#x7406;&#x89E3;&#x80FD;&#x529B;</h3><ul><li>&#x8BE2;&#x95EE;&#x7CFB;&#x7EDF;&#x7684;&#x5546;&#x4E1A;&#x76EE;&#x7684; - &#x5EFA;&#x8FD9;&#x4E2A;&#x7CFB;&#x7EDF;&#x662F;&#x4E3A;&#x4E86;&#x89E3;&#x51B3;&#x4EC0;&#x4E48;&#x95EE;&#x9898;&#x3002;&#x76F8;&#x5173;&#x7684;&#x95EE;&#x9898;&#x6BD4;&#x5982;&#x8FD9;&#x4E2A;&#x670D;&#x52A1;&#x7684;&#x53D7;&#x4F17;&#x6709;&#x4EC0;&#x4E48;&#x7279;&#x70B9;&#xFF0C;&#x662F;&#x5546;&#x4E1A;&#x7528;&#x6237;&#x8FD8;&#x662F;&#x4E2A;&#x4EBA;&#x7528;&#x6237;&#x3002;&#x5F88;&#x591A;&#x65F6;&#x5019;&#x95EE;&#x4E0D;&#x95EE;&#x8FD9;&#x4E2A;&#x95EE;&#x9898;&#x5C31;&#x80FD;&#x770B;&#x51FA;Senior&#x7684;&#x7A0B;&#x5EA6;&#x3002;</li><li>&#x8BE2;&#x95EE;&#x529F;&#x80FD;&#x6027;&#x9700;&#x6C42; (functional requirement) - &#x5305;&#x542B;&#x54EA;&#x4E9B;&#x5B50;&#x529F;&#x80FD;&#x3002;</li><li>&#x786E;&#x5B9A;&#x975E;&#x529F;&#x80FD;&#x6027;&#x9700;&#x6C42; (non-functional requirement) - &#x6211;&#x4EEC;&#x8981;&#x603B;&#x7ED3;&#x8BF4;&#x6211;&#x4EEC;&#x5728;&#x9762;&#x8BD5;&#x7ED3;&#x675F;&#x524D;&#x6211;&#x4EEC;&#x7684;&#x8BBE;&#x8BA1;&#x8981;&#x8FBE;&#x5230;&#x4EC0;&#x4E48;QPS&#xFF0C;latency&#x6216;&#x8005;availability&#x6307;&#x6807;&#x3002;&#x5199;&#x4E0B;&#x6765;&#x5E76;&#x8DDF;&#x9762;&#x8BD5;&#x5B98;&#x786E;&#x8BA4;&#x3002;&#x5982;&#x679C;&#x8FD9;&#x91CC;&#x7275;&#x6D89;&#x5230;&#x4E00;&#x4E9B;ballpark calculation&#xFF0C;&#x8DDF;&#x9762;&#x8BD5;&#x5B98;&#x786E;&#x8BA4;&#x662F;&#x4E0D;&#x662F;&#x9700;&#x8981;&#x7B97;&#x3002;</li><li>&#x6574;&#x573A;&#x9762;&#x8BD5;&#x8FC7;&#x7A0B;&#x4E2D;&#x8DDF;&#x7740;&#x9762;&#x8BD5;&#x5B98;&#x7684;&#x5F15;&#x5BFC;&#x8D70;- &#x6709;&#x7684;&#x540C;&#x5B66;&#x770B;&#x5230;&#x51C6;&#x5907;&#x8FC7;&#x7684;&#x9898;&#x5C31;&#x5F88;&#x5174;&#x594B;&#xFF0C;&#x6587;&#x601D;&#x6CC9;&#x6D8C;&#x9762;&#x8BD5;&#x5B98;&#x90FD;&#x62C9;&#x4E0D;&#x4F4F;&#xFF0C;&#x4F1A;&#x8BA9;&#x4EBA;&#x89C9;&#x5F97;&#x7406;&#x89E3;&#x80FD;&#x529B;&#x4E0D;&#x8DB3;</li></ul><h3 id="--3">&#x8BBE;&#x8BA1;&#x548C;&#x67B6;&#x6784;&#x80FD;&#x529B;</h3><p>&#x8FD9;&#x662F;&#x6B63;&#x5E38;&#x9762;&#x8BD5;&#x7684;&#x6838;&#x5FC3;&#x90E8;&#x5206;&#xFF0C;&#x975E;&#x5E38;&#x91CD;&#x8981;&#xFF0C;&#x662F;&#x9762;&#x8BD5;&#x901A;&#x8FC7;&#x7684;&#x57FA;&#x7840;&#xFF0C;&#x5176;&#x4E2D;deep dive&#x975E;&#x5E38;&#x8003;&#x9A8C;&#x771F;&#x5B9E;&#x6C34;&#x5E73;&#x3002;&#x8BA8;&#x8BBA;&#x8FC7;&#x7A0B;&#x4E2D;&#x8BB0;&#x4F4F;&#x8981;&#x4FDD;&#x8BC1;&#x8BBE;&#x8BA1;&#x7684;&#x5B8C;&#x6574;&#x6027;&#xFF0C;&#x6B63;&#x786E;&#x6027;&#x4EE5;&#x53CA;&#x53D6;&#x820D;&#x7684;&#x5145;&#x5206;&#x6C9F;&#x901A;&#x3002;&#x7B54;&#x9898;&#x70B9;&#x4E3B;&#x8981;&#x5206;&#x6210;&#x4EE5;&#x4E0B;&#x4E94;&#x5927;&#x5757;&#x3002;</p><ul><li>High-level diagram</li><li>&#x6570;&#x636E;&#x7ED3;&#x6784;&#x4E0E;&#x5B58;&#x50A8;</li><li>&#x6838;&#x5FC3;&#x5B50;&#x670D;&#x52A1;&#x8BBE;&#x8BA1;</li><li>&#x63A5;&#x53E3;&#x8BBE;&#x8BA1;</li><li>&#x4E13;&#x9898; deep dive</li></ul><h3 id="--4">&#x6269;&#x5C55;&#x6027;&#xFF0C;&#x5BB9;&#x9519;&#x6027;&#xFF0C;&#x5EF6;&#x8FDF;&#x8981;&#x6C42;</h3><ul><li>&#x786E;&#x8BA4;&#x7CFB;&#x7EDF;&#x5728;&#x4EE5;&#x4E0A;&#x4E09;&#x70B9; Scalability, Fault Tolerance, Latency Requirement&#x662F;&#x5426;&#x7B26;&#x5408;&#x5148;&#x524D;&#x5B9A;&#x4E0B;&#x7684;&#x9700;&#x6C42;&#x3002;</li><li>&#x6839;&#x636E;&#x9700;&#x6C42;&#x8FDB;&#x884C;&#x6539;&#x8FDB;&#xFF08;&#x63A8;&#x8350;&#x5728;&#x7B2C;&#x4E00;&#x8F6E;&#x8BBE;&#x8BA1;&#x4E2D;&#x5148;&#x4E0D;&#x8003;&#x8651;&#x8FD9;&#x91CC;&#x7684;&#x4E09;&#x70B9;&#xFF0C;&#x5148;&#x62FF;&#x4E0B;&#x8BBE;&#x8BA1;&#x548C;&#x67B6;&#x6784;&#x80FD;&#x529B;&#x7684;&#x5206;&#x6570;&#xFF0C;&#x518D;&#x505A;&#x6539;&#x8FDB;&#xFF09;</li><li>Log&#xFF0C;monitor and alert on key metric (&#x7CFB;&#x7EDF;&#x6295;&#x5165;&#x4F7F;&#x7528;&#x524D;&#xFF0C;&#x628A;&#x975E;&#x529F;&#x80FD;&#x6027;&#x9700;&#x6C42;&#x548C;&#x5B83;&#x7684;leading indicator&#x786E;&#x5B9A;&#x4E0B;&#x6765;&#x5E76;&#x4E14;&#x505A;&#x597D;&#x76D1;&#x63A7;&#xFF09;</li></ul><h3 id="-optional-">&#x8D44;&#x6E90;&#x4F30;&#x7B97;&#xFF08;optional&#xFF09;</h3><p>&#x4F30;&#x7B97;&#x975E;&#x529F;&#x80FD;&#x6027;&#x9700;&#x6C42;&#xFF0C;&#x8BA1;&#x7B97;&#x9700;&#x8981;&#x591A;&#x5C11;&#x53F0;&#x673A;&#x5668;&#xFF0C;&#x9700;&#x8981;&#x591A;&#x5C11;&#x5185;&#x5B58;&#xFF0C;&#x786C;&#x76D8;&#xFF0C;&#x5E26;&#x5BBD;&#x548C;CPU&#x7684;&#x80FD;&#x529B;&#xFF0C;&#x91CF;&#x7EA7;&#x6B63;&#x786E;&#x5373;&#x53EF;&#xFF08;back of envelope calculation)&#x3002;</p><p></p><h2 id="5-">5. &#x7B54;&#x9898;&#x6D41;&#x7A0B; + &#x65F6;&#x95F4;&#x5206;&#x914D;</h2><p></p><p>&#x9762;&#x8BD5;&#x4E2D;&#x5E38;&#x89C1;&#x7684;&#x9519;&#x8BEF;&#x662F;&#x7B54;&#x9898;&#x6D41;&#x7A0B;&#x677E;&#x6563;&#xFF0C;&#x5728;&#x4E0D;&#x5FC5;&#x8981;&#x7684;&#x8BDD;&#x9898;&#x4E0A;&#x6D6A;&#x8D39;&#x65F6;&#x95F4;&#x3002;&#x6211;&#x89C1;&#x8FC7;&#x4E0D;&#x8BA1;&#x5176;&#x6570;&#x7684;&#x53D7;&#x8BD5;&#x8005;&#x7EA0;&#x7ED3;&#x4E8E;&#x4E00;&#x4E2A;&#x7279;&#x5B9A;&#x8BDD;&#x9898;&#x5BFC;&#x81F4;&#x6CA1;&#x6709;&#x65F6;&#x95F4;&#x5B8C;&#x6210;&#x9762;&#x8BD5;&#x7684;&#x4E3B;&#x4F53;&#x90E8;&#x5206;&#x3002;&#x6211;&#x4EEC;&#x6765;&#x770B;&#x770B;&#x600E;&#x4E48;&#x907F;&#x514D;&#x8FD9;&#x7C7B;&#x9519;&#x8BEF;&#x3002;</p><p>&#x5F62;&#x6210;&#x56FA;&#x5B9A;&#x7684;&#x7B54;&#x9898;&#x6D41;&#x7A0B;&#x7684;&#x4F5C;&#x7528;&#x6709;&#x4E8C;&#x3002;&#x4E00;&#x662F;&#x5F15;&#x5BFC;&#x9762;&#x8BD5;&#x5B98;&#x8FDB;&#x5165;&#x4F60;&#x7684;&#x7B54;&#x9898;&#x6846;&#x67B6;&#xFF0C;&#x4E8C;&#x662F;&#x7528;&#x56FA;&#x5B9A;&#x7684;&#x6D41;&#x7A0B;&#x4FDD;&#x8BC1;&#x4E0D;&#x6F0F;&#x8FC7;&#x91CD;&#x8981;&#x7684;&#x5F97;&#x5206;&#x70B9;&#x3002;</p><h3 id="--5">&#x5F15;&#x5BFC;&#x9762;&#x8BD5;&#x5B98;</h3><p>&#x867D;&#x7136;&#x9762;&#x8BD5;&#x5B98;&#x5728;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9762;&#x8BD5;&#x4E2D;&#x6709;&#x6BD4;&#x7B97;&#x6CD5;&#x9762;&#x8BD5;&#x66F4;&#x5F3A;&#x7684;&#x5F15;&#x5BFC;&#x7684;&#x8D23;&#x4EFB;&#xFF0C;&#x4F46;&#x662F;&#x5F15;&#x5BFC;&#x7684;&#x884C;&#x4E3A;&#x53EA;&#x6709;&#x5728;&#x9700;&#x8981;&#x7684;&#x65F6;&#x5019;&#x624D;&#x4F1A;&#x53D1;&#x751F;&#x3002;&#x5982;&#x679C;&#x4E00;&#x573A;&#x9762;&#x8BD5;&#x4E2D;&#xFF0C;&#x603B;&#x662F;&#x53D7;&#x8BD5;&#x8005;&#x63D0;&#x95EE;&#xFF0C;&#x9762;&#x8BD5;&#x5B98;&#x56DE;&#x7B54;&#xFF0C;&#x53D7;&#x8BD5;&#x8005;&#x6ED4;&#x6ED4;&#x4E0D;&#x7EDD;&#x5730;&#x8BB2;&#xFF0C;&#x9762;&#x8BD5;&#x5B98;&#x8FDE;&#x8FDE;&#x70B9;&#x5934;&#xFF0C;&#x753B;&#x9762;&#x662F;&#x4E0D;&#x662F;&#x5F88;&#x7F8E;&#xFF1F;&#x867D;&#x8BF4;&#x524D;&#x9762;&#x7684;&#x60C5;&#x666F;&#x5F88;&#x7406;&#x60F3;&#x5316;&#xFF0C;&#x4F46;&#x662F;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x80FD;&#x5F88;&#x597D;&#x5730;&#x628A;&#x9762;&#x8BD5;&#x5B98;&#x60F3;&#x8E29;&#x5230;&#x7684;&#x70B9;&#x6309;&#x4E00;&#x4E2A;&#x5927;&#x6982;&#x7684;&#x987A;&#x5E8F;&#x53BB;&#x8E29;&#x5230;&#xFF0C;&#x4E0D;&#x4EC5;&#x9762;&#x8BD5;&#x5B98;&#x4F1A;&#x66F4;&#x5C11;&#x5730;&#x6253;&#x65AD;&#x53D7;&#x8BD5;&#x8005;&#x7684;&#x601D;&#x7EF4;&#xFF0C;&#x800C;&#x4E14;&#x9762;&#x8BD5;&#x5B98;&#x4E5F;&#x4F1A;&#x5728;&#x9762;&#x8BD5;&#x4E2D;&#x5F88;&#x7701;&#x529B;&#x7ED9;&#x4F60;&#x4E2A;&#x597D;&#x5370;&#x8C61;&#x3002;&#x5F53;&#x7136;&#xFF0C;&#x5982;&#x679C;&#x5F15;&#x5BFC;&#x53D1;&#x751F;&#x4E86;&#xFF0C;&#x90A3;&#x4E48;&#x4E00;&#x5B9A;&#x8981;&#x6839;&#x636E;&#x5F15;&#x5BFC;&#x6765;&#x601D;&#x7EF4;&#x3002;</p><h3 id="--6">&#x7B54;&#x9898;&#x6D41;&#x7A0B;</h3><p>&#x4EE5;40&#x5206;&#x949F;&#x7684;&#x9762;&#x8BD5;&#x65F6;&#x95F4;&#x6765;&#x7B97;&#xFF08;&#x6390;&#x5934;&#x53BB;&#x5C3E;&#x9664;&#x53BB;&#x81EA;&#x6211;&#x4ECB;&#x7ECD;&#x95EE;&#x95EE;&#x9898;&#xFF09;&#xFF0C;&#x6211;&#x9762;&#x8BD5;&#x7684;&#x5927;&#x6982;&#x6D41;&#x7A0B;&#x5982;&#x4E0B;&#x3002;</p><ul><li>&#x3010;3&#x5206;&#x949F;&#x3011;&#x7406;&#x89E3;&#x9700;&#x6C42; &#xFF08;&#x8BE2;&#x95EE;&#x7CFB;&#x7EDF;&#x7684;&#x5546;&#x4E1A;&#x76EE;&#x7684; + &#x8BE2;&#x95EE;&#x7CFB;&#x7EDF;&#x7684;&#x529F;&#x80FD;&#x548C;&#x6280;&#x672F;&#x9700;&#x6C42; + &#x5B9A;&#x4E49;&#x6210;&#x529F;&#xFF09;</li><li>&#x3010;0-5&#x5206;&#x949F;&#x3011;&#x8D44;&#x6E90;&#x4F30;&#x7B97;&#xFF08;optional)&#xFF08;&#x8BA1;&#x7B97;&#x9700;&#x8981;&#x591A;&#x5C11;&#x53F0;&#x673A;&#x5668;&#xFF0C;&#x9700;&#x8981;&#x591A;&#x5C11;&#x5185;&#x5B58;&#x786C;&#x76D8;&#x548C;CPU&#x7684;&#x80FD;&#x529B;&#xFF09;</li><li>&#x3010;5&#x5206;&#x949F;&#x3011;High-level diagram</li><li>&#x3010;5&#x5206;&#x949F;&#x3011;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x4E0E;&#x5B58;&#x50A8;</li><li>&#x3010;10&#x5206;&#x949F;&#x3011;&#x6838;&#x5FC3;&#x5B50;&#x670D;&#x52A1;&#x8BBE;&#x8BA1;</li><li>&#x3010;5&#x5206;&#x949F;&#x3011;&#x63A5;&#x53E3;&#x8BBE;&#x8BA1;</li><li>&#x3010;5&#x5206;&#x949F;&#x3011;&#x6269;&#x5C55;&#x6027;&#xFF0C;&#x5BB9;&#x9519;&#x6027;&#xFF0C;&#x5EF6;&#x8FDF;&#x8981;&#x6C42;</li><li>&#x3010;2-7&#x5206;&#x949F;&#x3011;&#x4E13;&#x9898; deep dive</li></ul><p>&#x6CE8;&#x610F;&#x51E0;&#x70B9;&#xFF0C;4&#xFF0C;5&#xFF0C;6&#x987A;&#x5E8F;&#x6CA1;&#x592A;&#x5927;&#x5173;&#x7CFB;&#x3002;8&#x53EF;&#x4EE5;&#x8003;&#x8651;&#x6210;&#x989D;&#x5916;&#x5206;&#x6570;&#xFF0C;&#x7B54;&#x5BF9;&#x5927;&#x91CF;&#x52A0;&#x5206;&#xFF0C;&#x7B54;&#x9519;&#x5C11;&#x91CF;&#x51CF;&#x5206;&#xFF0C;&#x5982;&#x679C;&#x6CA1;&#x65F6;&#x95F4;&#x4F1A;&#x8DF3;&#x8FC7;&#xFF0C;&#x4E5F;&#x662F;&#x5C11;&#x91CF;&#x51CF;&#x5206;&#x3002;</p><p>&#x770B;&#x5B8C;&#x8FD9;&#x4E2A;&#x6D41;&#x7A0B;&#x662F;&#x4E0D;&#x662F;&#x611F;&#x89C9;&#x5206;&#x79D2;&#x5FC5;&#x4E89;&#xFF0C;&#x8981;&#x8E29;&#x7684;&#x70B9;&#x5F88;&#x591A;&#xFF0C;&#x6CA1;&#x6709;&#x65F6;&#x95F4;&#x6D6A;&#x8D39;&#x3002;&#x8FD9;&#x65F6;&#x5019;&#x5982;&#x679C;&#x9762;&#x8BD5;&#x5B98;&#x542C;&#x51FA;&#x6765;&#x67D0;&#x4E00;&#x6B65;&#x9AA4;&#x6709;&#x9519;&#x8BEF;&#xFF0C;&#x5C31;&#x7B97;&#x662F;&#x56DE;&#x5934;&#x6539;&#x5BF9;&#x4E86;&#xFF0C;&#x6D6A;&#x8D39;&#x7684;&#x65F6;&#x95F4;&#x4E5F;&#x4F1A;&#x9020;&#x6210;&#x4E00;&#x4E9B;&#x672C;&#x80FD;&#x8E29;&#x5230;&#x7684;&#x70B9;&#x56E0;&#x4E3A;&#x65F6;&#x95F4;&#x4E0D;&#x8DB3;&#x8E29;&#x4E0D;&#x5230;&#xFF0C;&#x6240;&#x4EE5;&#x5927;&#x5BB6;&#x8FD8;&#x662F;&#x597D;&#x597D;&#x51C6;&#x5907;&#xFF0C;&#x5237;&#x7B97;&#x6CD5;&#x9898;&#x4E4B;&#x4F59;&#x4E5F;&#x628A;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x91CD;&#x89C6;&#x8D77;&#x6765;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[Google Autocomplete 系统设计题解]]></title><description><![CDATA[Autocomplete 又被称作 Typeahead，指用户在搜索框中打字的同时，搜索框进行补全，并给出多个用户可能想搜索的关键词。这个功能使得用户在搜索体验更加顺畅。
Autocomplete 主要考察两条数据流，一是如何收集高频搜索关键词，二是如何实时补全用户打了一半的关键词前缀。]]></description><link>https://blog.acecodeinterview.com/autocomplete/</link><guid isPermaLink="false">5fc8883e1f2a0405d2f03433</guid><category><![CDATA[系统设计文本课]]></category><category><![CDATA[会员专享]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Thu, 03 Dec 2020 06:59:10 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2020/12/0_GksEa-FZFU-cZJC6.jpg" medium="image"/><content:encoded/></item><item><title><![CDATA[Google Doc 系统设计题解]]></title><description><![CDATA[Google Doc 这类的多人在线文档协作系统给我们的日常工作带来很多便利，我们可以很容易地跟同事朋友实时分享并协作编辑文档。
在线文档协作系统在简单的文本编辑器的基础上增加的分享协作功能是我们系统设计的核心。我们需要考虑如何设计服务以及存储，使得多人可以在同时修改文档时，所有人可以得到内容相同的文档。]]></description><link>https://blog.acecodeinterview.com/google_doc/</link><guid isPermaLink="false">5fc0235f1f2a0405d2f0334b</guid><category><![CDATA[系统设计文本课]]></category><category><![CDATA[会员专享]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Thu, 26 Nov 2020 22:15:45 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2020/11/google-doc-art.png" medium="image"/><content:encoded/></item><item><title><![CDATA[实时监控系统题解]]></title><description><![CDATA[实时监控系统是每一个网络服务的刚需，每个后端工程师都多多少少接触和使用过。
这道题主要考察 Streaming Service 的应用，监控系统作为一个 Streaming Service 的经典实例，牵涉到 Streaming Service 上游的 Publisher 和下游的 Consumer 如何合理配置，来实现监控系统所涉及到的种种功能。]]></description><link>https://blog.acecodeinterview.com/realtime_monitoring_service/</link><guid isPermaLink="false">5fae2e8f1f2a0405d2f0323c</guid><category><![CDATA[系统设计文本课]]></category><category><![CDATA[会员专享]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Fri, 13 Nov 2020 07:14:49 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2020/11/realtime-monitoring-cover.jpeg" medium="image"/><content:encoded/></item><item><title><![CDATA[爱思系统设计模拟面试服务]]></title><description><![CDATA[爱思创始人罗辑拥有近十年硅谷面试官经验，作为面试官，参加真实面试以及模拟面试分别超过 100 场，为你带来最真实的系统设计模拟面试。好评率 100%，专业帮同学们准备一线大厂面试，已经帮助大量同学拿到大厂 Offer。$499，赠送本站一年会员，价值 $59.99，畅读独家题解，等你来约！]]></description><link>https://blog.acecodeinterview.com/mock_interview/</link><guid isPermaLink="false">5ed16eab54379413cb924161</guid><category><![CDATA[一对一服务]]></category><category><![CDATA[免费资源]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Fri, 30 Oct 2020 23:25:00 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2021/03/156467204_2844218152511490_8320630619629669081_n.png" medium="image"/><content:encoded><![CDATA[<h2 id="-">&#x7845;&#x8C37;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x670D;&#x52A1; + &#x6DF1;&#x5EA6;&#x53CD;&#x9988;</h2><img src="https://blog.acecodeinterview.com/content/images/2021/03/156467204_2844218152511490_8320630619629669081_n.png" alt="&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x670D;&#x52A1;"><p></p><h3 id="--1">&#x7231;&#x601D;&#x4F5C;&#x8005;&#x7F57;&#x8F91; &#x4EB2;&#x81EA;&#x6559;&#x5B66;</h3><p>&#x7845;&#x8C37;&#x591A;&#x5BB6;&#x9876;&#x5C16;&#x5927;&#x5382;&#x8FD1;&#x5341;&#x5E74;&#x5DE5;&#x4F5C;&#x7ECF;&#x9A8C;&#x8D44;&#x6DF1; Tech Lead&#xFF0C;&#x4F5C;&#x4E3A;&#x9762;&#x8BD5;&#x5B98;&#x8FDB;&#x884C;&#x9762;&#x8BD5;&#x8FD1;&#x767E;&#x573A;&#xFF0C;&#x5BF9;Facebook &#x7B49;&#x5927;&#x5382;&#x9762;&#x8BD5;&#x5957;&#x8DEF;&#x6DF1;&#x6709;&#x4F53;&#x4F1A;&#x3002;&#x4F5C;&#x4E3A;&#x53D7;&#x8BD5;&#x8005;&#x65A9;&#x83B7; FLAGUAP &#x4E2D;&#x7EDD;&#x5927;&#x591A;&#x6570; offer&#x3002;&#x62E5;&#x6709;&#x4E30;&#x5BCC;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x8F85;&#x5BFC;&#x7ECF;&#x9A8C;&#xFF0C;&#x5E2E;&#x52A9;&#x4F17;&#x591A;&#x5B66;&#x751F;&#x65A9;&#x83B7;&#x4E00;&#x7EBF;&#x5927;&#x5382; offer&#xFF0C;&#x53E3;&#x7891;&#x4F18;&#x5F02;&#x3002;</p><h3 id="-399-1-5-">$399 1.5&#x5C0F;&#x65F6;&#x6A21;&#x62DF;&#x9762;&#x8BD5;</h3><p>1&#x5C0F;&#x65F6;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#xFF08;&#x82F1;&#x8BED;&#xFF09;+ 30&#x5206;&#x949F;&#x6DF1;&#x5EA6;&#x53CD;&#x9988;&#xFF08;&#x4E2D;&#x82F1;&#x53EF;&#x9009;&#xFF09;+ &#x53CD;&#x9988;&#x62A5;&#x544A; + &#x5FAE;&#x4FE1;&#x7B54;&#x7591;&#x3002; &#x7F57;&#x8F91;&#x4EB2;&#x81EA;&#x6559;&#x5B66;&#xFF0C;&#x65E0;&#x5916;&#x5305;&#xFF0C;&#x8D44;&#x5386;&#x548C;&#x6559;&#x5B66;&#x8D28;&#x91CF;&#x8FDC;&#x8D85;&#x540C;&#x7C7B;&#x670D;&#x52A1;&#x3002;Zoom &#x8FDC;&#x7A0B;&#x97F3;&#x9891;&#xFF0C;&#x65E0;&#x5730;&#x57DF;&#x9650;&#x5236;&#x3002;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x7ED3;&#x5408;&#x672C;&#x7AD9;&#x8D44;&#x6599;&#x590D;&#x4E60;&#xFF0C;&#x52A9;&#x4F60;&#x4E34;&#x95E8;&#x4E00;&#x811A;&#xFF0C;offer &#x8FDE;&#x8FDE;&#xFF01;</p><h3 id="--2">&#x8D60;&#x9001;&#x4E00;&#x5E74;&#x4F1A;&#x5458; &#x7545;&#x8BFB;&#x72EC;&#x5BB6;&#x9898;&#x89E3;</h3><p>&#x60F3;&#x8981;&#x66F4;&#x52A0;&#x9AD8;&#x6548;&#x51C6;&#x5907;&#x53C8;&#x4E0D;&#x77E5;&#x9053;&#x8BE5;&#x5982;&#x4F55;&#x4E0B;&#x624B;&#xFF1F;&#x4ECE;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x4E2D;&#x53D1;&#x73B0;&#x4E86;&#x4E0D;&#x8DB3;&#x5374;&#x4E0D;&#x77E5;&#x9053;&#x8BE5;&#x5982;&#x4F55;&#x63D0;&#x9AD8;? &#x7231;&#x601D;&#x4E3A;&#x6240;&#x6709;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x7528;&#x6237;&#x8D60;&#x9001;&#x4EF7;&#x503C; $59.99 &#x7684;&#x4E00;&#x5E74;&#x7F51;&#x7AD9;&#x4F1A;&#x5458;&#xFF0C;&#x5305;&#x542B;&#x72EC;&#x5BB6;&#x9898;&#x89E3;&#x53CA;&#x914D;&#x5957;&#x8D44;&#x6599;&#xFF0C;&#x5E2E;&#x4F60;&#x4E8B;&#x534A;&#x529F;&#x500D;&#xFF0C;&#x7ECF;&#x9A8C;&#x503C;&#x8E6D;&#x8E6D;&#x6DA8;&#xFF01;</p><h3 id="--3">&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x9884;&#x7EA6;</h3><!--kg-card-begin: html--><!-- Calendly inline widget begin -->
<div class="calendly-inline-widget" data-url="https://calendly.com/acecodeinterview/mock-interview?hide_event_type_details=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script>
<!-- Calendly inline widget end --><!--kg-card-end: html--><h3 id="--4">&#x4ED8;&#x8D39;&#x65B9;&#x5F0F;</h3><!--kg-card-begin: html--><div id="smart-button-container">
      <div style="text-align: center;">
        <div id="paypal-button-container"></div>
      </div>
    </div>
  <script src="https://www.paypal.com/sdk/js?client-id=AYJsDlhpncs3xOsImn_VaeEr6OzRaeLgcTrxMxOk0x3wHUQ1jPH7R4X3uhdgiw2M0NTFTB8kTcDuT3b-&amp;currency=USD" data-sdk-integration-source="button-factory"></script>
  <script>
    function initPayPalButton() {
      paypal.Buttons({
        style: {
          shape: 'pill',
          color: 'gold',
          layout: 'vertical',
          label: 'pay',
          
        },

        createOrder: function(data, actions) {
          return actions.order.create({
            purchase_units: [{"description":"系统设计模拟面试","amount":{"currency_code":"USD","value":399}}]
          });
        },

        onApprove: function(data, actions) {
          return actions.order.capture().then(function(details) {
            alert('您的付款已经收到，如果您还没有预约模拟面试时间，请使用预约工具选择时间。');
          });
        },

        onError: function(err) {
          console.log(err);
        }
      }).render('#paypal-button-container');
    }
    initPayPalButton();
  </script><!--kg-card-end: html--><h3 id="--5">&#x626B;&#x63CF;&#x5FAE;&#x4FE1;&#x4E8C;&#x7EF4;&#x7801;&#x54A8;&#x8BE2;</h3><p>&#x626B;&#x63CF;&#x4E8C;&#x7EF4;&#x7801;&#x6DFB;&#x52A0;&#x7F57;&#x8F91;&#x597D;&#x53CB;&#xFF0C;&#x6CE8;&#x660E;&#x201C;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x54A8;&#x8BE2;&#x201D;&#x3002;&#x7F57;&#x8F91;&#x4F1A;&#x5E2E;&#x52A9;&#x89E3;&#x7B54;&#x4F60;&#x7684;&#x7591;&#x60D1;&#x3002;&#x4E00;&#x5929;&#x4E4B;&#x5185;&#x56DE;&#x590D;&#x3002;&#x5982;&#x6025;&#x9700;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#xFF0C;&#x8BF7;&#x901A;&#x8FC7;&#x4E0A;&#x65B9;&#x9884;&#x7EA6;&#x5DE5;&#x5177;&#x9884;&#x7EA6;&#xFF0C;&#x9501;&#x5B9A;&#x4F60;&#x7684;&#x65F6;&#x95F4;&#x3002;&#x54A8;&#x8BE2;&#x4EA6;&#x53EF;&#x53D1;&#x9001;&#x90AE;&#x4EF6;&#x5230; acecodeinterview@gmail.com&#x3002;</p><p></p><!--kg-card-begin: html--><p align="center">
 <img alt="&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x670D;&#x52A1;" src="https://blog.acecodeinterview.com/content/images/2020/05/luoji-wechat--1-.jpg" style="width: 400px; height:400px">
</p>
<!--kg-card-end: html--><h1></h1><h2 id="--6">&#x5B66;&#x751F;&#x53E3;&#x7891;</h2><p></p><h3 id="-facebook-lyft-amazon-databrick-offer-">&#x9648;&#x540C;&#x5B66;&#xFF08;&#x6A2A;&#x626B; Facebook, Lyft, Amazon, Databrick Offer)</h3><blockquote>&#x201C;&#x7ED9;&#x4F60;&#x8BF4;&#x58F0;&#x591A;&#x8C22;&#xFF01;&#x4F60;&#x7684;&#x6A21;&#x62DF;&#x9762;&#x8BD5;&#x5F88;&#x6709;&#x5E2E;&#x52A9;&#x3002;&#x8BA9;&#x6211;&#x907F;&#x514D;&#x901A;&#x8FC7;&#x6B63;&#x5F0F;&#x9762;&#x8BD5;&#x6765;&#x4EA4;&#x5B66;&#x8D39;&#x3002;&#x8FD9;&#x6B21;&#x6CE8;&#x610F;&#x4E86;&#x638C;&#x63A7;&#x65F6;&#x95F4;&#xFF0C;&#x53D1;&#x6325;&#x5F97;&#x66F4;&#x597D;&#x3002;&#x540E;&#x9762;&#x6211;&#x7684;&#x9762;&#x8BD5;&#x5168;&#x90FD;&#x8FC7;&#x4E86;&#xFF0C;&#x89C9;&#x5F97;&#x94B1;&#x82B1;&#x5F97;&#x5F88;&#x503C;&#xFF01;&#x201D;</blockquote><h3 id="-facebook-google-waymo-offer-">&#x8D75;&#x540C;&#x5B66;&#xFF08;&#x6A2A;&#x626B; Facebook, Google, Waymo offer)</h3><blockquote>&#x201C;&#x7279;&#x522B;&#x7279;&#x522B;&#x8C22;&#x8C22;&#x60A8;&#x7684; mock interview&#xFF0C;&#x6536;&#x83B7;&#x5DE8;&#x5927;&#x65E0;&#x6BD4;&#xFF0C;&#x6211;&#x89C9;&#x5F97;&#x7B97;&#x662F;&#x70B9;&#x9192;&#x4E86;&#x6211;&#xFF0C;&#x8BA9;&#x6211;&#x77E5;&#x9053;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x9762;&#x8BD5;&#x5927;&#x6982;&#x600E;&#x4E48;&#x56DE;&#x4E8B;&#x513F;&#xFF0C;&#x5E94;&#x8BE5;&#x600E;&#x4E48;&#x51C6;&#x5907;&#x548C;&#x56DE;&#x7B54;&#x3002;&#x4E4B;&#x540E;&#x6240;&#x6709;&#x9762;&#x8BD5;&#x90FD;&#x8FC7;&#x4E86;&#xFF0C;&#x771F;&#x7684;&#x592A;&#x611F;&#x8C22;&#x60A8;&#x5566;&#xFF01;&#x201D;</blockquote><h3 id="-offer-">&#x738B;&#x540C;&#x5B66;&#xFF08;&#x65A9;&#x83B7;&#x5317;&#x7F8E;&#x5B57;&#x8282;&#x8DF3;&#x52A8; Offer&#xFF09;</h3><blockquote>&#x201C;&#x8C22;&#x8C22;&#x60A8;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x57F9;&#x8BAD;&#xFF0C;&#x5E76;&#x4E14;&#x53D1;&#x5728;&#x7F51;&#x4E0A;&#x7684;&#x6587;&#x7AE0;&#x5199;&#x5F97;&#x7279;&#x522B;&#x4E0D;&#x9519;&#xFF0C;&#x662F;&#x90A3;&#x79CD;&#x4ECE;&#x96F6;&#x5230;&#x4E00;&#xFF0C;&#x542F;&#x53D1;&#x5F0F;&#x7684;&#x6587;&#x7AE0;&#x3002;&#x7279;&#x522B;&#x8C22;&#x8C22;&#x60A8;&#xFF0C;&#x5BF9;&#x8FD9;&#x6B21;&#x8DF3;&#x69FD;&#x7279;&#x522B;&#x7684;&#x6EE1;&#x610F;&#x3002;&#x201D;</blockquote><h2 id="--7">&#x8D85;&#x9AD8;&#x6027;&#x4EF7;&#x6BD4;</h2><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th></th>
<th>&#x5E08;&#x8D44;</th>
<th>&#x65F6;&#x957F;</th>
<th>&#x5B66;&#x4E60;&#x8D44;&#x6599;</th>
<th>&#x5FAE;&#x4FE1;&#x7B54;&#x7591;</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>&#x7231;&#x601D;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;</strong></td>
<td><strong>&#x7231;&#x601D;&#x521B;&#x59CB;&#x4EBA; &#x9876;&#x5C16;&#x5927;&#x5382;&#x8D44;&#x6DF1;&#x9762;&#x8BD5;&#x5B98;</strong></td>
<td><strong>1.5&#x5C0F;&#x65F6;</strong></td>
<td><strong>&#x8D60;&#x9001;&#x672C;&#x7AD9;&#x4E00;&#x5E74;&#x4F1A;&#x5458;&#xFF0C;&#x7545;&#x8BFB;&#x5168;&#x90E8;&#x9898;&#x89E3;</strong></td>
<td><strong>&#x968F;&#x65F6;</strong></td>
</tr>
<tr>
<td>&#x4E5D;&#x7AE0;&#x7B97;&#x6CD5;</td>
<td>&#x4E00;&#x7EBF;&#x5927;&#x5382;&#x9762;&#x8BD5;&#x5B98;</td>
<td>1&#x5C0F;&#x65F6;</td>
<td>&#x65E0;</td>
<td>&#x65E0;</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Yelp 系统设计题解]]></title><description><![CDATA[Yelp 是属于吃货的 App。查餐馆时，去看看几颗星，点菜前，查查有什么特色菜。在北美，不管走到哪里，有了 Yelp 不会担心吃不好。
Yelp 从系统设计角度上相比传统的分布式系统有很强的地域性，所以 Yelp 的设计与很多强地域性点评类网站有很多共通之处，比如 Trip Advisor, Tinder。这个地域性也会成为这道题的主要考点。]]></description><link>https://blog.acecodeinterview.com/yelp/</link><guid isPermaLink="false">5f51dc8531a4bd56ffedb4f4</guid><category><![CDATA[系统设计文本课]]></category><category><![CDATA[会员专享]]></category><dc:creator><![CDATA[罗辑]]></dc:creator><pubDate>Fri, 04 Sep 2020 06:57:47 GMT</pubDate><media:content url="https://blog.acecodeinterview.com/content/images/2020/09/yelp-cover.jpg" medium="image"/><content:encoded/></item></channel></rss>