# Репозиторий курса OTUS: "Разработчик Spring Framework"

## Что необходимо?

Для выполнения упражнений необходимо:
* JDK 11
* Apache Maven >= 3.5.* (или встроенный в IntelliJ IDEA) 

## Как пользоваться?

Для каждой группы создана папка вида `20XX-XX`.

Перед началом занятия необходимо сделать `git pull` и открыть, обычно, только один проект.

## Что прочитать перед курсом?

### General 
* [Learn Git in a Month of Lunches](https://pepa.holla.cz/wp-content/uploads/2016/01/Learn-Git-in-a-Month-of-Lunches.pdf)
* [Test Driven Development: By Example](https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530)

### Java
* [Cay Horstmann: Core Java® Volume I—Fundamentals, Tenth Edition](https://www.oreilly.com/library/view/core-java-volume/9780134177335/)
* [Cay Horstmann: Core Java, Volume II—Advanced Features, Tenth Edition](https://www.oreilly.com/library/view/core-java-volume/9780134177878/)
* [Pragmatic Unit Testing in Java 8 with JUnit](https://www.oreilly.com/library/view/pragmatic-unit-testing/9781680500769/)
* [Effective Java, 3thd Edition](https://www.amazon.com/gp/product/0134685997)

### Design
* [Head First Design Patterns](https://www.oreilly.com/library/view/head-first-design/0596007124/)

## Что читать во время курса?

### General
* [Release It!](https://www.oreilly.com/library/view/release-it/9781680500264/)

### Desing
* [REST in Practice](https://www.oreilly.com/library/view/rest-in-practice/9781449383312/)

### Java
* [Брайан Гетц и др. | Java Concurrency на практике (2020)](https://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601)
* [xUnit Test Patterns: Refactoring Test Code](https://www.oreilly.com/library/view/xunit-test-patterns/9780131495050/)

### Spring
* [Spring in Action 5th Edition](https://www.amazon.com/Spring-Action-Craig-Walls/dp/1617294942)
* [Just Spring Integration](https://www.oreilly.com/library/view/just-spring-integration/9781449335403/)

### DBs
* [NoSQL Distilled](https://bigdata-ir.com/wp-content/uploads/2017/04/NoSQL-Distilled.pdf)

### Architecture
* [Microservice Architecture](https://www.oreilly.com/library/view/microservice-architecture/9781491956328/)
* [Reactive Microservice](https://www.oreilly.com/library/view/reactive-microservices-architecture/9781491975664/)
* [Production-Ready Microservices](https://www.oreilly.com/library/view/reactive-microservices-architecture/9781491975664/)

## Что прочитать после курса?

### General
* [BDD in Action](https://www.manning.com/books/bdd-in-action)
* [The Art of Multiprocessor Programming, Revised Reprint](https://www.oreilly.com/library/view/the-art-of/9780123973375/)
* [Growing Object-Oriented Software, Guided by Tests](https://www.oreilly.com/library/view/growing-object-oriented-software/9780321574442/)
* [Design Patterns in the Real World, an Analysis-Based Approach](https://www.oreilly.com/library/view/design-patterns-in/9781491935828/)
* [Code Complete, Second Edition](https://www.oreilly.com/library/view/code-complete-second/0735619670/)

### Java
* [The Garbage Collection Handbook: The Art of Automatic Memory Management](https://www.amazon.com/Garbage-Collection-Handbook-Management-Algorithms/dp/1420082795)
* 

### DBs
* [Principles of database systems](https://www.sti-innsbruck.at/sites/default/files/Knowledge-Representation-Search-and-Rules/principles-of-database-and-knowledge-base-systems-volume-1-1.pdf)

### Architecture
* [Kafka: The Definitive Guide](https://www.oreilly.com/library/view/kafka-the-definitive/9781491936153/) 
* [Building Microservices](https://www.oreilly.com/library/view/building-microservices/9781491950340/)
* [I Heart Logs](https://www.oreilly.com/library/view/i-heart-logs/9781491909379/)
* [Akka in Action](https://www.oreilly.com/library/view/akka-in-action/9781617291012/)
* [Software Architecture in Practice, Third Edition](https://www.oreilly.com/library/view/software-architecture-in/9780132942799/)
* [Pattern-Oriented Software Architecture, Volume 1, A System of Patterns](https://www.oreilly.com/library/view/software-architecture-in/9780132942799/)
* [Pattern-Oriented Software Architecture, Volume 2, Patterns for Concurrent and Networked Objects](https://www.oreilly.com/library/view/pattern-oriented-software-architecture/9781118725177/)
* [Pattern-Oriented Software Architecture, Volume 3: Patterns for Resource Management](https://www.oreilly.com/library/view/pattern-oriented-software-architecture/9780470845257/)
* [Patterns of Enterprise Application Architecture](https://www.oreilly.com/library/view/patterns-of-enterprise/0321127420/)
* [The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise, Second Edition
DevOps](https://www.oreilly.com/library/view/the-art-of/9780134031408/)

### DevOps
* [Effective DevOps](https://www.oreilly.com/library/view/effective-devops/9781491926291/)

### Design
* [Designing Data-Intensive Applications, 1st Edition](https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/)
* [Growing Object-Oriented Software, Guided by Tests](https://www.oreilly.com/library/view/growing-object-oriented-software/9780321574442/)
* [Implementing Domain-Driven Design](https://www.oreilly.com/library/view/implementing-domain-driven-design/9780133039900/)
* [Domain-Driven Design: Tackling Complexity in the Heart of Software](https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215)
* [Domain-Driven Design Distilled](https://www.oreilly.com/library/view/domain-driven-design-distilled/9780134434964/)
* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
* [Holub on Patterns: Learning Design Patterns by Looking at Code](https://www.amazon.com/Holub-Patterns-Learning-Looking-Professionals/dp/159059388X)
