تولید کننده آموزش و محصولات مبتنی بر برنامه نویسی مدرن

آتش به اختیار

با سلام خدمت همه‌ی همراهان انقلابی و پیروان خط رهبری
این وبلاگ (سایت )  در راستای تحقق کلام رهبر «من به همه‌ی آن هسته‌های فکری و عملیِ جهادی، فکری، فرهنگی در سرتاسر کشور مرتّباً میگویم: هرکدام کار کنید؛ مستقل و به‌قول میدان جنگ، آتش‌به‌اختیار.»  تولید محتوا می‌کند .
امیدوارم قدم کوچکی در مسیر انقلاب و مسیر شهدا باشد .


آتش به اختیار
 
 
 
ما را دنبال کنید

Follow us

ModernCpp.ir
Aparat
Github
Linkedin
Email

۲۹ بهمن ۹۴ ، ۰۳:۰۸ ۱۰ نظر موافقین ۴ مخالفین ۰
بهنام صباغی

معرفی inja

inja یک تمپلیت انجین برای سی پلاس پلاس مدرن است.

از قابلیت‌های این ابزار میتوان به موارد زیر اشاره کرد:

  • متغیر‌ها
  • حلقه‌های تکرار
  • شروط
  • include
  • توابع
  • توابع سفارشی
  • کامنت

در ادامه برای هرکدام مثال آماده شده inja را می‌آوریم

ادامه مطلب...
۰۸ آبان ۹۸ ، ۱۳:۵۸ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

استفاده از ابزار مدلینگ UML در QtCreator

UML چیست ؟

آموزش UML از سایت تحلیل داده

برای آشنایی با UML میتوانید به لینک های بالا مراجعه کنید.

می توانید از ویرایشگر مدل برای ایجاد مدل های سبک جهانی مدل سازی (UML) با نمودارهای ساختاری و رفتاری استفاده کنید که دیدگاه های مختلفی از سیستم شما ارائه می دهد. با این حال ، ویرایشگر از نوع UML استفاده می کند و فقط زیر مجموعه ای از خواص برای مشخص کردن ظاهر عناصر مدل ارائه شده است.

QtCreator برای مدلسازی UML ابزاری توسعه داده که می‌توانید در لینک زیر با آن آشنا شوید.

لینک Modeling در QtCreator

 

با آرزوی موفقیت روز افزون در مسیر درست

۱۶ مهر ۹۸ ، ۰۰:۴۱ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

تیم سازی و کار گروهی قسمت اول

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

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

۲۰ مرداد ۹۸ ، ۱۴:۲۳ ۲ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

آموزش تنظیم تم برای برنامه Qt Widgets

برای اعمال تم روی برنامه‌های Qt Widget کافیست یک فایل qss تم را برنامه بخوانید و به عنوان استایلشیت برنامه تنظیم کنید
برای مثال:
 


برای نوشتن فایل استایل ( یا همان تم ) میتوانید از مستندات موجود در لینک‌های زیر استفاده کنید :
1. https://doc.qt.io/Qt-5/stylesheet-syntax.html
2. https://doc.qt.io/qt-5/stylesheet-reference.html

و در صورتی که میخواهید از فایل‌های آماده استفاده کنید کافیست در نت جستجو کنید تا به مثال های آماده برسید برای مثال در لینک زیر چندین تم موجود است که میتوانید استفاده کنید :
https://github.com/GTRONICK/QSS

در پناه حق

۲۷ تیر ۹۸ ، ۰۰:۲۱ ۶ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

جزوه آموزش CMake

با سلام

دوستان آموزش CMake رو در یک جزوه آموزشی براتون آماده کردم که میتونید استفاده کنید قبلا قولش رو داده بودم ولی واقعا وقت نمی‌کردم الان هم توی شرکت آماده کردم و شرکت اجازه داد بیرون هم منتشر کنم.

دانلود

 

۱۹ تیر ۹۸ ، ۲۱:۱۱ ۲ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

پرسشگران بی پاسخ

یه پیشنهاد کوچیک
حتما دیدید کسانی رو که مدام دنبال این هستند که چرا این زبان بهتره و باید کار بکنند و ...
مهم هم نیست چه زبانی باشه اونها همیشه دنبال جواب این سوالند توی مدتی که من توی حوزه برنامه نویسی مشغولم سعی کردم با روش های مختلف جواب بدم بعضی وقتا باهاشون مخالفت می‌کردم و دلایل خودم برای بهتر بودن سی پلاس پلاس رو می‌گفتم.
بعضی وقتا براشون توضیح می‌دادم که برای هر کاری توی هر حوزه‌ای که وارد می‌شید ممکنه یک زبان برتری داشته باشه با توجه به سطح کار و مدت پروژه و نیروی در اختیار برای کار و ...
بعضی وقتا باهاشون موافقت می‌کردم و میگفتم اونی که شما می‌گید درسته ولی الان میفهمم اشتباه می‌کردم نه برای این که می‌گفتم سی پلاس پلاس بهتره یا این که می‌گفتم هر حوزه زبان خودش رو میطلبه با توجه به فاکتور های بالا و حتی نه برای موافقت باهاشون بلکه ...
به داستان زیر گوش بدید :
خر و گرگ سر یه موضوع دعواشون شد و حق با گرگ بود ولی خر قانع نمی‌شد رفتند پیش شیر که ریش سفیدی کنه و مشکلشون رو حل کنه شیر تا شنید خر و گرگ دارند بحث می‌کنند گفت گرگ مقصره گرگ وا رفت و به شیر گفت : چرا ؟

شیر گفت : چون با خر بحث میکنی و توقع داری بفهمه


خلاصه می‌شناسم کسانی رو که تمام مدتی که من مشغول برنامه‌نویسی بودم مشغول این بودند که ببینند کدوم زبان بهتره و البته بعضیهاشون هنوزم دنبال جواب سوالشونند و شروع نکردند کار رو ...
ببینید همیشه به توازنی بین بحث کردن و بحث نکردن برقرار کنید بعضی وقتا انجام کار به چند روش هزینه میبره خب باید با دلایل منطقی بحث کرد اما بعضی وقتا بجای بحث میشه کار رو انجام داد و اجازه داد نتیجه حرف بزنه یا حتی توی موقعیت های دیگه که قطعا خودتون متوجه شدید که بحث کردن فقط داره شما رو از هدف دور میکنه و نمیذاره کار پیش بره پس شاید بهتره خیلی وقتا بحث رو کنار بذاریم و دست به کد بشیم.
البته الان در حال بحث با کسی نبودم برداشت شخصی نکنید چون من خیلی وقتا وقتی با کسی بحث میکنم پست میزنم که جواب اونو بدم ولی الان واقعا با کسی در حال بحث نبودم یه ایمیل از کوئرا برام اومد که یکی باز در مورد این که چرا باید سی پلاس پلاس کار کنه سوال کرده بود بعد یاد رفقایی افتادم که بعد از 4 سال سوال کردن الان مشغول سایت زدن با ASP هستند 😄
موفق باشید.

۰۱ ارديبهشت ۹۸ ، ۱۴:۵۳ ۱ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

بحثی در مورد یک لاگر گرافیکی خوب در کیوت با رعایت اصول معماری

باسلام

اگر پروژه‌های بزرگی تحت دسکتاپ نوشته باشید که لایه های زیادی داشته باشند و توی لایه های مختلف پردازش داشته باشید یا به هر دلیل دیگه‌ای نیاز به نشان دادن لاگ به کاربر باشید براتون پیش اومده که نیاز به یک لاگر پیدا کنید.

ادامه مطلب...
۲۳ فروردين ۹۸ ، ۱۷:۵۴ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

ماکرو برای تعریف یک استرینگ با مقدار اولیه نام کلاس در خود کلاس

یک قطعه کد کوچک برای تعریف یک متغیر از نوع std::string توی کلاس که با اسم کلاس مقدار دهی اولیه شده :

 

 

۲۳ فروردين ۹۸ ، ۱۷:۲۵ ۱ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

معرفی کتابخانه Serio

کتابخانه Serio  یک کتابخانه برای serialization در سی پلاس پلاس است که از کانتینرهای سی پلاس پلاس و دیگر تایپ‌ها و همچنین کلاس‌ها و استراکت‌ها پشتیبانی می‌کند و در مقایسه با کتابخانه libnop گوگل هم از سرعت بیشتری برخوردار است و هم پشتیبانی تایپ‌های بیشتری انجام می‌دهد.

لینک گیتهاب کتابخانه Serio

۰۷ فروردين ۹۸ ، ۱۹:۳۳ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

سیر تکامل از خود به خدا رسیدن

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

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

ادامه مطلب...
۲۹ بهمن ۹۷ ، ۱۹:۵۹ ۳ نظر موافقین ۰ مخالفین ۰
بهنام صباغی