<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های DANIDepp</title><link>https://virgool.ir/feed/@DANIDepp</link><description>یک دونه برنامه نویس</description><language>fa</language><pubDate>2026-11-11 15:16:06</pubDate><image><url>https://files.virgool.ir/upload/users/1544008/avatar/i4xRrF.jpeg</url><title>DANIDepp</title><link>https://virgool.ir/@DANIDepp</link></image><item><title>چطور از سی پلاس پلاس (++C) در پایتون استفاده کنیم</title><link>https://virgool.ir/@DANIDepp/چطور-از-سی-پلاس-پلاس-c-در-پایتون-استفاده-کنیم-mrcx0o4xamiy</link><description>خوب سلام سلام من دانیال هستم و قراره با هم امروز یک تکنیک خفن رو یاد بگیریم که چطور میشه از سی پلاس پلاس در پایتون استفاده کردخوب شاید بپرسید چه فایده ای داره اصلا این کار ؟چند تا فایده خیلی عالی داره ولی من فقط دو تاشو میگم بهتونسرعتاولین و بهترین اتفاقی که وقتی از سی پلاس پلاس در پایتون (Python) استفاده میکنید اینکه سرعت اون بخشی از برنامتون که با سی پلاس پلاس نوشتید در پایتون عملا برابر با سرعت خود سی پلاس پلاس این یعنی ۵۰ تا ۶۰ برابر سریع تر از پایتون !چون پایتون یک زبان مفسری هستش ولی سی پلاس پلاس یک زبان کامپایلری و در حقیقت با این کار انگار دارید خود کد سی پلاس پلاس رو ران میکنیدقابلیت هادومین خوبیش هم قابلیت هایی هست که شما در سی پلاس پلاس دارید ولی در پایتون ندارید.یک سری کار ها هستند که پایتون یا نمیتونه اون کارو انجام بده یا کتابخونش هنوز درست نشده و نیاز به یک زبان سطح پایین تر هستش که شما میتونید از زبان هایی مثل سی یا سی پلاس پلاس برای اون بخش استفاده کنید.یا حتی میتونید اگه بخشی در پایتون ناقص موند کتابخانه خودتون رو اختصاصی درست کنید چرا که نهخوب حرف زدن دیگه بسه بریم یک راست سراغ آموزشاول از همه من یک تابع سی پلاس پلاس دارم که فقط با فراخوانیش یک چیزی رو پرینت یا نمایش میده تو ترمینال.حالا اگر بخوام از این تابع خارج از برنامه هام به عنوان مثلا یک کتاخونه یا در زبان های دیگه استفاده کنم به صورت پیشفرض نمیتونم پس مجبورم از قابلیتی استفاده کنم که سی و سی پلاس پلاس به من داده به نامExtern &#34;C&#34;این قابلیت باعث میشه که اگه تابعی داخل این تعریف کردیم خارج از برنامه و در زبان های دیگه هم و در زبان های دیگه هم (البته اگه تبدیل به کتابخونه با پسوند .so بشه) قابل استفاده باشهکد نهایی به این شکل میشهیک تابع تعریف کردم داخل extern به نام hello. این تابع hello تابعیه که خارج از برنامه قابل صدا زدنه و هر موقع یکی اونو صدا بزنه میاد و تابع print_hello رو برای من چاپ میکنه.حالا چجوری از فایل سی پلاس پلاسمون خروجی کتابخونه بگیریم ؟خیلی ساده با این دستور یک خروجی با پسوند so. میگیریمحالا میریم سر وقت پایتونبرای استفاده از کتاخونه ها یا فایل های dll در پایتون نیاز به استفاده از کتابخونه ctypes که به صورت پیش فرض داخل پایتون هست داریماین کتاخونه کارش کار با dll ها و کتاخونه هاستکتابخونه ctypes رو ایمپورت (import) میکنیم و بعد مثل دستوری که تو عکس میبینم مکان کتابخانه ای که با سی پلاس پلاس ساختیم رو بهش میدیم و میندازیمش داخل یک متغیرحالا هم فراخوانیش میکنیم و میبینم که واسمون تو ترمینال پرینت رو نمایش میدهبسیار هم عالیاما یک سری سوال ها باقی میمونه‌ ؟اگر توی سی پلاس پلاس تابعی داشتیم که ورودی میگرفت چی ؟ اگه اصلا یک خروجی به ما برمیگردوند (return) چجوری اونو بگیریم ؟من واسه اون به انگلیسی یک ویدیو ساختم که البته خیلی سادس فقط کافیه ببینید برای دیدن بقیه راه کار ها میتونید این ویدیو رو که از صفر تا صد تو ۵ دقیقه توضیح دادم رو ببینید https://youtu.be/XxzxVSC-5Dc فعلا خدانگهدار</description><category>DANIDepp</category><author>DANIDepp</author><pubDate>Wed, 18 Jan 2023 09:56:53 +0330</pubDate></item><item><title>گیت (git) چیست ؟</title><link>https://virgool.ir/Rocket/گیت-git-چیست-yztjf8sxjuva</link><description>سلام سلام من دانیالم با یک پست کوچولو صرفا برای کسایی هیچ اطلاعاتی درباره گیت ندارن.خوب گیت چیه اصلا ؟خوب سوال خوبیه (اما برای برنامه نویسا)فکر کنید یک پروژه نسبتا بزرگ یا متوسط زدید که کلی فایل توشه ، مثلا به فرض یک اپ اندروید که صفحه های مختلفی توش داره. از صفحه لاگین گرفته تا صفحه کاربران ، لیست خرید و فلان بیسارخوب حالا ما میخوایم یک صفحه ای به نام مثلا علاقه مندی ها بهش اضافه کنیم که قطعا با بقیه صفحات هم در ارتباط هست ، اینکارو هم میکنیم اما یک هو به یک باگی میخوریم که معلوم نیست از کجا اومدهخوب اینجا دو تا حالت پیش میادیا با git زدی پروژتویا بدون گیت کار کردیخوب اگه جزو افراد دسته اول باشی که کارت خیلی راحته اما اگه جزو افراد دسته دوم باشه تقریبا میشه گفت کارت خیلی خیلی سخته چرا ؟چون باید بشینی کل کدتو یکی یکی دیباگ کنی ببین کجاش مشکل داره با کد جدیدت ، یا شایدم یک چیزی رو اشتباهی دستت خورده و اضافه کردی ولی حواست نیست! خوب اما گیت اینجور جاها میاد کمکت ?گیت قابلتی داره به نام commit یا به فارسی کامیت خودمون. این احتمالا کاری هست که خیلی ها قبل از آشنایی با گیت انجام دادن حتی خود من ?چیکار میکردیم؟! میومدیم از هر نسخه از اپی که درست میکردیم مثلا یک بخش اضافه کردیم که علاقه مندی ها رو بهمون نشون میداد ،میومدیم کل پروژه رو یک بار کپی میگرفتیم تو یک پوشه ذخیره میکردیم که اگه به ارور خوردیم برگردیم به این نسخه که باگ نداشتاین یکی از باحال ترین کارایی که گیت میتونه با یک دستور به راحتی براتون انجام بده، و البته فقط گیت به این کارش خلاصه نمیشه این یکی از صدها کاری بود که میشه با گیت انجام دادقابلیت کامیت (commit)شما میتونید با قابلیت کامیت از هر بخش یا کاری که تو پروژتون انجام دادید یک نسخه مثلا پشتیبان بگیرید با یک توضیح (که بهش تو گیت میگن کامنت) که بفهمید این بکاپ براچی بوده ، بعد خیلی راحت میتونید این کار هارو انجام بدید با گیت (git)دیدن کد های قبلی یا رفتن به صورت کلی به پروژه قبلی (یعنی کل فایل های پروژه قبلی برمیگرده تا ببینید فقط)دیدن تفاوت های در پروژه قبلی ، مثلا یک فایل داشتید به نام x و تو نسخه جدید یکم تغییر دادید یا به صورت ناخواسته تغییر دادیش و به یک باگ خوردید ، تو این فایل این قابلیت میاد میگه تو پروژه قبلی این خط کد ها نسبت به پروژه قبلی تغییر اضافه یا حذف شدهکلا برگشتن به پروژه قبل (یعنی کامیت الانتون حذف شه و تغییرات برگرده به کامیت قبلی یا هر کامیتی که میخواید)آپلود پروژه روی گیت هاب و گرفتن از اون (برای کسایی مثل من که مشکل بکاپ نداشتن از پروژشون رو دارن عالیه)دیدن لیست تمام تغییرات به همراه تاریخ کلی اطلاعات دیگه که گیت در اختیارتون میزاره مثل عکس زیر که از یکی از پروژه های خودمهدقت کنید اینا فقط قابلیت های بخش commit گیت بود ، بازم میگم گیت خیلی خیلی بزرگ تر از چیزیه که فکر میکنید و ده ها یا شایدم صد ها قابلیت دارهبه عنوان مثال قابلیت مرج هم یکی از قابلیتای خوبه که میتونیم بهش اشاره کنیمقابلیت مرج و برنچ (branch)فکر کنید شما یک شرکت با تعداد کارکنان زیاد یا متوسط هستید و همگی روی یک اپلیکیشن ، سایت ، نرم افزار یا هرچیزی به صورت مشترک کار میکنیدبه فرض همه روی طراحی یک سایت کار میکنید خوب ، یکی میخواد بخش ورود سایت رو بنویسه یکی دیگه مثلا بخش پرداخت سایت. خوب اینا همه با هم که نمیتونن به فایل های اصلی دسترسی داشته باشن (اینجا فایل اصلی همون هسته سایتمون میشه). خوب گیت میاد چیکار میکنه میاد به هر کسی دسترسی یک نسخه از اون سایت رو میده بدون اینکه بتونن تغییری ایجاد بکنن روی اصل کار (نکه نتونن میتون یعنی اینجا رو تغییر بدن تو سایت هیچی تغییر نمیکنه)بعد کسی که مثلا میخواد صفحه لاگین رو طراحی بکنه ، وقتی طراحیش تموم شد میاد به مدیر اصلی پروژه درخواست میده که آقا صفحه لاگین تموم شد مدیر پروژه هم وقتی تایید بکنه این میاد به عنوان یک قابلیت میچسبه یا اضافه میشه به پروژه اصلی یک چیزی شبیه تصویر زیر هست این کاردقیقا مثل عکس بالا قابلیتی که قراره به پروژتون اضافه کنید میشه Feature و پروژه اصلی یا هسته پروژتون میشه Master یا Main یا هر اسمی میخواین براش بزارینو در آخر وقتی مدیر پروژه اینو تایید کرد میاد و به پروژه اصلی اضافه میشهاین بود از دو تا از قابلیت های خوبه گیت که البته کل گیت به اینا خلاصه نمیشه و کلی کار دیگه میشه باهاش کرداگه خواستین میتونم کار با گیت هم توی پست های بعدی تو ویرگول بهتون توضیح بدمبرای نصبشم خیلی سادس فقط کافیه برای لینوکس از دستور زیر استفاده کنید :sudo apt install gitو واسه نصب ویندوز هم باید برید تو سایتhttps://git-scm.comامیدوارم این مطلب براتون مفید بوده باشه</description><category>DANIDepp</category><author>DANIDepp</author><pubDate>Sat, 13 Aug 2022 20:27:44 +0430</pubDate></item></channel></rss>