No description
- Dockerfile 100%
|
All checks were successful
CI / deploy (push) Successful in 2m8s
Add comprehensive deep-dive articles for the entire concurrency section: - synchronized: JLS 17.1 monitors, JVMS monitorenter/monitorexit, ObjectMonitor - volatile: JMM, memory barriers, StoreLoad fence - happens-before: 8 JMM rules, reordering, data race - lifecycle: Thread.State, jstack diagnostics - locks: AQS, ReentrantLock, Condition, StampedLock - atomic: CAS, ABA, LongAdder striping, VarHandle - collections: ConcurrentHashMap Java 8+, BlockingQueue - thread-pools: ThreadPoolExecutor, rejection policies - future: CompletableFuture internals - fork-join: work-stealing algorithm - problems: deadlock, livelock, race condition, starvation - virtual-threads: JEP 444, pinning, structured concurrency All sources are JLS, JVMS, JEP, OpenJDK source, javadoc. No blog rehashes. |
||
|---|---|---|
| .forgejo | ||
| .idea | ||
| src | ||
| .DS_Store | ||
| .gitignore | ||
| book.toml | ||
| README.md | ||
Java Backend Handbook
Практическое руководство по Java Backend разработке, собранное в формате mdBook.
Содержание
| Часть | Темы |
|---|---|
| I. Основы Java | Синтаксис, ООП, Collections, Generics, Stream API, JVM, Concurrency |
| II. Алгоритмы и паттерны | Big O, структуры данных, сортировки, GoF паттерны, SOLID |
| III. Spring Ecosystem | Spring Core, Spring Boot, Security, Cloud, WebFlux |
| IV. Данные и интеграции | SQL, PostgreSQL, Hibernate, Redis, Kafka, RabbitMQ |
| V. Инструменты и DevOps | Maven, Gradle, Docker, SSH, CI/CD |
| VI. Дополнительно | Kotlin, Agile, Scrum |
Требования
cargo install mdbook
Локальный запуск
# Клонировать репозиторий
git clone https://git.j1337.pw/muukaramiskarhu/java-handbook.git
cd java-handbook
# Собрать книгу
mdbook build
# Запустить dev-сервер с hot-reload на http://localhost:3000
mdbook serve
Собранная книга появится в директории book/.
Деплой
Вариант 1: Статический хостинг (GitHub/GitLab Pages, Nginx)
mdbook build
Содержимое директории book/ — готовый статический сайт. Разместите его на любом веб-сервере или статическом хостинге.
Пример для Nginx:
server {
listen 80;
server_name handbook.example.com;
root /var/www/java-handbook/book;
index index.html;
}
Вариант 2: Docker
FROM rust:alpine AS builder
RUN cargo install mdbook
COPY . /book
WORKDIR /book
RUN mdbook build
FROM nginx:alpine
COPY --from=builder /book/book /usr/share/nginx/html
EXPOSE 80
docker build -t java-handbook .
docker run -p 8080:80 java-handbook
Вариант 3: CI/CD (Forgejo Actions)
В репозитории настроен workflow (.forgejo/workflows/deploy.yml), который при пуше в master:
- Собирает книгу (mdBook из pre-built бинарника)
- Билдит Docker-образ (nginx + статика)
- Пушит образ в Forgejo Container Registry
- Останавливает старый контейнер и запускает новый
Необходимый секрет в настройках репозитория (Settings > Actions > Secrets):
| Секрет | Описание |
|---|---|
REGISTRY_TOKEN |
Токен для Forgejo Container Registry |
На PR — только сборка (проверка что книга билдится).
Внесение изменений через Pull Request
1. Создайте ветку
git checkout -b feature/my-changes
2. Внесите изменения
Все материалы находятся в директории src/. Структура описана в src/SUMMARY.md.
- Для редактирования существующей темы — измените соответствующий
.mdфайл - Для добавления новой темы — создайте
.mdфайл и добавьте ссылку вsrc/SUMMARY.md
3. Проверьте локально
mdbook serve
# Откройте http://localhost:3000 и убедитесь, что всё корректно
4. Запушьте и создайте PR
git add .
git commit -m "Описание изменений"
git push origin feature/my-changes
Затем откройте Pull Request в Forgejo: Repository > New Pull Request, выберите вашу ветку → master.
Правила оформления
- Язык материалов — русский, технические термины остаются на английском
- Каждая тема содержит теоретическое описание, ссылки на документацию и видеоматериалы
- Следуйте существующей структуре файлов и именованию
Структура проекта
java-handbook/
├── book.toml # Конфигурация mdBook
├── src/
│ ├── SUMMARY.md # Оглавление (структура книги)
│ ├── introduction.md
│ ├── part-1-java-basics/
│ ├── part-2-algorithms-patterns/
│ ├── part-3-spring/
│ ├── part-4-data/
│ ├── part-5-devops/
│ ├── part-6-extra/
│ └── appendix/
└── book/ # Собранный сайт (в .gitignore)
Лицензия
Автор: muukaramiskarhu