1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lin-mt-effective-java-third-edition

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Методы

В этой главе обсуждаются несколько аспектов разработки методов: как обрабатывать параметры и возвращаемые значения, как проектировать сигнатуры методов и как писать документацию для методов. Большая часть содержания этой главы применима к конструкторам и методам. Как и в четвёртой главе, здесь основное внимание уделяется доступности, надёжности и гибкости.

  • Пункт 49: Проверяйте достоверность параметров.
  • Пункт 50: При необходимости выполняйте защитное копирование.
  • Пункт 51: Тщательно разрабатывайте сигнатуры методов.
  • Пункт 52: Осторожно используйте перегрузку.
  • Пункт 53: Осторожно используйте переменные аргументы.
  • Пункт 54: Возвращайте нулевые массивы или коллекции вместо null.
  • Пункт 55: Осторожно возвращайте Optional.
  • Пункт 56: Пишите документацию для всех экспортируемых API-элементов.

Универсальное программирование

Эта глава в основном посвящена конкретным деталям языка Java, включая локальные переменные, управляющие структуры, библиотеки классов, типы данных и два механизма, которые не предоставляются самим языком (отражение и нативный метод). Наконец, обсуждаются оптимизация и соглашения об именах.

  • Пункт 57: Минимизируйте область действия локальных переменных.
  • Пункт 58: Предпочитайте цикл for-each традиционному циклу for.
  • Пункт 59: Познакомьтесь с библиотеками классов и используйте их.
  • Пункт 60: Если вам нужен точный ответ, избегайте использования float и double.
  • Пункт 61: Предпочитайте примитивные типы упакованным примитивным типам.
  • Пункт 62: Избегайте использования строк, если другие типы более подходят.
  • Пункт 63: Обратите внимание на производительность конкатенации строк.
  • Пункт 64: Используйте интерфейсы для ссылки на объекты.
  • Пункт 65: Предпочитайте интерфейсы отражению.
  • Пункт 66: Будьте осторожны при использовании нативных методов.
  • Пункт 67: Будьте осторожны с оптимизацией.
  • Пункт 68: Соблюдайте общепринятые соглашения об именовании.

Исключения

Обычно исключения могут повысить читаемость, надёжность и удобство сопровождения программы. Неправильное использование может привести к противоположному эффекту. В этой главе представлены рекомендации по эффективному использованию исключений.

  • Пункт 69: Используйте исключения только в исключительных случаях.
  • Пункт 70: Для восстанавливаемых ситуаций используйте проверенные исключения, а для ошибок программирования — исключения времени выполнения.
  • Пункт 71: Избегайте ненужного использования проверенных исключений.
  • Пункт 72: Предпочитайте использовать стандартные исключения.
  • Пункт 73: Выбрасывайте исключения, соответствующие абстракциям.
  • Пункт 74: Создайте документацию для всех исключений, генерируемых каждым методом.
  • Пункт 75: Включайте информацию о перехвате в подробные сообщения об ошибках.
  • Пункт 76... Пункт: стремиться к тому, чтобы сбой оставался атомарным

Пункт: стараться делать так, чтобы сбои оставались атомарными.

[Пункт 77: не игнорировать исключения](https://gitee.com/lin-mt/effective-java-third-edition/blob/master/Глава 10: Исключения/Пункт 77: Не игнорировать исключения.md)

Глава 11: Параллелизм

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

[Пункт 78: Синхронный доступ к общим изменяемым данным] [Пункт 79: Избегать чрезмерной синхронизации] [Пункт 80: Предпочитать executor, task и stream потокам] [Пункт 81: Предпочесть параллельные инструменты wait и notify] [Пункт 82: Документировать безопасность потоков] [Пункт 83: Осторожно использовать ленивую инициализацию] [Пункт 84: Не полагаться на планировщик потоков]

Глава 12: Сериализация

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

[Пункт 85: Предпочесть другие методы Java-сериализации] [Пункт 86: Осмотрительно реализовывать интерфейс Serializable] [Пункт 87: Рассмотреть использование пользовательской сериализации] [Пункт 88: Защищённо писать метод readObject] [Пункт 89: Для контроля экземпляров использовать перечисления вместо readResolve] [Пункт 90: Рассмотреть замену сериализуемых экземпляров сериализационными прокси]

Введение

Перевод книги Effective Java, третье издание. Это исключительно личный перевод в качестве хобби. Прошу исправить неточности. Спасибо! *Примечание: данный ответ является автоматическим переводом запроса и не гарантирует точность перевода.* Развернуть Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lin-mt-effective-java-third-edition.git
git@api.gitlife.ru:oschina-mirror/lin-mt-effective-java-third-edition.git
oschina-mirror
lin-mt-effective-java-third-edition
lin-mt-effective-java-third-edition
master