TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Systems Design for Advanced Beginners

945 点作者 _ttg将近 5 年前

26 条评论

dzink将近 5 年前
As a solo tech founder of several sites, I’ve had the pleasure of digging into each of these problems and more over the past few years. Some topics worth adding to the list for consumer sites:<p>1. Prototype and benchmark each of your stack pieces before you pick a stack. It is far easier to fix architecture mistakes when you don’t have 10000 users expecting overnight customer service. If you are using new technology, find good open source products to see how they’ve structured their projects. Your architecture, designed for speed and experience, will be your key differentiator. Inherent speed at core task, design to user needs, and name choice are the 3 musketeers of a solid growth.<p>2. Prepare for abusers to attack your system from every direction, especially if you enable users to publish content under your domain. You will see bots looking for Wordpress installations, users trying to fill content with SEO links, users trying every hacking vector known to market. Collect known vectors and test for them and never refuse a legitimate bug bounty request.<p>3. There is an eternal debate about the trade off between building a quality product at start or opening early to get user feedback before you get too deep into features. There is merit to both choices as a solo founder. The moment you open the gates to users, your ability to make changes comes with very high friction. With time, trying new features becomes a tremendous luxury hidden under bug requests, roadmap, customer service replies, etc. Build your biggest riskiest assumptions first.<p>4. Testing is hard as a solo founder. Selenium is your friend. If you don’t spend time with them, your users will take that time in multiples after a mistake.<p>The best way to learn is to come up with a product you really want and build it in your own time. You can test launch in a weekend.<p>When I started launching consumer sites solo as an engineer, I went from a tight specialization to being unafraid to try any tech if it gives me an advantage in solving a problem. Once you’ve simulated enough problems and dealt with the consequences of your choices personally, you can play that 10 level chess game with the architecture of each new feature much faster.
评论 #23907614 未加载
评论 #23913400 未加载
semicolonandson将近 5 年前
Thought I&#x27;d post this here since I imagine there&#x27;s a strong cross-over of interest:<p>If you&#x27;d like a guided video code-tour of how all the pieces of a production web-app fit together, I publish detailed weekly screencasts showcasing the code, systems, and architecture behind Oxbridge Notes, the business that&#x27;s supported me for the past decade.<p>So far I&#x27;ve covered:<p>— software dependency vetting<p>— data integrity systems (constraints, foreign keys, transactions etc.)<p>— integration testing systems<p>— trade-offs in software quality between customer-facing and admin areas<p>— softer stuff, like designing for SEO (marketing ease is a critical part of any system I design, as an indie-hacker)<p><a href="https:&#x2F;&#x2F;www.semicolonandsons.com&#x2F;series&#x2F;Inside-The-Muse" rel="nofollow">https:&#x2F;&#x2F;www.semicolonandsons.com&#x2F;series&#x2F;Inside-The-Muse</a>
评论 #23906158 未加载
评论 #23915511 未加载
评论 #23905042 未加载
moonchild将近 5 年前
They have this diagram:<p><pre><code> +-----------+ +--------------+ +-----------------+ |Web Browser| |Smartphone App| |Client Libraries&#x2F;| +-----+-----+ +------+-------+ |Other API code | | | +-------+---------+ | v | | +-----+------+ | +---------&gt;+ Steveslist +&lt;-----------+ | Servers | +------------+ </code></pre> Why not this?<p><pre><code> +-----------+ +-----------------+ +--------------+ |Web Browser|--&gt;|Client Libraries&#x2F;|&lt;--|Smartphone App| +-----------+ |Other API code | +--------------+ +-------+---------+ | v +-----+------+ | Steveslist | | Servers | +------------+</code></pre>
评论 #23904925 未加载
评论 #23905709 未加载
评论 #23905741 未加载
评论 #23908096 未加载
评论 #23904895 未加载
dreamcompiler将近 5 年前
Nice tutorial! One small nitpick:<p>&gt; Calculating a hash value from an input is computationally very easy, but reversing the transformation and recovering the original input from its hash value takes so much time and computing power that it is, practically-speaking, impossible.<p>The above is true for encryption but not for hash codes. Recovering the original input from a hash code is not just practically impossible; it&#x27;s <i>provably</i> impossible -- even with an infinite amount of computing power -- because in general a hash code contains less information than the original text.
评论 #23904737 未加载
评论 #23904358 未加载
评论 #23904783 未加载
评论 #23906401 未加载
评论 #23915356 未加载
Hyperborian将近 5 年前
&gt; How do they store their data?<p>SQL.<p>&gt; How do their different applications talk to each other?<p>Proprietary APIs.<p>&gt; How do they scale their systems to work for millions of users?<p>T H E C L O U D<p>&gt; How do they keep them secure?<p>They just... don&#x27;t.<p>&gt; How do they make sure nothing goes wrong?<p>They just... don&#x27;t.<p>&gt; What are APIs, webhooks and client libraries, when you really get down to it?<p>Easily outsourced to India.
评论 #23906820 未加载
gmanis将近 5 年前
I have been doing a greater part of the things elaborated in the post as a solo founder&#x2F;freelance software person. Albeit the scale of things I need to handle are relatively small.<p>What kind of a job profile should I be looking at if I am in a position where I absolutely need to have one?<p>I don’t slot particularly well in any one thing I feel, neither a great developer nor a great systems person. And I did do a bunch of recruiting and tech consulting too:
评论 #23905859 未加载
评论 #23906087 未加载
评论 #23905830 未加载
评论 #23905871 未加载
评论 #23906479 未加载
amdelamar将近 5 年前
This basically outlines my current job. Huge system with many, constantly moving&#x2F;upgrading parts and services across teams, all while utilizing dozens of internal services, tools, and navigating corporate policies. I’m thriving in it, but totally recognize it’s a steep learning curve and takes longer to onboard newcomers.<p>Eventually you get to enjoy deprecating old services as much as building new ones, simply because you never have to teach others about them again.
bibabaloo将近 5 年前
&gt; Steveslist currently has a very simple and slightly fragile cron setup. We have a single “scheduled jobs server”. We use crontab on this server ... This setup isn’t scaling very well ... We’re considering setting up a new system using a modern tool like Kubernetes.<p>Do people use Kubernetes for running scheduled jobs like this? It seems like it&#x27;d be overkill but in saying that I&#x27;m not sure if I know of anything that can be used for running scheduled tasks in a reliable and observable way that&#x27;s scalable. Maybe Jenkins?
评论 #23906021 未加载
评论 #23907078 未加载
评论 #23904911 未加载
评论 #23904832 未加载
评论 #23906443 未加载
pc9将近 5 年前
How can I gain practical experience in these things? The jobs I&#x27;ve had mainly revolve around adding new features, not doing any of the things described in the article. Does working at bigger companies actually give you experience with this?
评论 #23904594 未加载
评论 #23938743 未加载
评论 #23910521 未加载
评论 #23904469 未加载
评论 #23904664 未加载
评论 #23904454 未加载
评论 #23904529 未加载
rustamm将近 5 年前
Regarding DB backups, it would be useful to add that it is not enough to simply make backups, one should also test that the backups are actually restorable.
评论 #23906858 未加载
评论 #23905834 未加载
rhlsthrm将近 5 年前
Just recently started messing with AWS Amplify. It&#x27;s crazy how easy it makes basically all this stuff. It really makes it simple to be a solo founder and manage every piece of the stack.
imvetri将近 5 年前
Title corrected - Web application system design for advanced beginners
评论 #23904408 未加载
avipars将近 5 年前
I love the phrase &quot;Advanced Beginner&quot;
zeckalpha将近 5 年前
Don’t forget a system for organizing contributions to all this code, a system to ensure compliance with the many legal regimes “Steveslist” is offered in, a system for onboarding new hires, a system for expanding market share, a system for keeping money and reporting on it to wouldbe investors, and a system of systems designers that know how to respond to changing and ever expanding requirements.<p>Don’t sell yourself short: there are systems everywhere you look, not just where there’s convenient precedent to make a web service.
zealsham将近 5 年前
This is the best thing I have read in 2020. As a bug bounty Hunter this is insanely helpful to me .
Roybot将近 5 年前
&gt; To do this, we need to write database queries that aggregate over the entirety of our data. We don’t want to run these queries against our production SQL database, because they could put an enormous amount of load on it. We don’t want a huge query issued by an internal analyst to be able to bring our production database to a grinding halt<p>What kind of query would you have to write to bring down a production db? What makes a solution like hive much better - I guess its optimized for this?
评论 #23905720 未加载
iblaine将近 5 年前
Systems Design is a formidable topic because it can go in so many directions. This is a good guide. Might I also recommend something that includes caching, partitioning, indexing, and NoSQL vs SQL. More detail can be found here <a href="https:&#x2F;&#x2F;www.educative.io&#x2F;courses&#x2F;grokking-the-system-design-interview" rel="nofollow">https:&#x2F;&#x2F;www.educative.io&#x2F;courses&#x2F;grokking-the-system-design-...</a>
评论 #23907722 未加载
withinboredom将近 5 年前
&gt; We’re considering either splitting up our cron jobs into multiple servers, or setting up a new system using a modern tool like Kubernetes.<p>:facepalm: beanstalkd can handle a pretty massive amount of jobs before you need to start worrying about scale. I love the huge jump from simple to complex.
评论 #23906136 未加载
brianzelip将近 5 年前
Really like the prose&#x2F;Adventure-like writing style of this &quot;tutorial&quot;!
tinalumfoil将近 5 年前
&gt; database engines that are quick at small queries are typically unacceptably slow of answering giant queries<p>Even with proper indexing? I haven&#x27;t seen this issue with Postgres but maybe I wasn&#x27;t working on large enough data sets.
boredatworkme将近 5 年前
off topic: I like the simplistic design of this website. Can someone please help me understand if this is hosted on WordPress or something like that?
评论 #23904953 未加载
评论 #23904887 未加载
评论 #23945409 未加载
评论 #23905068 未加载
rataata_jr将近 5 年前
This is amazing. Thank you Robert.
giggl将近 5 年前
Great post! Thanks for sharing.
pantulis将近 5 年前
Great post!
forgotmypwbctbi将近 5 年前
anyone else just getting a blank page here?
banq将近 5 年前
no DDD?