Мы используем файлы cookie для обеспечения работоспособности сервиса, улучшения навигации и маркетинговых активностей Yolonce. Нажимая "Согласен", вы соглашаетесь с нашей Политикой конфиденциальности

Эффективность Java

  Сложность

Повышение квалификации

  Длительность

30 ак.ч.

  Формат

онлайн

  Документ по выпуску

удостоверение о повышении квалификации государственного образца

Стоимость курса
38 000

Подробнее о курсе

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

Документ после выпуска

удостоверение о повышении квалификации государственного образца

Автор курса

Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Действует скидка 10% на обучение физических лиц.

Программа курса

  1. Создание и уничтожение объектов [Теория 2 ч.; Практика 2 ч.]

Выбор статических фабричных методов вместо конструкторов Шаблон Builder в случае большого количества параметров конструктора Применение семантики шаблона Singleton с приватным конструктором или enum Применение приватного конструктора Как избежать создания ненужных объектов Удаление устаревших ссылок на объекты Отказ от использования финализаторов

  2. Методы, применяемые ко всем объектам [Теория 1ч.; Практика 1 ч.]

Выполнение общего контракта при переопределении метода equals Обязательное переопределение hashCode при переопределении метода equals Обязательное переопределение toString Осмысленное переопределение клонов Выбор реализации Comparable

  3. Классы и интерфейсы [Теория 2 ч.; Практика 2 ч.]

Минимизация доступности классов и компонентов Использование методов доступа вместо public полей Минимизация изменчивости Предпочтение композиции наследованию Проектирование с учётом дальнейшего наследования Предпочтение интерфейсов абстрактным классам Использование только интерфейсов для определения типов Используйте иерархии классов вместо "тег-классов" Использование объектов-функций для представления стратегий Отдавайте предпочтение статическим внутренним классам над не статическими

  4. Обобщенные типы [Теория 1 ч.; Практика 2 ч.]

В новом коде всегда используйте generic типы Исключение непроверенных предупреждений Предпочтение списков массивам Предпочтение generic типов Предпочтение generic методов Использование ограниченных обобщений для повышения гибкости API Выбор однородных контейнеров typesafe

  5. Enums и аннотации [Теория 1 ч.; Практика 2 ч.]

Использование enums вместо констант int Использование полей экземпляра вместо ordinals Использование EnumSet вместо битовых полей Использование EnumMap вместо порядкового индексирования Эмуляция расширяемых enums с интерфейсами Предпочтение аннотаций паттернам именования Всегда используйте аннотацию Override Использование интерфейсов-маркеров для определения типов

  6. Методы [Теория 1 ч.; Практика 2 ч.]

Проверка параметров на валидность Использование защитного копирования при необходимости Тщательное проектирование сигнатур методов Осмысленное использование перегрузки Осмысленное использование varargs Возврат пустых массивов или коллекций, вместо null Написание документации для всех public элементов API

  7. Общее программирование [Теория 2 ч.; Практика 2 ч.]

Минимизация области видимости локальных переменных Предпочтение циклов for-each традиционным циклам for Знание и использование библиотек Отказ от использования float и double, если требуются точные ответы Предпочтение примитивных типов "классам обвёрткам" Избегайте строк, где более подходящими являются другие типы Учитывайте производительность во время выполнения конкатенации строк Ссылки на объекты по их интерфейсам Предпочтение интерфейсов к reflection Осмысленное использование нативных методов Осмысленная оптимизация Соблюдение общепринятых норм именования

  8. Исключения [Теория 1 ч.; Практика 2 ч.]

Использование исключений только для исключительных условий Использование checked exceptions для проверки условий и unchecked exceptions для ошибок программирования Отказ от ненужного использования checked exceptions Предпочтительное использование стандартных исключений Выброс исключений соответствующих абстракции Документирование всех исключений, выданных каждым методом Включение информации о failure-capture в подробные сообщения Стремление к атомарности сбоев Не допускайте игнорирования исключений

  9. Параллелизм [Теория 1 ч.; Практика 1 ч.]

Синхронизация доступа к общим изменяемым данным Исключение чрезмерной синхронизации Предпочтение использованию Executor-ов Предпочтение утилит параллелизма методам wait и notify Документирование безопасности потоков Осмысленное использование отложенной инициализации Независимость от планировщика потоков Исключение групп потоков

  10. Сериализация [Теория 1 ч.; Практика 1 ч.]

Осмысленная реализация Serializable Использование настраиваемой сериализированной формы Безопасное написание методов readObject Для контроля экземпляров лучше выбрать типы enum вместо readResolve Выбор прокси сериализации вместо сериализированных экземпляров

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

Предварительные требования

JVA-007 Разработка на платформе Java SE. Базовые темы

JVA-008 Разработка на платформе Java SE. Расширенные темы

Оставьте отзыв

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

обновлено: 19.09.2024

Оставьте заявку

Наши консультанты ответят на все вопросы
И помогут в выборе

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных