آموزش جاوا مدرن - تسلط بر ویژگی‌های جاوا ۸ تا جاوا ۲۵ - آخرین آپدیت

دانلود Modern Java - Mastering Features from Java 8 to Java 25

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: این دوره شامل Coursera Coach است! روشی هوشمندتر برای یادگیری با گفتگوهای تعاملی و بلادرنگ که به شما کمک می‌کند دانش خود را آزمایش کنید، فرضیات را به چالش بکشید و در طول دوره درک خود را عمیق‌تر کنید. ویژگی‌های مدرن جاوا را از نسخه ۸ تا ۲۵ به طور کامل بیاموزید. این دوره شما را در مسیر تکامل جاوا هدایت کرده و تغییرات و نوآوری‌های مهم، از لامبداها و استریم‌ها گرفته تا سینتکس‌های جدید و تطبیق الگو (Pattern Matching) را برجسته می‌کند. شما با غوطه‌ور شدن در آزمایشگاه‌های عملی و موارد استفاده واقعی، درکی استوار از ویژگی‌های مدرن جاوا که برای ساخت برنامه‌های کارآمد و قابل نگهداری ضروری هستند، به دست خواهید آورد. ساختار دوره به گونه‌ای است که شما را از مفاهیم پایه عبارت‌های لامبدا و رابط‌های کاربردی (Functional Interfaces) به مباحث پیشرفته‌ای مانند API استریم‌ها، ارجاعات متد و برنامه‌نویسی ماژولار با JPMS می‌برد. با پیشروی گام‌به‌گام در این مباحث، تکنیک‌های پیشرفته پردازش استریم و API جدید HttpClient را بررسی خواهید کرد تا بتوانید چالش‌های برنامه‌نویسی دنیای واقعی را حل کنید. این دوره برای توسعه‌دهندگانی که به دنبال ارتقای مهارت‌های جاوا و به‌کارگیری تکنیک‌های مدرن هستند، ایده‌آل است. چه در حال توسعه برنامه‌های جدید باشید و چه در حال بازنویسی (Refactoring) کدهای قدیمی، این دوره شما را در استفاده از آخرین ویژگی‌های جاوا متخصص می‌کند. ترکیبی از تئوری و آزمایشگاه‌های عملی را انتظار داشته باشید تا فرآیند یادگیری روان و جذاب باشد. در پایان این دوره، شما قادر خواهید بود عبارت‌های لامبدا و رابط‌های کاربردی را پیاده‌سازی کنید، از API استریم‌ها برای پردازش داده‌ها استفاده نمایید، تطبیق الگو و کلاس‌های Sealed را به کار ببرید و سیستم ماژولار جاوا را برای ساختار بهتر پروژه درک کنید. همچنین یاد می‌گیرید چگونه برنامه‌های بلادرنگ را با استفاده از ویژگی‌های مدرن مانند HttpClient بسازید و از GitHub Copilot برای بهینه‌سازی فرآیند توسعه خود بهره ببرید.

سرفصل ها و درس ها

شروع به کار Getting Started

  • معرفی دوره Course Introduction

  • پیش‌نیازها Pre-requisites

آشنایی با جاوا مدرن Getting Started Modern Java

  • مقدمه‌ای بر جاوا مدرن: نگاه کلی Introduction to Modern Java: Big Picture

راه‌اندازی محیط محلی Local Set Up

  • نصب جاوا Java Installation

چرا جاوا ۸؟ Why Java 8?

  • چرا جاوا ۸ اهمیت دارد؟ Why Java 8 is Important?

  • برنامه‌نویسی امری در مقابل توصیفی - مثال ۱ Imperative vs Declarative Programming - Example 1

  • برنامه‌نویسی امری در مقابل توصیفی - مثال ۲ Imperative vs Declarative Programming - Example 2

مقدمه‌ای بر لامبدا Introduction to Lambda

  • لامبدا چیست؟ What is Lambda?

  • آزمایشگاه: پیاده‌سازی Runnable با استفاده از لامبدا Lab: Implement Runnable using Lambda

  • آزمایشگاه: پیاده‌سازی Comparator با استفاده از لامبدا Lab: Implement Comparator using Lambda

لامبداها و رابط‌های کاربردی Lambdas and Functional Interfaces

  • مقدمه‌ای بر رابط‌های کاربردی (Functional Interfaces) Introduction to Functional Interfaces

  • آزمایشگاه: رابط کاربردی Consumer - بخش ۱ Lab: Consumer Functional Interface - Part 1

  • آزمایشگاه: رابط کاربردی Consumer - بخش ۲ Lab: Consumer Functional Interface - Part 2

  • آزمایشگاه: رابط کاربردی BiConsumer Lab: BiConsumer Functional Interface

  • آزمایشگاه: رابط کاربردی Predicate - بخش ۱ Lab: Predicate - Functional Interface - Part 1

  • آزمایشگاه: رابط کاربردی Predicate - بخش ۲ Lab: Predicate - Functional Interface - Part 2

  • آزمایشگاه: ترکیب Predicate و Consumer Lab: Combining Predicate + Consumer

  • آزمایشگاه: رابط کاربردی BiPredicate Lab: BiPredicate

  • آزمایشگاه: رابط کاربردی Function - بخش ۱ Lab: Function - Functional Interface - Part 1

  • آزمایشگاه: رابط کاربردی Function - بخش ۲ Lab: Function - Functional Interface - Part 2

  • آزمایشگاه: رابط کاربردی BiFunction Lab: BiFunction Functional Interface

  • آزمایشگاه: رابط‌های کاربردی UnaryOperator و BinaryOperator Lab: UnaryOperator and BinaryOperator Functional Interface

  • آزمایشگاه: رابط کاربردی Supplier Lab: Supplier - Functional Interface

ارجاعات سازنده و متد Constructor and Method References

  • ارجاع متد (Method Reference) Method Reference

  • آزمایشگاه: ارجاع متد - Function Lab: Method Reference - Function

  • آزمایشگاه: ارجاع متد - Consumer Lab: Method Reference - Consumer

  • آزمایشگاه: تبدیل عبارت لامبدا به ارجاع متد Lab: Refactor Lambda Expression to Method Reference

  • ارجاع سازنده (Constructor Reference) Constructor Reference

لامبداها و متغیرهای محلی (Effectively Final) Lambdas and Local Variables (Effectively Final)

  • آزمایشگاه: متغیرهای محلی در عبارت لامبدا Lab: Local Variables in Lambda Expression

  • متغیرهای Effectively Final در لامبدا و مزایای آن Effectively Final Variables in Lambda and its Advantages

رابط برنامه‌نویسی استریم‌ها (Streams API) Streams API

  • مقدمه‌ای بر استریم‌ها Introduction to Streams

  • Stream API چگونه کار می‌کند؟ How Stream API Works?

  • مقایسه استریم‌ها در مقابل کالکشن‌ها Comparing Streams vs Collections

  • آزمایشگاه: چگونه عملیات استریم را دیباگ کنیم؟ Lab: How to Debug Stream Operations?

عملیات Stream API Stream API - Operations

  • آزمایشگاه: عملیات استریم - ()map Lab: Stream Operation - map()

  • آزمایشگاه: عملیات استریم - ()flatMap Lab: Stream Operation - flatMap()

  • آزمایشگاه: عملیات استریم - ()distinct, ()count, ()sorted Lab: Stream Operation - distinct(), count(), sorted()

  • آزمایشگاه: عملیات استریم - مرتب‌سازی سفارشی با Comparator Lab: Stream Operation - Customized Sort using Comparator

  • آزمایشگاه: عملیات استریم - ()filter Lab: Stream Operation - filter()

  • آزمایشگاه: عملیات استریم - ()reduce - بخش ۱ Lab: Stream Operation - reduce() - Part 1

  • آزمایشگاه: عملیات استریم - ()reduce - بخش ۲ Lab: Stream Operation - reduce() - Part 2

  • آزمایشگاه: عملیات استریم - الگوی Map + Filter + Reduce Lab: Stream Operations - Map + Filter + Reduce Pattern

  • آزمایشگاه: عملیات استریم - یافتن max با استفاده از ()reduce Lab: Stream Operation: max using reduce() function

  • آزمایشگاه: عملیات استریم - یافتن min با استفاده از ()reduce Lab: Stream Operation - min() using reduce function

  • آزمایشگاه: عملیات استریم - ()limit و ()skip Lab: Stream Operation - limit() and skip()

  • آزمایشگاه: عملیات استریم - ()allMatch, ()anyMatch و ()noneMatch Lab: Stream Operation - allMatch(), anyMatch() and noneMatch()

  • آزمایشگاه: عملیات استریم - ()findAny و ()findFirst Lab: Stream Operation - findAny() and findFirst()

  • استریم‌ها: عملیات اتصال کوتاه (Short Circuiting) Streams: Short Circuiting Operations

  • Streams API: توابع بدون حالت در مقابل توابع حالت‌دار Streams API - Stateless vs Stateful Functions

متدهای کارخانه‌ای در Streams API Streams API - Factory Methods

  • آزمایشگاه: عملیات استریم - ()of, ()iterate, ()generate Lab: Streams Operation - of(), iterate(), generate()

استریم‌های عددی در Streams API Streams API - Numeric Streams

  • مقدمه‌ای بر استریم‌های عددی Introduction to Numeric Streams

  • آزمایشگاه: استریم عددی - ()range, ()rangeClosed, ()count, ()forEach Lab: NumericStream - range(), rangeClosed(), count(), forEach()

  • آزمایشگاه: استریم عددی - ()sum, ()max, ()min, ()average Lab: NumericStream - sum(), max(), min(), average()

  • آزمایشگاه: استریم عددی - Boxing, Unboxing, ()mapToInt Lab: NumericStream - Boxing, Unboxing, mapToInt()

  • آزمایشگاه: استریم عددی - ()mapToObj, ()mapToDouble, ()mapToLong Lab: NumericStream - mapToObj(), mapToDouble(), mapToLong()

عملیات نهایی (Terminal Operations) در Streams API Streams API - Terminal Operations

  • آزمایشگاه: ()joining Lab: joining()

  • آزمایشگاه: ()counting Lab: counting()

  • آزمایشگاه: ()mapping Lab: mapping()

  • آزمایشگاه: ()minBy و ()maxBy با استفاده از ()collect Lab: minBy(), maxBy() using collect()

  • آزمایشگاه: ()sum و ()avg با استفاده از ()collect Lab: sum(), avg() using collect()

  • آزمایشگاه: ()groupingBy - نوع ۱ Lab: groupingBy() - Type 1

  • آزمایشگاه: ()groupingBy - نوع ۲ Lab: groupingBy() - Type 2

  • آزمایشگاه: ()groupingBy - نوع ۳ Lab: groupingBy() - Type 3

  • آزمایشگاه: ()groupingBy - متدهای ()maxBy, ()minBy, ()collectingAndThen Lab: groupingBy() - maxBy(), minBy(), collectingAndThen()

  • آزمایشگاه: ()partitioningBy Lab: partitioningBy()

پردازش موازی در Streams API Streams API - Parallel Processing

  • مقدمه‌ای بر استریم‌های موازی (Parallel Streams) Introduction to Parallel Streams

  • آزمایشگاه: مقایسه عملکرد استریم‌های ترتیبی در مقابل موازی Lab: Comparing Performance of Sequential vs Parallel Streams

  • استریم موازی چگونه کار می‌کند؟ How Parallel Stream Works?

  • آزمایشگاه: ساخت یک خط لوله (Pipeline) استریم موازی Lab: Build a Parallel Stream Pipeline

  • آزمایشگاه: چه زمانی از استریم موازی استفاده نکنیم - مثال ۱ Lab: When Not to Use Parallel Stream - Example 1

  • آزمایشگاه: چه زمانی از استریم موازی استفاده نکنیم - بخش ۲ Lab: When Not to Use Parallel Stream - Part 2

کلاس Optional Optional

  • مقدمه‌ای بر Optional Introduction to Optional

  • آزمایشگاه: Optional - متدهای ()empty, ()ofNullable, ()of Lab: Optional - empty(), ofNullable(), of()

  • آزمایشگاه: متدهای ()orElse, ()orElseGet, ()orElseThrow Lab: orElse(), orElseGet(), orElseThrow()

  • آزمایشگاه: متدهای ()ifPresent, ()isPresent Lab: ifPresent(), isPresent()

  • آزمایشگاه: متدهای ()map, ()flatMap, ()filter - بخش ۱ Lab: map(), flatMap(), filter() - Part 1

  • آزمایشگاه: متدهای ()map, ()flatMap, ()filter - بخش ۲ Lab: map(), flatMap(), filter() - Part 2

متدهای Default و Static در اینترفیس‌ها Default/Static Methods in Interfaces

  • مقدمه‌ای بر متدهای Default و Static Introduction to Default/Static Methods

  • آزمایشگاه: متدهای Default Lab: Default Methods

  • آزمایشگاه: بررسی عملیات ()sort با استفاده از Comparator - بخش ۱ Lab: Exploring sort() Operations using Comparator - Part 1

  • آزمایشگاه: بررسی عملیات ()sort با استفاده از Comparator - بخش ۲ Lab: Exploring sort() Operations using Comparator - Part 2

  • آزمایشگاه: ایجاد یک اینترفیس با متدهای Default/Static Lab: Creating an Interface with Default/Static Methods

  • کلاس‌های انتزاعی در مقابل اینترفیس‌ها Abstract Classes vs Interfaces

  • آزمایشگاه: وراثت چندگانه Lab: Multiple Inheritance

  • آزمایشگاه: وراثت چندگانه - حل تداخلات Lab: Multiple Inheritance - Resolving Conflicts

APIهای جدید تاریخ و زمان New Date/Time APIs

  • مقدمه‌ای بر کتابخانه‌های جدید تاریخ و زمان Introduction to the New Date/Time Libraries

  • آزمایشگاه: LocalDate - ایجاد و دریافت مقادیر Lab: LocalDate - Create, Get the LocalDate Values

  • آزمایشگاه: LocalDate - تغییر مقادیر Lab: LocalDate - Modify the LocalDate

  • آزمایشگاه: LocalDate - توابع تکمیلی Lab: LocalDate - Additional LocalDate Functions

  • آزمایشگاه: LocalTime Lab: LocalTime

  • آزمایشگاه: LocalDateTime - ایجاد و تغییر Lab: LocalDateTime - Create/Modify LocalDateTime

  • آزمایشگاه: تبدیل LocalDate/LocalTime به LocalDateTime Lab: Converting from LocalDate/LocalTime to LocalDateTime

  • آزمایشگاه: مقایسه تاریخ‌ها – Period Lab: Comparing Dates – Period

  • آزمایشگاه: مقایسه زمان‌ها – Duration Lab: Comparing Times – Duration

  • آزمایشگاه: Instant Lab: Instant

  • آزمایشگاه: مناطق زمانی – ZonedDateTime, ZoneId, ZoneOffset Lab: TimeZones – ZonedDateTime, ZoneId, ZoneOffset

  • آزمایشگاه: مناطق زمانی – تبدیل Instant و LocalDateTime به ZonedDateTime Lab: TimeZones – Converting Instant, LocalDateTime to ZonedDateTime

  • آزمایشگاه: تبدیل java.util.Date/java.sql.Date به LocalDate Lab: Converting java.util.Date/java.sql.Date to LocalDate

  • آزمایشگاه: فرمت و تجزیه LocalDate با استفاده از DateTimeFormatter Lab: Format/Parse LocalDate using DateTimeFormatter

  • آزمایشگاه: فرمت و تجزیه LocalTime با استفاده از DateTimeFormatter Lab: Format/Parse LocalTime using DateTimeFormatter

  • آزمایشگاه: فرمت و تجزیه LocalDateTime با استفاده از DateTimeFormatter Lab: Format/Parse LocalDateTime using DateTimeFormatter

راه‌اندازی پروژه پایه برای بررسی ویژگی‌های جاوا ۹ و بالاتر Base Project Setup for Exploring Java 9 and Beyond Features

  • راه‌اندازی پروژه Project Set-Up

  • راه‌اندازی دستیار Copilot Set Up Copilot Assistant

تابع Main فشرده (Compact Main) Compact Main Function

  • ساده‌سازی متد Main با استفاده از Compact Main Simplifying the Main Method Using Compact Main

  • استفاده از Compact Main با GitHub Copilot Compact Main Using GitHub Copilot

استنتاج نوع متغیر محلی (LVTI) با استفاده از var Local Variable Type Inference (LVTI) Using var

  • استنتاج نوع متغیر محلی چیست؟ What is Local Variable Type Inference?

  • محدودیت‌های استفاده از "var" Limitation of Using "var"

بلاک‌های متنی (Text Blocks) Text Blocks

  • بلاک‌های متنی (TextBlocks) – ارتقای قدرت رشته‌ها TextBlocks – Enhanced the Power of String

سوییچ ارتقا یافته (Enhanced Switch) Enhanced Switch

  • سوییچ (Switch) به عنوان یک عبارت (Expression) Switch – as an Expression

  • عبارت سوییچ چندخطی با استفاده از "yield" Multiline Switch Expression Using "yield"

  • جامع بودن سوییچ‌های ارتقا یافته Enhanced Switch are Exhaustive

رکوردهای جاوا (Records) Records

  • کلاس‌های Record Record Classes

  • سازنده‌های سفارشی و اعتبارسنجی در کلاس‌های Record Custom Constructors and Validations in Record Classes

  • برابری اشیاء در کلاس‌های Record Object Equality in Record Classes

کلاس‌ها و اینترفیس‌های Sealed Sealed Classes/Interfaces

  • مقدمه‌ای بر کلاس‌ها و انواع Sealed Introduction to Sealed Classes/Types

  • زیرکلاس‌های کلاس‌های Sealed Subclasses of Sealed Classes

  • استفاده از Sealed در کلاس‌های "abstract" Using Sealed on "abstract" Classes

  • استفاده از Sealed در "interfaces" Using Sealed on "interfaces"

تطبیق الگو (Pattern Matching) Pattern Matching

  • مقدمه‌ای بر تطبیق الگو (Pattern Matching) Introduction to Pattern Matching

  • الگوهای رکورد – تطبیق الگو در Records Record Patterns – Pattern Matching on Records

  • الگوهای Guarded Guarded Patterns

متغیرهای بدون نام Unnamed Variables

  • متغیرهای بدون نام در جاوا: نادیده گرفتن تمیز با _ [کدنویسی AI] Unnamed Variables in Java: Clean Ignoring with _ [AI Coding]

  • استفاده از متغیرهای بدون نام همراه با تطبیق الگو [نوشتن تست با AI] Using Unnamed Variables Along with Pattern Matching [Write Tests Using AI]

برنامه CheckoutService [مورد استفاده واقعی] CheckoutService Application [Real-Time Use Case]

  • مرور کلی برنامه Overview of the Application

  • پیاده‌سازی PaymentService با استفاده از کلاس‌های Sealed PaymentService Implementation Using Sealed Classes

تسلط بر Stream Gatherers در جاوا – عصر جدید پردازش استریم Mastering Stream Gatherers in Java — A New Era of Stream Processing

  • مقدمه‌ای بر Stream Gatherers Introduction to Stream Gatherers

  • متد Gatherers.windowFixed() [کدنویسی AI] Gatherers.windowFixed() [AI Coding]

  • متد Gatherers.windowSliding() Gatherers.windowSliding()

  • متد Gatherers.fold() Gatherers.fold()

  • متد Gatherers.scan() Gatherers.scan()

  • متد Gatherers.mapConcurrent() Gatherers.mapConcurrent()

  • ترکیب Gatherers [کدنویسی AI] Combining Gatherers [AI Coding]

  • ساخت Gathererهای سفارشی: فیلتر و تبدیل با استفاده از Gatherer.of Building Custom Gatherers: Filter and Transform Using Gatherer.of

  • ساخت Gathererهای سفارشی: منطق خاص دامنه با استفاده از Gatherer.ofSequential Building Custom Gatherers: Domain-Specific Logic Using Gatherer.ofSequential

وب‌سرور ساده Simple Web Server

  • وب‌سرور ساده در عمل Simple Web Server in Action

کلاینت HTTP جدید New Http Client

  • HttpClient جدید – درخواست GET برای دریافت فیلم بر اساس ID New HttpClient – GET Request to Retrieve Movie by ID

  • تست JUnit برای HTTP Client JUnit Test for the HTTP Client

  • ساخت HTTPClient در حالت Asynchronous Build HTTPClient in Asynchronous Mode

  • ساخت HTTP Client – درخواست GET برای دریافت همه فیلم‌ها Build HTTP Client – GET Request to Retrieve All Movies

سیستم ماژولار پلتفرم جاوا (JPMS) Java Platform Module System (JPMS)

  • مقدمه‌ای بر JPMS Introduction to JPMS

  • ساخت یک برنامه جاوا با استفاده از JPMS Build a Java App Using JPMS

  • کار با چندین ماژول Working with Multiple Modules

  • کار با چندین ماژول – به صورت Transitively Working with Multiple Modules – Transitively

  • ماژول‌های بدون نام و ماژول‌های خودکار Unnamed Modules and Automatic Modules

نمایش نظرات

آموزش جاوا مدرن - تسلط بر ویژگی‌های جاوا ۸ تا جاوا ۲۵
جزییات دوره
24h 27m
144
(آخرین آپدیت)
750
- از 5
دارد
دارد
دارد
Chris Croft
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Chris Croft Chris Croft

مربی مدیریت، سخنران، نویسنده