ΠΠΊΠ°Π΄Π΅ΠΌΠΈΠΈ ΠΡΠΊΠ΅Π½Π΄Π° 2024.
ΠΡΠΎΠ΅ΠΊΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠΎΠ² ΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ Π² Π½ΠΈΡ . ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π»Π°Π±ΠΈΡΠΈΠ½ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ ΠΎΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π (Π½Π°ΡΠ°Π»Π°) ΠΊ ΡΠΎΡΠΊΠ΅ Π (ΠΊΠΎΠ½ΡΠ°). ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ, Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠΎΠ² - Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΡΠΈΠΌΠ° ΠΈ ΠΡΠ°ΡΠΊΠ°Π»Π°.
ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ - ΠΏΠΎΠΈΡΠΊ Π² ΡΠΈΡΠΈΠ½Ρ (BFS) ΠΈ Π* (A-star).
ΠΡΠΎ ΡΠΈΠΏΠΎΠ²ΠΎΠΉ Java-ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Apache Maven.
ΠΡΠΎΠ΅ΠΊΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²:
- pom.xml β Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ maven, ΠΈΠ»ΠΈ Project Object Model. Π Π½Π΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΡΠ°Π³ΠΈ ΠΏΠΎ Π΅Π³ΠΎ ΡΠ±ΠΎΡΠΊΠ΅
- src/ β Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ ΡΠ΅ΡΡΡ:
- mvnw ΠΈ mvnw.cmd β ΡΠΊΡΠΈΠΏΡΡ maven wrapper Π΄Π»Ρ Unix ΠΈ Windows, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ maven Π±Π΅Π· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
- checkstyle.xml, checkstyle-suppression.xml, pmd.xml ΠΈ spotbugs-excludes.xml β Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π»ΠΈΠ½ΡΠ΅ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ΄Π°. Π£ΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π»ΠΈΠ½ΡΠ΅ΡΠΎΠ²
- .mvn/ β ΡΠ»ΡΠΆΠ΅Π±Π½Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ maven, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ°
- lombok.config β ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» Lombok, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠ΅ΠΉ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
- .editorconfig β ΡΠ°ΠΉΠ» Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°
- .github/workflows/build.yml β ΡΠ°ΠΉΠ» Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠ°Π³ΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΡΠ΅Π΄Π΅ Github
- .gitattributes, .gitignore β ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ git, Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ