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

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

⭕️پشتیبانی:
@PureCoder_support
@MohammadTaherri
Download Telegram
🔥asynchronous, multi threading
🆚Dart vs C#

🔥دارت و سی شارپ هر دو asynchronous هستن‌. البته توی سی شارپ هم میتونیم به صورت asynchronous کد بزنیم و هم غیر asynchronous.

یک برنامه ی asynchronous حتا در حالت single thread میتونه از یک برنامه ی multi thread که asynchronous نیست، بهینه تر عمل کنه‌.

سی شارپ به صورت پیش فرض یه محیط multi thread رو بهمون میده ولی دارت single thread هست.

پس توی سی شارپ اگه async کد بزنیم، میتونیم یه برنامه ی multi thread و asynchronous داشته باشیم و اگه async نزنیم یه برنامه ی multi thread معمولی داریم.

توی دارت کدهای بعد از await توی همون isolate ای اجرا میشن که کدهای قبل await اجرا میشدن. ولی توی سی شارپ ممکنه که کدهای قبل و بعد از await توی دو ترد مختلف اجرا بشن‌‌.

پس هر دو زبان با توجه به async بودن، بهینه عمل میکنن(البته به شرطی که ما کار رو خراب نکنیم)‌‌‌. در مقابل زبان سی شارپ با توجه به مولتی ترد بودن میتونه از حداکثر ظرفیت CPU استفاده کنه. ولی در عین حال همین مولتی ترد بودن چالش هایی رو به همراه داره که یک برنامه ی single thread باهاشون روبرو نمیشه. مثل shared memory که بین ترد ها اتفاق میوفته و همیشه باید حواسمون باشه که برنامه thread safe باشه. مخصوصن در محیط هایی مثل اپ های بکند که امکان همزمانی بشدت بالا میره‌. و چالش های دیگه ... .

کدوم یک بهترن؟

همه چیز trade off عه‌‌‌. بهتر و بدتری وجود نداره‌.
سی شارپ سعی میکنه از بیشترین توان CPU استفاده کنه، ولی این در مقابل تحمیل یه سری هزینه ها اتفاق میوفته.
باید بین این دو trade off بشه‌.

🔥توی هر دو زبان امکان این که خود دولوپر worker thread هایی رو اجرا کنه وجود داره که توی دارت با توجه به share نشدن memory بین ترد ها، بهشون isolate میگن.

سی شارپ علاوه بر این ترد هایی که خود دولوپر ممکنه ران کنه، یک thread pool داره و برای پردازش های خودش از ترد های این thread pool استفاده میکنه‌‌‌‌. دولوپر برای پردازش های خاص خودش میتونه یه ترد از thread pool قرض بگیره و یا یه ترد اختصاصی برای خودش بسازه که هر کدوم trade off های خوذش داره (قرض گرفتن یا اختصاصی ساختن). در مقابل زبات دارت تا وقتی که خودمون isolate ای نسازیم، single thread هست‌‌. از طرفی عمر isolate هایی که خودمون میسازیم هم کوتاهه و در کل میتونیم دارت رو single thread بدونیم. البته تاکید میکنم که به خاطر async بودنش و بلاک نشدنش موقع درخواست های IO، از محیط های multi thread و غیر async میتونه بهینه تر هم عمل کنه یا دست کم پا به پاشون حرکت کنه‌‌‌‌.

@purecoder_ir
🔥7👍4
کجا از 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
🔥8👍3
یکی از بزرگترین چالش های برنامه نویسی اینه که توی جاوااسکریپت this دقیقن به چی اشاره میکنه؟😂😂😂
🤣10
This media is not supported in your browser
VIEW IN TELEGRAM
سیاوش شهشهانی، استاد ریاضی دانشگاه شریف:

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


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

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

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

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

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

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

https://www.youtube.com/watch?v=8_K-1Cc4ufE
1
🔥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
🔥41
🔥5
Forwarded from Flutter | فلاتر (🅝🅘🅜🅐)
#مکتب_خونه
به مناسبت تولد مکتب‌خونه، 500 دوره آموزشی با تخفیف 100% عرضه شدن و شما میتونید یکی از اونا رو به عنوان هدیه تولد به صورت رایگان دریافت کنید.
کد تخفیف:
HBD

https://land.maktabkhooneh.org/tavalod14

#موقت
Flutter | فلاتر
#مکتب_خونه به مناسبت تولد مکتب‌خونه، 500 دوره آموزشی با تخفیف 100% عرضه شدن و شما میتونید یکی از اونا رو به عنوان هدیه تولد به صورت رایگان دریافت کنید. کد تخفیف: HBD https://land.maktabkhooneh.org/tavalod14 #موقت
اموزش پایتون جادی ۲۱۴ هزار تا دانشجو داره😁

اقا مگه چنتا برنامه نویس توی ایران داریم که ۲۱۴ هزارتاش پایتون کار میکنن؟


هوش مصنوعی هم ما رو از پا در نیاره، جا کم میاریم😂😂

مازاد برنامه نویس داره کشور😂

این تعداد شرکت کننده توی اموزش های یودمی هم یه رکورد محسوب میشه
👍3🤣3😁1