Тонкости программирования в примерах: учебник

Тонкости программирования в примерах

Автор

Пруцков Александр Викторович

Аннотация

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

Предназначен для всех желающих узнать новое и интересное о программировании, а также для студентов, изучающих дисциплины «Объектно-ориентированное программирование», «Современные технологии разработки программного обеспечения», «Управление программными проектами».

Ознакомительный фрагмент учебника

Библиографическая ссылка

Пруцков А. В. Тонкости программирования в примерах: учебник. — М.: КУРС, 2022. — 228 с.

Скачать

Программы из листингов учебника

Вы можете открыть программы примеров в среде разработки Eclipse.

Оставить отзыв о книге

Оглавление

  1. Предисловие
  2. Как писать легко изменяемые программы
    1. Легко изменяемые программы
    2. Принципы написания легко изменяемых программ
    3. Задания по написанию легко изменяемых программ и их решения
    4. Вопросы к главе
  3. Битовые операции
    1. Заглянем внутрь байта
    2. Логические операции над битами
    3. Операции сдвигов
    4. Применение битовых операций
    5. Почему в ЭВМ используется двоичная система счисления?
    6. Вопросы к главе
  4. Структуры данных
    1. Для каждого алгоритма своя структура данных
    2. Циклический массив
    3. Список с пропусками
    4. Фильтр Блума
    5. Хеш-функции для фильтра Блума
    6. Вопросы к главе
  5. Регулярные выражения
    1. Язык для обработки последовательностей символов
    2. Обозначения и классы символов
    3. Группы в регулярных выражениях
    4. Классы для работы с регулярными выражениями в языке Java
    5. Задания по использованию регулярных выражений
    6. Производительность регулярных выражений
    7. Вопросы к главе
  6. Многопоточность
    1. Части программы, выполняющиеся независимо от программы
    2. Задача о нескольких авторах и одном принтере
    3. Класс Thread
    4. Интерфейс Runnable и метод join
    5. Синхронизация
    6. Спецификатор и инструкция synchronized
    7. Задача о нескольких авторах и нескольких принтерах
    8. Методы wait, notify и notifyAll
    9. Класс ReentrantLock
    10. Класс Semaphore
    11. Коллекции с блокировкой
    12. Потокобезопасные коллекции
    13. Потоки-демоны
    14. Вопросы к главе
  7. Рефлексия
    1. Исследуем класс изнутри
    2. Классы и методы, связанные с рефлексией, в языке Java
    3. Универсальный метод toString
    4. Вопросы к главе
  8. Шаблоны проектирования
    1. Работа, сделанная за вас
    2. Шаблон «Одиночка»
    3. Шаблон Null Object
    4. Шаблон «Модель-Представление-Контроллер»
    5. Вопросы к главе
  9. Наследование
    1. Разберемся с самым сложным принципом объектно-ориентированного программирования
    2. Теоретические основы наследования
    3. Виды наследования
    4. Условия целесообразности функционально-переопределяемого наследования
    5. Пример функционально-переопределяемого наследования
    6. Вопросы к главе
  10. Надежное программирование
    1. Понятие надежного программирования
    2. Проектирование по контракту
    3. Проверка входных данных
    4. Надежное создание объектов классов-данных с помощью класса-проверщика значений полей объектов
    5. Другие подходы к проверке параметров конструкторов и методов
    6. Задание по надежному программированию и его решение
    7. Вопросы к главе
  11. Документирование программы
    1. Зачем нужна программная документация?
    2. Виды комментариев в языке Java и их назначение
    3. Дескрипторы Javadoc
    4. Правила написания программной документации
    5. Вопросы к главе
  12. Измерение программного обеспечения и рефакторинг программ
    1. Зачем измерять программы?
    2. Меры и метрики
    3. Метрики легкости изменения программы
    4. Рефакторинг программ и его уровни
    5. Когда нужно проводить рефакторинг программ?
    6. Пример рефакторинга класса
    7. Сравнение классов до и после рефакторинга
    8. Вопросы к главе
  13. Тонкости языков программирования
    1. Неожиданные сюрпризы от языков программирования
    2. Задания по тонкостям языка программирования
    3. Решения заданий по тонкостям языка программирования
  14. Упражнения
    1. Попрактикуемся
    2. Типы в языке программирования
    3. Битовые операции
    4. Структуры данных
    5. Задачи по обработке данных
    6. Регулярные выражения
    7. Многопоточность
    8. Надежное программирование
    9. Самообучаемые программы
  15. Используемая терминология и ее перевод на английский язык
  16. Библиографический список
  17. Приложение 1. Класс с универсальным методом toString
  18. Приложение 2. Задачи по обработке данных
  19. Приложение 3. Правила написания программ на языке Java
  20. Приложение 4. Антипримеры и примеры написания программ
  21. Приложение 5. Система транслитерации букв русского алфавита латинским алфавитом