Pure Coder
رفتن به کانال در Telegram
⭕️آدرس سایت: https://purecoder.ir ⭕️گروه پرسش و پاسخ: @purecoder_gp ⭕️پشتیبانی: @PureCoder_support @MohammadTaherri
نمایش بیشتر775
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-17 روز
-230 روز
آرشیو پست ها
775
ایا معماری هایی مثل کلین، هگزاگونال یا onion توانایی سوییچ کردن و تغییر دیتابیس مثل اب خوردن رو بهمون میدن؟ (برای مثال تغییر MySQL به MongoDb) (نظر خودت رو بگو، کوییز نیست!)(فرض بر پیاده سازی درست معماری هست)
775
اموزش پایتون جادی ۲۱۴ هزار تا دانشجو داره😁
اقا مگه چنتا برنامه نویس توی ایران داریم که ۲۱۴ هزارتاش پایتون کار میکنن؟
هوش مصنوعی هم ما رو از پا در میاره، جا کم میاریم😂😂
مازاد برنامه نویس داره کشور😂
775
Repost from Flutter | فلاتر
#مکتب_خونه
به مناسبت تولد مکتبخونه، 500 دوره آموزشی با تخفیف 100% عرضه شدن و شما میتونید یکی از اونا رو به عنوان هدیه تولد به صورت رایگان دریافت کنید.
کد تخفیف:
HBD
https://land.maktabkhooneh.org/tavalod14
#موقت
775
🔥اموزش رایگان
✅الگوریتم - جادی
https://faradars.org/courses/algorithmic-problems-for-programming-interviews-fvprg366
775
معماری هایی مثل clean، هگزاگونال، onion در چه مواردی نظر صریح میدن و قانون وضع میکنن؟(میتونی چند مورد رو انتخاب کنی)
775
معماری هایی مثل clean, هگزاگونال، onion در مورد کدوم موارد نظر میدن و صریح صحبت میکنن و قانون وضع میکنن؟ (میتونین چند مورد رو انتخاب کنید)
775
🔥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
775
Repost from Vania Dart Framework
آموزش ساخت سیستم عضویت ، ورود ، تایید ایمیل با ارسال ایمیل به وسیله فریم ورک وانیا
میتونید ویدیو رو توی یوتیوب مشاهده کنید
https://www.youtube.com/watch?v=8_K-1Cc4ufE
775
مهارت انشا نوشتن به اون معنا که توی ذهنمونه (انشا های مدرسه) برای توسعه دهنده ی نرم افزار ضروری نیست.
مثل یک نویسنده که خودش رو جای شخصیت های مختلف داستان قرار میده و قصه رو از دید اونها روایت میکنه، یک توسعه دهنده وقتی میتونه استدلال قوی داشته باشه که در درجه ی اول تعامل خوبی با سایر ذینفعان پروژه داشته باشه و در درجه ی دوم بتونه از زاویه ی نگاه اونها به دنیا نگاه کنه و داستان نرم افزار رو روایت کنه.
یک توسعه دهنده هرچقدر هم که مهارت های فنی بالایی داشته باشه و هر چقدر هم که به ابزار های مختلف مسلط باشه، تا وقتی که توی کسب و کار حل نشه و دنیا رو از دید صاحبان کسب و کار تماشا نکنه، نمیتونه نرم افزار خوبی تولید کنه.
@purecoder_ir
775
سیاوش شهشهانی، استاد ریاضی دانشگاه شریف:
انشا بیشتر از ریاضی به تقویت استدلال کمک میکنه!واقعن چقدر مهارت کلیدی برای یه توسعه دهنده ی نرم افزاره!
@purecoder_ir
775
یکی از بزرگترین چالش های برنامه نویسی اینه که توی جاوااسکریپت this دقیقن به چی اشاره میکنه؟😂😂😂
775
❓کجا از 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
775
🔥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
775
✅مهمترین اصلی که توی نام گذاری یه متد، variable یا ... باید رعایت کنیم اینه که شبیه به یه story خونده بشه. یه جمله ی روون انگلیسی (Plain English )
🔥اگه قواعد گرامی ساده رو توی نام گذاری رعایت کنیم، نام های خیلی خوانا خواهیم داشت و خوندن کد خیلی ساده میشه.
🤦♂بعضی مواقع این قواعد رو رعایت نمیکنیم و کار رو برای خودمون خیلی سخت میکنیم.
👈برای مثال وقتی یه کلاس user داریم و یه متدی داره که قراره یه bool ریترن کنه و بگه که email اش valid هست یا نه؟ باید در نظر بگیریم که این متد داخل یه if استفاده میشه.
❓حالا از بین جمله های زیر کدومش به انگلیسی روون نزدیکتره و راحتر خونده میشه؟
✅If user email is valid
❌If user is email valid
❌If user is valid email
✅مسلمه که جمله ی اول به انگلیسی روون نزدیکتره. پس بهتره اسم اون متد رو emailsValid بگذاریم.
🔥اگه این قاعده یعنی خونده شدن مثل یه جمله ی روون رو رعایت کنیم، خیلی جاها مشکلاتمون حل میشه. در این بین همجنین میتونیم بعضی جاها برای خوانا تر شدن کد از حروف تعریف مثل a, an, the استفاده کنیم و لزومی نداره که توی استفاده از اونها خساست به خرج بدیم.
پ.ن: پارادایم object oriented به تولید کدهایی که شبیه به یه جمله ی روون انگلیسی نوشته بشن و از قاعده ی زیر پیروی کنن کمک میکنه.
[subject] [verb] [object]
@purecoder_ir
775
درود دوستان
این مدت اخیر احتمالا ریپو های منو دیدین و میدونین که چندتا کتاب برنامه نویسی رو به زبان شیرین فارسی ترجمه کردم.
مطمئناً گیت هاب جای مطالعه کتاب نیست و خسته کننده س برای این کار، پس به سرم زد که کار رو راحت کنم! ایده!
با گیت هاب پیج ترجمه ها رو آنلاین کنم که مطالعه راحت تر باشه.
و بووووومممم!
اینم سایت گیتاب ، Gitab
به زودی pdf همه شون قرار میدم.
لطفاً با دستای خوشگل تون با استار دادن حمایت کنید و به اشتراک بذارید، این ترجمه ها واقعا میتونه به برنامه نویس های جونیور، مید لول ... کمک کنه. هدف؛ بهانه نداشتن برای مطالعه کردن، افزایش منابع فارسی
https://hheydarian.github.io/Gitab/
775
دوستانی که مایل هستند توی میتینگ ساخت سیستم ورود و عضویت با وانیا شرکت کنند میتونید از لینک زیر جوین بشن
https://meet.google.com/ukm-pdux-tzv
775
میتونید وارد لینک زیر بشید با گیتهاب عضو بشید تا بهتون 100 دلار کردیت بده برای استفاده از API مدل های GPT,Claude میتونید توکن رو بردارید بزارید توی Claude code و ازش مثل cursor استفاده کنید
حتما با گیت هاب وارد بشید
لینک معرف
775
دوستانی که بکند کار نمیکنن و تمرکزشون کلن روی فلاتره، اگه یه کم با ادبیات بکند اشنا بشن به تعاملشون با برنامه نویس های دیگه توی تیمشون کمک میکنه و فریمورکی مثل وانیا که با دارت نوشته شده و نیاز به یادگیری زبان دیگه ای نداره میتونه توی این زمینه کمک شایانی کنه.
دوستانی هم که تصمیم دارن در اینده سمت بکند برن، باز هم این اشنایی میتونه خیلی براشون راه گشا باشه.
یک سری از مفاهیم همه جا ثابته و فرقی نمیکنه توی چه زبان و فریمورکی باشید. چه بهتر که بدون نیاز به یادگیری زبان جدید با اون مفاهیم اشنا بشید و در اینده جاهای دیگه هم بتونید ازش استفاده کنید.
این فقط در صورتیه که نخواین به طور مستقیم از وانیا استفاده کنید. وگرنه داستان کلن فرق میکنه و میتونید از همین جلسه ها شروع کنید و عمیق واردش بشید.
لینک جلسه
جلسه ساعت دو و نیم تا سه و نیم روز سه شنبه برگزار میشه.
775
نظر سنجی
بنظرت کدوم یک از حالت های زیر برای یک اپ موبایل میتونه پرفرمنس بهتری ارائه بده؟
