06-cache.pdf
619 KB
برای افزایش کارایی سیستمها، یک تکنیک استفاده از caching است. در این درس، با این روش آشنا میشویم.
#06_cache
#System_Design
#06_cache
#System_Design
👍1🔥1
در پروژههای بزرگ علاوه بر فایل requirements.txt از فایل constraints.txt نیز برای مدیریت بستهها استفاده میکنند. در این ویدیو کاربرد این فایل و لزوم آن را توضیح میدهیم.
https://youtu.be/j4yBFiEuX_c
https://youtu.be/j4yBFiEuX_c
YouTube
آموزش برنامه نویسی پایتون | کاربرد فایل constraints.txt در مدیریت بستهها | جلسه صد و ده
#آموزش_پایتون #پایتون #برنامه_نویسی
در پروژههای بزرگ علاوه بر فایل requirements.txt از فایل constraints.txt نیز برای مدیریت بستهها استفاده میکنند. در این ویدیو کاربرد این فایل و لزوم آن را توضیح میدهیم.
راههای ارتباط با من در شبکههای اجتماعی:
ht…
در پروژههای بزرگ علاوه بر فایل requirements.txt از فایل constraints.txt نیز برای مدیریت بستهها استفاده میکنند. در این ویدیو کاربرد این فایل و لزوم آن را توضیح میدهیم.
راههای ارتباط با من در شبکههای اجتماعی:
ht…
👍1
07-proxies.pdf
257.2 KB
پراکسی در طراحی سیستمها کاربرد زیادی دارند. توزان کننده بار (load balancer) که در جلسههای گذشته صحبت کردیم در واقع پراکسی است.
#07_proxies
#System_Design
#07_proxies
#System_Design
👍4
08-cdn.pdf
449.6 KB
کاربران سیستم ما لزوماً از یک منطقه جغرافیایی نیستند. ممکن است برخی از آنها در ایران ساکن باشند و برخی در قاره آمریکا. اگر قرار باشد همه درخواستها به یک مکان ارسال شود، زمان پاسخ کاربران بسته به محل سکونت آنها متفاوت خواهد بود. برای افزایش سرعت و کارایی سیستم میتوان از ایده شبکه توزیع محتوا (Conent Delivery Network ) بهره برد.
#08_CDN
#System_Design
#08_CDN
#System_Design
👍2
09-sharding.pdf
522.5 KB
سناریویی را در نظر بگیرید که حجم داده آنقدر زیاد شده است که امکان قرار دادن آن در یک سرور ذخیرهسازی (پایگاه داده) امکان پذیر نیست. حتی ممکن است بهبود توان و فضای سرور ذخیرهسازی هم مقرون به صرفه نباشد زیرا پاسخ به درخواست وارده باید کل پایگاه داده را بررسی کند.
افراز بندی پایگاه داده که به آن شارد کردن (sharding) نیز میگویند، یک راه معروف برای حل مشکل فوق است.
#09_Sharding
#System_Design
افراز بندی پایگاه داده که به آن شارد کردن (sharding) نیز میگویند، یک راه معروف برای حل مشکل فوق است.
#09_Sharding
#System_Design
👍3
در این جلسه با کمک port forwarding به ماشین مجازی اوبونتو روی port دلخواه ssh میزنیم.
https://youtu.be/k9nkKnr8ybs
https://youtu.be/k9nkKnr8ybs
YouTube
مدیریت سرور لینوکس | اتصال ssh به ماشین مجازی ubuntu با port دلخواه | درس دو
در این جلسه با کمک port forwarding به ماشین مجازی اوبونتو روی port دلخواه ssh میزنیم.
راههای ارتباط با من در شبکههای اجتماعی:
https://news.1rj.ru/str/golemcourse
https://github.com/aaghamohammadi
https://www.linkedin.com/in/aaghamohammadi/
💰 میخواهید وارد بازار…
راههای ارتباط با من در شبکههای اجتماعی:
https://news.1rj.ru/str/golemcourse
https://github.com/aaghamohammadi
https://www.linkedin.com/in/aaghamohammadi/
💰 میخواهید وارد بازار…
👍2
بستههای لینوکس مبتنی بر اوبونتو میتواند با کمک apt-get بروزرسانی شود.
https://youtu.be/aclhrCyWFmM
https://youtu.be/aclhrCyWFmM
YouTube
مدیریت سرور لینوکس | بروز رسانی بستههای سرور با کمک apt-get | درس سه
بستههای لینوکس مبتنی بر اوبونتو میتواند با کمک apt-get بروزرسانی شود.
راههای ارتباط با من در شبکههای اجتماعی:
https://news.1rj.ru/str/golemcourse
https://github.com/aaghamohammadi
https://www.linkedin.com/in/aaghamohammadi/
💰 میخواهید وارد بازار کار شوید؟
📕…
راههای ارتباط با من در شبکههای اجتماعی:
https://news.1rj.ru/str/golemcourse
https://github.com/aaghamohammadi
https://www.linkedin.com/in/aaghamohammadi/
💰 میخواهید وارد بازار کار شوید؟
📕…
👍2
اطلاعات session کاربر باید در کجا ذخیره شود؟ پاسخ به این سوال میتواند منجر به دو معماری stateful یا stateless شود.
https://youtu.be/q4GN9Kr_HJg
https://youtu.be/q4GN9Kr_HJg
YouTube
طراحی سیستمها | معماری stateless | درس ده | System Design
اطلاعات session کاربر باید در کجا ذخیره شود؟ پاسخ به این سوال میتواند منجر به دو معماری stateful یا stateless شود.
راههای ارتباط با من در شبکههای اجتماعی:
https://news.1rj.ru/str/golemcourse
https://github.com/aaghamohammadi
https://www.linkedin.com/in/aaghamohammadi/…
راههای ارتباط با من در شبکههای اجتماعی:
https://news.1rj.ru/str/golemcourse
https://github.com/aaghamohammadi
https://www.linkedin.com/in/aaghamohammadi/…
👍4
در این جلسه یک rate limiter طراحی میکنیم. هدف از rate limiter ها تعریف محدودیت بر روی میزان تعداد درخواست بر روی api ها به ازای کاربران است. مثلاً می خواهیم در یک شبکه اجتماعی هر کاربر حداکثر بتواند پنجاه در خواست دوستی در روز ارسال کند. استفاده از rate limiter ها به مدیریت هزینه و بهرهوری منابع سیستم کمک میکند و مانع از حمله denial of service میشود.
https://youtu.be/fVCo97rgv9s
https://youtu.be/fVCo97rgv9s
YouTube
طراحی سیستمها | طراحی Rate Limiter | درس پانزده | System Design
در این جلسه یک rate limiter طراحی میکنیم. هدف از rate limiter ها تعریف محدودیت بر روی میزان تعداد درخواست بر روی api ها به ازای کاربران است. مثلاً می خواهیم در یک شبکه اجتماعی هر کاربر حداکثر بتواند پنجاه در خواست دوستی در روز ارسال کند. استفاده از rate…
👍3❤1
سال گذشته (۱۴۰۱) چند کتاب خواندید؟ (به غیر از موارد اجباری دانشگاه و مدرسه)
Anonymous Poll
75%
کمتر از پنج
14%
بین پنج تا ده
5%
بین یازده تا بیست
5%
بیشتر از بیست
👍5
consistent hashing
در توازن کنندههای بار
برای تعیین سروری که درخواست باید به آن ارسال شود استفاده میشود. علاوه بر آن در پایگاه دادههای غیر متمرکز برای ذخیره و بازیابی داده در سرور مربوطه استفاده میشود. این جلسه به طراحی این نوع سیستم میپردازیم.
https://youtu.be/6BtKpkQT1bw
در توازن کنندههای بار
برای تعیین سروری که درخواست باید به آن ارسال شود استفاده میشود. علاوه بر آن در پایگاه دادههای غیر متمرکز برای ذخیره و بازیابی داده در سرور مربوطه استفاده میشود. این جلسه به طراحی این نوع سیستم میپردازیم.
https://youtu.be/6BtKpkQT1bw
YouTube
طراحی سیستمها | طراحی consistent hashing | درس شانزده | System Design
consistent hashing در توازن کنندههای بار (load balancer) برای تعیین سروری که درخواست باید به آن ارسال شود استفاده میشود. علاوه بر آن در پایگاه دادههای غیر متمرکز برای ذخیره و بازیابی داده در سرور مربوطه استفاده میشود. این جلسه به طراحی این نوع سیستم میپردازیم.…
❤1👍1
Golem Course
سال گذشته (۱۴۰۱) چند کتاب خواندید؟ (به غیر از موارد اجباری دانشگاه و مدرسه)
اگر کتاب خواندن را دوست دارید، در گودریدز هم فعال هستم (لینک). خوشحال میشوم آنجا نیز با هم در ارتباط باشیم. فقط در ارسال درخواست لطفاً بگویید از کانال تلگرام آمدید تا اکسپت کنم.
Goodreads
Alireza Aghamohammadi (aaghamohammadi) (423 books)
Alireza Aghamohammadi has 423 books on Goodreads
❤3👍3
درخت مرکل در طراحی سیستمها کاربرد زیادی دارد. سه مثال معروف که از درخت مرکل استفاده میکنند به شرح زیر است:
کاربرد اول. تعدادی فایل در نظر بگیرید که میخواهیم تغییرات در این فایلها را به سرعت تشخیص دهیم. درست مانند سیستم گیت.
کاربرد دوم. پایگاه داده غیرمتمرکز دادهها را در سرورهای مختلف ذخیره میکند. تکرار داده (فایلهای بکآپ) باید با یکدیگر همگام باشند. اگر یکی از دادههای تکرار تغییر کرد به جای آن که کل داده جابجا شود، فقط بخش تغییریافته میخواهیم بین سرورها منتقل شود.
کاربرد سوم. فایلی از تورنت دانلود میکنیم. به خاطر اختلال شبکه بخشیهایی از فایل به درستی دانلود نشده است. به جای آن که کل فایل دوباره دانلود شود، میخواهیم تنها بخشهای خراب دوباره دانلود شود.
https://youtu.be/nWBeOITLqss
کاربرد اول. تعدادی فایل در نظر بگیرید که میخواهیم تغییرات در این فایلها را به سرعت تشخیص دهیم. درست مانند سیستم گیت.
کاربرد دوم. پایگاه داده غیرمتمرکز دادهها را در سرورهای مختلف ذخیره میکند. تکرار داده (فایلهای بکآپ) باید با یکدیگر همگام باشند. اگر یکی از دادههای تکرار تغییر کرد به جای آن که کل داده جابجا شود، فقط بخش تغییریافته میخواهیم بین سرورها منتقل شود.
کاربرد سوم. فایلی از تورنت دانلود میکنیم. به خاطر اختلال شبکه بخشیهایی از فایل به درستی دانلود نشده است. به جای آن که کل فایل دوباره دانلود شود، میخواهیم تنها بخشهای خراب دوباره دانلود شود.
https://youtu.be/nWBeOITLqss
YouTube
طراحی سیستمها | درخت مرکل | درس هفده | System Design
درخت مرکل در طراحی سیستمها کاربرد زیادی دارد. سه مثال معروف که از درخت مرکل استفاده میکنند به شرح زیر است:
کاربرد اول. تعدادی فایل در نظر بگیرید که میخواهیم تغییرات در این فایلها را به سرعت تشخیص دهیم. درست مانند سیستم گیت.
کاربرد دوم. پایگاه داده غیرمتمرکز…
کاربرد اول. تعدادی فایل در نظر بگیرید که میخواهیم تغییرات در این فایلها را به سرعت تشخیص دهیم. درست مانند سیستم گیت.
کاربرد دوم. پایگاه داده غیرمتمرکز…
👍2
توییتر را در نظر بگیرید. افراد از بخشهای مختلف دنیا در هر لحظه توییت میکنند. هر توییت باید یک شناسه یکتا داشته باشد. به خاطر مسائل کارایی و این که افراد در نواحی مختلف دنیا پخش هستند، این شناسهها باید به صورت غیرمتمرکز تولید شود. در این ویدیو این مسئله و راه حل آن را بررسی میکنیم.
https://youtu.be/KhxzznOiHdA
https://youtu.be/KhxzznOiHdA
YouTube
طراحی سیستمها | تولید شناسه یکتا به طور غیرمتمرکز | درس هجده| System Design
توییتر را در نظر بگیرید. افراد از بخشهای مختلف دنیا در هر لحظه توییت میکنند. هر توییت باید یک شناسه یکتا داشته باشد. به خاطر مسائل کارایی و این که افراد در نواحی مختلف دنیا پخش هستند، این شناسهها باید به صورت غیرمتمرکز تولید شود. در این ویدیو این مسئله…
👍6
چگونه سیستم کوتاهکننده آدرس URL طراحی کنیم؟
سرویسهایی مانند TinyURL یا Bitly قابلیت تبدیل آدرس بلند URL را به آدرس کوتاه دارند. برای آنکه شهودی نسبت به ابعاد بزرگ تعداد درخواستهای کاربران این سرویسها داشته باشید. آماری از سایت شرکت Bitly نقل میکنم.
این شرکت به طور متوسط در هر ماه حدود ۳۰۰ میلیون درخواست ایجاد آدرس و حدود ۱۰ میلیارد درخواست خواندن دارد. در این ویدیو با ایده طراحی چنین سیستمی آشنا میشویم.
https://youtu.be/Roo30rewgyE
سرویسهایی مانند TinyURL یا Bitly قابلیت تبدیل آدرس بلند URL را به آدرس کوتاه دارند. برای آنکه شهودی نسبت به ابعاد بزرگ تعداد درخواستهای کاربران این سرویسها داشته باشید. آماری از سایت شرکت Bitly نقل میکنم.
این شرکت به طور متوسط در هر ماه حدود ۳۰۰ میلیون درخواست ایجاد آدرس و حدود ۱۰ میلیارد درخواست خواندن دارد. در این ویدیو با ایده طراحی چنین سیستمی آشنا میشویم.
https://youtu.be/Roo30rewgyE
YouTube
طراحی سیستمها | طراحی کوتاهکننده آدرس URL | درس نوزده | System Design
چگونه سیستم کوتاهکننده آدرس URL طراحی کنیم؟
سرویسهایی مانند TinyURL یا Bitly قابلیت تبدیل آدرس بلند URL را به آدرس کوتاه دارند. برای آنکه شهودی نسبت به ابعاد بزرگ تعداد درخواستهای کاربران این سرویسها داشته باشید. آماری از سایت شرکت Bitly نقل میکنم.
این…
سرویسهایی مانند TinyURL یا Bitly قابلیت تبدیل آدرس بلند URL را به آدرس کوتاه دارند. برای آنکه شهودی نسبت به ابعاد بزرگ تعداد درخواستهای کاربران این سرویسها داشته باشید. آماری از سایت شرکت Bitly نقل میکنم.
این…
👍6
Forwarded from Golem Course
کانال تلگرام علیرضا آقامحمدی
کانال یوتیوب علیرضا آقامحمدی
💰 میخواهید وارد بازار کار شوید؟
📕 میخواهید دانش و مهارت ضروری صنعت کامپیوتر را بلد باشید؟
🧠 عاشق یادگیری هستید؟
اگر پاسخ شما به سه سوال بالا منفی است، این کانال مناسب شما نیست!
لینک دسترسی به تمام ویدیوها در کانال یوتیوب:
🐳 مسیر یادگیری دوآپس
🎯 طراحی سیستمها: (۲:۳۰ ساعت - در حال ضبط)
🎯 مدیریت سرور لینوکس: (۱:۳۰ ساعت - در حال ضبط)
🥉 مسیر یادگیری و تقویت زبان انگلیسی
=================================
🎯 آموزش زبان انگلیسی: (۳۰:۳۷ ساعت - به اتمام رسیده)
==================
🥈مسیر برنامهنویس شدن:
🎯 طراحی وبسایت - فرانت اند: (۵:۲۸ ساعت - در حال ضبط)
🎯 دوره آموزشی پایتون: (۱۸:۰۳ ساعت - در حال ضبط)
🎯 دوره آموزشی گیت: (۴:۰۶ ساعت - به اتمام رسیده)
🎯 دوره تست نرمافزار با پایتون: (۱:۲۰ ساعت - به اتمام رسیده)
🎯 آموزش کتابخانه پانداس: (۲:۲۶ ساعت - در حال ضبط)
==================
🥇 مسیر کار تیمی و ایجاد نرمافزار
🎯 دوره آموزشی اسکرام: (۲:۳۰ ساعت - به اتمام رسیده)
🎯 دوره مهندسی نیازمندیها: (۴:۳۲ ساعت - در حال ضبط)
🎯 دوره مدیریت پروژه: (۳:۱۶ ساعت - در حال ضبط)
==================
کانال یوتیوب علیرضا آقامحمدی
💰 میخواهید وارد بازار کار شوید؟
📕 میخواهید دانش و مهارت ضروری صنعت کامپیوتر را بلد باشید؟
🧠 عاشق یادگیری هستید؟
اگر پاسخ شما به سه سوال بالا منفی است، این کانال مناسب شما نیست!
لینک دسترسی به تمام ویدیوها در کانال یوتیوب:
🐳 مسیر یادگیری دوآپس
🎯 طراحی سیستمها: (۲:۳۰ ساعت - در حال ضبط)
🎯 مدیریت سرور لینوکس: (۱:۳۰ ساعت - در حال ضبط)
🥉 مسیر یادگیری و تقویت زبان انگلیسی
=================================
🎯 آموزش زبان انگلیسی: (۳۰:۳۷ ساعت - به اتمام رسیده)
==================
🥈مسیر برنامهنویس شدن:
🎯 طراحی وبسایت - فرانت اند: (۵:۲۸ ساعت - در حال ضبط)
🎯 دوره آموزشی پایتون: (۱۸:۰۳ ساعت - در حال ضبط)
🎯 دوره آموزشی گیت: (۴:۰۶ ساعت - به اتمام رسیده)
🎯 دوره تست نرمافزار با پایتون: (۱:۲۰ ساعت - به اتمام رسیده)
🎯 آموزش کتابخانه پانداس: (۲:۲۶ ساعت - در حال ضبط)
==================
🥇 مسیر کار تیمی و ایجاد نرمافزار
🎯 دوره آموزشی اسکرام: (۲:۳۰ ساعت - به اتمام رسیده)
🎯 دوره مهندسی نیازمندیها: (۴:۳۲ ساعت - در حال ضبط)
🎯 دوره مدیریت پروژه: (۳:۱۶ ساعت - در حال ضبط)
==================
Telegram
Golem Course
Alireza Aghamohammadi, Ph.D.
https://youtube.com/@GolemCourse
https://youtube.com/@GolemCourse
❤10🔥1💯1
بعد از مدتها فرصتی دوباره پیشآمد تا ویدیویی در رابطه با آموزش برنامهنویسی پایتون ضبط کنم.
برنامههایی که مینویسیم گاهی نیاز به پارامتر دارد و یکی از راههای منعطفپذیر کردن برنامه، تعیین مقادیر پارامتر برنامه از طریق فایلهای پیکربندی است. پارامترهای مورد نیاز برنامه در فایل پیکربندی تعریف میشود و سپس برنامه با خواندن آن فایل پارامترها را مقداردهی میکند.
یکی از استانداردهای رایج در پروژههای پایتونی استفاده از پیکربندیهایی با قالب ini است. در این ویدیو ابتدا توضیحی درباره این استاندارد میدهم و سپس در برنامهای مینویسیم که بتواند پارامترهای مورد نیازش را از فایل پیکربندی بخواند.
https://youtu.be/gkUpWXEfywQ
برنامههایی که مینویسیم گاهی نیاز به پارامتر دارد و یکی از راههای منعطفپذیر کردن برنامه، تعیین مقادیر پارامتر برنامه از طریق فایلهای پیکربندی است. پارامترهای مورد نیاز برنامه در فایل پیکربندی تعریف میشود و سپس برنامه با خواندن آن فایل پارامترها را مقداردهی میکند.
یکی از استانداردهای رایج در پروژههای پایتونی استفاده از پیکربندیهایی با قالب ini است. در این ویدیو ابتدا توضیحی درباره این استاندارد میدهم و سپس در برنامهای مینویسیم که بتواند پارامترهای مورد نیازش را از فایل پیکربندی بخواند.
https://youtu.be/gkUpWXEfywQ
YouTube
آموزش برنامهنویسی پایتون | خواندن فایل پیکربندی از نوع ini | جلسه صد و یازده
#آموزش_پایتون #پایتون #برنامه_نویسی
بعد از مدتها فرصتی دوباره پیشآمد تا ویدیویی در رابطه با آموزش برنامهنویسی پایتون ضبط کنم.
برنامههایی که مینویسیم گاهی نیاز به پارامتر دارد و یکی از راههای منعطفپذیر کردن برنامه، تعیین مقادیر پارامتر برنامه از طریق…
بعد از مدتها فرصتی دوباره پیشآمد تا ویدیویی در رابطه با آموزش برنامهنویسی پایتون ضبط کنم.
برنامههایی که مینویسیم گاهی نیاز به پارامتر دارد و یکی از راههای منعطفپذیر کردن برنامه، تعیین مقادیر پارامتر برنامه از طریق…
👍2