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

۳ مطلب با کلمه‌ی کلیدی «حرفه‌ای» ثبت شده است

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

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

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

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

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

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

با سلام

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

 

مقدمه

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

 

ویژگی‌ها :

 

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

کد مثال : 

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

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