<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 17:17:16 UTC","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false};gon.token="GHjc4Gxg_yJXeJX4CwIQiFOpItLc0nJF2b6ScfQdG6L3qRfXnh5SQuE7sWAHDeD_k6APeNTljOdkXgglphr8zA";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>Модуль 10. Урок 1. Проект ХО. | Введение в Java</title>
<meta name="description" content="Модуль 10. Урок 1. Проект ХО. / Введение в Java: Получить теоретические знания о разработке программ на Java и закрепить полученные навыки на практике.">
<link rel="canonical" href="https://ru.hexlet.io/courses/java_101/lessons/xo1/theory_unit">
<meta name="robots" content="noarchive">
<meta property="og:title" content="Модуль 10. Урок 1. Проект ХО.">
<meta property="og:title" content="Введение в Java">
<meta property="og:description" content="Модуль 10. Урок 1. Проект ХО. / Введение в Java: Получить теоретические знания о разработке программ на Java и закрепить полученные навыки на практике.">
<meta property="og:url" content="https://ru.hexlet.io/courses/java_101/lessons/xo1/theory_unit">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="SrQ2Xb5xz_79Q7BTB3WM6Br3HvR4F4TQs0mHG5KsRz-lZf1qTA9inksAlMsLenyf2v4zXnAgenIOqR1PwKugUQ" />
<script src="/vite/assets/inertia-INZxX8jp.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-nkZBEvfU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-6pOtQ3OW.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<div id="app" data-page="{"component":"web/courses/lessons/theory_unit","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T17:17:16.143Z","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false}},"cloudflareTurnstileSiteKey":"0x4AAAAAAA15KmeFXzd2H0Xo","vkIdClientId":"51586979","yandexIdClientId":"88d071f1d3384eb4bd1deb37910235c7","formAuthToken":"tCKJizFjGDoHVkfGT47F3-qOhv5QDtg3QQkpQ9_EeWFb80K8wx21WrEVY15DgTWoKoerVFg5JpX86bMXjcOeDw","topics":[{"id":46718,"title":"Здравствуйте у меня следующий вопрос на видео в 1:03:30 пользуются тестированием с покрытием так сказать Run tests with Coverage так вот у меня данный тест не прошел со следующим сообщением:\n```\n Unexpected error (103) returned by AddToSystemClassLoaderSearch\nUnable to add C:\\Users\\����\\AppData\\Local\\JetBrains\\IntelliJIdea2020.2\\testAgent\\intellij-coverage-agent-1.0.512.jar to system class path - the system class loader does not define the appendToClassPathForInstrumentation method or the method failed\n```\nчто не так кто подскажет?","plain_title":"Здравствуйте у меня следующий вопрос на видео в 1:03:30 пользуются тестированием с покрытием так сказать Run tests with Coverage так вот у меня данный тест не прошел со следующим сообщением: Unexpected error (103) returned by AddToSystemClassLoaderSearch Unable to add C:\\Users\\����\\AppData\\Local\\JetBrains\\IntelliJIdea2020.2\\testAgent\\intellij-coverage-agent-1.0.512.jar to system class path - the system class loader does not define the appendToClassPathForInstrumentation method or the method failed что не так кто подскажет? ","creator":{"public_name":"Илья Строев","id":137687,"is_tutor":false},"comments":[{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":100701,"body":"Добрый день.\n\nЯ подозреваю, что это из-за кириллицы в названии папок.\n\nПопробуйте избавиться от кириллицы в путях проектов и приложений.\n\nА если у вас инсайдерская версия Windows 10, то рекомендую попробовать включить экспериментальную поддержку UTF-8, [вот тут есть](https://answers.microsoft.com/ru-ru/windows/forum/windows_10-other_settings/%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE/be4f7c8f-9f4b-4420-a1cd-8989bf466bf4) картинка где ее включать.","topic_id":46718}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Модуль 10. Урок 1. Проект ХО.","entity_url":null,"active":true}},{"id":3620,"title":"При написании класса Field мы наделили его двумя обязанностями - хранение значений для каждой ячейки игрового поля и валидирование передаваемых данных в методах класса. В нашем случае мы нарушаем принцип единой ответственности SRP.\nВ мире Java как чаще всего делают - создают классы-сущности, которые хранят данные без лишней логики или объединяют несколько обязанностей в одном классе?","plain_title":"При написании класса Field мы наделили его двумя обязанностями - хранение значений для каждой ячейки игрового поля и валидирование передаваемых данных в методах класса. В нашем случае мы нарушаем принцип единой ответственности SRP. В мире Java как чаще всего делают - создают классы-сущности, которые хранят данные без лишней логики или объединяют несколько обязанностей в одном классе? ","creator":{"public_name":"Юрий Афанасьев","id":97141,"is_tutor":false},"comments":[{"creator":{"public_name":"Вячеслав Ковалевский","id":5,"is_tutor":false},"id":6726,"body":"Это скорее холиварный вопрос ибо само собой все зависит от задачи =) Само собой если нету Гайдлайнов и из проекта однозначно не вытекает то как лучше сделать тот или иной класс то предпочитают все разделять и не нарушать SRP. ","topic_id":3620}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Модуль 10. Урок 1. Проект ХО.","entity_url":null,"active":true}},{"id":4877,"title":"Возникла трудность с настройкой IntelliJ IDEA 2016.2.4 для работы с GitHub'ом. Установил приложение GitHub Desktop и через диспетчер задач определил место расположения его файлов. В настройках по умолчанию IntelliJ IDEA в разделе Version Control/Git/Path to Git executable указал путь к файлу github.exe (изначально там был путь к файлу git.exe, которого в системе нет). При попытке дать команду VCS -> Import into Versipn Control -> Share Project on GitHub получаю следующее сообщение: \"Error Running Git: Empty git --version output:\"\nЧто нужно сделать, чтобы заработала эта система?\nТак выглядит сообщение, которое выдаёт IntelliJ IDEA после нажатия кнопки \"Test\" в настройках Git: \"Errors while executing git --version. exitCode=0 errors: Fatal Exception\nSystem.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.Windows.Markup.XamlParseException: Предоставление значения для \"System.Windows.StaticResourceExtension\" вызвало исключение. ---> System.Exception: Не удается найти ресурс с именем \"GitHubAccentBrush\". Имена ресурсов определяются с учетом регистра.\n в System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference)\n в System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider)\n в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)\n --- Конец трассировки внутреннего стека исключений ---\n в System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)\n в System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)\n в System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)\n в System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)\n в GitHub.Views.ShellView.InitializeComponent()\n в GitHub.Views.ShellView..ctor()\n --- Конец трассировки внутреннего стека исключений ---\n в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)\n в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)\n в System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)\n в System.Activator.CreateInstance(Type type, Boolean nonPublic)\n в System.Activator.CreateInstance(Type type)\n в Caliburn.Micro.ViewLocator.<.cctor>b__2(Type viewType)\n в Caliburn.Micro.ViewLocator.<.cctor>b__d(Type modelType, DependencyObject displayLocation, Object context)\n в Caliburn.Micro.ViewLocator.<.cctor>b__e(Object model, DependencyObject displayLocation, Object context)\n в Caliburn.Micro.WindowManager.CreateWindow(Object rootModel, Boolean isDialog, Object context, IDictionary`2 settings)\n в Caliburn.Micro.WindowManager.ShowWindow(Object rootModel, Object context, IDictionary`2 settings)\n в Caliburn.Micro.BootstrapperBase.DisplayRootViewFor(Type viewModelType, IDictionary`2 settings)\n в GitHub.Helpers.AppBootstrapper.OnStartup(Object sender, StartupEventArgs e)\n в System.Windows.Application.OnStartup(StartupEventArgs e)\n в System.Windows.Application.<.ctor>b__1_0(Object unused)\n в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)\n в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)\n\n2016-10-03 20:43:23.2466|ERROR|thread: 1|CrashManager|Dumping Loaded Module List\n2016-10-03 20:43:21.7645|INFO|thread: 1|CommandLineHandler|Parsing command line arguments:--version\n2016-10-03 20:43:21.7945|INFO|thread: 1|CommandLineHandler|Unprocessed args: --version\n2016-10-03 20:43:21.7945|INFO|thread: 1|CommandHandler|Repository Path to open: 'C:\\Program Files (x86)\\JetBrains\\IntelliJ IDEA Community Edition 2016.2.4\\jre\\jre\\bin\\--version', Is Repository: False\n2016-10-03 20:43:21.8155|INFO|thread: 1|AppInstance|Starting up as master instance of GitHub Desktop\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| #########################################\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| GitHub Desktop started. VERSION: 3.3.1.0\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| Build version: 906de22474a9fc0f091e6cd4d59d101755808c56\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| ***************************************\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** ***\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** ***\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** Have a problem? ***\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** Email support@github.com ***\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** and include this file ***\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** ***\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** ***\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| ***************************************\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| OS Version: Windows 7 Service Pack 1 6.1.7601.65536 amd64\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| CLR Version: 4.0.30319.42000\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| Current culture: ru-RU\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| Environment.CurrentDirectory: C:\\Program Files (x86)\\JetBrains\\IntelliJ IDEA Community Edition 2016.2.4\\jre\\jre\\bin\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| currentProcess.StartInfo.WorkingDirectory: \n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| Terminal Services session: no\n2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| Location: C:\\Users\\samsung\\AppData\\Local\\Apps\\2.0\\POV0O0AM.047\\MD9JACE1.8AV\\gith..tion_317444273a93ac29_0003.0003_83ed0490a76a8c54\\GitHub.exe\n2016-10-03 20:43:21.8415|INFO|thread: 5|StartupLogging| ActivationUri: https://github-windows.s3.amazonaws.com/GitHub.application\n2016-10-03 20:43:21.8415|INFO|thread: 5|StartupLogging| System.Environment.CommandLine: C:\\Users\\samsung\\AppData\\Local\\Apps\\2.0\\POV0O0AM.047\\MD9JACE1.8AV\\gith..tion_317444273a93ac29_0003.0003_83ed0490a76a8c54\\GitHub.exe, --version\n2016-10-03 20:43:21.8785|INFO|thread: 1|HardwareRenderingHelper|Your video card appears to support hardware rendering. If this isn't the case and you see glitches\n2016-10-03 20:43:21.8785|INFO|thread: 1|HardwareRenderingHelper|set the GH_FORCE_SW_RENDERING environment variable to 1\n2016-10-03 20:43:21.8885|INFO|thread: 1|App|Checking whether application is network deployed: False\n2016-10-03 20:43:21.8885|INFO|thread: 1|App|Shortcut C:\\Users\\samsung\\AppData\\Local\\GitHub\\GitHub.appref-ms exists? True\n2016-10-03 20:43:21.8885|INFO|thread: 1|App|Restarting from application shortcut to ensure network deployment with args 'base64:LS12ZXJzaW9u,L3Jlc3RhcnRlZA==,LS1jZD1DOlxQcm9ncmFtIEZpbGVzICh4ODYpXEpldEJyYWluc1xJbnRlbGxpSiBJREVBIENvbW11bml0eSBFZGl0aW9uIDIwMTYuMi40XGpyZVxqcmVcYmlu' encoded 'base64:LS12ZXJzaW9u,L3Jlc3RhcnRlZA==,LS1jZD1DOlxQcm9ncmFtIEZpbGVzICh4ODYpXEpldEJyYWluc1xJbnRlbGxpSiBJREVBIENvbW11bml0eSBFZGl0aW9uIDIwMTYuMi40XGpyZVxqcmVcYmlu.\n2016-10-03 20:43:21.8885|INFO|thread: 5|GitEnvironment|Process set up with this SSH Agent info: 5164:/tmp/ssh-xFBwRwaQxv9d/agent.1744\n2016-10-03 20:43:21.8885|INFO|thread: 5|GitEnvironment|PATH is C:\\Users\\samsung\\AppData\\Local\\GitHub\\PortableGit_284a859b0e6deba86edc624fef1e4db2aa8241a9\\cmd;C:\\Users\\samsung\\AppData\\Local\\GitHub\\PortableGit_284a859b0e6deba86edc624fef1e4db2aa8241a9\\usr\\bin;C:\\Users\\samsung\\AppData\\Local\\GitHub\\PortableGit_284a859b0e6deba86edc624fef1e4db2aa8241a9\\usr\\share\\git-tfs;C:\\Users\\samsung\\AppData\\Local\\Apps\\2.0\\POV0O0AM.047\\MD9JACE1.8AV\\gith..tion_317444273a93ac29_0003.0003_83ed0490a76a8c54;C:\\Users\\samsung\\AppData\\Local\\GitHub\\lfs-amd64_1.3.1;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Program Files\\Common Files\\Microsoft Shared\\Windows Live;C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows Live;C:\\Program Files (x86)\\AMD APP\\bin\\x86_64;C:\\Program Files (x86)\\AMD APP\\bin\\x86;C:\\windows\\system32;C:\\windows;C:\\windows\\System32\\Wbem;C:\\windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C:\\Program Files\\Broadcom\\Broadcom 802.11 Network Adapter\\Driver;C:\\Program Files (x86)\\Windows Live\\Shared;C:\\Program Files\\Calibre2\\;C:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI\\;C:\\Program Files\\MATLAB\\R2015b\\runtime\\win64;C:\\Program Files\\MATLAB\\R2015b\\bin;D:\\installingMATLAB\\runtime\\win64;D:\\installingMATLAB\\bin;D:\\installingMATLAB\\polyspace\\bin;C:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0\\;C:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn\\;C:\\Program Files (x86)\\Skype\\Phone\\;C:\\Program Files\\MATLAB\\R2015b\\polyspace\\bin;C:\\Program Files\\nodejs\\;C:\\Users\\samsung\\AppData\\Roaming\\npm;C:\\Program Files (x86)\\MSBuild\\12.0\\bin\\;C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1A\\bin\\NETFX 4.5.1 Tools\\x64\n2016-10-03 20:43:21.8885|INFO|thread: 5|StartupLogging| =====================================================\n2016-10-03 20:43:21.8885|INFO|thread: 5|StartupLogging| DIAGNOSTICS |\n2016-10-03 20:43:21.8885|INFO|thread: 5|StartupLogging| =====================================================\n2016-10-03 20:43:21.8885|INFO|thread: 5|StartupLogging| Git Extracted: 'True:\n2016-10-03 20:43:21.8885|INFO|thread: 5|StartupLogging| PortableGit Dir Exists: 'C:\\Users\\samsung\\AppData\\Local\\GitHub\\PortableGit_284a859b0e6deba86edc624fef1e4db2aa8241a9'\n2016-10-03 20:43:21.9005|INFO|thread: 5|StartupLogging| Git Executable Exists: 'C:\\Users\\samsung\\AppData\\Local\\GitHub\\PortableGit_284a859b0e6deba86edc624fef1e4db2aa8241a9\\cmd\\git.exe'\n2016-10-03 20:43:21.9005|ERROR|thread: 5|StartupLogging| MISSING PATH!!: 'C:\\Program Files (x86)\\AMD APP\\bin\\x86'\n2016-10-03 20:43:21.9005|INFO|thread: 5|StartupLogging| ----------------------------------------------------\n2016-10-03 20:43:21.9005|INFO|thread: 5|StartupLogging| PATH: C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Program Files\\Common Files\\Microsoft Shared\\Windows Live;C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows Live;C:\\Program Files (x86)\\AMD APP\\bin\\x86_64;C:\\Program Files (x86)\\AMD APP\\bin\\x86;C:\\windows\\system32;C:\\windows;C:\\windows\\System32\\Wbem;C:\\windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C:\\Program Files\\Broadcom\\Broadcom 802.11 Network Adapter\\Driver;C:\\Program Files (x86)\\Windows Live\\Shared;C:\\Program Files\\Calibre2\\;C:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI\\;C:\\Program Files\\MATLAB\\R2015b\\runtime\\win64;C:\\Program Files\\MATLAB\\R2015b\\bin;D:\\installingMATLAB\\runtime\\win64;D:\\installingMATLAB\\bin;D:\\installingMATLAB\\polyspace\\bin;C:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0\\;C:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn\\;C:\\Program Files (x86)\\Skype\\Phone\\;C:\\Program Files\\MATLAB\\R2015b\\polyspace\\bin;C:\\Program Files\\nodejs\\;C:\\Users\\samsung\\AppData\\Roaming\\npm\n2016-10-03 20:43:21.9345|INFO|thread: 1|SoftwareUpdateViewModel|ApplicationDeployment.IsNetworkDeployed = false. We are not going to try and update the Add/Remove Programs Icon.\n2016-10-03 20:43:21.9505|INFO|thread: 5|StartupLogger|Proxy information: (None)\n2016-10-03 20:43:21.9505|INFO|thread: 5|StartupLogger|Couldn't fetch creds for proxy\n2016-10-03 20:43:22.8606|INFO|thread: 5|PortablePackageManager|Already extracted PortableGit.7z, returning 100%\n2016-10-03 20:43:22.9686|INFO|thread: 5|MsysGitCertificateInstaller|Found certificate cache, loaded 156 certificates\n2016-10-03 20:43:22.9686|INFO|thread: 5|MsysGitCertificateInstaller|Created certificate bundle with 191 entries\n2016-10-03 20:43:23.0466|INFO|thread: 5|StartupSequence|Took 203ms to Update certificate bundle from system store\n2016-10-03 20:43:23.2086|WARN|thread: 1|StandardUserErrors|Showing user error The application failed in a manner unexpected to the authors of the application and the only safe recourse is to shut down now. The authors have been notified.\nSystem.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.Windows.Markup.XamlParseException: Предоставление значения для \"System.Windows.StaticResourceExtension\" вызвало исключение. ---> System.Exception: Не удается найти ресурс с именем \"GitHubAccentBrush\". Имена ресурсов определяются с учетом регистра.\n в System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference)\n в System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider)\n в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)\n --- Конец трассировки внутреннего стека исключений ---\n в System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)\n в System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)\n в System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)\n в System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)\n в GitHub.Views.ShellView.InitializeComponent()\n в GitHub.Views.ShellView..ctor()\n --- Конец трассировки внутреннего стека исключений ---\n в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)\n в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)\n в System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)\n в System.Activator.CreateInstance(Type type, Boolean nonPublic)\n в System.Activator.CreateInstance(Type type)\n в Caliburn.Micro.ViewLocator.<.cctor>b__2(Type viewType)\n в Caliburn.Micro.ViewLocator.<.cctor>b__d(Type modelType, DependencyObject displayLocation, Object context)\n в Caliburn.Micro.ViewLocator.<.cctor>b__e(Object model, DependencyObject displayLocation, Object context)\n в Caliburn.Micro.WindowManager.CreateWindow(Object rootModel, Boolean isDialog, Object context, IDictionary`2 settings)\n в Caliburn.Micro.WindowManager.ShowWindow(Object rootModel, Object context, IDictionary`2 settings)\n в Caliburn.Micro.BootstrapperBase.DisplayRootViewFor(Type viewModelType, IDictionary`2 settings)\n в GitHub.Helpers.AppBootstrapper.OnStartup(Object sender, StartupEventArgs e)\n в System.Windows.Application.OnStartup(StartupEventArgs e)\n в System.Windows.Application.<.ctor>b__1_0(Object unused)\n в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)\n в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)\n2016-10-03 20:43:23.2466|ERROR|thread: 1|CrashManager|Aieeeeeeee!\nSystem.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.Windows.Markup.XamlParseException: Предоставление значения для \"System.Windows.StaticResourceExtension\" вызвало исключение. ---> System.Exception: Не удается найти ресурс с именем \"GitHubAccentBrush\". Имена ресурсов определяются с учетом регистра.\n в System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference)\n в System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider)\n в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)\n --- Конец трассировки внутреннего стека исключений ---\n в System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)\n в System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)\n в System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)\n в System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)\n в GitHub.Views.ShellView.InitializeComponent()\n в GitHub.Views.ShellView..ctor()\n --- Конец трассировки внутреннего стека исключений ---\n в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)\n в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)\n в System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)\n в System.Activator.CreateInstance(Type type, Boolean nonPublic)\n в System.Activator.CreateInstance(Type type)\n в Caliburn.Micro.ViewLocator.<.cctor>b__2(Type viewType)\n в Caliburn.Micro.ViewLocator.<.cctor>b__d(Type modelType, DependencyObject displayLocation, Object context)\n в Caliburn.Micro.ViewLocator.<.cctor>b__e(Object model, DependencyObject displayLocation, Object context)\n в Caliburn.Micro.WindowManager.CreateWindow(Object rootModel, Boolean isDialog, Object context, IDictionary`2 settings)\n в Caliburn.Micro.WindowManager.ShowWindow(Object rootModel, Object context, IDictionary`2 settings)\n в Caliburn.Micro.BootstrapperBase.DisplayRootViewFor(Type viewModelType, IDictionary`2 settings)\n в GitHub.Helpers.AppBootstrapper.OnStartup(Object sender, StartupEventArgs e)\n в System.Windows.Application.OnStartup(StartupEventArgs e)\n в System.Windows.Application.<.ctor>b__1_0(Object unused)\n в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)\n в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)\n2016-10-03 20:43:23.2466|ERROR|thread: 1|CrashManager|Inner Exception\nSystem.Windows.Markup.XamlParseException: Предоставление значения для \"System.Windows.StaticResourceExtension\" вызвало исключение. ---> System.Exception: Не удается найти ресурс с именем \"GitHubAccentBrush\". Имена ресурсов определяются с учетом регистра.\n в System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference)\n в System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider)\n в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)\n --- Конец трассировки внутреннего стека исключений ---\n в System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)\n в System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)\n в System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)\n в System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)\n в GitHub.Views.ShellView.InitializeComponent()\n в GitHub.Views.ShellView..ctor()\n2016-10-03 20:43:23.2466|ERROR|thread: 1|CrashManager|Inner Exception\nSystem.Exception: Не удается найти ресурс с именем \"GitHubAccentBrush\". Имена ресурсов определяются с учетом регистра.\n в System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference)\n в System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider)\n в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)\"","plain_title":"Возникла трудность с настройкой IntelliJ IDEA 2016.2.4 для работы с GitHub'ом. Установил приложение GitHub Desktop и через диспетчер задач определил место расположения его файлов. В настройках по умолчанию IntelliJ IDEA в разделе Version Control/Git/Path to Git executable указал путь к файлу github.exe (изначально там был путь к файлу git.exe, которого в системе нет). При попытке дать команду VCS -> Import into Versipn Control -> Share Project on GitHub получаю следующее сообщение: \"Error Running Git: Empty git --version output:\" Что нужно сделать, чтобы заработала эта система? Так выглядит сообщение, которое выдаёт IntelliJ IDEA после нажатия кнопки \"Test\" в настройках Git: \"Errors while executing git --version. exitCode=0 errors: Fatal Exception System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.Windows.Markup.XamlParseException: Предоставление значения для \"System.Windows.StaticResourceExtension\" вызвало исключение. ---> System.Exception: Не удается найти ресурс с именем \"GitHubAccentBrush\". Имена ресурсов определяются с учетом регистра. в System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference) в System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider) в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider) --- Конец трассировки внутреннего стека исключений --- в System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri) в System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri) в System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream) в System.Windows.Application.LoadComponent(Object component, Uri resourceLocator) в GitHub.Views.ShellView.InitializeComponent() в GitHub.Views.ShellView..ctor() --- Конец трассировки внутреннего стека исключений --- в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) в System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) в System.Activator.CreateInstance(Type type, Boolean nonPublic) в System.Activator.CreateInstance(Type type) в Caliburn.Micro.ViewLocator.<.cctor>b2(Type viewType) в Caliburn.Micro.ViewLocator.<.cctor>bd(Type modelType, DependencyObject displayLocation, Object context) в Caliburn.Micro.ViewLocator.<.cctor>be(Object model, DependencyObject displayLocation, Object context) в Caliburn.Micro.WindowManager.CreateWindow(Object rootModel, Boolean isDialog, Object context, IDictionary2 settings) в Caliburn.Micro.WindowManager.ShowWindow(Object rootModel, Object context, IDictionary2 settings) в Caliburn.Micro.BootstrapperBase.DisplayRootViewFor(Type viewModelType, IDictionary`2 settings) в GitHub.Helpers.AppBootstrapper.OnStartup(Object sender, StartupEventArgs e) в System.Windows.Application.OnStartup(StartupEventArgs e) в System.Windows.Application.<.ctor>b1_0(Object unused) в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) 2016-10-03 20:43:23.2466|ERROR|thread: 1|CrashManager|Dumping Loaded Module List 2016-10-03 20:43:21.7645|INFO|thread: 1|CommandLineHandler|Parsing command line arguments:--version 2016-10-03 20:43:21.7945|INFO|thread: 1|CommandLineHandler|Unprocessed args: --version 2016-10-03 20:43:21.7945|INFO|thread: 1|CommandHandler|Repository Path to open: 'C:\\Program Files (x86)\\JetBrains\\IntelliJ IDEA Community Edition 2016.2.4\\jre\\jre\\bin--version', Is Repository: False 2016-10-03 20:43:21.8155|INFO|thread: 1|AppInstance|Starting up as master instance of GitHub Desktop 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| ######################################### 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| GitHub Desktop started. VERSION: 3.3.1.0 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| Build version: 906de22474a9fc0f091e6cd4d59d101755808c56 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *************************************** 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** *** 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** *** 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** Have a problem? *** 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** Email support@github.com *** 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** and include this file *** 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** *** 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *** *** 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| *************************************** 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| OS Version: Windows 7 Service Pack 1 6.1.7601.65536 amd64 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| CLR Version: 4.0.30319.42000 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| Current culture: ru-RU 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| Environment.CurrentDirectory: C:\\Program Files (x86)\\JetBrains\\IntelliJ IDEA Community Edition 2016.2.4\\jre\\jre\\bin 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| currentProcess.StartInfo.WorkingDirectory: 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| Terminal Services session: no 2016-10-03 20:43:21.8275|INFO|thread: 5|StartupLogging| Location: C:\\Users\\samsung\\AppData\\Local\\Apps\\2.0\\POV0O0AM.047\\MD9JACE1.8AV\\gith..tion317444273a93ac290003.000383ed0490a76a8c54\\GitHub.exe 2016-10-03 20:43:21.8415|INFO|thread: 5|StartupLogging| ActivationUri: https://github-windows.s3.amazonaws.com/GitHub.application 2016-10-03 20:43:21.8415|INFO|thread: 5|StartupLogging| System.Environment.CommandLine: C:\\Users\\samsung\\AppData\\Local\\Apps\\2.0\\POV0O0AM.047\\MD9JACE1.8AV\\gith..tion317444273a93ac290003.000383ed0490a76a8c54\\GitHub.exe, --version 2016-10-03 20:43:21.8785|INFO|thread: 1|HardwareRenderingHelper|Your video card appears to support hardware rendering. If this isn't the case and you see glitches 2016-10-03 20:43:21.8785|INFO|thread: 1|HardwareRenderingHelper|set the GHFORCESWRENDERING environment variable to 1 2016-10-03 20:43:21.8885|INFO|thread: 1|App|Checking whether application is network deployed: False 2016-10-03 20:43:21.8885|INFO|thread: 1|App|Shortcut C:\\Users\\samsung\\AppData\\Local\\GitHub\\GitHub.appref-ms exists? True 2016-10-03 20:43:21.8885|INFO|thread: 1|App|Restarting from application shortcut to ensure network deployment with args 'base64:LS12ZXJzaW9u,L3Jlc3RhcnRlZA==,LS1jZD1DOlxQcm9ncmFtIEZpbGVzICh4ODYpXEpldEJyYWluc1xJbnRlbGxpSiBJREVBIENvbW11bml0eSBFZGl0aW9uIDIwMTYuMi40XGpyZVxqcmVcYmlu' encoded 'base64:LS12ZXJzaW9u,L3Jlc3RhcnRlZA==,LS1jZD1DOlxQcm9ncmFtIEZpbGVzICh4ODYpXEpldEJyYWluc1xJbnRlbGxpSiBJREVBIENvbW11bml0eSBFZGl0aW9uIDIwMTYuMi40XGpyZVxqcmVcYmlu. 2016-10-03 20:43:21.8885|INFO|thread: 5|GitEnvironment|Process set up with this SSH Agent info: 5164:/tmp/ssh-xFBwRwaQxv9d/agent.1744 2016-10-03 20:43:21.8885|INFO|thread: 5|GitEnvironment|PATH is C:\\Users\\samsung\\AppData\\Local\\GitHub\\PortableGit284a859b0e6deba86edc624fef1e4db2aa8241a9\\cmd;C:\\Users\\samsung\\AppData\\Local\\GitHub\\PortableGit284a859b0e6deba86edc624fef1e4db2aa8241a9\\usr\\bin;C:\\Users\\samsung\\AppData\\Local\\GitHub\\PortableGit284a859b0e6deba86edc624fef1e4db2aa8241a9\\usr\\share\\git-tfs;C:\\Users\\samsung\\AppData\\Local\\Apps\\2.0\\POV0O0AM.047\\MD9JACE1.8AV\\gith..tion317444273a93ac290003.000383ed0490a76a8c54;C:\\Users\\samsung\\AppData\\Local\\GitHub\\lfs-amd641.3.1;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Program Files\\Common Files\\Microsoft Shared\\Windows Live;C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows Live;C:\\Program Files (x86)\\AMD APP\\bin\\x8664;C:\\Program Files (x86)\\AMD APP\\bin\\x86;C:\\windows\\system32;C:\\windows;C:\\windows\\System32\\Wbem;C:\\windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C:\\Program Files\\Broadcom\\Broadcom 802.11 Network Adapter\\Driver;C:\\Program Files (x86)\\Windows Live\\Shared;C:\\Program Files\\Calibre2\\;C:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI\\;C:\\Program Files\\MATLAB\\R2015b\\runtime\\win64;C:\\Program Files\\MATLAB\\R2015b\\bin;D:\\installingMATLAB\\runtime\\win64;D:\\installingMATLAB\\bin;D:\\installingMATLAB\\polyspace\\bin;C:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0\\;C:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn\\;C:\\Program Files (x86)\\Skype\\Phone\\;C:\\Program Files\\MATLAB\\R2015b\\polyspace\\bin;C:\\Program Files\\nodejs\\;C:\\Users\\samsung\\AppData\\Roaming\\npm;C:\\Program Files (x86)\\MSBuild\\12.0\\bin\\;C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1A\\bin\\NETFX 4.5.1 Tools\\x64 2016-10-03 20:43:21.8885|INFO|thread: 5|StartupLogging| ===================================================== 2016-10-03 20:43:21.8885|INFO|thread: 5|StartupLogging| DIAGNOSTICS | 2016-10-03 20:43:21.8885|INFO|thread: 5|StartupLogging| ===================================================== 2016-10-03 20:43:21.8885|INFO|thread: 5|StartupLogging| Git Extracted: 'True: 2016-10-03 20:43:21.8885|INFO|thread: 5|StartupLogging| PortableGit Dir Exists: 'C:\\Users\\samsung\\AppData\\Local\\GitHub\\PortableGit284a859b0e6deba86edc624fef1e4db2aa8241a9' 2016-10-03 20:43:21.9005|INFO|thread: 5|StartupLogging| Git Executable Exists: 'C:\\Users\\samsung\\AppData\\Local\\GitHub\\PortableGit284a859b0e6deba86edc624fef1e4db2aa8241a9\\cmd\\git.exe' 2016-10-03 20:43:21.9005|ERROR|thread: 5|StartupLogging| MISSING PATH!!: 'C:\\Program Files (x86)\\AMD APP\\bin\\x86' 2016-10-03 20:43:21.9005|INFO|thread: 5|StartupLogging| ---------------------------------------------------- 2016-10-03 20:43:21.9005|INFO|thread: 5|StartupLogging| PATH: C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Program Files\\Common Files\\Microsoft Shared\\Windows Live;C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows Live;C:\\Program Files (x86)\\AMD APP\\bin\\x8664;C:\\Program Files (x86)\\AMD APP\\bin\\x86;C:\\windows\\system32;C:\\windows;C:\\windows\\System32\\Wbem;C:\\windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C:\\Program Files\\Broadcom\\Broadcom 802.11 Network Adapter\\Driver;C:\\Program Files (x86)\\Windows Live\\Shared;C:\\Program Files\\Calibre2\\;C:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI\\;C:\\Program Files\\MATLAB\\R2015b\\runtime\\win64;C:\\Program Files\\MATLAB\\R2015b\\bin;D:\\installingMATLAB\\runtime\\win64;D:\\installingMATLAB\\bin;D:\\installingMATLAB\\polyspace\\bin;C:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0\\;C:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn\\;C:\\Program Files (x86)\\Skype\\Phone\\;C:\\Program Files\\MATLAB\\R2015b\\polyspace\\bin;C:\\Program Files\\nodejs\\;C:\\Users\\samsung\\AppData\\Roaming\\npm 2016-10-03 20:43:21.9345|INFO|thread: 1|SoftwareUpdateViewModel|ApplicationDeployment.IsNetworkDeployed = false. We are not going to try and update the Add/Remove Programs Icon. 2016-10-03 20:43:21.9505|INFO|thread: 5|StartupLogger|Proxy information: (None) 2016-10-03 20:43:21.9505|INFO|thread: 5|StartupLogger|Couldn't fetch creds for proxy 2016-10-03 20:43:22.8606|INFO|thread: 5|PortablePackageManager|Already extracted PortableGit.7z, returning 100% 2016-10-03 20:43:22.9686|INFO|thread: 5|MsysGitCertificateInstaller|Found certificate cache, loaded 156 certificates 2016-10-03 20:43:22.9686|INFO|thread: 5|MsysGitCertificateInstaller|Created certificate bundle with 191 entries 2016-10-03 20:43:23.0466|INFO|thread: 5|StartupSequence|Took 203ms to Update certificate bundle from system store 2016-10-03 20:43:23.2086|WARN|thread: 1|StandardUserErrors|Showing user error The application failed in a manner unexpected to the authors of the application and the only safe recourse is to shut down now. The authors have been notified. System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.Windows.Markup.XamlParseException: Предоставление значения для \"System.Windows.StaticResourceExtension\" вызвало исключение. ---> System.Exception: Не удается найти ресурс с именем \"GitHubAccentBrush\". Имена ресурсов определяются с учетом регистра. в System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference) в System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider) в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider) --- Конец трассировки внутреннего стека исключений --- в System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri) в System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri) в System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream) в System.Windows.Application.LoadComponent(Object component, Uri resourceLocator) в GitHub.Views.ShellView.InitializeComponent() в GitHub.Views.ShellView..ctor() --- Конец трассировки внутреннего стека исключений --- в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) в System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) в System.Activator.CreateInstance(Type type, Boolean nonPublic) в System.Activator.CreateInstance(Type type) в Caliburn.Micro.ViewLocator.<.cctor>b2(Type viewType) в Caliburn.Micro.ViewLocator.<.cctor>bd(Type modelType, DependencyObject displayLocation, Object context) в Caliburn.Micro.ViewLocator.<.cctor>be(Object model, DependencyObject displayLocation, Object context) в Caliburn.Micro.WindowManager.CreateWindow(Object rootModel, Boolean isDialog, Object context, IDictionary2 settings) в Caliburn.Micro.WindowManager.ShowWindow(Object rootModel, Object context, IDictionary2 settings) в Caliburn.Micro.BootstrapperBase.DisplayRootViewFor(Type viewModelType, IDictionary`2 settings) в GitHub.Helpers.AppBootstrapper.OnStartup(Object sender, StartupEventArgs e) в System.Windows.Application.OnStartup(StartupEventArgs e) в System.Windows.Application.<.ctor>b10(Object unused) в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) 2016-10-03 20:43:23.2466|ERROR|thread: 1|CrashManager|Aieeeeeeee! System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.Windows.Markup.XamlParseException: Предоставление значения для \"System.Windows.StaticResourceExtension\" вызвало исключение. ---> System.Exception: Не удается найти ресурс с именем \"GitHubAccentBrush\". Имена ресурсов определяются с учетом регистра. в System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference) в System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider) в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider) --- Конец трассировки внутреннего стека исключений --- в System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri) в System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri) в System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream) в System.Windows.Application.LoadComponent(Object component, Uri resourceLocator) в GitHub.Views.ShellView.InitializeComponent() в GitHub.Views.ShellView..ctor() --- Конец трассировки внутреннего стека исключений --- в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) в System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) в System.Activator.CreateInstance(Type type, Boolean nonPublic) в System.Activator.CreateInstance(Type type) в Caliburn.Micro.ViewLocator.<.cctor>b2(Type viewType) в Caliburn.Micro.ViewLocator.<.cctor>bd(Type modelType, DependencyObject displayLocation, Object context) в Caliburn.Micro.ViewLocator.<.cctor>be(Object model, DependencyObject displayLocation, Object context) в Caliburn.Micro.WindowManager.CreateWindow(Object rootModel, Boolean isDialog, Object context, IDictionary2 settings) в Caliburn.Micro.WindowManager.ShowWindow(Object rootModel, Object context, IDictionary2 settings) в Caliburn.Micro.BootstrapperBase.DisplayRootViewFor(Type viewModelType, IDictionary`2 settings) в GitHub.Helpers.AppBootstrapper.OnStartup(Object sender, StartupEventArgs e) в System.Windows.Application.OnStartup(StartupEventArgs e) в System.Windows.Application.<.ctor>b10(Object unused) в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) 2016-10-03 20:43:23.2466|ERROR|thread: 1|CrashManager|Inner Exception System.Windows.Markup.XamlParseException: Предоставление значения для \"System.Windows.StaticResourceExtension\" вызвало исключение. ---> System.Exception: Не удается найти ресурс с именем \"GitHubAccentBrush\". Имена ресурсов определяются с учетом регистра. в System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference) в System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider) в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider) --- Конец трассировки внутреннего стека исключений --- в System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri) в System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri) в System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream) в System.Windows.Application.LoadComponent(Object component, Uri resourceLocator) в GitHub.Views.ShellView.InitializeComponent() в GitHub.Views.ShellView..ctor() 2016-10-03 20:43:23.2466|ERROR|thread: 1|CrashManager|Inner Exception System.Exception: Не удается найти ресурс с именем \"GitHubAccentBrush\". Имена ресурсов определяются с учетом регистра. в System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference) в System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider) в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)\" ","creator":{"public_name":"Владимир Валерьевич Бобков","id":113961,"is_tutor":false},"comments":[{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":9702,"body":"Здравствуйте.\n\nОбратите внимание на разницу между Git & GitHub.\n[Тут объясняют детальней](https://www.youtube.com/watch?v=2eqGDdh_1jg&list=PLsQAG1V_t58BZtW5I9BCfqWBD6iAbPkEr&index=2).\n\nВы указали путь к исполняемому файлу GitHub, а IntelliJ IDEA хочет работать с Git.","topic_id":4877}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Модуль 10. Урок 1. Проект ХО.","entity_url":null,"active":true}},{"id":18809,"title":"Добрый день!\nСменил недавно пк и чуть приостановил обучение, решил продолжить и начались танцы с бубном...\n1. В уроке само собой идет применение Git, хотя уроки по нему идут как раз следующим модулем.\nhttps://ru.hexlet.io/courses/git_base\nХотя есть еще это - https://ru.hexlet.io/courses/intro_to_git\nЧто все таки лучше не совсем ясно и нет ли разницы в информации?\nВ итоге поставил Git, зарегистрировался...создал проект...скопировал ссылку, далее делал что в видео, но в итоге так и не ясно нужно ли делать настройку локально, помимо того что было сделано в идее как на видео?\n\n2. При создании проекта.\nЕсть такой пункт - Project language level.\nПо умолчанию у меня был выбран пункт 10 - Local variable type inference.\nЧто это?) Выбран ли правильный пункт???\nВообще было не плохо сделать отдельный гайд по созданию проекта и всем нюансам.\n\n3. Проблемы с запуском проекта.\nНастройка путей для файлов .class\nПроект изначально не хотел запускаться потому что была включена настройка - Inherit project compile out path. Пришлось выбрать опцию ниже - use module compiler output path и файлы .class полетели в корень на диск C.\nВ какой директории их правильнее хранить?\n\n4. Ошибка - Class not found: \"io.hexlet.xo.model.PlayerTest\"Empty test suite.\nКак тут уже писали ниже \"подставил путь C:\\Users\\user\\IdeaProjects\\XO-hex\\src\\test помогло\"...\nКуда и как прописать это?\n\nХочется программировать а тут сплошная настройка окружения отнимает гору времени.\n\n\n","plain_title":"Добрый день! Сменил недавно пк и чуть приостановил обучение, решил продолжить и начались танцы с бубном... 1. В уроке само собой идет применение Git, хотя уроки по нему идут как раз следующим модулем. https://ru.hexlet.io/courses/gitbase Хотя есть еще это - https://ru.hexlet.io/courses/introto_git Что все таки лучше не совсем ясно и нет ли разницы в информации? В итоге поставил Git, зарегистрировался...создал проект...скопировал ссылку, далее делал что в видео, но в итоге так и не ясно нужно ли делать настройку локально, помимо того что было сделано в идее как на видео? При создании проекта. Есть такой пункт - Project language level. По умолчанию у меня был выбран пункт 10 - Local variable type inference. Что это?) Выбран ли правильный пункт??? Вообще было не плохо сделать отдельный гайд по созданию проекта и всем нюансам. Проблемы с запуском проекта. Настройка путей для файлов .class Проект изначально не хотел запускаться потому что была включена настройка - Inherit project compile out path. Пришлось выбрать опцию ниже - use module compiler output path и файлы .class полетели в корень на диск C. В какой директории их правильнее хранить? Ошибка - Class not found: \"io.hexlet.xo.model.PlayerTest\"Empty test suite. Как тут уже писали ниже \"подставил путь C:\\Users\\user\\IdeaProjects\\XO-hex\\src\\test помогло\"... Куда и как прописать это? Хочется программировать а тут сплошная настройка окружения отнимает гору времени. ","creator":{"public_name":"Станислав Почековский","id":135079,"is_tutor":false},"comments":[{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":39703,"body":"1)\n> https://ru.hexlet.io/courses/git_base Хотя есть еще это - https://ru.hexlet.io/courses/intro_to_git Что все таки лучше не совсем ясно и нет ли разницы в информации?\n\nКурс \"Системы контроля версий (GIT)\" в общем знакомит с необходимостью контроля версий, в большей мере на основе Git.\n\nКурс \"Основы Git\" более детальней рассматривает систему контроля Git в сравнении с выше упомянутым курсом.\n\n> но в итоге так и не ясно нужно ли делать настройку локально, помимо того что было сделано в идее как на видео?\n\nНе могли бы Вы уточнить настройку чего надо или не надо делать? Я пересмотрел видео но это не добавило понимания вашего вопроса.\n\n2)\n> quote hereПри создании проекта. Есть такой пункт - Project language level.\n\nПри создании простого java-проекта или javaFX я не обнаружил такого пункта только что. Впрочем как и раньше.\nЭтот пункт присутствует в настройках проекта: `Alt+Ctrl+Shift+S` -> `Project`.\n\n`Project language level` - это версия java, которая будет по умолчанию применена к различным модулям проекта.\n\n> Выбран ли правильный пункт?\n\nА на какой версии java Вы планируете написать проект?\n\n> Вообще было не плохо сделать отдельный гайд по созданию проекта и всем нюансам.\n\nСпасибо за идею :) А пока что можно воспользоваться подсказками из [документации](https://www.jetbrains.com/help/idea/preparing-for-javafx-application-development.html#create_project_from_scratch) и [интернета](http://blog.harrix.org/article/3358) ;)\n\nОбращаю Ваше внимание на то что на данный момент \"правильным\" считается создавать проекты с использованием систем сборки (maven, gradle). Но в рамках этого курса такой аспект не рассматривается.\n\n3)\n> ...пришлось выбрать опцию ниже - use module compiler output path\n\nА в строке Output path и нужно было выбрать путь (path) к нужной папочке `output`.\n\n4)\n> Ошибка - Class not found: \"io.hexlet.xo.model.PlayerTest\"Empty test suite.\n\nЭто потому что указан не верный путь к папочке `out`, о котором я писал чуть выше.\n\n\n> Хочется программировать а тут сплошная настройка окружения отнимает гору времени.\n\n1) Программист должен знать свое окружение для разработки!\n2) Рекомендую освежить в памяти первые два модуля этого курса.\nДля обучения работе с IDEA стоит применить плагин IDEA Features Trainer - требует установки в самой IDEA в настройках. Settings -> Plugins -> Browse Repositories ищем там. После установки этого плагина - в IDEA появится жёлтенький значёк Learn Intellij IDEA.\n3) Попробуйте для начала поиграться с простым проектом `Hello World`. Проведите собственные эксперименты с папками сорцов и вывода файлов с байткодом, попробуйте разные версии java.\n","topic_id":18809},{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":39707,"body":"> Вопрос был в том что автоматически генерированный код выдал название testGetName а у меня после тех же действий генерировался метод getName, как то так.\n\nВозможно что-то в настройках было иначе указано.\n\n> Нужно ли их повторять для корректной работы или достаточно сделать настройки в IDEA?\n\nНастройку Git стоит проводить не зависимо от различных сред разработки. Т.к. Git часто проще использовать из терминала чем загружать целую IDEA, например. Git - это тоже обязательный инструмент разработчика (или другая система контроля версий).\n\n> На 10 версии.\n\nДля этого и JDK должно быть в системе соответствующей версии. Изучите внимательно свои настройки проекта! И пробуйте :)\n\nНо в этом проекте не используются какие либо нововведения из Java10.\nИ важно не повторять все с экрана, а использовать лишь как подсказку! И при возникновении вопросов - первым делом пересматривать материал соответствующей темы по возникающему вопросу.\n","topic_id":18809},{"creator":{"public_name":"Станислав Почековский","id":135079,"is_tutor":false},"id":39716,"body":"Спасибо за помощь! Ну по крайней мере запускается проект и тесты проходят) По поводу гита, надо таки смотреть курсы/читать.","topic_id":18809},{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":39704,"body":"> Заметил что в генерированном классе PlayerTest отличаются название методов testGetName и testGetFigure в видео, у меня просто getName и getFigure. Почему так?\n\nПотому что тестовые классы и тестовые методы должны называться с приставкой `test` в начале имени или в конце имени.","topic_id":18809},{"creator":{"public_name":"Станислав Почековский","id":135079,"is_tutor":false},"id":39699,"body":"Дополнение:\nЗаметил что в генерированном классе PlayerTest отличаются название методов testGetName и testGetFigure в видео, у меня просто getName и getFigure. Почему так? ","topic_id":18809},{"creator":{"public_name":"Станислав Почековский","id":135079,"is_tutor":false},"id":39752,"body":"Нашел такой комментарий в курсе - https://ru.hexlet.io/courses/git_base\n\nKirill Mokevnin\n22 июля 2017\nВы смотрите устаревший курс, который давным давно находится в песочнице.\n\nКурс по гит хекслета находится здесь: https://ru.hexlet.io/courses/intro_to_git\n\nЕсли это так то возможно стоит добавить более новый курс в Java профессию.","topic_id":18809},{"creator":{"public_name":"Станислав Почековский","id":135079,"is_tutor":false},"id":39706,"body":"\n\n> Заметил что в генерированном классе PlayerTest отличаются название методов testGetName и testGetFigure в видео, у меня просто getName и getFigure. Почему так?\n> \n> Потому что тестовые классы и тестовые методы должны называться с приставкой test в начале имени или в конце имени.\n\nЯ понимаю зачем там слово test) Вопрос был в том что автоматически генерированный код выдал название testGetName а у меня после тех же действий генерировался метод getName, как то так.\n\nКасательно Git.\nНа данной странице указан ряд действий...\nhttps://ru.hexlet.io/courses/intro_to_git/lessons/git-basics/theory_unit\n\nНужно ли их повторять для корректной работы или достаточно сделать настройки в IDEA?\n\n\n\n> Выбран ли правильный пункт?\n> \n> А на какой версии java Вы планируете написать проект?\n\nНа 10 версии.","topic_id":18809}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Модуль 10. Урок 1. Проект ХО.","entity_url":null,"active":true}},{"id":57525,"title":"Добрый вечер!\nКак получить бесплатный Astah?","plain_title":"Добрый вечер! Как получить бесплатный Astah? ","creator":{"public_name":"Михаил Цуранов","id":371976,"is_tutor":false},"comments":[{"creator":{"public_name":"Михаил Цуранов","id":371976,"is_tutor":false},"id":121980,"body":"> *\"...понять принцип проектирования на базовом уровне*\".\n\n\nИменно так это и понимаю. Просто легче воспринимать материал, работая с таким же инструментарием как и в обучающем курсе. Я вот поставил себе простенький и бесплатный StarUML, но там есть отличия в описании модулей. \n\nIDEA UML class diagrams только для Ultimate, а у меня Community Edition :-(","topic_id":57525},{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":122029,"body":"[Вот еще есть](https://plugins.jetbrains.com/plugin/15635-diagrams-net-integration) интересный плагин. Сам пока только тестирую его. Пока норм.","topic_id":57525},{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":121902,"body":"Раньше бесплатный Astah был доступен по студенческой подписке.\n\nРекомендую не привязываться к Astah, а использовать любые доступные редакторы диаграмм.\n\nНапример:\n- [GenMyModel](https://www.genmymodel.com/)\n- [IDEA UML class diagrams](https://www.jetbrains.com/help/idea/class-diagram.html)\n\nВаша задача сейчас понять принцип проектирования на базовом уровне. А Astah это сходу слишком громоздкий инструмент для учебных задач.","topic_id":57525}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Модуль 10. Урок 1. Проект ХО.","entity_url":null,"active":true}},{"id":7186,"title":"Добрый день, после создания теста выскакивает:\n```\nProcess finished with exit code 1\nClass not found: \"io.hexlet.xo.model.PlayerTest\"Empty test suite.\n```\n\nИ тест не проходит.","plain_title":"Добрый день, после создания теста выскакивает: Process finished with exit code 1 Class not found: \"io.hexlet.xo.model.PlayerTest\"Empty test suite. И тест не проходит. ","creator":{"public_name":"Игорь Цыбин","id":129210,"is_tutor":false},"comments":[{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":13309,"body":"Да, это фишка IDEA. Когда проект не написан с нуля, с указанием сорцов, вывода и папки теста. То есть проект изначально создан в другой среде разработки. \n\n","topic_id":7186},{"creator":{"public_name":"Игорь Цыбин","id":129210,"is_tutor":false},"id":13274,"body":"подставил путь C:\\Users\\user\\IdeaProjects\\XO-hex\\src\\test \nпомогло","topic_id":7186}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Модуль 10. Урок 1. Проект ХО.","entity_url":null,"active":true}},{"id":19966,"title":"Приветствую!\nAstaha больше не поддерживают community edition.\nЧто порекомендуете использовать вместо него?","plain_title":"Приветствую! Astaha больше не поддерживают community edition. Что порекомендуете использовать вместо него? ","creator":{"public_name":"Sergei Gabidov","id":190400,"is_tutor":false},"comments":[{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":42337,"body":"Спасибо за информацию.\n","topic_id":19966},{"creator":{"public_name":"Sergei Gabidov","id":190400,"is_tutor":false},"id":42323,"body":"Может, кому будет интересно.\nЕсть Visual Paradigm Community Edition, и StarUML, которую можно использовать в режиме trial неограниченное количество времени. \n","topic_id":19966},{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":42123,"body":"Здравствуйте.\n\nВот [на этой странице](https://studfiles.net/preview/6845248/page:10/) Вы найдете полезную информацию по созданию диаграмм с помощью IDEA.\n\nА еще рекомендую онлайн ресурс [genMyModel](https://www.genmymodel.com/).\n\nТам можно залогиниться с гитхаба.\nТам можно как создавать с нуля UML-диаграмму так и создавать ее с готовых сорцов java-кода.","topic_id":19966},{"creator":{"public_name":"Arcady","id":334138,"is_tutor":false},"id":113472,"body":"**Сергей Алексеенко**, \n> Вот на этой странице Вы найдете полезную информацию по созданию диаграмм с помощью IDEA.\n\nА есть ещё ссылка, с другим адресом? Опять не открывается.","topic_id":19966},{"creator":{"public_name":"Arcady","id":334138,"is_tutor":false},"id":113500,"body":"**Сергей Алексеенко**, смею предположить, что Вы открываете ссылку, находясь не в той же стране, что и я ))). Ибо у меня ничего не изменилось, кликаю - лезет блокироовка от некоей пресловутой гос структуры, борца за мои права и безопасность.))) Причем не в первый раз уже. За ссылку на Хабр спасибо! А насчет рисования UML в IDEA погуглим тогда...","topic_id":19966},{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":113495,"body":"**Arcady**, только что перепроверил — ссылка рабочая сайт открывается и информация доступна.\n\nВозможно вам поможет [статья на хабре](https://habr.com/ru/post/511798/).","topic_id":19966}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Модуль 10. Урок 1. Проект ХО.","entity_url":null,"active":true}},{"id":5876,"title":"Пожалуй, это был для меня самый интересный урок курса. Из-за построения архитектуры и тестирования. Правда, мне показалось, что маловато было уделено внимания именно проектированию архитектуры проекта, т.к. было бы чрезвычайно интересно поподробнее рассмотреть, как строить каркас приложения в ООП-стиле. Это, конечно, уже выходит за рамки языка, как более общее понятие, но было бы полезно уделить этому хотя бы урок. Причем необязательно привязываться к XO, можно на нескольких более простых примерах, чтобы немного придать уверенности в первоначальных шагах проектирования каких-то своих задач.\n\nТак же возникли вопросы по поводу просмотренного материала:\n\n1. Мне кажется, что в CurrentMoveController больше состояния, чем логики (особенно, если учесть что игроков двое и они всегда чередуются). Может проще было бы спихнуть состояние, например, в Game (если не делать отдельный класс), а логику спихнуть на MoveController. Ну это так, можно сказать вкусовщина.\n\n2. Все-таки AbstractXOException всея приложения хорошо бы вынести в корень проекта (в папке или без), а остальные можно либо с ним в папке, либо по папкам model, view, controllers.\n\n3. Когда начинают писать тесты (если речь не о TDD, конечно)? Интересует случай, когда мало-мальского ТЗ или понимания какие более-менее окончательные поля-методы-интерфейс будут у данного и других классов - стоит ли сразу писать тест к классу, или подождать устаканивания видения проекта. Вопрос даже не про то, как надо, а про то, как обычно получается. :) Не писать совсем - хороший вариант, но пока его не рассматриваем.","plain_title":"Пожалуй, это был для меня самый интересный урок курса. Из-за построения архитектуры и тестирования. Правда, мне показалось, что маловато было уделено внимания именно проектированию архитектуры проекта, т.к. было бы чрезвычайно интересно поподробнее рассмотреть, как строить каркас приложения в ООП-стиле. Это, конечно, уже выходит за рамки языка, как более общее понятие, но было бы полезно уделить этому хотя бы урок. Причем необязательно привязываться к XO, можно на нескольких более простых примерах, чтобы немного придать уверенности в первоначальных шагах проектирования каких-то своих задач. Так же возникли вопросы по поводу просмотренного материала: Мне кажется, что в CurrentMoveController больше состояния, чем логики (особенно, если учесть что игроков двое и они всегда чередуются). Может проще было бы спихнуть состояние, например, в Game (если не делать отдельный класс), а логику спихнуть на MoveController. Ну это так, можно сказать вкусовщина. Все-таки AbstractXOException всея приложения хорошо бы вынести в корень проекта (в папке или без), а остальные можно либо с ним в папке, либо по папкам model, view, controllers. Когда начинают писать тесты (если речь не о TDD, конечно)? Интересует случай, когда мало-мальского ТЗ или понимания какие более-менее окончательные поля-методы-интерфейс будут у данного и других классов - стоит ли сразу писать тест к классу, или подождать устаканивания видения проекта. Вопрос даже не про то, как надо, а про то, как обычно получается. :) Не писать совсем - хороший вариант, но пока его не рассматриваем. ","creator":{"public_name":"Andy","id":117329,"is_tutor":false},"comments":[{"creator":{"public_name":"Andy","id":117329,"is_tutor":false},"id":10665,"body":"_По поводу того что было мало времени уделено архитектуре это Вы правы, но дело в том что даже в таком видео у нас запись ХО растянулась на несколько уроков_\n\nНу, тут просто стали заложником ситуации - пообещали сделать всю игру и пришлось тащить этот чемодан. Я внимательно (в смысле, с более-менее пониманием происходящего) посмотрел эту и следующую часть. А вот оставшиеся две уже в пол-уха, а то и вообще фоном, т.к. реализация логики в конкретной игре-примере меня не заинтересовала. Вполне могут быть люди, которые с интересом просмотрели все части, поэтому предложить урезать осетра во имя благих целей я стесняюсь. Но хорошо было бы сделать отдельный урок по ООП, пусть и в рамках какого-нибудь нового курса.","topic_id":5876},{"creator":{"public_name":"Вячеслав Ковалевский","id":5,"is_tutor":false},"id":10655,"body":"```\nМне кажется, что в CurrentMoveController больше состояния, чем логики (особенно, если учесть что игроков двое и они всегда чередуются). Может проще было бы спихнуть состояние, например, в Game (если не делать отдельный класс), а логику спихнуть на MoveController. Ну это так, можно сказать вкусовщина.\n```\n\nЕсли current move сделать состоянием то его прийдется обновлять, это значит что у нас появиться еще одно мутируемое состояние, а этого лучше всего избегать сделав вместо состояния контроллер который способе выводить нужное нам значение из других состояний.\n\n```\nВсе-таки AbstractXOException всея приложения хорошо бы вынести в корень проекта (в папке или без), а остальные можно либо с ним в папке, либо по папкам model, view, controllers.\n```\n\nВ корень проекта, это без пакета? Без пакета классы держать не стоит, все должно быть вписано в иерархию проекта. Обычно исключения выносят в отельный подпакет, или на уровне с model или в самой model.\n\n```\nКогда начинают писать тесты (если речь не о TDD, конечно)? Интересует случай, когда мало-мальского ТЗ или понимания какие более-менее окончательные поля-методы-интерфейс будут у данного и других классов - стоит ли сразу писать тест к классу, или подождать устаканивания видения проекта. Вопрос даже не про то, как надо, а про то, как обычно получается. :) Не писать совсем - хороший вариант, но пока его не рассматриваем.\n```\n\nОбычно пишут тесты когда есть что-то что уже можно закомитить. Написал первый класс которым готов поделится с коллегами? Отлично, добавь в него тесты и делись =) \n\nПо поводу того что было мало времени уделено архитектуре это Вы правы, но дело в том что даже в таком видео у нас запись ХО растянулась на несколько уроков =)","topic_id":5876},{"creator":{"public_name":"Вячеслав Ковалевский","id":5,"is_tutor":false},"id":10674,"body":"Согласен, отдельная серия уроков по ООП действительно планируется в рамках курса по паттернам ;) ","topic_id":5876}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Модуль 10. Урок 1. Проект ХО.","entity_url":null,"active":true}},{"id":1707,"title":"И второй вопрос как сделать то что делают на 36:50 ? Как так созвать переменную?","plain_title":"И второй вопрос как сделать то что делают на 36:50 ? Как так созвать переменную? ","creator":{"public_name":"Сергей Москаленко","id":55892,"is_tutor":false},"comments":[{"creator":{"public_name":"Глеб Бочкарёв","id":50147,"is_tutor":false},"id":2989,"body":"Alt+Command+C на Маке.\n\nХоткеи на IDEA - [тык](https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard.pdf)","topic_id":1707}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Модуль 10. Урок 1. Проект ХО.","entity_url":null,"active":true}},{"id":37290,"title":"Здравствуйте.\nЧто-то тут уже год никто ничего не пишет даже как-то не по себе, так мало народу учится или этот модуль все пропускают?))\nСобственно вопрос: на 27 минуте ролика Модуля 10 урока 1 создают Enum Figure и Class Player. Так вот, почему-то IDE в моём случае не видит Figure figure и пишет **cannot access io.hexlet.xo.model.Figure figure**, хотя в ролике такой проблемы нет и я не могу понять по какой причине это происходит. Классы public, так же в одном пакете, но присвоить через конструктор переменной figure значение нельзя:\n```package io.hexlet.xo.model; \n\npublic class Player { \n private final String name; \n private final Figure figure; \n \n public Player(final String name, \n final Figure figure) { \n this.name = name; \n this.figure = figure; <--cannot access io.hexlet.xo.model.Figure figure \n } \n}\n\nПробовал на JDK 8 и 13 - одно и тоже.","plain_title":"Здравствуйте. Что-то тут уже год никто ничего не пишет даже как-то не по себе, так мало народу учится или этот модуль все пропускают?)) Собственно вопрос: на 27 минуте ролика Модуля 10 урока 1 создают Enum Figure и Class Player. Так вот, почему-то IDE в моём случае не видит Figure figure и пишет cannot access io.hexlet.xo.model.Figure figure, хотя в ролике такой проблемы нет и я не могу понять по какой причине это происходит. Классы public, так же в одном пакете, но присвоить через конструктор переменной figure значение нельзя: ```package io.hexlet.xo.model; public class Player { private final String name; private final Figure figure; public Player(final String name, final Figure figure) { this.name = name; this.figure = figure; <--cannot access io.hexlet.xo.model.Figure figure } } ``` Пробовал на JDK 8 и 13 - одно и тоже. ","creator":{"public_name":"Даниил Корелов","id":253139,"is_tutor":false},"comments":[{"creator":{"public_name":"Сергей Алексеенко","id":102837,"is_tutor":false},"id":81518,"body":"Здравствуйте. \n\n`InvalidPointException` должно быть обработано в любом случае, или в месте вызова или где-то выше по иерархии вызовов.\n\nЕсли исключение обрабатывается в текущем методе — то пробрасывать его выше, по иерархии вызовов, не нужно.\n\nКасательно `throws Exception` в уроке и в коде на гитхабе: версия *jUnit* того времени требовала обязательного использования этих ключевых слов. Даже там, где не было `try catch` или вызова методов с исключениями.\n","topic_id":37290},{"creator":{"public_name":"Даниил Корелов","id":253139,"is_tutor":false},"id":81455,"body":"А, отбой тревоги - не туда src сунул. Зачем-то в .idea запихал и не обратил внимания.","topic_id":37290},{"creator":{"public_name":"Даниил Корелов","id":253139,"is_tutor":false},"id":81463,"body":"Вопрос иного характера. \nВ первом уроке пишутся тесты класса Field. Собственно, в самих тестах у сигнатур методов указывается ключевое слово throws и исключения, которые они должны кидать. \nПример: \n```@Test\n public void getFigureWhenYIsLessThenZero() { \n final Field field = new Field(); \n final Point inputPoint = new Point(0, -1); \n try { \n field.getFigure(inputPoint); \n fail(); \n } catch (InvalidPointException e) {} \n }\n```\n\nНа данный момент IDE не ругается, если я не указываю в сигнатуре **throws Exception**,а в уроке для каждого такого теста он указан. Почему такое может происходить? Если же вынести строку **field.getFigure(inputPoint);** в тело метода, то IDE говорит, что **throws** обязательно должен быть указан(это говорит о том, что метод getFigure класса Field всё-таки вызвает исключение). \nТо есть, тут в принципе 2 варианта: либо кинет **fail()** у JUnit, либо кинет **InvalidPointException**. Однако, IDE считает, что метод никогда не вызовет исключение. \nP.S. Тесты проходят и без указания **throws**.\n\n","topic_id":37290}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Модуль 10. Урок 1. Проект ХО.","entity_url":null,"active":true}}],"lesson":{"exercise":null,"units":[{"id":648,"name":"theory","url":"/courses/java_101/lessons/xo1/theory_unit"}],"links":[],"ordered_units":[{"id":648,"name":"theory","url":"/courses/java_101/lessons/xo1/theory_unit"}],"id":382,"slug":"xo1","state":"approved","name":"Модуль 10. Урок 1. Проект ХО.","course_order":35,"goal":"Получить теоретические знания о разработке программ на Java и закрепить полученные навыки на практике.","self_study":null,"theory_video_provider":"vimeo","theory_video_uid":"146002498","theory":"Код который был создан в течение 4х занятий этого модуля расположен в ветке [XO-CLI](https://github.com/b0noI/XO-hexlet/tree/XO-CLI).\n\nДля перехода в бранч (ветку) `XO-CLI` — необходимо в папке клонированного репозитория ввести команду `git checkout XO-CLI`.\n\nПишите свою реализацию этого проекта. Это вам принесет пользу не только как практика но и как часть портфолио. По вашим репозиториям потенциальный работодатель будет видеть ваше развитие на пути кодинга.\n\nВ основной ветке ([master](https://github.com/b0noI/XO-hexlet/tree/master)) располагается код с изменениями, которые засабмитили слушатели курса."},"lessonMember":null,"courseMember":null,"course":{"start_lesson":{"exercise":null,"units":[{"id":4,"name":"theory","url":"/courses/java_101/lessons/intro_to_java/theory_unit"}],"links":[],"ordered_units":[{"id":4,"name":"theory","url":"/courses/java_101/lessons/intro_to_java/theory_unit"}],"id":3,"slug":"intro_to_java","state":"approved","name":"Модуль 1. Урок 1. Введение в Java.","course_order":1,"goal":"Рассмотреть темы уроков сета Java 101: изучение Java с нуля, переход на Java SE8 и практическая разработка своего ПО.","self_study":null,"theory_video_provider":"youtube","theory_video_uid":"T13TlpHyxPU","theory":"## Цели курса\n\n* научиться основам программирования на Java\n* получить достаточно знаний, чтобы пройти сертификации первого уровня + основы функционального программирования из Java 8\n* получить практические навыки использования языка - написать реальный проект в процессе обучения\n\n## Условия для старта\n\n* добросовестно подходить к изучению\n* минимальное знание английского\n* необязательный опыт программирования\n* огромное желание учиться\n* внимательность!\n\nВ случае ядерной войны доступны контакты преподавателя курса (_в приоритете подписчики_):\n\n* skype: b0noii\n* e-mail: viacheslav@b0noi.com\n* twitter: [@b0noi](https://twitter.com/b0noi)\n\n## Структура курса\n\n* 10 больших модулей программы от oracle\n* на каждый модуль по 4+ урока\n* после курса будет большой тест.\n* почти каждый урок будет состоять из:\n\t- видео и текстового материала,\n\t- теста на основе теории и дополнительных материалов,\n\n## Дополнительные материалы\n\n- С первых дней обучения, уделяйте внимание [java code-style](https://www.lar.ru/java-codestyle/).\n- С тех же первых дней, у вас будет много вопросов и ошибок. Не стесняйтесь задавать вопросы! Но задавайте вопросы как можно точнее, чтобы получить точный ответ. Вот хорошая статья о том [как задавать вопросы](https://ru.hexlet.io/blog/posts/question-rules). Этот подход пригодится вам не только в обучении но и в работе!\n"},"id":31,"slug":"java_101","challenges_count":0,"name":"Введение в Java","allow_indexing":true,"state":"approved","course_state":"finished","pricing_type":"free","description":"Практический курс по Java «с нуля» от инженера с опытом работы в крупнейших ИТ-компаниях мира.\n\nКурс посвящен изучению основ Java, популярного объектно-ориентированного языка программирования, разработанного компанией Oracle. Программы на Java транслируются в байт-код, который выполняет виртуальная машина Java (JVM). JVM — это программа, обрабатывающая байтовый код и передающая инструкции оборудованию как интерпретатор. Это позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина, независимо от операционной системы и оборудования.\n\nКурс рассчитан как на людей, не сталкивавшихся с программированием, так и на начинающих программистов.\nРекомендуемое продолжение — курс [Java Generics](https://ru.hexlet.io/courses/java_generics).","kind":"sandbox","updated_at":"2026-01-20T11:54:32.501Z","language":"java","duration_cache":45120,"skills":["Создавать несложные программы, используя основные конструкции языка (условия, циклы, методы и другие)","Разделять код на методы для повторного использования","Правильно анализировать ошибки в коде и пользоваться отладочной печатью при их поиске"],"keywords":["основы Java","JVM","логика","типы данных","алгоритмы"],"lessons_count":38,"cover":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6ODk5NCwicHVyIjoiYmxvYl9pZCJ9fQ==--50ee157ee29e5c50f50aa2191806e9d83fca25e6/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fZmlsbCI6WzYwMCw0MDBdfSwicHVyIjoidmFyaWF0aW9uIn19--6067466c2912ca31a17eddee04b8cf2a38c6ad17/image.png"},"recommendedLandings":[],"lessonMemberUnit":null,"accessToLearnUnitExists":true,"accessToCourseExists":true},"url":"/courses/java_101/lessons/xo1/theory_unit","version":"0b0c6d4ebbd40fd58630a0dd89cc25544ccdf24e","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><div style="position:absolute;top:0rem" class=""></div><div style="max-width:var(--container-size-xl);height:100%;min-height:0rem" class=""><style data-mantine-styles="inline">.__m__-_R_5ub_{--grid-gutter:0rem;}</style><div style="height:100%;min-height:0rem" class="m_410352e9 mantine-Grid-root __m__-_R_5ub_"><div class="m_dee7bd2f mantine-Grid-inner" style="height:100%"><style data-mantine-styles="inline">.__m__-_R_rdub_{--col-flex-grow:auto;--col-flex-basis:91.66666666666667%;--col-max-width:91.66666666666667%;}@media(min-width: 48em){.__m__-_R_rdub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}</style><div style="min-width:0rem;height:100%;min-height:0rem;display:flex" class="m_96bdd299 mantine-Grid-col __m__-_R_rdub_"><style data-mantine-styles="inline">.__m__-_R_6qrdub_{margin-top:0rem;padding-inline:var(--mantine-spacing-xs);width:100%;}@media(min-width: 48em){.__m__-_R_6qrdub_{margin-top:var(--mantine-spacing-xl);width:80%;}}@media(min-width: 62em){.__m__-_R_6qrdub_{padding-inline:var(--mantine-spacing-xl);}}</style><div style="margin-inline:auto;max-width:var(--mantine-breakpoint-xl)" class="__m__-_R_6qrdub_"><div style="color:var(--mantine-color-dimmed)" class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:calc(0.125rem * var(--mantine-scale));color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-lock "><path d="M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6"></path><path d="M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0"></path><path d="M8 11v-4a4 4 0 1 1 8 0v4"></path></svg></div><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Введение в Java</p></div><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size);margin-bottom:var(--mantine-spacing-xl)" class="m_8a5d1357 mantine-Title-root" data-order="1">Теория: Модуль 10. Урок 1. Проект ХО.</h1><script type="application/ld+json">{"@context":"https://schema.org","@type":"LearningResource","name":"Модуль 10. Урок 1. Проект ХО.","inLanguage":"ru","isPartOf":{"@type":"LearningResource","name":"Введение в Java"},"isAccessibleForFree":"False","hasPart":{"@type":"WebPageElement","isAccessibleForFree":"False","cssSelector":".paywalled"}}</script><div class=""><div style="--alert-color:var(--mantine-color-indigo-light-color);margin-bottom:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-lg)" class="m_66836ed3 mantine-Alert-root" id="mantine-_R_remqrdub_" role="alert" aria-describedby="mantine-_R_remqrdub_-body" aria-labelledby="mantine-_R_remqrdub_-title"><div class="m_a5d60502 mantine-Alert-wrapper"><div class="m_667f2a6a mantine-Alert-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-rocket "><path d="M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3 -5a9 9 0 0 0 6 -8a3 3 0 0 0 -3 -3a9 9 0 0 0 -8 6a6 6 0 0 0 -5 3"></path><path d="M7 14a6 6 0 0 0 -3 6a6 6 0 0 0 6 -3"></path><path d="M14 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></div><div class="m_667c2793 mantine-Alert-body"><div class="m_6a03f287 mantine-Alert-title"><span id="mantine-_R_remqrdub_-title" class="m_698f4f23 mantine-Alert-label">Полный доступ к материалам</span></div><div id="mantine-_R_remqrdub_-body" class="m_7fa78076 mantine-Alert-message"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Зарегистрируйтесь и получите доступ к этому и десяткам других курсов</p><a style="--button-height:var(--button-height-xs);--button-padding-x:var(--button-padding-x-xs);--button-fz:var(--mantine-font-size-xs);--button-bg:linear-gradient(45deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-filled) 100%);--button-hover:linear-gradient(45deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-filled) 100%);--button-color:var(--mantine-color-white);--button-bd:none" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="gradient" data-size="xs" href="/u/new"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Зарегистрироваться</span></span></a></div></div></div></div></div><div style="margin-bottom:var(--mantine-spacing-xl)" class=""><div class="ratio ratio-16x9"><iframe width="100%" height="auto" src="//player.vimeo.com/video/146002498" loading="lazy" allowFullScreen="" title="video"></iframe></div></div><div class="paywalled m_d08caa0 mantine-Typography-root"><p>Код который был создан в течение 4х занятий этого модуля расположен в ветке <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://github.com/b0noI/XO-hexlet/tree/XO-CLI" rel="noopener noreferrer" target="_blank">XO-CLI</a>.</p>
<p>Для перехода в бранч (ветку) <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">XO-CLI</code> — необходимо в папке клонированного репозитория ввести команду <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">git checkout XO-CLI</code>.</p>
<p>Пишите свою реализацию этого проекта. Это вам принесет пользу не только как практика но и как часть портфолио. По вашим репозиториям потенциальный работодатель будет видеть ваше развитие на пути кодинга.</p>
<p>В основной ветке (<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://github.com/b0noI/XO-hexlet/tree/master" rel="noopener noreferrer" target="_blank">master</a>) располагается код с изменениями, которые засабмитили слушатели курса.</p></div></div></div></div><style data-mantine-styles="inline">.__m__-_R_1bdub_{--col-flex-grow:auto;--col-flex-basis:8.333333333333334%;--col-max-width:8.333333333333334%;}@media(min-width: 48em){.__m__-_R_1bdub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}</style><div style="min-width:0rem;height:100%;min-height:0rem" class="m_96bdd299 mantine-Grid-col __m__-_R_1bdub_"><div style="margin-inline:var(--mantine-spacing-xs)" class="mantine-visible-from-sm"><a style="--button-color:var(--mantine-color-white);margin-bottom:var(--mantine-spacing-lg);text-decoration:none" class="mantine-focus-auto m_849cf0da mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses/java_101/lessons/xo1/finish_unit?unit=theory" data-disabled="true" data-block="true" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><span style="margin-inline-end:var(--mantine-spacing-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Дальше</span>→</span></span></a><a style="padding-inline:0rem" class="mantine-focus-auto m_f0824112 mantine-NavLink-root m_87cf2631 mantine-UnstyledButton-root"><span class="m_690090b5 mantine-NavLink-section" data-position="left"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-list-numbers "><path d="M11 6h9"></path><path d="M11 12h9"></path><path d="M12 18h8"></path><path d="M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4"></path><path d="M6 10v-6l-2 2"></path></svg></div></span><div class="m_f07af9d2 mantine-NavLink-body"><span class="m_1f6ac4c4 mantine-NavLink-label">Навигация по теме</span><span class="m_57492dcc mantine-NavLink-description">Теория</span></div><span class="m_690090b5 mantine-NavLink-section" data-position="right"></span></a><div style="margin-block:var(--mantine-spacing-lg)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div><div style="margin-block:var(--mantine-spacing-lg)" class=""><div style="justify-content:space-between;margin-bottom:calc(0.1875rem * var(--mantine-scale));color:var(--mantine-color-dimmed);font-size:var(--mantine-font-size-xs)" class="m_8bffd616 mantine-Flex-root __m__-_R_qimrbdub_"><p style="font-size:var(--mantine-font-size-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Завершено</p><p style="font-size:var(--mantine-font-size-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">0 / 38</p></div><div style="--progress-size:var(--progress-size-sm)" class="m_db6d6462 mantine-Progress-root" data-size="sm"><div style="--progress-section-size:0%;--progress-section-color:var(--mantine-color-gray-filled)" class="m_2242eb65 mantine-Progress-section" role="progressbar" aria-valuemax="100" aria-valuemin="0" aria-valuenow="0" aria-valuetext="0%"></div></div></div><button style="padding-inline:0rem" class="mantine-focus-auto m_f0824112 mantine-NavLink-root m_87cf2631 mantine-UnstyledButton-root" type="button"><span class="m_690090b5 mantine-NavLink-section" data-position="left"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message "><path d="M8 9h8"></path><path d="M8 13h6"></path><path d="M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12"></path></svg></div></span><div class="m_f07af9d2 mantine-NavLink-body"><span class="m_1f6ac4c4 mantine-NavLink-label">Обсуждения (архив)</span><span class="m_57492dcc mantine-NavLink-description"></span></div></button><div style="--toc-bg:var(--mantine-color-blue-light);--toc-color:var(--mantine-color-blue-light-color);--toc-size:var(--mantine-font-size-sm);--toc-radius:var(--mantine-radius-sm);margin-top:var(--mantine-spacing-xl)" class="m_bcaa9990 mantine-TableOfContents-root" data-variant="light" data-size="sm"></div></div><div class="mantine-hidden-from-sm"><div style="--stack-gap:0rem;--stack-align:stretch;--stack-justify:flex-start" class="m_6d731127 mantine-Stack-root"><a style="--button-color:var(--mantine-color-white);margin-bottom:var(--mantine-spacing-xs);padding:0rem;text-decoration:none" class="mantine-focus-auto m_849cf0da mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses/java_101/lessons/xo1/finish_unit?unit=theory" data-disabled="true" data-block="true" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">→</span></span></a><button style="--ai-size:var(--ai-size-sm);--ai-bg:transparent;--ai-hover:var(--mantine-color-indigo-light-hover);--ai-color:var(--mantine-color-indigo-light-color);--ai-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-block:var(--mantine-spacing-lg);color:inherit;width:100%" class="mantine-focus-auto m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-disabled="true" type="button" disabled=""><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-list-numbers "><path d="M11 6h9"></path><path d="M11 12h9"></path><path d="M12 18h8"></path><path d="M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4"></path><path d="M6 10v-6l-2 2"></path></svg></span></button><button style="--ai-size:var(--ai-size-sm);--ai-bg:transparent;--ai-hover:var(--mantine-color-indigo-light-hover);--ai-color:var(--mantine-color-indigo-light-color);--ai-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-block:var(--mantine-spacing-lg);color:inherit;width:100%" class="mantine-focus-auto mantine-active m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" type="button"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message "><path d="M8 9h8"></path><path d="M8 13h6"></path><path d="M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12"></path></svg></span></button></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-CdBlNCiQ.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-nkZBEvfU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>