برای دوره آینده کدام یک از موارد زیر را ترجیح میدهید؟
Anonymous Poll
44%
Docker
49%
System Design
7%
Kanban
🔥9👍2
خواندن اطلاعات از پایگاه داده، اتصال به شبکه، خواندن از فایل، پاسخی که از یک سیستم دیگر باید دریافت شود و ... نمونههایی از عملیات IO محسوب میشوند. این کارها میتواند مدت زمان زیادی از زمان اجرای برنامه را به خود اختصاص دهد. به همین خاطر، ایده برنامهنویسی ناهمگام مطرح شد. در برنامهنویسی ناهمگام (Asynchronous) برنامه میتواند تا زمانی که پاسخ عملیات IO آماده شود به کارهای دیگری که دارد برسد و به این شکل کل زمان اجرای برنامه کاهش پیدا کند.
اجازه دهید یک مثال بزنم. فرض کنید مشتری در یک رستوران سفارش غذا میدهد. تا زمانی که سفارش مشتری آماده میشود، صندوقدار میتواند سفارش باقی مشتریها را دریافت کند. لزومی ندارد که باقی مشتریها را معطل نگه داریم تا سفارش مشتری مذکور آماده شود.
در #پایتون با کمک ماژول asyncio میتوان برنامههای ناهمگام نوشت. یک ویدیو در یوتیوب درست کردم و کار با این ماژول را آموزش دادم.
https://youtu.be/-AqttMR4sXc
اجازه دهید یک مثال بزنم. فرض کنید مشتری در یک رستوران سفارش غذا میدهد. تا زمانی که سفارش مشتری آماده میشود، صندوقدار میتواند سفارش باقی مشتریها را دریافت کند. لزومی ندارد که باقی مشتریها را معطل نگه داریم تا سفارش مشتری مذکور آماده شود.
در #پایتون با کمک ماژول asyncio میتوان برنامههای ناهمگام نوشت. یک ویدیو در یوتیوب درست کردم و کار با این ماژول را آموزش دادم.
https://youtu.be/-AqttMR4sXc
YouTube
آموزش برنامهنویسی پایتون | برنامهنویسی ناهمگام با asyncio | جلسه صد و نه
#آموزش_پایتون #پایتون #برنامه_نویسی
در این جلسه با برنامهنویسی ناهمگام و ماژول asyncio آشنا میشویم. به علاوه دو کلید واژه async و await را فرا میگیریم.
راههای ارتباط با من در شبکههای اجتماعی:
https://news.1rj.ru/str/golemcourse
https://github.com/aaghamohammadi…
در این جلسه با برنامهنویسی ناهمگام و ماژول asyncio آشنا میشویم. به علاوه دو کلید واژه async و await را فرا میگیریم.
راههای ارتباط با من در شبکههای اجتماعی:
https://news.1rj.ru/str/golemcourse
https://github.com/aaghamohammadi…
👍22
01-Foundation.pdf
63.3 KB
به زودی طبق نظرسنجی که در کانال داشتیم، دوره طراحی سیستمها را آغاز میکنم. برای این دوره یک تصمیم دیگر هم گرفتم. به خاطر اهمیت بالای این درس، علاوه بر ویدیو یک سری جزوه در قالب pdf هم ارائه میکنم. جزوه درس اول به پیوست تقدیم میگردد.
#System_Design
#01_Foundation
#System_Design
#01_Foundation
👍14❤11🔥1
02-Scaling.pdf
568.9 KB
جزوه جلسه دو طراحی سیستمها به پیوست تقدیم میگردد. در این بخش به روشهای مقیاس کردن سایت خود میپردازیم.
#System_Design
#02_Scaling
#System_Design
#02_Scaling
❤7👍1
در جلسه دوم از درس طراحی سیستمها یاد میگیریم که چگونه یک سیستم را به گونهای مقیاسپذیر کنیم تا بتواند چندصد هزار درخواست را مدیریت کند. به طور مشخص با دو تکنیک مقیاس کردن عمودی (Vertical Scaling) و مقیاس کردن افقی (Horizontal Scaling) آشنا میشویم.
https://youtu.be/Ogb5zZ5u6f0
https://youtu.be/Ogb5zZ5u6f0
YouTube
طراحی سیستمها | مقیاس کردن | درس دو | System Design
در جلسه دوم از درس طراحی سیستمها یاد میگیریم که چگونه یک سیستم را به گونهای مقیاسپذیر کنیم تا بتواند چندصد هزار درخواست را مدیریت کند. به طور مشخص با دو تکنیک مقیاس کردن عمودی (Vertical Scaling) و مقیاس کردن افقی (Horizontal Scaling) آشنا میشویم.
راههای…
راههای…
👍4❤1
03-DNS.pdf
342.3 KB
جزوه جلسه سوم درس طراحی سیستمها به پیوست تقدیم میگردد. در این بخش با نحوه کارکرد DNS ها برای تبدیل Domain Name به IP Address آشنا میشویم.
#System_Design
#03_DNS
#System_Design
#03_DNS
👍5
04-Load-Balancer.pdf
458.7 KB
توازنکننده بار مقیاس کردن افقی سیستم را امکانپذیر میکند. جزوه جلسه چهارم در رابطه با توازنکنندههای بار به پیوست تقدیم میگردد.
#04_Load_Balancer
#System_Design
#04_Load_Balancer
#System_Design
👍4❤2
زمانی که یک محصول را توسعه میدهیم گاهی نیاز است که به یک سرور لینوکسی تحت شبکه (با IP مشخص) دسترسی داشته باشیم. با توجه به این که خرید سرور به لطف قیمت دلار گران است و هم اتصال ssh این روزها به خاطر اختلال اینترنت آزاردهنده است، میتوان یک ماشین مجازی ubuntu server بر روی دستکتاپ/لپتاپ شخصی ایجاد کرد و static ip به آن نسبت داد تا هم بتوانیم در یک private network به آن دسترسی داشته باشیم و هم قابلیت ssh برای دسترسی به ترمینال داشته باشد. در این ویدیو ایجاد چنین محیطی را آموزش میدهم:
https://youtu.be/CsQ6xqZNHV8
https://youtu.be/CsQ6xqZNHV8
YouTube
مدیریت سرور لینوکس | نصب سرور مجازی ubuntu با داشتن static ip | درس یک
زمانی که یک محصول را توسعه میدهیم گاهی نیاز است که به یک سرور لینوکسی تحت شبکه (با IP مشخص) دسترسی داشته باشیم. با توجه به این که خرید سرور به لطف قیمت دلار گران است و هم اتصال ssh این روزها به خاطر اختلال اینترنت آزاردهنده است، میتوان یک ماشین مجازی ubuntu…
👍3
05-database-replication.pdf
541.1 KB
در درسهای گذشته یاد گرفتیم که چگونه میتوانیم برای افزایش مقیاسپذیری سیستم، تعداد سرورها را افزایش دهیم. اما همچنان پایگاه داده سیستم به صورت مرکزی قرار دارد. یعنی با افزایش خواندن/نوشتن داده، پایگاه داده میتواند به گلوگاه (bottleneck) تبدیل شود.
#05_database_replication
#System_Design
#05_database_replication
#System_Design
👍1
در جلسه پنجم از درس طراحی سیستمها در مورد database replication حرف زدیم:
https://youtu.be/rVjG3bj0Jq8
https://youtu.be/rVjG3bj0Jq8
YouTube
طراحی سیستمها | رونوشت پایگاه داده | درس پنج | system design
رونوشت (replication) پایگاه داده به معنای نگه داشتن داده یکسان در سرورهای مختلف است به طوری که سرورها بتوانند از طریق شبکه با یکدیگر ارتباط برقرار کنند. به سرور ذخیرهسازی که کپی داده را در خود نگه میدارد برگردان (replica) میگویند.
راههای ارتباط با من…
راههای ارتباط با من…
👍1
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