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

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

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

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

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

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

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

معرفی منابع آموزشی 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 در یک درخت باشند.
  • با اشیاء اولیه و ترکیب، به طور یکنواخت رفتار می شود.
  • یک رابط جزئی تعریف شده است و هر دو برگ و همچنین اجزای کامپوزیت آن را به طور یکنواخت اجرا می کنند.
  • در مثال زیر یک پیاده سازی با یک الگوی کامپوزیت تشخیص تلفن نشان داده می شود. یک شی کامپوزیتی با ترکیب تمام اشیاء تشخیص مربوط به گوشی در یک درخت شکل گرفته است. سپس یک آزمایش تشخیصی بر روی شی کامپوزیت است که به نوبه خود تقاضای تمام اشیاء تشخیص را به شیوه ی درخت تقسیم می کند.

کد مثال : 

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

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

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

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

 

ویژگی‌ها :

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

 

یک مثال ساده از پیاده سازی الگوریتم Builder در سی پلاس پلاس :

(کد نسبت به منبع اصلاح شد )

 

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

الگوی طراحی visitor Design در c plus plus

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

 

ویژگی‌ها:

  • الگوی visitor یک الگوی رفتاریست .
  • الگوی visitor اجازه می‌دهد تا ساختار داده ها از الگوریتم‌های مورد استفاده جدا در نظر گرفته شوند.
  • هردوی ساختار داده ها و الگوریتم ها میتوانند جداگانه مورد توسعه قرار گیرند ، که توسعه و تغییرات را آسان تر می‌کند.
  • ساختار داده ها یک تابع accept دارد که یک شی visitor (الگوریتم ) ورودی می‌گیرد.
  • اشیار الگوریتم یک تابع visit دارند که یک ساختار داده به عنوان ورودی می‌گیرد.

 یک کد مثال ساده از پیاده سازی الگوی visitor :

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

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