Skip to content

Commit d2855ae

Browse files
committed
java_beginners_2_homework
0 parents  commit d2855ae

86 files changed

Lines changed: 2630 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ master, main ]
6+
pull_request:
7+
branches: [ master, main ]
8+
workflow_dispatch:
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
jobs:
15+
build:
16+
runs-on: ubuntu-latest
17+
timeout-minutes: 15
18+
19+
steps:
20+
- uses: actions/checkout@v4
21+
22+
- name: Set up JDK 17
23+
uses: actions/setup-java@v4
24+
with:
25+
java-version: '17'
26+
distribution: 'temurin'
27+
28+
- name: Compile Java files
29+
run: |
30+
mkdir -p build/classes
31+
JAVA_FILES=$(find . -name "*.java" -not -path "*/test/*" -not -path "./build/*")
32+
if [ -n "$JAVA_FILES" ]; then
33+
echo "$JAVA_FILES" | xargs javac -d build/classes -cp build/classes 2>&1 || true
34+
echo "## Build" >> $GITHUB_STEP_SUMMARY
35+
echo "Compiled $(echo "$JAVA_FILES" | wc -l) Java files" >> $GITHUB_STEP_SUMMARY
36+
fi
37+
38+
- name: Find and run tests
39+
run: |
40+
TEST_FILES=$(find . -name "*Test.java" -o -name "*Tests.java" 2>/dev/null)
41+
if [ -n "$TEST_FILES" ]; then
42+
echo "## Tests" >> $GITHUB_STEP_SUMMARY
43+
echo "Found $(echo "$TEST_FILES" | wc -l) test files:" >> $GITHUB_STEP_SUMMARY
44+
echo '```' >> $GITHUB_STEP_SUMMARY
45+
echo "$TEST_FILES" >> $GITHUB_STEP_SUMMARY
46+
echo '```' >> $GITHUB_STEP_SUMMARY
47+
else
48+
echo "## Tests" >> $GITHUB_STEP_SUMMARY
49+
echo "No test files found. Add tests to improve coverage." >> $GITHUB_STEP_SUMMARY
50+
fi
51+
52+
- name: Code inventory
53+
run: |
54+
echo "" >> $GITHUB_STEP_SUMMARY
55+
echo "## Code Inventory" >> $GITHUB_STEP_SUMMARY
56+
echo '```' >> $GITHUB_STEP_SUMMARY
57+
find . -name "*.java" | wc -l | xargs -I{} echo "Java files: {}" >> $GITHUB_STEP_SUMMARY
58+
find . -name "*.java" | xargs wc -l 2>/dev/null | tail -1 >> $GITHUB_STEP_SUMMARY
59+
echo '```' >> $GITHUB_STEP_SUMMARY

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.idea/

CLAUDE.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# java_beginners_2_homework
2+
3+
## Learning Objectives
4+
5+
This is educational material. Key goals:
6+
- Study the source code and understand the patterns used
7+
- Complete exercises and homework assignments
8+
- Experiment with modifications to deepen understanding
9+
10+
## Prerequisites
11+
12+
- JDK 8+
13+
14+
## Build & Run
15+
16+
```bash
17+
# See project files for build instructions
18+
```
19+
20+
## Development Guidelines
21+
22+
### Code Style
23+
- Follow standard Java conventions
24+
- Keep code clean and well-organized
25+
- Use meaningful variable and method names
26+
27+
### Git Workflow
28+
- Write clear, descriptive commit messages
29+
- One logical change per commit
30+
- Test before committing
31+
32+
### Testing
33+
- Write tests for new functionality
34+
- Run the full test suite before pushing
35+
- Keep tests focused and independent

README.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# Java Beginners Level 2: Материалы для самостоятельной работы
2+
3+
[Репозиторий и материалы для курса **1** тут!](https://github.com/levelp/java_beginners_homework)
4+
5+
## Для каждого занятия - специальная папка
6+
- **questions.md** - здесь лежат контрольные вопросы по занятию, с них начнется следующее занятие
7+
- **agenda.md** - что проходили на занятии
8+
- **homework.md** - домашнее задание
9+
- **reading.md** - что почитать.
10+
- Java-файлы с примерами кода.
11+
12+
Рекомендованная литература
13+
---
14+
15+
## Java
16+
* [Oracle java trails](https://docs.oracle.com/javase/tutorial/)
17+
* Thinking in Java (Философия Java) - Брюса Эккеля
18+
* Шилдт - Java 8 - полное руководство
19+
20+
## Разработка
21+
* [Неплохая книга по программной инженерии от СПбГУ](http://www.intuit.ru/studies/courses/497/353/info)
22+
23+
## Алгоритмы
24+
* Кормен Т., Лейзерстон Ч., Ривест Р. Алгоритмы: построение и анализ, Пер. с англ. – М.: МЦНМО, 2000.
25+
* [Кнут Дональд, Искусство программирования (The Art of Computer Programming)](https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
26+
* [Шень А. Программирование: теоремы и задачи.](http://www.e-academy7.narod.ru/COURSES/PROGRAM/LITERATURA/01shen.PDF)
27+
* Книги и курсы Седжвика
28+
29+
## Прочее
30+
* [Боб Мартин "Чистый код"](https://www.ozon.ru/context/detail/id/5011068/)
31+
* [Книга Банды Четырех (шаблоны проектирования)](http://www.ozon.ru/context/detail/id/2457392/)
32+
33+
Полезные сайты
34+
---
35+
* [Группа ВК для участников курса](http://vk.com/java_course)
36+
* [Онлайн-курс для начинающих](http://javarush.ru)
37+
* ["Программирование на Java" курс лекций на ИНТУИТ](http://www.intuit.ru/studies/courses/16/16/info)
38+
* [Ответы на вопросы по Java](http://hashcode.ru/)
39+
* [10 хороших привычек программиста](http://ordinatus.ru/10-xoroshix-privychek-programmista/)
40+
41+
42+
Видео-материалы
43+
---
44+
* [Коллекция видео по Java, отснятых преподавателями для курсов](https://www.youtube.com/channel/UCNFWLo2holxVrZ0u5lSYK4g)
45+
* [Видео - Hello, World!](https://www.youtube.com/watch?v=Ta3KT68cK1M)
46+
* [Видео - работа с github](https://www.youtube.com/watch?v=azFmXyrdaRg)
47+
48+
49+
50+
Инструменты разработчика
51+
---
52+
## JDK
53+
* [Скачать Java SE](http://www.oracle.com/technetwork/java/javase/downloads)
54+
* [Java 8 Documentation](https://docs.oracle.com/javase/8/docs/api/)
55+
* [Новости сообщества JVM](https://telegram.me/proJVM)
56+
57+
## XML
58+
* [Что такое XML](https://ru.wikipedia.org/wiki/XML)
59+
* [XML для начинающих](https://www.ibm.com/developerworks/ru/library/x-newxml/)
60+
* [Пример XML](https://msdn.microsoft.com/ru-ru/library/ms762271(v=vs.85).aspx)
61+
62+
## Системы контроля версий
63+
* [Системы контроля версия (общие сведения)](https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F%D0%BC%D0%B8)
64+
* [О системах управления версиями]( https://ru.m.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F%D0%BC%D0%B8)
65+
* [Зачем нужны системы контроля версий](http://embedders.org/content/zachem-nuzhny-sistemy-kontrolya-versii-tipa-svn )
66+
67+
## Git
68+
* [Основы Git](https://git-scm.com/book/ru/v1/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B-Git)
69+
* [Git для командной строки](https://git-for-windows.github.io)
70+
* [Интерфейс для Windows](https://tortoisegit.org)
71+
* [Как начать работать с гитхабом (для тех, кто хочет разобраться)](https://m.habrahabr.ru/post/125799/ )
72+
73+
## Непрерывная интеграция
74+
* [На вики](https://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%BD%D0%B0%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F)
75+
* [Самые популярные системы непрерывной интеграции](http://ordinatus.ru/5-instrumentov-nepreryvnoj-integracii/)
76+
* [Travis](https://travis-ci.org/)
77+
78+
## Модульное тестирование и JUnit
79+
* [Модульное тестирование](https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
80+
* [Разработка через тестирование](https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
81+
82+
83+
## Методологии разработки
84+
* [Гибкие методолгии](https://ru.wikipedia.org/wiki/%D0%93%D0%B8%D0%B1%D0%BA%D0%B0%D1%8F_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8)
85+
* [Экстремальное программирование](https://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D1%82%D1%80%D0%B5%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
86+
* [Feature Driven Development](https://ru.wikipedia.org/wiki/Feature_driven_development)
87+
* [Скрам](https://ru.wikipedia.org/wiki/Scrum)
88+
* [Каскадная модель](https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C)
89+
* **Книга** [Мифический человеко-месяц или Как создаются программные системы](https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%BE-%D0%BC%D0%B5%D1%81%D1%8F%D1%86)
90+
91+
## Системы сборки
92+
* [Структура каталогов проекта на Maven](https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html)
93+
* [Документация по Maven](https://maven.apache.org/guides/index.html)
94+
* [Автоматизация сборки](https://ru.wikipedia.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B8)
95+
* [Maven](https://ru.wikipedia.org/wiki/Apache_Maven)
96+
* [Ant](https://ru.wikipedia.org/wiki/Apache_Ant)
97+
* [Gradle](https://ru.wikipedia.org/wiki/Gradle)
98+
99+
## Intellij Idea
100+
* [Idea Community Edition](https://www.jetbrains.com/idea/download)
101+
102+
## Far manager
103+
* [Download](http://www.farmanager.com/download.php?l=ru)
104+
105+
Вопросы на собеседованиях по Java:
106+
---
107+
https://docs.google.com/document/d/1N39ui--L2O3X76mX_V2mlHjYr90kC02crzumcFxgSJE/edit
108+
109+
Head Hunting (Career)
110+
---
111+
* [LinkedIn](https://www.linkedin.com)
112+
* [HH](spb.hh.ru)
113+
* [itmozg.ru](http://itmozg.ru/)
114+

java_1.10_exceptions_io_nio.pdf

349 KB
Binary file not shown.

java_b2_db.pdf

241 KB
Binary file not shown.

java_beginners_threads.pdf

511 KB
Binary file not shown.

java_multithreading.pdf

571 KB
Binary file not shown.

lesson_01/agenda.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
* Знакомство
2+
* Системы автоматизации сборки. Maven.
3+
* Системы контроля версий. Git.
4+
* TDD (Test-Driven Development). Демонстрация процесса. JUnit.

lesson_01/homework.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Первое домашнее задание. Повторить то, что было на уроке. Например:
2+
1. Создать репозиторий на гитхабе
3+
1. Создать maven-проект
4+
1. Добавить свой класс
5+
1. Добавить в зависимости JUnit
6+
1. Добавить юнит-тест

0 commit comments

Comments
 (0)