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

۲۶ مطلب با کلمه‌ی کلیدی «سی پلاس پلاس» ثبت شده است

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

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

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


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

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

سی پلاس پلاس بعد از کنسول

با سلام

پیرو سوالی که امشب یه خانم محترم از بنده پرسیدند لازم دونستم یک سری توضیحات رو در قالب یک پست منتشر کنم.

سوال ایشون این بود که :

سلام
میخاستم منو در مورد ساخت یک برنامه کامل با سی پلاس راهنمایی کنید
برای مثال
یک نرم افزار مدیریت کتاب برای کتابخانه
چطوری چنین نرم افزاری با سی پلاس بسازیم تا دیگران درکامپیوترشون نصبش کنن و استفاده کنن
و مثل بقیه ظاهر زیبایی هم داشته باشه
من سی پلاس بلدم ولی فقط درکنسول کارکردم
ممنون میشم راهنمایی کنید
سپاس

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

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

تا توانی کدی به دست آور *** که کد نوشتن هنر نمی‌باشد

با نام و یاد خدا در خدمت شما عزیزان هستم با یک پست تر و تازه و اما بعد

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

ولی برای علمی تر شدن بحث اجازه بدید چند قدم بریم عقب و از دید کلی تری به قضیه نگاه کنیم :

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

معرفی منابع آموزشی boost.asio

با سلام خدمت دوستان عزیز

در این پست تصمیم دارم چندین منبع آموزشی برای boost.asio را برای شما معرفی کنم :

منابع رسمی boost.asio برای فراگیری

  1. Overview
  2. Using Boost.Asio
  3. Tutorial
  4. C++11 Examples
  5. Networking TS compatibility

سه کتاب موجود برای یادگیری boost.asio

  1. Boost.Asio C++ Network Programming
  2. Boost.Asio C++ Network Programming - Second Edition
  3. Boost.Asio C++ Network Programming Cookbook

دوره ویدئویی آشنایی با boost

دوستان دقت داشته باشید یاد گرفتن boost دیگه تقریبا برای همه واجبه چون کم کم داره قسمت‌های مختلفش با تغییرات کمی به اصل سی پلاس پلاس اضافه میشه و بهتره قبل از این که تمامش به سی پلاس پلاس اضافه بشه شما اون رو یاد گرفته باشید تا بعد از اضافه شدنش مشکلی با کار کردن باهاش نداشته باشید مثلا filesystem توی استاندارد 2017 به سی پلاس پلاس اضافه شد و همینطور any و optional و خیلی چیزای دیگه تا جایی که میدونم توی استاندارد 2020 قراره بخش شبکه (Network) هم اضافه بشه .

موفق و پیروز باشید.

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

هزار و یک نکته در سی پلاس پلاس نکته چهارم ( چرا نباید از Singleton استفاده کنیم ؟)

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

  1. آنها معمولا به عنوان شی گلوبال در نظر گرفته می‌شوند. بدی انها این است که وابستگی‌های کد را بجای افشا کردن در اینترفیس در کد مخفی می‌کنند. گلوبال کردن یک شی برای ارسال نکردن آن به اطراف یک بوی بد کد است .
  2. آن‌ها اصل مسئولیت واحد را زیر پا می‌گذارند. چون علاوه بر کار اصلی خود ساخت خود و مدیریت چرخه حیاط خود را نیز در دست دارند.
  3. آنها به شدت Coupling را بالا می‌برند و این باعث سختی تست آنها می‌شود.
  4. آنها طول عمر نرم‌افزار را در اختیار دارند و این برای یونیت تست که باید یک وضعیت به طور کامل خاتمه پیدا کند یک مشکل اساسی است چون باید هر واحد تست کاملا جدا از واحد‌های دیگر باشد. به همین دلیل برای یونیت تست به هیچ وجه نباید از سینگلتون استفاده کرد.

نظر شما در این مورد چیست ؟

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

بهترین زبان دنیا

بعضی وقتا دوستان عنوان می‌کنند زبان پی اچ پی بهترین زبان دنیاست یا هر زبان دیگه‌ای رو عنوان میکنند بهترین زبان دنیاست .

خب میشه گفت این حرف اشتباه هست مگر این که از نظر علمی بررسی بشه و در هر حوزه زبان هایی که بهتر هستند معرفی بشند مثلا در حوزه وب یا گرافیک دو بعدی یا ...

ولی من نمیخوام این بررسی رو توی این پست انجام بدم چون من تسلط به تمامی حوزه ها و تمامی زبان ها ندارم و این کار یک کار خیلی تخصصی و زمانبر هست .

من توی این پست میخوام در مورد حوزه هایی که توشون کار کردم یا دوست دارم کار کنم و یا در موردشون تحقیق کردم و با افرادی که در اون حوزه کار میکردند آشنا هستم صحبت کنم .

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

اشتراک یک تجربه قسمت اول

با سلام

دوستان میخوام توی این سری مطالب براتون در مورد تجربیاتی که کسب کردم بگم و البته ممکنه اینها تجربیات یونیک من باشه با توجه به مسیری که رفتم و پیشامد هایی که برام پیش اومده ممکنه هرکس تجربه متفاوتی داشته باشه و ممنون میشم اگر بقیه دوستانی که تجربه دارند توی نظرات به اشتراک بگذارند .

 

مقدمه

من تجربیات خودم از این دور‌ه‌های زمانی توی فرایند یادگیری رو براتون میگم امیدوارم مفید باشه .

  • خیلی از دوستان نمیدونند از کجا شروع کنند و مدام دنبال این هستند که از کجا و با چی شروع کنند ؟
  • خیلی دیگه از دوستان شروع کردند پیش رفتند و به جایی رسیدند که فهمیدند اشتباه ابزار و زبانشون رو انتخاب کردند حالا میخواند بدونند باید چکار کنند ؟

  • یک سری از دوستان زبان درستی رو انتخاب کردند و توی بیس اون زبان حرفه‌ای شدند ولی نمیتونند کار بگیرند چون همیشه کارهایی که میخوره یه بخش بزرگی داره که استفاده از یک کتابخانه خاص رو میطلبه و نمیدونند باید چکار کنند چون یاد گرفتن یک کتابخانه که زمانبر هست و ممکنه فقط توی اون یک پروژه به کارشون بیاد میخواند ببینند آیا باید یک کتابخانه خاص که خیلی پر کاربرد هست رو یاد بگیرند ؟

  • یک سری از دوستان از این مراحل رد شدند و دارند کار میکنند ولی مدام توی پروژه های بقیه کد میزنند و وقتی میخواند خودشون پروژه بگیرند به مشکلات خیلی بزرگتری میخورند مثلا این که ساختار برنامه مدیریتش سخته و با بزرگ شدن از دست ادم در میره یا وقتی بزرگ میشه و پیش میره متوجه میشی یه جایی رو اشتباه کردی که نیاز هست برگردی و از صفر بیس کار رو دوباره بزنی و این خیلی زمانبر هست و میخواند بدونند راه درستش چی هست ؟

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

  • یک سری از دوستان کارشون خوبه ولی ترس از گرفتن پروژه های بزرگ دارند و نگران این هستند اگر زمان بندیشون درست نباشه چه اتفاقی میوفته ؟

  • یک سری از دوستان کارشون خوبه و کم وبیش توی کار پیش رفتند و حالا نمیدونند باید به تحصیل کنار کار ادامه بدند یا فقط وقت طلف کردن هست و رهاش کنند ؟

  • یک سری سر دو راهی موندند که وقتی در این حد حرفه‌ای هستند و از اونطرف هم درخواست کار براشون هست برند یا بمونند ؟

و مشکلات دیگری که بعدا به این لیست اضافه خواهد شد یا از این لیست جا افتاده .

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

نام و لینک بقی قسمت ها در ادامه مطالب

 

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

انتشار قسمت هجدهم آموزش Qml به زبان فارسی(ارتباط بین qml و cpp ) قسمت دوم

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

این هم قسمت هجدهم از سری آموزش های Qt-Qml که توی اون روش تعبیه کردن یک شی از کلاسی که از QObject به ارث میبره رو آموزش دادم و همینطور نحوه تعبیه و استفاده کردن Qml در ویجت‌ها رو توضیح دادم امیدوارم مفید باشه براتون و شهدا از ما راضی باشند .

 

 

 

لینک آپارات ویدئو  

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

الگوی طراحی Decorator در c plus plus

الگوی طراحی Decorator در c++‎

 

 زمانی مفید است که می خواهید قابلیت (به صورت ایستا یا پویا) را به یک شی اضافه کنید بدون کلاس زیر کلاس کلاس پایه  و همچنین دیگر اشیاء یک کلاس پایه را تحت تاثیر قرار ندهید.
 
مثال ساده :
( کد نسبت به کد موجود در لینک منبع یه دلیل وجود نشت حافظه در کد موجود در لینک اصلاح شد )
ادامه مطلب...
۱۴ دی ۹۶ ، ۲۰:۰۰ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

لگوی طراحی Composite در c plus plus

الگوی طراحی Composite در c++‎

 

ویژگی‌ها :

 

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

کد مثال : 

(کد نسبت به منبع تغییر کرد به دلیل وجود نشت حافظه در کد موجود در اینک منبع )

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