در برنامه نویسی شی گرا موارد و اصولی وجود دارد که باید رعایت شوند . من این اصول را در 16 مورد جمع آوری کرده ام که در ذیل با یک جمله کوتاه آنها را توضیح می دهم.
1 – Don't Repeat Yourself یعنی خودت را تکرار نکن : از نوشتن کد تکراری پرهیز کن
2 – Keep It Simple, Stupid یعنی ساده نگهش دار احمق : بدون فدا کردن کارایی و دقت کد آن را تا حد امکان ساده نگه دارید.
3 - You Aren’t Gonna Need It یعنی بهش نیاز نداری : فقط چیزی رو پیادهسازی کن که الان لازم داری .
4 - Testability یعنی قابلیت تستپذیری : کد طوری طراحی بشه که به راحتی بتونید براش تست بنویسید و رفتارش رو بررسی کنید .
5 - Resource Management یعنی مدیریت بهینه منابع سیستم (مثل حافظه، فایلها یا اتصالات) در برنامهنویسی، طوری که تخصیص و آزادسازی اونها به موقع و بدون نشتی (leak) انجام بشه، مثلاً با استفاده از using در سیشارپ برای بستن خودکار اتصالات.
6 - Portability یعنی قابلیت انتقالپذیری : کد شما باید بتونه روی سیستمها، پلتفرمها یا محیطهای مختلف (مثل ویندوز، لینوکس) بدون تغییر یا با کمترین تغییر اجرا بشه.
7 - Coding Standards یا استانداردهای کدنویسی به مجموعهای از قوانین و راهنماییها گفته میشه که برنامهنویسان برای نوشتن کد تمیز، خوانا و یکنواخت ازش پیروی میکنن تا همکاری تیمی، نگهداری و فهم کد آسونتر بشه.
8 - Security یعنی امنیت در برنامهنویسی، که به حفاظت از نرمافزار و دادهها در برابر دسترسی غیرمجاز، حملات یا سوءاستفاده اشاره داره، مثلاً با رمزنگاری یا اعتبارسنجی ورودیها.
9 - Performance Optimization یعنی بهینهسازی عملکرد، که به بهبود سرعت و کارایی برنامه با کاهش مصرف منابع (مثل CPU یا حافظه) از طریق تکنیکهایی مثل الگوریتم بهتر یا کش کردن اشاره داره.
10 - Internationalization (i18n) یعنی بینالمللیسازی، که به طراحی نرمافزار به شکلی اشاره داره که بتونه به راحتی با زبانها، فرهنگها و مناطق مختلف (مثل پشتیبانی از چند زبان یا فرمت تاریخ) سازگار بشه.
11 - Maintainability & Readability یعنی قابلیت نگهداری و خوانایی، که به نوشتن کدی اشاره داره که ساده، قابل فهم و منظم باشه تا توسعهدهندهها بتونن به راحتی اون رو درک کنن و تغییرش بدن.
12 - Single Responsibility Principle (SRP) یعنی اصل مسئولیت واحد، که میگه هر کلاس یا ماژول باید فقط یک وظیفه یا مسئولیت داشته باشه تا تغییرات سادهتر و کد منظمتر بشه.
13 - Open/Closed Principle (OCP) یعنی اصل باز/بسته، که میگه کلاسها باید برای گسترش (اضافه کردن قابلیت جدید) باز باشن، اما برای تغییر (ویرایش کد موجود) بسته باشن.
14 - Liskov Substitution Principle (LSP) یعنی اصل جانشینی لیسکوف، که میگه اشیاء از کلاسهای فرزند باید بتونن جای کلاس والد رو بگیرن بدون اینکه رفتار برنامه خراب بشه.
15 - Interface Segregation Principle (ISP) یعنی اصل تفکیک رابط، که میگه کلاسها نباید مجبور بشن رابطهایی رو پیادهسازی کنن که استفاده نمیکنن، و رابطها باید کوچک و خاص باشن.
16 - Dependency Inversion Principle (DIP) یعنی اصل وارونگی وابستگی، که میگه ماژولهای سطح بالا و پایین باید به abstraction (مثل رابطها) وابسته باشن، نه به پیادهسازیهای خاص.