طراحی یک Unique ID Generator در سیستمهای توزیعشده
این پست ۴ روش برای طراحی چنین سیستمی رو بررسی میکنه:
- multi-master replication
- UUID
- ticket server
- Twitter snowflake
#system_design #system_design_interview_volume_1
@techstuff100
این پست ۴ روش برای طراحی چنین سیستمی رو بررسی میکنه:
- multi-master replication
- UUID
- ticket server
- Twitter snowflake
#system_design #system_design_interview_volume_1
@techstuff100
❤10🔥1👏1
مفهومی وجود داره به اسم Chaos Engineering یا مهندسی آشوب. توش سعی میکنیم خرابیهایی رو که ممکنه توی دنیای واقعی اتفاق بیفتن، بهصورت کنترلشده توی سیستم شبیهسازی کنیم. مثلا یکی از سرویسها رو از دسترس خارج کنیم یا تاخیر شبکه رو بالا ببریم و ببینیم بقیه سیستم چه واکنشی نشون میده.
هدف اینه که قبل از اینکه چنین اتفاقهایی واقعا بیفتن، بفهمیم کجای سیستم مشکل داره و چطور میتونیم در برابر خرابیها مقاومترش کنیم.
اینجا در موردش بیشتر بخونین.
#system_design
@techstuff100
هدف اینه که قبل از اینکه چنین اتفاقهایی واقعا بیفتن، بفهمیم کجای سیستم مشکل داره و چطور میتونیم در برابر خرابیها مقاومترش کنیم.
اینجا در موردش بیشتر بخونین.
#system_design
@techstuff100
👍8❤4👏1
توی backtracking جواب رو مرحله به مرحله میسازیم. الگوریتم هر وقت تشخیص بده که اون جواب جزئی نمیتونه منجر به یه جواب معتبر بشه، ازش backtrack میکنه. باهاش معمولا مسائل ترکیبیاتی مثل جایگشتها (permutation) و ترکیبها و پازلهایی مثل سودوکو رو حل میکنیم.
مسئله Letter Combinations of a Phone Number لیتکد رو هم میتونین برای تمرین backtracking حل کنین.
#algorithm
@techstuff100
مسئله Letter Combinations of a Phone Number لیتکد رو هم میتونین برای تمرین backtracking حل کنین.
#algorithm
@techstuff100
LeetCode
Letter Combinations of a Phone Number - LeetCode
Can you solve this real interview question? Letter Combinations of a Phone Number - Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.
A mapping of…
A mapping of…
❤4🤔1
Forwarded from Go Casts | Systems & Agents 🚀
اگه یه مهارت باشه که لازمه به خودمون اضافه کنیم تا ریسک شغلی مون کمتر بشه مهارت بررسی و investigate کردن proactive محصول برای بهبودشه. یعنی صبر نکنیم تا یکی بهمون بگه چی بسازیم و خودمون دنبال مشکل ها و فرصت های بهبود محصول بگردیم.
معمولا ما که سابقه کاری مون بیشتر مهندسی نرم افزار و برنامه نویسیه این یه زمین بازی کاملا جدیده و تجربه مون توش کمه.
برای اینکه یاد بگیریم چطور این کارو بکنیم خوندن این مطالب میتونه مفید باشه
1. The Product-Minded Software Engineer - Gergely Orosz
https://blog.pragmaticengineer.com/the-product-minded-engineer/
2. Product Discovery - Marty Cagan
https://www.svpg.com/product-discovery/
3. Continuous Discovery Habits - Teresa Torres
https://www.producttalk.org/continuous-discovery-habits/
@gocasts
معمولا ما که سابقه کاری مون بیشتر مهندسی نرم افزار و برنامه نویسیه این یه زمین بازی کاملا جدیده و تجربه مون توش کمه.
برای اینکه یاد بگیریم چطور این کارو بکنیم خوندن این مطالب میتونه مفید باشه
1. The Product-Minded Software Engineer - Gergely Orosz
https://blog.pragmaticengineer.com/the-product-minded-engineer/
2. Product Discovery - Marty Cagan
https://www.svpg.com/product-discovery/
3. Continuous Discovery Habits - Teresa Torres
https://www.producttalk.org/continuous-discovery-habits/
@gocasts
The Pragmatic Engineer
The Product-Minded Software Engineer
Product-minded engineers are developers with lots of interest in the product
itself. They want to understand why decisions are made, how people use the
product, and love to be involved in making product decisions. They're someone
who would likely make a good…
itself. They want to understand why decisions are made, how people use the
product, and love to be involved in making product decisions. They're someone
who would likely make a good…
❤9👏2👍1
حمله Password Spraying
این حمله نوعی از حمله brute force هست که در اون مهاجم یه پسورد یکسان رو روی تعداد زیادی اکانت تست میکنه. اثرگذاری این حمله هم به این برمیگرده که بعضی از کاربران از پسوردهای ساده مثل "12345678" و یا "password" استفاده میکنن.
نحوه انجامش هم اینطوریه که مهاجم اول یه لیست از نام کاربریها مثل کارکنان یه شرکت و همینطور یه لیست از پسوردهای رایج یا پیشفرض بدست میاره. بعد هر پسورد رو با تعداد زیادی از نام کاربریها تست میکنه و بعد سراغ پسورد بعدی میره. معمولا بین تلاشها هم فاصله میذاره تا احتمال شناسایی حمله یا قفل شدن اکانتها کمتر بشه.
تفاوتش هم با brute force معمولی اینه که توی brute force معمولا پسوردهای احتمالی مختلف روی یه اکانت تست میشن؛ ولی توی password spraying تعداد محدودی پسورد رایج و ساده روی تعداد زیادی اکانت تست میشن. برای همینه که وقتی که حمله انجام میشه، کلی کاربر بصورت یکجا هدف قرار میگیرن.
برای جلوگیری از حمله هم میتونیم از کاربران بخوایم پسوردهای قوی و غیرقابلحدس انتخاب کنن، برای هر سرویس پسورد جداگونه داشته باشن، از MFA استفاده کنیم و لاگهای ورود رو برای شناسایی تلاشهای ناموفق روی چند اکانت مختلف، مخصوصا از یه IP یا در یک بازه زمانی کوتاه مانیتور کنیم.
#cyber_security
@techstuff100
این حمله نوعی از حمله brute force هست که در اون مهاجم یه پسورد یکسان رو روی تعداد زیادی اکانت تست میکنه. اثرگذاری این حمله هم به این برمیگرده که بعضی از کاربران از پسوردهای ساده مثل "12345678" و یا "password" استفاده میکنن.
نحوه انجامش هم اینطوریه که مهاجم اول یه لیست از نام کاربریها مثل کارکنان یه شرکت و همینطور یه لیست از پسوردهای رایج یا پیشفرض بدست میاره. بعد هر پسورد رو با تعداد زیادی از نام کاربریها تست میکنه و بعد سراغ پسورد بعدی میره. معمولا بین تلاشها هم فاصله میذاره تا احتمال شناسایی حمله یا قفل شدن اکانتها کمتر بشه.
تفاوتش هم با brute force معمولی اینه که توی brute force معمولا پسوردهای احتمالی مختلف روی یه اکانت تست میشن؛ ولی توی password spraying تعداد محدودی پسورد رایج و ساده روی تعداد زیادی اکانت تست میشن. برای همینه که وقتی که حمله انجام میشه، کلی کاربر بصورت یکجا هدف قرار میگیرن.
برای جلوگیری از حمله هم میتونیم از کاربران بخوایم پسوردهای قوی و غیرقابلحدس انتخاب کنن، برای هر سرویس پسورد جداگونه داشته باشن، از MFA استفاده کنیم و لاگهای ورود رو برای شناسایی تلاشهای ناموفق روی چند اکانت مختلف، مخصوصا از یه IP یا در یک بازه زمانی کوتاه مانیتور کنیم.
#cyber_security
@techstuff100
❤8👍2👏1
چند روزی هست دارم کتاب Dive Into Design Patterns از Alexander Shvets رو میخونم. بعد Grokking Algorithms میخواستم یه کتاب دیگه رو شروع کنم؛ ولی چون چند بار توی ایونتهای مهندس بیگدلی بهش اشاره شده بود گفتم ترتیب مطالعهم رو عوض کنم و اول اینو شروع کنم.
#Dive_Into_Design_Patterns
@techstuff100
#Dive_Into_Design_Patterns
@techstuff100
❤10👍1👏1
استراتژیهای دیپلوی
توی این ویدئو درباره چند روش رایج دیپلوی در نرمافزار صحبت کردم؛ اینکه مزایا و معایب هرکدوم چی هست و چطور کار میکنن. مواردی که دربارهشون صحبت کردم:
- دیپلوی Big Bang
- دیپلوی Rolling Update
- دیپلوی Blue-Green
- دیپلوی Canary
ویدئوی یوتوب:
https://www.youtube.com/watch?v=w4ZehzZIDsc&list=PLG_umovC7z2I&index=1&pp=iAQBsAgC
#system_design
@techstuff100
توی این ویدئو درباره چند روش رایج دیپلوی در نرمافزار صحبت کردم؛ اینکه مزایا و معایب هرکدوم چی هست و چطور کار میکنن. مواردی که دربارهشون صحبت کردم:
- دیپلوی Big Bang
- دیپلوی Rolling Update
- دیپلوی Blue-Green
- دیپلوی Canary
ویدئوی یوتوب:
https://www.youtube.com/watch?v=w4ZehzZIDsc&list=PLG_umovC7z2I&index=1&pp=iAQBsAgC
#system_design
@techstuff100
❤11🔥2