PDA

View Full Version : سوال: برنامه نویسی خوب



soroush.r70
چهارشنبه 17 مهر 1392, 09:19 صبح
دوستان به نظر شما یک برنامه نویسی خوب باید چه معیارهایی داشته باشد در واقع به چه برنامه هایی می گن good style programming و به چه برنامه هایی می گن برنامه نویسی بد و بی کیفیت اگر می تونین یه توضیح کاملی بدید ممنون.

MMSHFE
چهارشنبه 17 مهر 1392, 09:55 صبح
برنامه نویسی خوب یک تعریف نسبیه ولی در مجموع، کد یک برنامه خوب باید معیارهای کلی زیر رو که تقریباً همه قبولش دارن، داشته باشه:
1- مستندسازی (کامنت گذاری، PHPDoc و...)
2- قابلیت توسعه (ماژولار کار کردن، شئ گرا نوشتن، عدم وجود کد تکراری در اسکریپت با استفاده از توابع و...)
3- تفکیک مناسب لایه های مختلف برنامه (Three Tier Architecture و MVC و Template Engine و...)
و خوب یکسری معیاری دیگه که ممکنه برای برخی مهم باشه ولی اینها رو تقریباً همه روشون توافق دارن.

Veteran
چهارشنبه 17 مهر 1392, 10:15 صبح
جناب شهرکی
Three Tier Architecture و MVC
باهم تفاوت دارن ؟

MMSHFE
چهارشنبه 17 مهر 1392, 10:33 صبح
بله فرق دارن. کل MVC فقط توی لایه UI معماری سه لایه قرار میگیره. توی اینترنت دنبال MVC vs 3 Tier Architecture بگردین.

Veteran
چهارشنبه 17 مهر 1392, 11:00 صبح
بله فرق دارن. کل MVC فقط توی لایه UI معماری سه لایه قرار میگیره. توی اینترنت دنبال MVC vs 3 Tier Architecture بگردین.
خب لایه UI به Business دسترسی داره و Business به Data
حالا توی این 3 لایه
MVC در لایه UI قرار داره ؟!!!
UI (
Model
View
Controller
)
Business
Data
شد 5 لایه :لبخند:
میشه نتیجه گرفت که Design Pattern ها در لایه UI پیاده سازی میشن ؟
جالب شد !

MMSHFE
چهارشنبه 17 مهر 1392, 11:12 صبح
نه ببینید، معماری همون 3 لایه است. ولی خوب توی UI اومدین از یک Design Pattern استفاده کردین. برای مثال، اگه توی View بیایم از Template Engine استفاده کنیم، نمیگیم که MVC چهار لایه داره یا معماری کلی ما 6 لایه شده! معماری همون سه لایه است و درسته. توی برنامه های بزرگ، MVC فقط توی لایه UI قرار میگیره. شاید بگین خوب Model که به دیتابیس دسترسی داره ولی بحث اینه که Model ازطریق یک API به دیتابیس وصل میشه و لایه Data Access توی معماری سه لایه یه سطح بالاتره (خود DBMS و مدیریت دیتابیس و طراحی اون و مواردی مثل سیستمهای ذخیره سازی و Cache و...)

qartalonline
چهارشنبه 17 مهر 1392, 16:12 عصر
آقای شهرکی من دارم سیستم مدیریت محتوا می نویسم که فعلا اولای راه هستم و تا اینجا از الگوی mvc استفاده کردم، میخواستم بدونم که قسمت cache (که برخی اطلاعات تو فایل ذخیره میشه) تو کدوم لایه باید نوشته بشه.
و اینکه شما با توجه به امکانات زیر برای ساخت سیستم مدیریت محتوا چه معماری رو پیشنهاد میکنید.
امکانات : چند زبانه بودن ، قابلیت نصب قالب جداگانه برای هر زبان ، امکان نصب ماژول ، کش در سمت سرور ، توسعه راحت

MMSHFE
چهارشنبه 17 مهر 1392, 16:15 عصر
ببینید، سیستم مدیریت اطلاعات در MVC کلاً بعهده Model هست. حالا میخواد تو دیتابیس باشه، میخواد فایل باشه یا سیستم Cache و...
برای کاری که شما میخواین، همون MVC اکتفا میکنه و بطور کامل جوابگو هست، منتها اگه سایر اصول هم بخوبی رعایت بشه (طراحی ماژولار، ایجاد Kernel سبک و اضافه شدن بقیه امکانات بصورت Component)، استفاده از فریمورک مناسب، موتور قالب و...)

omidabedi
چهارشنبه 17 مهر 1392, 20:40 عصر
آقای شهرکی من دارم سیستم مدیریت محتوا می نویسم که فعلا اولای راه هستم و تا اینجا از الگوی mvc استفاده کردم، میخواستم بدونم که قسمت cache (که برخی اطلاعات تو فایل ذخیره میشه) تو کدوم لایه باید نوشته بشه.
و اینکه شما با توجه به امکانات زیر برای ساخت سیستم مدیریت محتوا چه معماری رو پیشنهاد میکنید.
امکانات : چند زبانه بودن ، قابلیت نصب قالب جداگانه برای هر زبان ، امکان نصب ماژول ، کش در سمت سرور ، توسعه راحت

برای زبان نیاز نیست که cms بخواد دوتا قالب رو شناسایی(برنامه نویسی اضافه) کنه در اصل
فقط کلاسی هست بنام i18n که برای چند زبانه نوشته شده تا اونجا که یادمه
شما اینو توی cmsت استفاده میکنی و برای قالب فقط یه style راست به چپ مینویسی همین لازم نیست 2 تا قالب....

qartalonline
چهارشنبه 17 مهر 1392, 20:59 عصر
برای زبان نیاز نیست که cms بخواد دوتا قالب رو شناسایی(برنامه نویسی اضافه) کنه در اصل
فقط کلاسی هست بنام i18n که برای چند زبانه نوشته شده تا اونجا که یادمه
شما اینو توی cmsت استفاده میکنی و برای قالب فقط یه style راست به چپ مینویسی همین لازم نیست 2 تا قالب....

اینو هم مد نظر دارم ، ولی ممکنه تو زبانهای مختلف و شرایط خاص ساختار قالب به کلی تغییر کنه واسه همین این کار انجام میدم.