توضیحاتی در مورد کتاب :
بیاموزید که چگونه برنامههای مقیاسپذیر، انعطافپذیر و مؤثر در جاوا بسازید که مطابق با نیازهای نرمافزار شما باشد.
ویژگیهای کلیدی
- تکنولوژیهای پیشرفتهای را که Java 11 ارائه میکند، کاوش کنید، مانند برنامه نویسی وب و محاسبات موازی
- کشف پارادایم های برنامه نویسی مدرن مانند میکروسرویس ها، محاسبات ابری و ساختارهای سازمانی
- با این مقدمه عملی برای برنامه نویسی واکنشی، برنامه های کاربردی بسیار پاسخگو بسازید
Book Description
Java یکی از رایج ترین زبان های نرم افزاری است که توسط برنامه نویسان و توسعه دهندگان استفاده می شود. در این کتاب، ویژگی های جدید جاوا 11 را به سرعت یاد خواهید گرفت و رویکردی ساده و قدرتمند برای توسعه نرم افزار را تجربه خواهید کرد. نحوه استفاده از ابزارهای زمان اجرا جاوا، درک محیط جاوا و ایجاد یک برنامه جاوای مرتب سازی نام ساده را خواهید دید. در ادامه، در مورد فن آوری های پیشرفته ای که جاوا ارائه می کند، مانند برنامه نویسی وب و محاسبات موازی، یاد خواهید گرفت و یک بازی مغز متفکر را توسعه خواهید داد. در ادامه، مثالهای سادهتری ارائه میدهیم تا پیش از فرو رفتن در برخی مشکلات ساختار داده پیچیدهای که مهارتهای جاوا 11 شما را تقویت میکنند، پایهای بسازیم. این کتاب با تمرکز ویژه بر ویژگیهای پروژههای جدید: Project Valhalla، Project Panama، Project Amber و Project Loom، به شما کمک میکند تا بهعنوان یک توسعهدهنده برتر جاوا استخدام شوید. در پایان کتاب، شما پایه ای محکم برای ادامه سفر خود به سمت تبدیل شدن به یک توسعه دهنده حرفه ای جاوا خواهید داشت.
آنچه یاد خواهید گرفت
- یک برنامه را با استفاده از یک بیلد کامپایل، بسته بندی و اجرا کنید. ابزار مدیریت
- آشنایی با اصول توسعه مبتنی بر آزمایش
- جدا کردن سیم کشی چندین ماژول از منطق برنامه
- استفاده از حاشیه نویسی جاوا برای پیکربندی
- تسلط بر API اسکریپت ساخته شده در زبان جاوا
- درک اجرای کد استاتیک در مقابل پویا
این کتاب برای چه کسی است
این کتاب برای هر کسی است که میخواهد برای یادگیری زبان برنامه نویسی جاوا بدون نیاز به تجربه برنامه نویسی اگر تجربه قبلی دارید، به شما کمک میکند تا کتاب را راحتتر انجام دهید.
فهرست مطالب :
Cover
Title Page
Copyright and Credits
Packt Upsell
Contributors
Acknowledgments
Table of Contents
Preface
Chapter 1: Getting Started with Java 11
Getting started with Java
Version numbers
Installing Java
Installation on Windows
Installation on macOS
Installation on Linux
Setting JAVA_HOME
Executing jshell
Looking at the bytecode
Packaging classes into a JAR file
Managing the running Java application
Using an IDE
NetBeans
Eclipse
IntelliJ
IDE services
IDE screen structure
Editing files
Managing projects
Building the code and running it
Debugging Java
Summary
Chapter 2: The First Real Java Program - Sorting Names
Getting started with sorting
Bubble sort
Getting started with project structure and build tools
Make
Ant
Installing Ant
Using Ant
Maven
Installing Maven
Using Maven
Gradle
Installing Gradle
Setting up the project with Maven
Coding the sort
Understanding the algorithm and language constructs
Blocks
Variables
Types
Arrays
Expressions
Loops
Conditional execution
Final variables
Classes
Inner, nested, local, and anonymous classes
Packages
Methods
Interfaces
Argument passing
Fields
Modifiers
Object initializers and constructors
Compiling and running the program
Summary
Chapter 3: Optimizing the Sort - Making Code Professional
The general sorting program
A brief overview of various sorting algorithms
Quicksort
Project structure and build tools
Maven dependency management
Coding the sort
Creating the interfaces
Creating BubbleSort
Architectural considerations
Creating unit tests
Adding JUnit as a dependency
Writing the BubbleSortTest class
Good unit tests
A good unit test is readable
Unit tests are fast
Unit tests are deterministic
Assertions should be as simple as possible
Unit tests are isolated
Unit tests cover the code
Refactoring the test
Collections with wrong elements
Handling exceptions
Generics
Test-Driven Development
Implementing QuickSort
The partitioning class
Recursive sorting
Non-recursive sorting
Implementing the API class
Creating modules
Why modules are needed
What is a Java module?
Summary
Chapter 4: Mastermind - Creating a Game
The game
The model of the game
Java collections
Interface collection
Set
Hash functions
The equals method
The hashCode method
Implementing equals and hashCode
HashSet
EnumSet
LinkedHashSet
SortedSet
NavigableSet
TreeSet
List
LinkedList
ArrayList
Queue
Deque
Map
HashMap
IdentityHashMap
Dependency injection
Implementing the game
ColorManager
The class color
JavaDoc and code comments
Row
Table
Guesser
UniqueGuesser
GeneralGuesser
The Game class
Creating an integration test
Summary
Chapter 5: Extending the Game - Run Parallel, Run Faster
How to make Mastermind parallel
Refactoring
Processes
Threads
Fibers
java.lang.Thread
Pitfalls
Deadlocks
Race conditions
Overused locks
Starving
ExecutorService
Completable future
ForkJoinPool
Variable access
The CPU heartbeat
Volatile variables
Synchronized block
Wait and notify
Lock
Condition
ReentrantLock
ReentrantReadWriteLock
Atomic variables
BlockingQueue
LinkedBlockingQueue
LinkedBlockingDeque
ArrayBlockingQueue
LinkedTransferQueue
IntervalGuesser
ParallelGamePlayer
Microbenchmarking
Summary
Chapter 6: Making Our Game Professional - Do it as a Web App
Web and network
IP
TCP/IP
DNS
The HTTP protocol
HTTP methods
Status codes
HTTP/2
Cookies
Client server and web architecture
Writing a servlet
Hello world servlet
JavaServer Pages
HTML, CSS, and JavaScript
Mastermind servlet
Storing state
HTTP session
Storing state on the client
Dependency injection with Guice
The MastermindHandler class
Storing state on the server
The GameSessionSaver class
Running the Jetty web servlet
Logging
Configurability
Performance
Log frameworks
Java logging
Logging practice
Other technologies
Summary
Chapter 7: Building a Commercial Web Application Using REST
The MyBusiness web shop
Sample business architecture
Microservices
Service interface design
JSON
REST
Model View Controller
Spring framework
Architecture of Spring
Spring core
Service classes
Compiling and running the application
Testing the application
Integration tests
Application tests
Servlet filters
Audit logging and AOP
Dynamic proxy-based AOP
Summary
Chapter 8: Extending Our E-Commerce Application
The MyBusiness ordering
Setting up the project
Order controller and DTOs
Consistency checker
Annotations
Annotation retention
Annotation target
Annotation parameters
Repeatable annotations
Annotation inheritance
@Documented annotation
JDK annotations
Using reflection
Getting annotations
Invoking methods
Setting fields
Functional programming in Java
Lambda
Streams
Functional interfaces
Method references
Scripting in Java
Summary
Chapter 9: Building an Accounting Application Using Reactive Programming
Reactive... what?
Reactive programming in a nutshell
Reactive systems
Responsive
Resilient
Elastic
Message-driven
Back-pressure
Reactive streams
Reactive programming in Java
Implementing the inventory
Summary
Chapter 10: Finalizing Java Knowledge to a Professional Level
Java deep technologies
Java agent
Polyglot programming
Polyglot configuration
Polyglot scripting
Business DSL
Problems with polyglot
Annotation processing
Programming in the enterprise
Static code analysis
Source code version-control
Software versioning
Code review
Knowledge base
Issue tracking
Testing
Types of tests
Test automation
Black box versus white box
Selecting libraries
Fit for the purpose
License
Documentation
An alive project
Maturity
Number of users
The "I like it" factor
Continuous integration and deployment
Release management
The code repository
Walking up the ladder
Summary
Other Books You May Enjoy
Index
توضیحاتی در مورد کتاب به زبان اصلی :
Learn how to build scalable, resilient, and effective applications in Java that suit your software requirements.
Key Features
- Explore advanced technologies that Java 11 delivers such as web programming and parallel computing
- Discover modern programming paradigms such as microservices, cloud computing and enterprise structures
- Build highly responsive applications with this practical introduction to Reactive programming
Book Description
Java is one of the most commonly used software languages by programmers and developers. In this book, you’ll learn the new features of Java 11 quickly and experience a simple and powerful approach to software development. You’ll see how to use the Java runtime tools, understand the Java environment, and create a simple namesorting Java application. Further on, you'll learn about advanced technologies that Java delivers, such as web programming and parallel computing, and will develop a mastermind game. Moving on, we provide more simple examples, to build a foundation before diving into some complex data structure problems that will solidify your Java 11 skills. With a special focus on the features of new projects: Project Valhalla, Project Panama, Project Amber, and Project Loom, this book will help you get employed as a top-notch Java developer. By the end of the book, you’ll have a firm foundation to continue your journey toward becoming a professional Java developer.
What you will learn
- Compile, package, and run a program using a build management tool
- Get to know the principles of test-driven development
- Separate the wiring of multiple modules from application logic
- Use Java annotations for configuration
- Master the scripting API built into the Java language
- Understand static versus dynamic implementation of code
Who this book is for
This book is for anyone who wants to learn the Java programming language. No programming experience required. If you have prior experience, it will help you through the book more easily.