Await و Async در جاوا اسکریپت: مدیریت کدهای ناهمگام به روشی کارآمد

جاوا اسکریپت

جاوا اسکریپت زبانی تک‌رشته‌ای است، به این معنا که تنها یک کار را در یک زمان می‌تواند انجام دهد. این ویژگی می‌تواند منجر به مشکلاتی در مدیریت عملیات ناهمگام (asynchronous operations) شود؛ عملیاتی که زمانبر هستند و نمی‌توانند فوراً نتیجه را برگردانند، مانند درخواست‌های شبکه، دسترسی به پایگاه داده، یا خواندن و نوشتن فایل. در گذشته، برای مدیریت اینگونه عملیات از Callback و Promise استفاده می‌شد. اما با معرفی async و await در ES2017، جاوا اسکریپت ابزارهای قدرتمندتری برای نوشتن کدهای ناهمگام به روشی خواناتر و مشابه کدهای همگام (synchronous) فراهم کرد.

ادامه خواندن “Await و Async در جاوا اسکریپت: مدیریت کدهای ناهمگام به روشی کارآمد”

معرفی ابزار valgrind برای شناسایی نشت حافظه

والگریند

مقدمه

نشت حافظه یکی از مشکلات رایج و پنهان در برنامه‌نویسی است که می‌تواند منجر به کاهش کارایی، ناپایداری و حتی از کار افتادن کامل برنامه شود. در زبان‌های برنامه‌نویسی مانند C و C++ که مدیریت حافظه به عهده برنامه‌نویس است، احتمال وقوع نشت حافظه به مراتب بیشتر است. ابزارهای مختلفی برای شناسایی و رفع این مشکل توسعه یافته‌اند که یکی از قدرتمندترین و پرکاربردترین آن‌ها، Valgrind است.

ادامه خواندن “معرفی ابزار valgrind برای شناسایی نشت حافظه”

ساخت بازی Bricks با PyGame

مقدمه

بازی Bricks، که با نام‌هایی مانند Breakout یا Arkanoid نیز شناخته می‌شود، یک بازی کلاسیک آرکید است که هدف اصلی در آن شکستن تمام آجرها در بالای صفحه با استفاده از یک توپ و یک پدل (تخته) است. پدل توسط بازیکن کنترل می‌شود تا توپ را به سمت بالا برگرداند و از افتادن آن به پایین صفحه جلوگیری کند. ساخت این بازی با استفاده از کتابخانه PyGame در پایتون یک پروژه عالی برای یادگیری مفاهیم پایه توسعه بازی‌های دوبعدی است. در این مقاله به صورت جامع به مراحل و مفاهیم کلیدی برای ساخت این بازی می‌پردازیم.

ادامه خواندن “ساخت بازی Bricks با PyGame”

کلمات کلیدی auto و decltype در C++

کلمات کلیدی auto و decltype در C++ ابزارهای قدرتمندی برای استنتاج نوع در زمان کامپایل هستند. این ویژگی‌ها، که از C++11 به بعد معرفی شده‌اند، به برنامه‌نویسان کمک می‌کنند تا کدهای انعطاف‌پذیرتر و قابل نگهداری‌تری بنویسند.

ادامه خواندن “کلمات کلیدی auto و decltype در C++”

مقدمه‌ای بر بازی سازی با کتابخانه PyGame

صنعت بازی‌های ویدیویی یکی از پویاترین و جذاب‌ترین حوزه‌های فناوری است که هر روز شاهد نوآوری‌ها و خلاقیت‌های بی‌شماری در آن هستیم. برای بسیاری از علاقه‌مندان به این حوزه، رویای ساخت بازی‌های خودشان همواره در ذهنشان وجود داشته است. خوشبختانه، با ظهور کتابخانه‌ها و ابزارهای مختلف، ورود به دنیای بازی‌سازی دیگر نیازمند دانش تخصصی و پیچیده در سطح موتورهای بازی تجاری نیست.

یکی از بهترین گزینه‌ها برای شروع یادگیری بازی‌سازی، به ویژه برای کسانی که با زبان برنامه‌نویسی پایتون آشنا هستند، کتابخانه قدرتمند و در عین حال ساده‌ی PyGame است. PyGame مجموعه‌ای از ماژول‌های پایتون است که برای ساخت بازی‌های دو بعدی طراحی شده و امکاناتی نظیر مدیریت پنجره، دریافت ورودی کاربر، رسم اشکال و تصاویر، پخش صدا و موسیقی، و مدیریت برخورد اشیاء را در اختیار توسعه‌دهندگان قرار می‌دهد.

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

ادامه خواندن “مقدمه‌ای بر بازی سازی با کتابخانه PyGame”

بسط لیست، چندتایی یا دیکشنری و استفاده از آن‌ها به عنوان ورودی توابع در پایتون

بسیاری اوقات پیش می‌آید که ما قصد فراخوانی تابعی را داریم و ورودی‌های این تابع در یک لیست، چندتایی یا دیکشنری قرار دارند. ابتدایی‌ترین کار ممکن جداکردن تک تک عناصر و دادن آن‌ها به عنوان ورودی به تابع است. ولی می‌توان با استفاده از عملگرهای * و ** کار را ساده‌تر کرد. در این نوشته با نحوه استفاده از این عملگرها آشنا خواهیم شد.

ادامه خواندن “بسط لیست، چندتایی یا دیکشنری و استفاده از آن‌ها به عنوان ورودی توابع در پایتون”

توابع ابتدایی مربوط به آمار در numpy

در این نوشته با توابع ابتدایی مربوط به آمار آشنا خواهیم شد. این توابع عبارت اند از حداقل، حداکثر، متوسط، انحراف معیار، واریانس، همبستگی متقابل، کووارینس و غیره. کتابخانه numpy در زبان برنامه‌نویسی پایتون این توابع را در اختیار ما قرار داده است.

ادامه خواندن “توابع ابتدایی مربوط به آمار در numpy”

دستورات where و argwhere در پایتون

در این نوشته به معرفی دو دستور where و argwhere از کتابخانه numpy پرداخته خواهد شد. این دو دستور اگر درست و به جا استفاده شوند می‌توانند موجب خوانایی کدها شده و سرعت برنامه‌نویسی ما را نیز افزایش دهند. با مثال‌ها گوناگون نحوه استفاده از این دو تابع توصیف خواهد شد.

ادامه خواندن “دستورات where و argwhere در پایتون”

گیت‌هاب چیست و چگونه می‌توان از آن استفاده کرد؟

در این نوشته به توصیف یکی از مشهورترین سرویس‌های میزبانی سیستم کنترل نسخه گیت یعنی گیت‌هاب پرداخته خواهد شد. گیت‌هاب که از سال ۲۰۰۷ شروع به ارائه خدمات کرده است، در حال حاضر محبوب‌ترین و پر کاربرترین ارائه دهنده سرویس میزبانی گیت می‌باشد. لازم به ذکر است گیت یک نرم افزار کنترل نسخه و بازنگری و مدیریت کد می‌باشد. این نرم افزار ابتدا برای توسعه سیستم عامل لینوکس توسط لینوس تروالدز طراحی گردید ولی به مرور زمان مورد اقبال عمومی قرار گرفت و الهام بخش بسیاری از پروژه‌های دیگر گردید.

ادامه خواندن “گیت‌هاب چیست و چگونه می‌توان از آن استفاده کرد؟”