Открыто

Эффективность Java [IBS Training Center]

Тема в разделе "Курсы по программированию", создана пользователем Топикстартер, 5 апр 2025.

Цена: 35910р.-93%
Взнос: 2498р.

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

  1. 5 апр 2025
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

    Складчина: Эффективность Java [IBS Training Center]

    1.png

    Курс предназначен для разработчиков, желающих улучшить свои навыки в проектировании и оптимизации кода, используя рекомендуемые технологии и подходы, доказавшие свою эффективность на практике. В рамках курса вы познакомитесь с различными методиками и инструментами, которые помогут вам создавать более эффективный и масштабируемый код.
    Данный курс ориентирован на углубленное понимание языка программирования Java, которое позволит программистам писать более чистый и надежный код с меньшим количеством ошибок и с расширенными возможностями для повторного использования. В курсе подробно рассматриваются паттерны проектирования и языковые идиомы, а также демонстрируется, как максимально эффективно использовать различные возможности от обобщенных типов до перечислений, от аннотаций до автоупаковки.
    Каждый раздел этого курса состоит из нескольких пунктов, каждый из которых представлен в форме короткого отдельного обзора, в котором даются конкретные советы и приводятся примеры отличного кода. Полное описание и разъяснения по каждому пункту помогут слушателям понять, что нужно и чего не нужно делать, и почему.

    Цели:
    Улучшить навыки разработки на языке Java на основе обсуждения и анализ практических примеров.

    Целевая аудитория:
    Java-разработчики начального и среднего уровня.

    Предварительная подготовка:
    • JVA-007 Разработка на платформе Java SE. Базовые темы
    • JVA-008 Разработка на платформе Java SE. Расширенные темы
    Улучшаемые навыки:
    • Оптимизация производительности приложений
    • Управление памятью
    • Параллельное и многопоточное программирование
    • Использование оптимизированных коллекций
    • Тестирование и мониторинг производительности
    Программа

    01. Создание и уничтожение объектов [Теория 2 ч.; Практика 2 ч.]
    02. Методы, применяемые ко всем объектам [Теория 1ч.; Практика 1 ч.]
    03. Классы и интерфейсы [Теория 2 ч.; Практика 2 ч.]
    04. Обобщенные типы [Теория 1 ч.; Практика 2 ч.]
    05. Enums и аннотации [Теория 1 ч.; Практика 2 ч.]
    06. Методы [Теория 1 ч.; Практика 2 ч.]
    07. Общее программирование [Теория 2 ч.; Практика 2 ч.]
    08. Исключения [Теория 1 ч.; Практика 2 ч.]
    09. Параллелизм [Теория 1 ч.; Практика 1 ч.]
    10. Сериализация [Теория 1 ч.; Практика 1 ч.]

    Итого на курс 30 часов: теория – 13 ч (43%), практика – 17 ч (56%)

    01. Создание и уничтожение объектов [Теория 2 ч.; Практика 2 ч.]
    • Выбор статических фабричных методов вместо конструкторов
    • Шаблон Builder в случае большого количества параметров конструктора
    • Применение семантики шаблона Singleton с приватным конструктором или enum
    • Применение приватного конструктора
    • Как избежать создания ненужных объектов
    • Удаление устаревших ссылок на объекты
    • Отказ от использования финализаторов
    02. Методы, применяемые ко всем объектам [Теория 1ч.; Практика 1 ч.]
    • Выполнение общего контракта при переопределении метода equals
    • Обязательное переопределение hashCode при переопределении метода equals
    • Обязательное переопределение toString
    • Осмысленное переопределение клонов
    • Выбор реализации Comparable
    03. Классы и интерфейсы [Теория 2 ч.; Практика 2 ч.]
    • Минимизация доступности классов и компонентов
    • Использование методов доступа вместо public полей
    • Минимизация изменчивости
    • Предпочтение композиции наследованию
    • Проектирование с учётом дальнейшего наследования
    • Предпочтение интерфейсов абстрактным классам
    • Использование только интерфейсов для определения типов
    • Используйте иерархии классов вместо "тег-классов"
    • Использование объектов-функций для представления стратегий
    • Отдавайте предпочтение статическим внутренним классам над не статическими
    04. Обобщенные типы [Теория 1 ч.; Практика 2 ч.]
    • В новом коде всегда используйте generic типы
    • Исключение непроверенных предупреждений
    • Предпочтение списков массивам
    • Предпочтение generic типов
    • Предпочтение generic методов
    • Использование ограниченных обобщений для повышения гибкости API
    • Выбор однородных контейнеров typesafe
    05. Enums и аннотации [Теория 1 ч.; Практика 2 ч.]
    • Использование enums вместо констант int
    • Использование полей экземпляра вместо ordinals
    • Использование EnumSet вместо битовых полей
    • Использование EnumMap вместо порядкового индексирования
    • Эмуляция расширяемых enums с интерфейсами
    • Предпочтение аннотаций паттернам именования
    • Всегда используйте аннотацию Override
    • Использование интерфейсов-маркеров для определения типов
    06. Методы [Теория 1 ч.; Практика 2 ч.]
    • Проверка параметров на валидность
    • Использование защитного копирования при необходимости
    • Тщательное проектирование сигнатур методов
    • Осмысленное использование перегрузки
    • Осмысленное использование varargs
    • Возврат пустых массивов или коллекций, вместо null
    • Написание документации для всех public элементов API
    07. Общее программирование [Теория 2 ч.; Практика 2 ч.]
    • Минимизация области видимости локальных переменных
    • Предпочтение циклов for-each традиционным циклам for
    • Знание и использование библиотек
    • Отказ от использования float и double, если требуются точные ответы
    • Предпочтение примитивных типов "классам обвёрткам"
    • Избегайте строк, где более подходящими являются другие типы
    • Учитывайте производительность во время выполнения конкатенации строк
    • Ссылки на объекты по их интерфейсам
    • Предпочтение интерфейсов к reflection
    • Осмысленное использование нативных методов
    • Осмысленная оптимизация
    • Соблюдение общепринятых норм именования
    08. Исключения [Теория 1 ч.; Практика 2 ч.]
    • Использование исключений только для исключительных условий
    • Использование checked exceptions для проверки условий и unchecked exceptions для ошибок программирования
    • Отказ от ненужного использования checked exceptions
    • Предпочтительное использование стандартных исключений
    • Выброс исключений соответствующих абстракции
    • Документирование всех исключений, выданных каждым методом
    • Включение информации о failure-capture в подробные сообщения
    • Стремление к атомарности сбоев
    • Не допускайте игнорирования исключений
    09. Параллелизм [Теория 1 ч.; Практика 1 ч.]
    • Синхронизация доступа к общим изменяемым данным
    • Исключение чрезмерной синхронизации
    • Предпочтение использованию Executor-ов
    • Предпочтение утилит параллелизма методам wait и notify
    • Документирование безопасности потоков
    • Осмысленное использование отложенной инициализации
    • Независимость от планировщика потоков
    • Исключение групп потоков
    10. Сериализация [Теория 1 ч.; Практика 1 ч.]
    • Осмысленная реализация Serializable
    • Использование настраиваемой сериализированной формы
    • Безопасное написание методов readObject
    • Для контроля экземпляров лучше выбрать типы enum вместо readResolve
    • Выбор прокси сериализации вместо сериализированных экземпляров

    Чему вы научитесь:
    • Научитесь применять различные методы и техники для оптимизации производительности Java-приложений
    • Освоите принципы работы с памятью в Java, включая управление сборкой мусора и использование различных типов памяти
    • Научитесь создавать многопоточные приложения и использовать параллелизм для повышения производительности
    • Освоите выбор и использование оптимизированных коллекций и структур данных в Java
    • Научитесь использовать инструменты для тестирования и мониторинга производительности Java-приложений
    Цена 35910 руб
    Скрытая ссылка
     
    Последнее редактирование модератором: 8 апр 2025
    1 человеку нравится это.
  2. Последние события

    1. rainwoman
      rainwoman участвует.
      15 июн 2025 в 01:24
    2. pavel12
      pavel12 участвует.
      24 май 2025
    3. sporspb
      sporspb не участвует.
      16 май 2025
    4. MahanM
      MahanM участвует.
      12 май 2025