В программе лояльности

Стильный Java. Код, который работает всегда и везде

Фаэлла Марко

Код товара: 4403421
(0 оценок)Оценить
ОтзывНаписать отзыв
ВопросЗадать вопрос
1 / 9
Нет в наличии
Доставим в
г. Москва
Курьером
бесплатно от 10 000 ₽
В пункт выдачи
от 155 ₽
бесплатно от 10 000 ₽
Точная стоимость доставки рассчитывается при оформлении заказа
Издательство:
Оригинальное название:
Seriously Good Software. Code that Works, Survives, and Wins
Год издания:
2021
Переводчик:

Описание

Характеристики

В современном мире разработки успешность приложения уже не определяется параметром «просто работает». Хороший программист должен знать возможности языка, практические приемы проектирования и платформенные средства для достижения максимальной производительности и жизнеспособности программ. Эта книга написана для разработчиков, которые хотят создавать качественный софт. Затронуты все ключевые показатели ПО: скорость, затраты памяти, надежность, удобочитаемость, потоковая безопасность, универсальность и элегантность. Реальные задачи и прикладные примеры кода на Java помогут надежно усвоить концепции.
Пройдя все этапы создания центрального проекта книги, вы сможете уверенно выбрать правильный путь оптимизации собственного приложения.
код в Майшоп
4403421
возрастная категория
16+
количество томов
1
количество страниц
352 стр.
размеры
232x180x20 мм
формат
70x100/16 (170x240) мм
ISBN
978-5-4461-1739-0
тип бумаги
офсетная (60-220 г/м2)
цвет
Чёрный
стандарт
5 шт.
вес
436 г
язык
русский
переплёт
Мягкая обложка

Содержание

Предисловие
Введение
Благодарности
О книге
Об авторе
Об обложке
От издательства
Часть I. Отправная точка
Глава 1. Свойства кода и постановка задачи
1.1. Свойства кода
1.1.1. Внутренние и внешние свойства
1.1.2. Функциональные и нефункциональные
свойства
1.2. Преимущественно внешние свойства
1.2.1. Правильность
1.2.2. Стабильность
1.2.3. Удобство использования
1.2.4. Эффективность
1.3. Преимущественно внутренние свойства кода
1.3.1. Удобочитаемость
1.3.2. Возможность повторного использования
1.3.3. Удобство тестирования
1.3.4. Удобство сопровождения
1.4. Взаимодействие свойств кода
1.5. Специфичные свойства
1.5.1. Потокобезопасность
1.5.2. Лаконичность
1.6. Сквозной пример: система резервуаров для
воды
1.6.1. API
1.6.2. Сценарий использования
1.7. Модель данных и представления
1.7.1. Хранение объема воды
1.7.2. Хранение информации о соединениях
1.8. Hello, резервуары! [Novice]
1.8.1. Поля и конструктор
1.8.2. Методы get Amount и add Water
1.8.3. Метод connectTo
Итоги
Дополнительная литература
Глава 2. Эталонная реализация
2.1. Код [ Reference]
2.1.1. Диаграммы распределения памяти
2.1.2. Методы
2.2. Требования к памяти
2.2.1. Требования к памяти в Reference
2.3. Временная сложность
2.3.1. Временная сложность в Reference
2.4. Применим изученное
Итоги
Ответы на вопросы и упражнения
Допол 11 ител ьная л итерату ра
Часть II. Свойства программного кода
Глава 3. Жажда скорости: эффективность но
времени
3.1. Добавление воды с постоянным временем
[Speed 1 ]
3.1.1. Временная сложность
3.2. Добавление соединений за постоянное время
[Speed2]
3.2.1. Представление групп в виде циклических
списков
3.2.2. Отложенные обновления
3.3. Лучший баланс: алгоритмы поиска
объединений [Speed3]
3.3.1. Поиск представителя группы
3.3.2. Соединение деревьев
3.3.3. Временная сложность в наихудшем случае
3.3.4. Амортизированная временная сложность
3.3.5. Амортизированный анализ массивов с
изменяемым
размером
3.4. Сравнение реализаций
3.4.1. Эксперименты
3.4.2. Теория и практика
3.5. А теперь совсем другое
3.5.1. Быстрая вставка
3.5.2. Быстрые запросы
3.5.3. Все операции
3.6. Реальные сценарии использования
3.7. Применим изученное
Итоги
Ответы на вопросы и упражнения
Д oi юл н ительная л итерату ра
Глава 4. Эффективность по затратам памяти
4.1. Первые шаги [ Memory 1)
4.1.1. Временная сложность и затраты памяти
4.2. Простые массивы
4.2.1. Временная сложность и затраты памяти
4.3. Отказ от объектов [МетогуЗ]
4.3.1. API без объектов
4.3.2. Поля и метод get A mount
4.3.3. Создание резервуаров фабричным методом
4.3.4. Соединение резервуаров по
идентификаторам
4.3.5. Временная сложность и затраты памяти
4.4. Черная дыра [Метогу4]
4.4.1. Временная сложность и затраты памяти
4.5. Баланс затрат памяти и времени
4.6. А теперь совсем другое
4.6.1. Малое количество дубликатов
4.6.2. Большое количество дубликатов
4.7. Реальные сценарии использования
4.8. Применим изученное
Итоги
Ответы на вопросы и упражнения
Допол нител ьная л итература
Глава 5. Надежность за счет мониторинга
5.1. Контрактное проектирование
5.1.1. Предусловия и постусловия
5.1.2. Инварианты
5.1.3. Правильность и стабильность
5.1.4. Проверка контрактов
5.1.5. Более широкая картина
5.2. Контрактное проектирование резервуаров
5.3. Резервуары, проверяющие свои контракты
[Contracts]
5.3.1. Проверка контракта add Water
5.3.2. Проверка контракта connectTo
5.4. Резервуары, проверяющие свои инварианты
[Invariants]
5.4.1. Проверка инвариантов в connectTo
5.4.2. Проверка инвариантов в add Water
5.5. А теперь совсем другое
5.5.1. Контракты
5.5.2. Эталонная реализация
5.5.3. Проверка контрактов
5.5.4. Проверка инвариантов
5.6. Реальные сценарии использования
5.7. Применим изученное
Итоги
Ответы на вопросы и упражнения
Допол н ител ьная л итература
Глава 6. Надежность за счет тестирования
6.1. Основные понятия тестирования
6.1.1. Покрытие в тестировании
6.1.2. Тестирование и контрактное
проектирование
6.1.3. JUnit
6.2. Тестирование резервуаров [UnitTests]
6.2.1. Инициализация тестов
6.2.2. Тестирование addWater
6.2.3. Тестирование connectTo
6.2.4. Выполнение тестов
6.2.5. Оценка покрытия кода
6.3. Тестируемость (Testable)
6.3.1. Управляемость
6.3.2. Наблюдаемость
6.3.3. Isolation: разделение зависимостей
6.4. А теперь совсем другое
6.4.1. Повышение удобства тестирования
6.4.2. Набор тестов
6.5. Реальные сценарии использования
6.6. Применим изученное
Итоги
Ответы на вопросы и упражнения
Дополн ител ьная л итература
Глава 7. Удобочитаемость
7.1. Разный взгляд на удобочитаемость
7.1.1. Корпоративные руководства по стилю
программирования ....
7.1.2. Составляющие удобочитаемости
7.2. Структурные факторы удобочитаемости
7.2.1. Управляющие команды
7.2.2. Выражения и локальные переменные
7.3. Внешние факторы удобочитаемости
7.3.1. Комментарии
7.3.2. Выбор имен
7.3.3. Пропуски и отступы
7.4. Код [ Readable]
7.4.1. Документирование заголовка класса
комментариями Javadoc
7.4.2. Чистка метода connectTo
7.4.3. Чистка addWater
7.5. Напоследок об удобочитаемости
7.6. Л теперь совсем другое
7.7. Реальные сценарии использования
7.8. Применим изученное
Итоги
Ответы на вопросы и упражнения
Дополнительная литература
Глава 8. Потокобезопасность
8.1. Проблемы потокобезопасности
8.1.1. Уровни конкурентности
8.1.2. Политика конкурентности для резервуаров
8.2. Взаимоблокировки
8.2.1. Атомарные последовательности блокировок
8.2.2. Упорядоченные последовательности
блокировок
8.2.3. Скрытое состояние гонки
8.3. Иотокобезопасные резервуары [ThreadSafe]
8.3.1. Синхронизация connectTo
8.3.2. Синхронизация addWater и get Amount
8.4. Неизменяемость
8.4.1. API
8.4.2. Реализация
8.5. А теперь совсем другое
8.6. Реальные сценарии использования
8.7. Применим изученное
Итоги
Ответы на вопросы и упражнения
Дополнительная литература
Глава 9. Повторное использование
9.1. Определение границ
9.2. Общая структура
9.2.1. API атрибутов
9.2.2. Изменяемые коллекторы
9.2.3. Адаптация Attribute для функциональных
интерфейсов
9.3. Обобщенная реализация резервуара
9.4. Общие соображения
9.5. Использование готового кода [Generic]
9.5.1. Обновленный сценарий использования
9.5.2. Проектирование конкретного атрибута
9.5.3. Определение класса для резервуара
9.6. Посты в соцсетях
9.7. А теперь совсем другое
9.7.1. Интерфейс для параметрических функций
9.7.2. Схема коммуникаций
9.8. Реальные сценарии использования
9.9. Применим изученное
Итоги
Ответы на вопросы и упражнения
Дополнительная литература
Приложения
Приложение А. Программный гольф: компактность
А.1. Самая короткая программа, которая у меня
получилась [Golfing]
Дополнительная литература
Приложение Б. Финальная версия класса для
резервуара с водой
Б.1. Улучшения удобочитаемости
Б.2. Улучшения надежности

Отзывы

Вопросы

Поделитесь своим мнением об этом товаре с другими покупателями — будьте первыми!

Дарим бонусы за отзывы!

За какие отзывы можно получить бонусы?
  • За уникальные, информативные отзывы, прошедшие модерацию
Как получить больше бонусов за отзыв?
  • Публикуйте фото или видео к отзыву
  • Пишите отзывы на товары с меткой "Бонусы за отзыв"
Правила начисления бонусов
Задайте вопрос, чтобы узнать больше о товаре
Если вы обнаружили ошибку в описании товара «Стильный Java. Код, который работает всегда и везде» (авторы: Фаэлла Марко), то выделите её мышкой и нажмите Ctrl+Enter. Спасибо, что помогаете нам стать лучше!
Ваш населённый пункт:
г. Москва
Выбор населённого пункта