🎓 Выбирайте обучение по отзывам. Мы запустили рейтинг лучших онлайн-школ, чтобы находить качественные курсы стало еще проще. Cмотреть рейтинг
Учебный центр IBS

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

Начало: По мере набора группы
Длительность: 1 неделя
СертификатОнлайн

Описание курса

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

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

Отзывы о курсе

Отзывов пока нет
Будьте первым, напишите отзыв и поставьте оценку этому курсу.