آی تی نرد

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

روش ها و نگرانی های(Concerns) پیاده سازی در یک پروژه و ارائه راهکارها به طور خلاصه

معماری طراحی و پیاده سازی:
به منظور پیاده سازی بهتر و مفهومی تر و همچنین توسعه، رفع اشکال و تغییرپذیری راحتتر در ابتدای پیاده سازی معماری طراحی با توجه به معیارهای مختلفی از جمله گستردگی و یا حجم کاربر نهایی انتخاب و با در نظر گرفتن اصول پیاده سازی که در همه ی معماریها مشترک می باشد پیاده سازی انجام خواهد شد.

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

از جمله ی این اصول میتوان به برخی موارد زیر اشاره کرد:

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

معماری که میتوان این اصول را در آن راحت تر رعایت و پیاده سازی کرد معماری چند لایه(N-Tier Architecture) می باشد. شرح این معماری و نحوه ی پیاده سازی آن در زیر آمده است:

یکی از انواع معماری های چند لایه معماری سه لایه هست(3-Tier) که حداقل تعداد لایه ها می تواند باشد.

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

بیشتر...