پیشزمینه: آّشنایی با الگوها در مهندسی نرمافزار (Patterns)
مقدمه:
ضدالگو؛ مفهوم نسبتاً جدیدیه که ادامهدهندهی راهیه که با ارائهی الگوها در نرمافزار آغاز شد. هدف، بررسی و شناخت مجموعه رفتارهایی است که بین پروژههای شکستخوردهی نرمافزاری، مشترک هستن.
ضدالگوها در واقع راهحلهایی هستند که ممکنه پروژهی شما رو با شکست مواجه کنن! اونها بیشتر از سودی که دارن، مشکلات جدیدتری رو به پروژه تزریق میکنن که گاهاً ممکنه ناپیدا هم باشه.
همونطوری که توی شکل دیده میشه، بخشی از راهحلهایی که ما در هر پروژهی نرمافزاری بکار میگیریم راهحلهایی هستند که ما قبلاً هم ازشون استفاده کردیم. هیچ تا بحال از خودتون پرسیدید که الگویی که شما همواره در یک مسالهی خاص بکار میبندید آیا واقعاً کارآمده و یا اینکه چه تاثیری در پیشبرد پروژه داره؟ شناخت درست ضدالگوها، روش مناسبی رو برای جواب دادن به سوال فوق در اختیارمون قرار میده.
همانند الگوها، هر ضدالگو نام خاصی داره و از این طریق واژگان استانداردی در اختیار اعضای تیم قرار میده که بتونن از راهحلهای با پتانسیلِ خطای زیاد، براحتی دوری کنن.
ضدالگوها در همهی مراحل تولید نرمافزار حضور دارن! از ایجاد معماری سیستم گرفته تا تحلیل، طراحی و کدنویسی. هر فرد باید با توجه به نقشی که در پروژه داره، ضدالگوهای مرتبط با اون حوزهی خاص رو شناسایی کنه و بهشون احاطه داشته باشه.
در اینمورد ویکیپدیا فهرست خوبی از ضدالگوها رو جمعآوری کرده. بعنوان یکی از مثالهای خوب برای ضدالگو، Vendor lock-in رو میشه مثال زد (+ و +): متکی بودنِ بیش از حد پروژه به کامپوننتها/محصولاتِ یه شرکت دیگر. و یا به Premature optimization (+) و Silver Bullet (+) اشاره کرد که هر دو از مثالهای بارز ضدالگو هستند.
بحث ضدالگوها رو در آینده بیشتر بررسی خواهیم کرد.
منابع برای مطالعهی بیشتر:
4- ضدالگو
——
پ.ن: Anti-pattern= ضدالگو؛ پادالگو؛ آنتیالگو؛ ؟!! بنظرتون کدومش بهتره؟
Filed under: مهندسی نرم افزار | Tagged: Anti-Pattern, ضدالگو



تا بحال اسمشو نشنيده بودم…
فكر كنم همون ضد الگو بهتر باشه، البته پاد فارسيه ولي بيشتر در شيمي بكار ميره.
سلام
میشه گفت الگوها یک جورهایی باید های مهندسی نرم افزار رو توضیح میدن ولی ضد الگوها نباید ها رو. البته یک مقدار فازی تر از اینکه من گفتم.