یادگیری جامع جاوا: از مبانی تا ویژگیهای پیشرفته و Spring Boot
پیشنیازها: اشتیاق به یادگیری
مباحث پوشش داده شده در جاوا:
مبانی جاوا (به صورت عمیق):
- کلاسها (Classes)
- اشیاء (Object)
- سازندهها (Constructor) و غیره
- چهار ستون برنامهنویسی شیءگرا:
- وراثت (Inheritance)
- چندریختی (Polymorphism)
- انتزاع (Abstraction)
- کپسولهسازی (Encapsulation)
مرور اجمالی جاوا:
- رویه ای در مقابل شیءگرا (Procedural vs OOPs)
- جاوا چیست و چرا مستقل از پلتفرم است؟
- JDK در مقابل JRE در مقابل JVM
- نصب و راهاندازی
- تنظیم مسیر کلاس (Class Path) و متغیرهای محیطی
ورود به جزئیات:
- نوشتن اولین برنامه جاوا
- درک کلاسها، انواع مختلف آنها و اشیاء:
- کلاسهای انتزاعی (Abstract Classes)
- کلاسهای داخلی (Inner Classes) و غیره
- درک متغیرها:
- متغیرهای ایستا (Static Variables)
- متغیرهای نهایی (Final Variables)
- متغیرهای اولیه (Primitive Variables)
- ارجاع به اشیاء (Object references)
- مقایسه BigDecimal با Double
- درک String:
- استخر رشته (String Pool)
- تغییرناپذیری رشته (String Immutability)
- سطوح دسترسی (Access Specifiers)
- تبدیل نوع داده (Type Casting):
- تبدیل ضمنی (Implicit Type Casting)
- تبدیل صریح (Explicit Type Casting)
- درک متدها و انواع مختلف آنها:
- نوع بازگشتی (Return Type)
- متدهای ایستا (static method)
- پارامترهای متد (Method parameters)
- ارسال با مقدار در مقابل ارسال با ارجاع (Pass by value vs pass by reference)
- همانندسازی (Overloading) و غیره
- مدیریت حافظه در جاوا:
- جمعآوری زباله (Garbage Collector)
- درک سازندهها:
- سازنده خصوصی (Private Constructor)
- سازنده پیشفرض (Default Constructor)
- سازنده پارامتری (Parametrized Constructor)
- سازنده در مقابل متد (Constructor vs Method)
- فایلها و دایرکتوریها در جاوا:
- خواندن و نوشتن از فایل با استفاده از Scanner
- درک بستهها (Package) و import
- درک POJO ها و غیره
- عملگرها (Operators):
- عملگرهای حسابی (Arithmetic Operator)
- عملگرهای رابطهای (Relational Operator)
- عملگرهای میانبر (Short Circuit Operator)
- عملگرهای انتساب (Assignment Operator)
- عملگرهای منطقی (Logical Operator)
- عملگر سهگانه (Ternary Operator)
- عملگرهای بیتی (Bitwise Operator)
- شمارشها (Enums) و کاربردهای پیشرفته آنها
- دستورات کنترل جریان (Control Flow Statements):
- دستور If
- دستور If Else
- نردبان If Else (If Else Ladder)
- دستور Switch و زمان استفاده از آن
- حلقه For
- حلقه While
- حلقه Do While
- دستور Break
- دستور Continue
چند نخی و همزمانی در جاوا (Multithreading and Concurrency):
مدیران ThreadPool و همزمانی به صورت عمیق
مدیریت استثناءها (Exception Handling):
- مدیریت خطاهای زمان کامپایل و
- مدیریت خطاهای زمان اجرا
- استثناءهای بررسی شده و بررسی نشده (Checked and unchecked exception)
برنامهنویسی جنریک در جاوا (Generic Programming in Java):
یادگیری نحوه نوشتن کلاسها و متدهای جنریک در جاوا، و زمان استفاده از آنها
مجموعهها در جاوا (Java Collections):
- List:
- ArrayList
- LinkedList
- Stack
- Queue:
- Set:
- HashSet
- TreeSet
- LinkedHashSet
- Map:
ویژگیهای جاوا ۸ (Java 8 Features):
- واسطهای تابعی (Functional Interface)
- عبارات لامبدا (Lambda Expression)
- API های Stream (Stream APIs)
- Predicate ها
- متد forEach
- متدهای پیشفرض و ایستا در واسطها (Default and static method in interface)
مباحث پوشش داده شده برای Spring Boot:
-
معرفی Spring Boot: ابتدا مبانی Spring Boot و تفاوت آن با Spring MVC را پوشش میدهیم. (همچنین به Servlets که قبل از Spring framework بسیار محبوب بودند، اشاره میکنیم). این، درک پایهای از اهمیت این فریمورک در توسعه وب جاوا را فراهم میکند.
-
راهاندازی پروژه در Spring Boot: مرحله بعدی شامل راهاندازی پروژه Spring Boot است که برای شروع فعالیتهای توسعه ضروری است. این فاز تضمین میکند که محیط ما برای توسعه برنامههای آینده بهینه شده است.
-
درک معماری لایهای: معماری لایهای برای سازماندهی و مقیاسپذیری برنامههای ما حیاتی است. این مفهوم به ما امکان میدهد کد خود را به گونهای ساختاربندی کنیم که ماژولار بودن و قابلیت نگهداری را ارتقا دهد.
-
Maven و چرخه حیات آن: Maven ابزار قدرتمندی برای مدیریت پروژه و حل وابستگیها است. درک چرخه حیات آن برای توسعه کارآمد پروژه و مدیریت وابستگیها بسیار مهم است. ما میتوانیم پروژههای Spring Boot را با استفاده از Maven یا Gradle ایجاد کنیم، بنابراین درک این موضوع ضروری است.
-
حاشیهنویسیهای لایه Controller: درک عمیق حاشیهنویسیهایی مانند @RestController و @RequestMapping توسعه RESTful API ها را تسهیل میکند. این حاشیهنویسیها دستورالعملهایی را به Spring Boot ارائه میدهند و رفتار کنترلکنندههای ما را تعیین میکنند. حاشیهنویسیهای دیگری مانند @RestController، @Controller، @ResponseBody، @RequestMapping، @RequestParam، @PathVariable، @InitBinder، @RequestBody نیز پوشش داده میشوند.
-
چرخه حیات Bean در Spring Boot: در این بخش با Bean ها و چرخه حیات آنها آشنا میشوید. همچنین IOC (Inversion of Control) که این Bean ها را مدیریت میکند، توضیح داده شده است.
روشهای مختلف ایجاد Bean (حاشیهنویسیهای @Component و @Bean)، انواع مختلف ایجاد Bean (زودرس و با تأخیر) را خواهید آموخت.
7. Spring Boot: تزریق وابستگی (Dependency Injection)
8. Spring Boot: دامنههای Bean (Bean Scopes)
9. نحوه مقداردهی دینامیک Bean ها
10. Spring Boot: حاشیهنویسی @ConditionalOnProperty
11. Spring Boot: حاشیهنویسی @Profile
12. Spring Boot: AOP (Aspect Oriented Programming)
13. Spring Boot: حاشیهنویسی @Transactional
14. Spring Boot: حاشیهنویسی @Async
15. Spring Boot: Interceptor های سفارشی
16. Spring Boot: فیلترها در مقابل Interceptor ها
17. Spring Boot: HATEOAS Restful API
18. Spring Boot: ResponseEntity و کدهای پاسخ
19. Spring Boot: مدیریت استثناءها (Exception Handling)
نمایش نظرات