0/5, Голосов: 0
Доступно

[OTUS] Разработчик Java. Часть 1 из 5

Тема в разделе "Курсы по программированию", создана пользователем Бошетунмай, 15 сен 2017.

Цена: 10500р.
Взнос: 164р.
100%

Основной список: 157 участников

Резервный список: 52 участников

Статус обсуждения:
Комментирование ограничено.
  1. Бошетунмай

    Бошетунмай ОргОрганизатор

    Складчина на 1 месяц.
    Screenshot_7.png
    Screenshot_10.png
    Screenshot_11.png

    Программа:
    Лекция 1: Введение. Обзор и задачи курса. Подготовка к курсу.
    Настройка окружения: система контроля версий git, система контроля зависимостей maven, среда разработки Intellij IDEA. Сборка и запуск java приложений.

    ДЗ 01
    Создать проект под управлением maven, настроить сборку проекта из командной строки командой mvn install. Выложить проект на github. Создать ветку "obfuscation" изменить в ней pom.xml так чтобы сборка содержала стадию обфускации байткода.
    Семинар 1: Байт код. Содержание .class. Декомпиляция. Обфускация. История изменений языка Java от версии к версии. Разбор ДЗ 01.



    Лекция 2: Углубленные основы. Загрузка классов. Виды и задачи class loader-ов. Класс Class. Примитивные типы, строки, массивы. Память, которую занимают объекты.

    ДЗ 02
    Написать стенд для определения размера объекта. Определить размер пустой строки и пустых контейнеров. Определить рост размера контейнера от количества элементов в нем.
    Семинар 2: Hot swap. Remote debug. Сборщик мусора. Instrumentation. Разбор примеров и ДЗ 02.



    Лекция 3: Generics. Контейнеры и алгоритмы. Обзор устройства и работы контейнеров из java.util. Сравнение контейнеров. Карты на основе хэш функции и на основе дерева. Разбор алгоритмов из java.util.Collections.

    ДЗ 03
    Написать свою реализацию ArrayList на основе массива. Проверить, что на ней работают методы java.util.Collections
    Семинар 3: Инструменты для преобразования контейнеров. Apache Commons. Google Guava. Разбор примеров и ДЗ 03.



    Лекция 4: Параметры запуска VM. Сборщик мусора. Виды сборок. Разделение памяти под разные поколения объектов. Виды сборщиков. JMX. Управление приложением из jconsole. OutOfMemory. dump памяти. Исседование thread dump и heap dump.

    ДЗ 04
    Написать приложение которое "подтекает" по памяти. Логгировать активность GC (количетство сборок в минуту, время паузы в минуту). Написать скрипт, который проведет измерение активности GC для разных параметров GC.

    Семинар 4: QA, тестирование. Виды тестов. "Заглушки". Testing frameworks: junit, mockito. Разбор примеров и ДЗ 04.
    Лекция 5: Аннотации. Стандартные аннотации. Применение аннотаций. Типы аннотаций. Синтаксис. Создание своих аннтатаций. Reflection.

    ДЗ 05
    Написать свой тестовый фреймворк. Поддержать аннотации @Test, @Before, @after. Запускать вызовом статического метода с массивом классов с тестами, именем package в котором надо найти и запустить тесты
    Семинар 5: Annotation preprocessor, Class loading / Instrumentation, ASM и Javassist. Разбор примеров и ДЗ 05.


    Лекция 6: Понятие дизайна приложения и паттерна проектирования. Концепты проектирования ООП: delegation, aggregation, coupling and cohesion, inheritance, interface, polymorphism. SOLID.

    ДЗ 06
    На основе рассмотренных паттернов написать приложение, в котором классы являются в одно и то же время классами нескольких паттернов.
    Семинар 6: Behavioral patterns часть 1. Разбор примеров и ДЗ 06.


    Лекция 7: Behavioral patterns часть 2. Structural patterns.

    ДЗ 07
    Подключить к работе предыдущего задания еще два паттерна
    Семинар 7: Creational patterns. Связь между паттернами, "похожие" паттерны. Антипаттерны. Разбор примеров и ДЗ 07.


    Лекция 8: Java IO. Сериализация. Запись и чтение бинарных файлов. Работа с simple-json, javax.json и com.google.code.gson.

    ДЗ 08
    Написать свой сериализатор объектов в JSON.
    Семинар 8: XML. Java NIO. Разбор примеров и ДЗ 08
    Лекция 9: Работа с реляционной базой. JDBC. ORM через паттерн Executor. JPA.

    ДЗ 09
    Написать свою ORM систему с автоматической сборкой объекта при помощи Reflection.
    Семинар 9: Inmemory базы. myBatis. Разбор примеров и ДЗ 09.


    Лекция 10: Hibernate. Конфигурирование Hibernate в коде и в XML. Java persistency query language. DBSevice pattern.

    ДЗ 10
    Переписать ДЗ 09 на Hibernate.
    Семинар 10: Connection Pools. Разбор примеров и ДЗ 10.


    Лекция 11: Типы ссылок в Java. Системы кэширования. Ehcache.

    ДЗ 11
    Написать свой cache engine для DBServer.
    Семинар 11: No SQL. Работа с MongoDB. Разбор примеров и ДЗ 11


    Лекция 12: Встроенный веб сервер. Сервлеты: servlet API, жизненный цикл сервлета. Jetty: устройство, работа, подключение сервлетов.

    ДЗ 12
    Встроить веб сервер на Jetty в приложение. Сделать админскую страницу, на которой админ должен авторизоваться и получить доступ к параметрам и состоянию кэша из ДЗ 11.
    Семинар 12: Asynchronous Web applications. AJAX. Long polling. Websockets. Разбор примеров из ДЗ 12
    Лекция 13: Dependency injection. Web archive. Jetty as an external web server. Spring IoC. Spring beans.

    ДЗ 13
    Собрать war для приложения из ДЗ12. Создавать кэш и DBService как Spring beans. Подключить бины в сервлеты. Запустить веб приложение во внешнем веб сервере.

    Семинар 13: Логгирование: java.util.logging, log4j, slf4j, Spring MVC. Разбор примеров и ДЗ 13.


    Лекция 14: Многопоточность. Класс и объект Thread. Создание многопоточного приложения. Проблемы многопоточного доступа. JMM.

    ДЗ 14
    Написать приложение, которое сортирует массив в 4 потоках с использованием библиотеки или без нее.

    Семинар 14: JMM, Happens before. wait(), notify(). Разбор примеров и ДЗ 14.


    Лекция 15: Потокобезопасные контейнеры.Система обмена сообщениями.

    ДЗ 15: Переписать ДЗ12 или ДЗ13 с использованием системы обмена сообщениями.

    Семинар 15: Поддержка многопоточности в стандартной библиотеке. Workers. Executors. Fork/Join. Разбор примеров и ДЗ 15.


    Лекция 16: Многопроцессные приложения. Сокеты. RMI. Разбор примера многопроцессного приложения.

    ДЗ 16
    Поддержать в системе обмена cообщениями из ДЗ15 сообщения между процессами
    Семинар 16: NIO для сокетов. Netty.
    • Веб сервер без веб фреймворков
    • Создание своих аннотаций @NotNull, @NotEmpty
    • ORM на JDBC
    • Система кэширования
    • Свой проект

    Ссылки на остальные части:
    [OTUS] Разработчик Java. Часть 1 из 4
    [OTUS] Разработчик Java. Часть 2 из 4
    [OTUS] Разработчик Java. Часть 3 из 4
    [OTUS] Разработчик Java. Часть 4 из 4

     
    Последнее редактирование модератором: 18 мар 2018
    2 пользователям это понравилось.
  2. Последние события

    1. skladchik.com

      Складчина доступна.

      17 дек 2017
    2. lelik2222

      lelik2222 участвует в складчине.

      15 дек 2017
    3. tdv2005

      tdv2005 участвует в складчине.

      15 дек 2017
    4. Mr Xorcistrs

      Mr Xorcistrs участвует в складчине.

      14 дек 2017

    Последние важные события

    1. skladchik.com

      Складчина доступна.

      17 дек 2017
    2. skladchik.com

      Взнос в складчине составляет 82р.

      30 окт 2017
    3. skladchik.com

      Складчина активна.

      30 окт 2017
    4. skladchik.com

      Сбор взносов начинается 29.10.2017.

      25 окт 2017
  3. Гуськом

    Гуськом ЧКЧлен клуба

  4. mindless

    mindless ЧКЧлен клуба

    Думаю, что следует в описании особо отметить, что это складчина на 1 месяц из пяти. И если планируется проводить остальные месяцы, то по ним также есть смысл создать складчины.
     
    2 пользователям это понравилось.
  5. Jasco

    Jasco ЧКЧлен клуба

  6. Бошетунмай

    Бошетунмай ОргОрганизатор

    Пока нет особо.
    Всё зависит от орга, возможно удобней будет взять весь курс сразу.
     
  7. Бошетунмай

    Бошетунмай ОргОрганизатор

    Старт через месяц, просьба как всегда - приглашайте знакомых, ставьте в подпись, адекватно (!) рекламируйте в смежных темых по Джаве.
     
    1 человеку нравится это.
  8. 1_1985

    1_1985 ДолжникДолжник

    Скажите а со стоимостью курса не ошиблись, курс стоит 45 000 а заявлена 10 500 ?
     
  9. Бошетунмай

    Бошетунмай ОргОрганизатор

    Если будет орг на все месяцы сразу - поменяем цену.
    Если будем собираться помесячно - создадим дополнительные складчины.
    Все в порядке, не волнуйтесь)
     
    1 человеку нравится это.
  10. madcap

    madcap ОргОрганизатор

    Хотите, поменять профессию?
    Подтянуть знания?
    Хотите, чтобы вы котировались на ранке труда?
    Если хоть раз ответили - да, то я жду вас здесь:
    https://skladchik.com/threads/Повтор-geekbrains-Профессия-Программист-java.141127/

    P.S. Java программисты никогда не сидят без работы. Сейчас они востребованы, как никогда ранее. Успейте получить актуальную профессию.
     
    1 человеку нравится это.
  11. brana

    brana ЧКЧлен клуба

    Давайте голосование сделаем: собираемся на на каждый месяц отдельно или на все сразу!
     
  12. Бошетунмай

    Бошетунмай ОргОрганизатор

    Это зависит только от того, как удобней будет организатору.
    Организатор не я, если что)
    Хотя я лично за то, чтобы брать по месяцам - переплата небольшая, но авторы всё же больше получат. Плюс оргать складчину на 10к может и ЧК. Ну и материал в конце каждого месяца, что тоже плюс.
     
    Последнее редактирование: 23 сен 2017
    3 пользователям это понравилось.
  13. befickeelp

    befickeelp ЧКЧлен клуба

  14. Prametei

    Prametei ОргОрганизатор

  15. mrSong

    mrSong ДолжникДолжник

    Потом ссылочку добавьте, пожалуйста, на сборы на второй месяц
     
  16. Mr-Grey

    Mr-Grey ОргОрганизатор (А)

  17. Trident

    Trident СкладчикСкладчик

    Коллеги, есть отличный курс с разряда "не для слабаков" для тех, кто хочет еще глубже погрузиться в мир Java и узнать много новых страшных слов из описания вакансий, давайте к нам на многомодульный Maven проэкт:
    https://skladchik.com/threads/javao...ven-проекта-состоящего-из-3-х-веб-app.173051/
    Новый опыт и технологии в ваше резюме гарантированы!
     
  18. Центр Силы

    Центр Силы БанЗабанен

    Гость, приглашаю в складчину на книги, которые просто необходимы каждому программисту:
    Алгоритмы: вводный курс + Алгоритмы: построение и анализ

    Алгоритмы: построение и анализ
    0_10666267.jpg
    Эта книга служит исчерпывающим вводным курсом по современным компьютерным алгоритмам. В ней представлено большое количество конкретных алгоритмов, которые описываются достаточно глубоко, однако таким образом, чтобы разработка и анализ были доступны читателям всех уровней подготовки.

    Алгоритмы: вводный курс
    0_10762017.jpg

    Эта книга для всех, кого интересуют вопросы, связанные с компьютерными алгоритмами, но базовое образование, да и просто отсутствие времени не позволяют взяться за серьезный труд объемом более 1300 страниц.
     
  19. morglen

    morglen ЧКЧлен клуба

  20. Matreshka16

    Matreshka16 ЧКЧлен клуба

    Как перестать "г*внокодить"? Принципиально важный и основополагающий вопрос для разработчика на всех этапах развития.
    Выход есть - это научиться видеть плохо "пахнущие" места в своем и чужом коде, и знать конкретные действия из разряда "best practices" как "вылечить" ваш код! А этому с успехом научат именно тут

    Погружение в рефакторинг

    Перестать "г*внокодить" - просто! А на складчике еще и дешево =))
     
  21. mrSong

    mrSong ДолжникДолжник

Статус обсуждения:
Комментирование ограничено.

Поделиться этой страницей