ماژول ZF2Base

بعد از مدت ها ماژول اولیه ای که توی پروژه ها استفاده میکردم رو ارتقا دادم و zf2base رو برای Zend Framework 2 نوشتم. کار این ماژول تعیین و بررسی سطح دسترسی ها به هر ماژول کنترلر یا اکشن و یا متد هست بدون اینکه مجبور باشید کدی توی ماژول های دیگه بنویسید. (بیشتر…)
Singleton Pattern

از این الگو زمانی استفاده میشود که قصد داشته باشید از یک کلاس خاص فقط و فقط یک شی در طول پروژه وجود داشته باشد و در تمامی قسمتهای مختلف پروژه از این شی استفاده شود. با این الگو میتوان مفهوم Lazy Loading را نیز در طول پروژه پیادهسازی کرد. (به این معنی که بارگزاری کلاس مورد نظر در حافظه زمانی انجام میشود که اولین فراخوانی به آن کلاس انجام شود، و تا زمانی که اولین فراخوانی انجام نشود کلاس مورد نظر در حافظه بارگزاری نخواهد شد.) (بیشتر…)
Prototype Pattern

با استفاده از این الگو به جای ایجاد متعدد یک کلاس در بخشهای مختلف پروژه، میتوانید از اولین شی ایجاد شده، کپیبرداری کنید. به این ترتیب که کلاس مورد نظر شامل متدی با نام clone میباشد. یکی از دلایل استفاده از این الگو این است که Client در گیر نحوه ایجاد کلاس اصلی نباشد و تنها در صورت نیاز، از کلاس مورد نظر یک کپی تهیه نماید. دلیل دیگر استفاده از این روش، افزایش نا محسوس سرعت اجرای برنامه میباشد. (بیشتر…)
Factory Method Pattern

این الگو همانند الگوی Abstract Factory میباشد با این تفاوت که هر کلاس Factory معمولاً تنها برای ایجاد یک کلاس خاص استفاده میشود. در برخی موارد کلاس Factory شامل یک متد استاتیک میباشد که وظیفه ایجاد کلاس مورد نظر بر اساس پارامتر ها را بر عهده دارد. (بیشتر…)
مفهوم SOLID در برنامه نویسی – DIP

DIP مخفف Dependency Inversion Principle و مفهومی است که وابستگی مستقیم کلاس های سطح بالا را به کلاس های سطح پایین منع میکند. به این منظور که اگر کلاس خاصی(high-level) که از کلاس های دیگر(low-level) استفاده می کند وابستگی مستقیمی با کلاس های low-level داشته باشد سبب بروز این مشکل خواهد شد که اگر کلاس low-level دیگری به مجموعه افزوده شود اجبارا کلاس high-level نیز بایستی تغییر کند. DIP برای حل این مشکل به وجود آمده است. (بیشتر…)
Abstract Factory Pattern

این الگو برای ایجاد کلاسهای مشابه هم استفاده میشود تا وابستگی بین استفاده کننده (Client) و تأمین کننده کمتر شود. درواقع یک کلاس وظیفه ایجاد کلاسهای دیگر را به عهده میگیرد. البته الزاماً این الگو شامل تنها یک کلاس سازنده نیست بلکه هر کلاس سازنده وظیفه ایجاد کلاسهای مشابه هم را دارد و ممکن است در یک پروژه خاص چندین کلاس سازنده مختلف داشته باشیم. (بیشتر…)
Builder Pattern

این الگو برای ایجاد کلاسهایی استفاده میشود که یا پیچیدگی زیادی دارند و یا تعداد پارامتر های آن برای ایجاد کلاس زیاد و پیچیده باشد. به طور کلی به جای ایجاد کلاس به صورت تک مرحلهای، کلاس مربوطه به صورت مرحله به مرحله و با ارسال پارامتر در مرحله های مختلف ایجاد می شود. (بیشتر…)
الگوهای طراحی چیست؟

طی این مطالب سعی دارم به شرح الگوهای طراحی بپردازم. قبل از هر چیزی باید با مفهوم Design Patterns آشنا بشیم و بدونیم که دلیل وجود همچین الگوهایی چیه؟ در برنامه نویسی همه ما گاهی دچار مشکلات عجیب و غریبی می شیم که حل کردنشون زمان زیادی ازمون میگیره. برخی از این مشکلات هستند که خیلی بین برنامه نویسان متداولند. برای همین منظور الگوهای طراحی یا Design Patterns به وجود اومدند که هر کدوم از این الگو ها به منظور برطرف کردن مشکلات متداول برنامه نویسی ایجاد شدن. (بیشتر…)
مفهوم SOLID در برنامه نویسی – ISP

یکی از اصول دیگر برنامه نویسی شی گرا و اصل سوم SOLID مفهوم ISP یا Interface Segregation Principle می باشد, به این معنی که برای استفاده از اینترفیس ها آنها را باید به اجزای کوچکتری تقسیم کرد. وقتی یک کلاس از یک اینترفیس بزرگ استفاده میکند ممکن است برخی از این متد ها در کلاس مورد نظر قابل استفاده نباشند. اما وقتی یک اینترفیس بزرگ به چند اینترفیس کوچک تقسیم می شود هر کلاس میتواند در صورتی که به اینترفیس خاصی نیاز داشت از آن استفاده نماید. با این امکان اگرچه تعداد اینترفیس ها بیشتر می شوند و ممکن است تکرار رخ دهد اما به دلیل اینکه منطق برنامه ما در اینترفیس ها اجرا نمی شود میتوان این مسئله را نادیده گرفت. در نهایت با رعایت این اصل امکان دیباگ و بررسی کد ها سرعت بیشتری خواهد داشت. (بیشتر…)
مفهوم SOLID در برنامه نویسی – LSP

یکی از اصول دیگر برنامه نویسی شی گرا و اصل سوم SOLID مفهوم LSP یا Liskov Substitution Principle می باشد, به این معنی که هیچ کلاسی نباید رفتار کلاس والد را تغییر دهد. برای رعایت این اصل باید در نظر داشته باشیم که هر کلاسی میتواند از کلاس دیگر ارث بری کند به شرطی که رفتار کلاس والد را تغییر ندهند. (بیشتر…)
مطالب دیگر
مفهوم DRY در برنامه نویسی
استفاده از PgBouncer در PostgreSQL
مفهوم SOLID در برنامه نویسی – OCP
مفهوم SOLID در برنامه نویسی - SRP
رفع ایرادات و اشکالات وب سرور Apache – بخش چهارم
رفع ایرادات و اشکالات وب سرور Apache – بخش سوم
رفع ایرادات و اشکالات وب سرور Apache - بخش دوم
رفع ایرادات و اشکالات وب سرور Apache - بخش اول
زند فریم ورک ۲ - ساختار
ORM چیست؟
زند فریم ورک 2 - مثالی در رابطه با Event Manager
OPcache چیست؟
زند فریم ورک ۲ - انواع تنظیمات
پروتکل AMQP چیست؟
APC چیست؟ چگونه سرعت پردازش را افزایش می دهد؟
یک صفحه وب چطور پردازش می شود؟ بخش دوم
یک صفحه وب چطور پردازش می شود؟ بخش اول
زند فریم ورک ۲ - Event Manager
Joel Test چیست؟
زند فریم ورک ۲ - Observer pattern
زند فریم ورک ۲ - AOP
زند فریم ورک ۲ - تنظیم سرویس ها
زند فریم ورک ۲ - Service Locator/Manager
برنامه نویس خوب-گام دوازدهم-استفاده از کد
برنامه نویس خوب-گام یازدهم-استخدام
زند فریم ورک ۲ - Dependency Injection
زند فریم ورک ۲ - Factory method pattern
زند فریم ورک ۲ - Lazy loading
برنامه نویس خوب-گام دهم-Tester
زند فریم ورک ۲ - MVC
زند فریم ورک ۲
برنامه نویس خوب-گام نهم-ابزار کار
برنامه نویس خوب-گام هشتم-محل برنامه نویسی
برنامه نویس خوب-گام هفتم-طراحی و اسناد
برنامه نویس خوب-گام ششم-برنامه ی کاری
برنامه نویس خوب – گام پنجم – حل مشکلات قبل از ایجاد بخش های جدید
برنامه نویس خوب - گام چهارم - نگهداری اطلاعات باگ ها
Composer چیست؟
برنامه نویس خوب - گام سوم - ایجاد برنامه از کد به صورت روزانه
برنامه نویس خوب - گام دوم - ایجاد برنامه اجرایی از کد