دیدم اینجا بحث داغه گفتم منم نظر بدم،بالاخره با بحث تخصصی دانش آدم زیاد میشه.شایدم منم اشتباه فکرمیکنم و بقیه منو از اشتباه در بیارن
در کل OOP یا همون برنامه نویسی شیء گرایی یه نوع فلسفه ی طراحی هست و وابسته به زبون خاصی نیست.ایده ی OPP اینه که همه چیو توی Object ها مختلف دسته بندی کنیم ( تقریبا مثل دنیای واقعی ) که مثلا نگهداری سیستم راحت تر بشه،بتونیم از کدها دوباره استفاده کنیم و جیزهای دیگه.
حالا خود OOP مفاهیم مختلفی داره مثل Class ها،Object ها،Properties،ارث بری،Overridding،Overloading،اینترفیس ها و .... که بعضی زبان ها همشو ساپورت میکنن و بعضی زبان ها بعضی قسمت هاشو ساپورت میکنن،منظورم اینه تفاوت هایی هست بین زبان ها مثل اینکه یه زبان ارث بری چندگانه داره اما یکی دیگه از این قابلیت پشتیبانی نمیکنه،البته این ها هم دلیل داره.
OOP حتی باعث شد DBMS ها هم سعی کنن از حالت relational (جدولی) بودن خارج بشن و تبدیل به object-relational database بشن.البته میشه هنوز از همون دیتابیس های جدولی استفاده کرد اما یه لایه به برنامه ی ما باید اضافه بشه که بتونه بین Object ها و جدول ها نگاشت برقرار کنه،اسمش هم ORM هست. [البته اجباری نیس حتما ORM باشه ]
حالا در مورد خود سی شارپ
از نظر من هم هر کدی توی سی شارپ نوشته بشه OOP هست ، چون کلا ما فرمی که میسازیم خودش یک کلاس هست که ارث بری میکنه،خصوصیت داره و چیزهای مختلف.یعنی بخوای نخوای کلا OOP هست حالا اگر کسی که داره کد مینویسه اصول OOP رو رعایت نمیکنه قضیه فرق داره اما شما توی پی اچ پی یه صفحه notepad باز میکنید و مینویسید <?php
echo "Hello World";
?>
و میتونید کدتون رو اجرا کنید و نتیجه رو ببینید اما سی شارپ اینجوری نیست. ( البته باز باید بگم توی PHP هم میشه OOP نوشت )
دوباره از نظر من اصولی بودن برنامه نویسی ربطی به یک زبان خاص نداره.اگر چندتا مورد زیر رو رعایت کنیم (حالا یکی دوتا بیشتر یا کمتر ) میشه اصولی برنامه نویسی کرد :
1- اگر از OOP میخواید استفاده کنید باید اصولش رو رعایت کنید مثلا اینکه کلاس هاتون رو درست بگیرید. یا اینکه اگر آگاهانه معماری MVC رو انتخاب کردین،درست پیاده سازیش کنید.
2- استفاده از کنترل نسخه ها یا همون Source Control Version که میتونه Central باشه یا Distributed .این مورد خیلی به بدرد تیمی کار کردن میخوره،حتی اگر تنها هم خودتون فقط استفاده کنین خیلی خوبه.من خودم سعی میکنم عادت کنم به استفاده ازشون
3- از Unit testing استفاده کنیم.
4- قبل از شروع کد نویسی حداقل یه از پروژمون یه Class Diagram و UseCase Diagram داشته باشیم
5- خوانایی کد بالا باشه،کامنت گذاری شده باشه و از یه استانداری برای نام گذاری پیروی کرد
من اینا رو که الان به ذهنم رسید گفتم،در کل نظرم اینه که استفاده از Linq یا SqlServer تعیین نمیکنه برنامه نویسی ما اصولیه یا نه،اینا ابزارن.مهم اینه از ابزارها درست استفاده بشه.
پینوشت : اااا چقدر زیاد شد،تا جایی که شد کلی خلاصه کردمش!!این کادر پاسخ نوشتن کوچیک بود،نفهمیدم چقدر نوشتم !!!