Що нового?

Придбаний Эффективность Java [IBS Training Center]

Інформація про покупку
Тип покупки: Складчина
Ціна: 23940 ГРН
Учасників: 0 з 24
Організатор: Відсутній
Статус: Набір учасників
Внесок: 1037.4 ГРН
0%
Основний список
Резервний список

Gadzhi

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



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

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

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

Предварительная подготовка:
Улучшаемые навыки:
  • Оптимизация производительности приложений
  • Управление памятью
  • Параллельное и многопоточное программирование
  • Использование оптимизированных коллекций
  • Тестирование и мониторинг производительности
Программа

  1. Создание и уничтожение объектов [Теория 2 ч.; Практика 2 ч.]
  2. Методы, применяемые ко всем объектам [Теория 1ч.; Практика 1 ч.]
  3. Классы и интерфейсы [Теория 2 ч.; Практика 2 ч.]
  4. Обобщенные типы [Теория 1 ч.; Практика 2 ч.]
  5. Enums и аннотации [Теория 1 ч.; Практика 2 ч.]
  6. Методы [Теория 1 ч.; Практика 2 ч.]
  7. Общее программирование [Теория 2 ч.; Практика 2 ч.]
  8. Исключения [Теория 1 ч.; Практика 2 ч.]
  9. Параллелизм [Теория 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 руб
https://ibs-training.ru/kurs/effektivnost_java.html
 
Угорі