Pure Coder
782 subscribers
197 photos
35 videos
9 files
165 links
⭕️آدرس سایت:
https://purecoder.ir

⭕️گروه پرسش و پاسخ:
@purecoder_gp

⭕️پشتیبانی:
@PureCoder_support
@MohammadTaherri
Download Telegram
کجا از async programming استفاده کنیم و کجا یه ترد دیگه ران کنیم؟

بستگی به تسکی داره که قراره انجام بشه.
تسک ها به دو دسته ی کلی تقسیم میشن:
☑️IO Bound
☑️CPU Bound

🔥دسته ی اول یعنی IO Bound اون هایی هستن که CPU خیلی توی سرعتشون تاثیر نداره و هرچقدر هم CPU قوی باشه توی سرعتشون تاثیر نمیگذاره. مثل network call یا خوندن یک فایل یا query زدن به دیتابیس و کارهایی از این دست.

IO = Input Output
input output operations

🔥دسته دوم یعنی CPU Bound تسک هایی هستن که CPU نقش تعیین کننده توی اون ها داره. مثل compress کردن یه ویدیو و یا حتا عملیات ساده ی جمع کردن دو تا عدد باهم.

اگه تسکی که داشتیم IO bound بود, مثل خوندن فایل, باید از async programming بهره ببریم تا در طول مدتی که اون درخواست درحال پردازش هست, ترد خودمون رو درگیر و بلاک نکنیم.

اگه تسکی که داشتیم, CPU Bound بود و البته سنگین بود, مثل compress کردن یه ویدیو, باید یه ترد دیگه ران کنیم و اونو توی اون ترد اجرا کنیم تا باز هم ترد اصلی خودمون رو درگیر اون پردازش سنگین نکنیم و از حداکثر توان CPU که به احتمال زیاد Multi Core هم هست استفاده کنیم.

🔥پس IO Bound ها معمولن با async await هندل میشن و CPU Bound های سنگین با ساختن ترد جدید.

@purecoder_ir
🔥9👍3
یکی از بزرگترین چالش های برنامه نویسی اینه که توی جاوااسکریپت this دقیقن به چی اشاره میکنه؟😂😂😂
🤣10👍1
This media is not supported in your browser
VIEW IN TELEGRAM
سیاوش شهشهانی، استاد ریاضی دانشگاه شریف:

انشا بیشتر از ریاضی به تقویت استدلال کمک میکنه!


واقعن چقدر مهارت کلیدی برای یه توسعه دهنده ی نرم افزاره!

@purecoder_ir
10
Pure Coder
سیاوش شهشهانی، استاد ریاضی دانشگاه شریف: انشا بیشتر از ریاضی به تقویت استدلال کمک میکنه! واقعن چقدر مهارت کلیدی برای یه توسعه دهنده ی نرم افزاره! @purecoder_ir
مهارت انشا نوشتن به اون معنا که توی ذهنمونه (انشا های مدرسه) برای توسعه دهنده ی نرم افزار ضروری نیست.

مثل یک نویسنده که خودش رو جای شخصیت های مختلف داستان قرار میده و قصه رو از دید اونها روایت میکنه، یک توسعه دهنده وقتی میتونه استدلال قوی داشته باشه که در درجه ی اول تعامل خوبی با سایر ذینفعان پروژه داشته باشه و در درجه ی دوم بتونه از زاویه ی نگاه اونها جهان رو ببینه و داستان نرم افزار رو روایت کنه.

یک توسعه دهنده هرچقدر هم که مهارت های فنی بالایی داشته باشه و هر چقدر هم که به ابزار های مختلف مسلط باشه، تا وقتی که توی کسب و کار حل نشه و دنیا رو از دید صاحبان کسب و کار تماشا نکنه، نمیتونه نرم افزار خوبی تولید کنه.

@purecoder_ir
🔥10
Forwarded from Vania Dart Framework
آموزش ساخت سیستم عضویت ، ورود ، تایید ایمیل با ارسال ایمیل به وسیله فریم ورک وانیا

میتونید ویدیو رو توی یوتیوب مشاهده کنید

https://www.youtube.com/watch?v=8_K-1Cc4ufE
2
🔥Async Queue

همون طور که میدونیم صف ها یا Queue ها به صورت FIFO یعنی First in First out کار میکنن و دو متد معروف دارن:

☑️Enqueue
☑️Dequeue

با متد اول یک ایتم رو به ته صف اضافه میکنیم و با متد دوم یک ایتم رو از سر صف یا queue بیرون میکشیم و پردازش میکنیم.

کد بالا یک Async Queue هست.
به این صورت که متد Dequeue به حالت async در اومده.

await queue.Dequeue();

در نتیجه اگه ایتمی توی queue باشه, بلافاصله اون رو ریترن میکنه و اگه نباشه, هر موقع که یه ایتم جدید به queue اضافه شد, اون رو بهمون تحویل میده.

🔥به این صورت ترد های مختلف میتونن از این queue استفاده کنن و متد Dequeue رو کال کنن و اون رو await کنن و هر موقع که ایتمی به queue اضافه شد, اون ترد ها به نوبت در صف پردازش قرار میگیرن.

پ.ن: کد به زبان سی شارپ نوشته شده.

@purecoder_ir
🔥42
🔥51
ایا معماری هایی مثل کلین‌، هگزاگونال یا onion توانایی سوییچ کردن و تغییر دیتابیس مثل اب خوردن رو بهمون میدن؟ (برای مثال تغییر MySQL به MongoDb) (نظر خودت رو بگو، کوییز نیست!)(فرض بر پیاده سازی درست معماری هست)
Anonymous Poll
58%
آره
42%
نه
🔥41
به طور کلی دامنه ی تغییرات توی کدوم یک از لایه های زیر بیشتره؟(کوییز نیست، نظر و تحلیل خودت رو بگو)
Anonymous Poll
31%
Domain
49%
Application Service (Usecaee)
20%
Infrastructure (Data)
🔥3