Компьютерная литература
  • формат djvu
  • размер 30.84 МБ
  • добавлен 04 февраля 2012 г.
Орам Энди, Уилсон Грег. Идеальный код. Как научиться видеть красоту в программировании
Питер / O’Reilly, 2011. -624с. В этой уникальной книге самые авторитетные разработчики программного обеспечения делятся опытом оригинального решения задач, которые вставали перед ними при реализации крупных IT-проектов
С помощью этого издания читатель получит возможность оказаться на месте ведущих программистов, увидеть собственными глазами проблемы, возникавшие при реализации разнообразных проектов, и пройти увлекательный путь их преодоления. Авторские статьи отобраны и отредактированы Грэгом Уилсоном, редактором журнала «Dr. Dobb's Joual», одного из самых авторитетных IT-изданий в мире, а также редактором издательства O'Reilly Энди Орамом
Содержание
Введение
Глава 1- Поиск соответствий с помощью регулярных выражений
Практика программирования
Глава 2- Дельта-редактор Subversion: Интерфейс и онтология
Управление версиями и преобразование дерева
Выражение различий в деревьях каталогов
Интерфейс дельта-редактора
Глава 3- Самый красивый код, который я никогда не писал
Мой самый красивый код
Усиление отдачи при сокращении размеров
Глава 4- Поиск вещей
Фактор времени
Проблема: Данные веб-блога
Регулярные выражения
Подключение регулярных выражений к работе
Ассоциативное устройство хранения
А нужна ли оптимизация?
Проблема: Кто выбирал, что и когда?
Двоичный поиск
Сильные и слабые стороны двоичного поиска
Выход из цикла
Ищите в большом
Поиск с постингом
Ранжировка результатов
Поиск в Интернете
Вывод
Глава 5- Правильный, красивый, быстрый (именно в таком порядке): уроки разработки XML-верификаторов
Роль XML-проверки
Проблема
Версия 1: Простейшая реализация
Версия 2: Имитация BNF-нотации ценой O(N) операций
Версия 3: Первая оптимизация O(log N)
Версия 4: Вторая оптимизация: исключение двойной проверки
Версия 5: Третья оптимизация 0(1)
Версия 6: Четвертая оптимизация: кэширование
Мораль всей этой истории
Глава 6- Платформа для проведения комплексного теста: красота, полученная за счет хрупкости конструкции
Платформа для приемочных испытаний, выполненная в трех классах
Сложности конструкции платформы
Открытая платформа
Насколько просто может быть устроен HTML-napcep?
Вывод
Глава 7- Красивые тесты
Изрядно поднадоевший двоичный поиск
Знакомство с J Unit
Подробный разбор двоичного поиска
Задымление разрешается (и приветствуется)
Проталкивание через границы
Элемент случайности в тестировании
Беспокойства о производительности
Вывод
Глава 8- Динамическая генерация кода для обработки изображений
Глава 9- Нисходящая иерархия операторов
javascript
Таблица обозначений
Лексемы
Старшинство
Выражения
Инфиксные операторы
Префиксные операторы
Операторы присваивания
Константы
Область видимости
Операторы
Функции
Литералы массивов и объектов
Что нужно сделать и о чем подумать
Глава 10- Поиск методов ускоренного подсчета заполнения
Основные методы
«Разделяй и властвуй»
Другие методы
Сумма и разница подсчета заполнения двух слов
Сравнение подсчетов заполнений двух слов
Подсчет единичных битов в массиве
Применение
Глава 11- Безопасная связь: технология свободы
С чего все начиналось
Разбор проблем безопасного обмена сообщениями
Ключевая роль удобства и простоты использования
Основы
Конструктивные цели и решения
Конструкция основной системы
Блок тестирования
Функциональный прототип
Завершение, подключение, обкатка
Обновление хранилища электронной почты
Сохранность дешифрованной информации
Гималайский хакинг
Организация защиты кода
Ревизия Crypt::GPG
Скрытые манипуляции
Скорость тоже имеет значение
Конфиденциальность связи для обеспечения прав человека
Хакинг цивилизации
Глава 12- Становление красивого кода в BioPerl
BioPerl и модуль Bio::Graphics
Пример выходной информации Bio::Graphics
Требования, предъявляемые к Bio::Graphics
Процесс проектирования Bio::Graphics
Установка параметров
Выбор классов объектов
Обработка параметров
Пример кода
Динамические параметры
Расширение Bio::Graphics
Поддержка веб-разработчиков
Поддержка изображений типографского качества
Добавление новых глифов
Заключение и извлеченные уроки
Глава 13- Конструкция генного сортировщика
Пользовательский интерфейс программы Gene Sorter
Поддержание диалога с пользователем по Интернету
Небольшой полиморфизм может иметь большое значение
Фильтрация, оставляющая только значимые гены
Теория красоты кода в крупных формах
Вывод
Глава 14- Как первоклассный код развивается вместе с аппаратным обеспечением (на примере Гауссова исключения)
Влияние компьютерной архитектуры на матричные алгоритмы
Декомпозиционный подход
Простая версия
Подпрограмма DGEFA библиотеки LINPACK
LAPACK DGETRF
Рекурсивное использование LU
ScaLAPACK PDGETRF
Многопоточная обработка для многоядерных систем
Несколько слов об анализе ошибок и итоговом количестве операций
Дальнейшее направление исследований
Дополнительная литература
Глава 15- Долговременные выгоды от красивой конструкции
В чем, по-моему, заключается красота программного кода
Представление библиотеки лаборатории ЦЕРН
Внешняя красота
Внутренняя красота
Заключение
Глава 16- Модель драйверов ядра Linux: преимущества совместной работы
Скромное начало
Превращение в еще более мелкие части
Расширение масштаба до тысяч устройств
Свободно присоединяемые мелкие объекты
Глава 17- Иной уровень косвенного подхода
От кода к указателям
От аргументов функций к аргументам указателей
От файловых систем к уровням файловой системы
От кода к предметно-ориентированному языку
Мультиплексирование и демультиплексирование
Уровни навсегда?
Глава 18- Реализация словарей Python: стремление быть всем во всем полезным
Что делается внутри словаря
Специальные приспособления
Особая оптимизация для небольших хэшей
Когда специализация приводит к издержкам
Конфликтные ситуации
Изменение размера
Итерации и динамические изменения
Вывод
Благодарности
Глава 19- Многомерные итераторы в NumPy
Основные сложности обработки N-мерных массивов
Модель памяти, занимаемой N-мерным массивом
Происхождение итератора NumPy
Конструкция итератора
Перемещение итератора
Завершение работы итератора
Настройка итератора
Определение показаний счетчика итератора
Структура итератора
Интерфейс итератора
Использование итератора
Итерация по всем, кроме одного измерения
Множественные итерации
Истории
Вывод
Глава 20 - Высоконадежная корпоративная система, разработанная для миссии NASA Mars Rover
Миссия и совместный информационный портал
Потребности миссии
Архитектура системы
Исследование конкретного примера: Служба информационных потоков
Глава 21- ERP5: Конструирование с целью достижения максимальной адаптивности
Общие иели ERP
ERP
Базовая платформа Zope
Понятия, используемые в ERP5 Project
Программирование ERP5 Project
Вывод
Глава 22- Ложка грязи
Глава 23- Распределенное программирование с MapReduce
Пример мотивации
Модель программирования MapReduce
Распределенная реализация MapReduce
Расширения модели
Заключение
Дополнительная информация
Благодарности
Приложение: Решение задачи подсчета слов
Глава 24- Красота параллельной обработки
Простой пример: банковские счета
Программная транзакционная память
Реализация транзакционной памяти
Задача Санта-Клауса
Основная программа
Размышления о языке Haskell
Вывод
Благодарности
Глава 25- Синтаксическая абстракция: расширитель syntax-case
Краткое введение в syntax-case
Алгоритм расширения
Преобразование
Пример
Вывод
Глава 26- Архитектура, экономящая силы: объектно-ориентированная рабочая среда для программ с сетевой структурой
Типовое приложение: служба регистрации
Объектно-ориентированное проектирование рабочей среды сервера регистрации
Определение общих свойств
Увязка вариантов
Связывание воедино
Реализация последовательных серверов регистрации
Реактивный сервер регистрации
Реализация сервера регистрации с параллельной обработкой
Вывод
Глава 27- Объединение деловых партнеров с помощью RESTful
Предыстория проекта
Предоставление служб внешним клиентам
Определение интерфейса службы
Маршрутизация службы с использованием шаблона Factory
Обмен данными с использованием протоколов электронного бизнеса
Вывод
Глава 28- Красивая отладка
Отладка отладчика
Системный подход к процессу отладки
Проблемы поиска
Автоматическое обнаружение причины отказа
Дельта-отладка
Минимизация входных данных
Проблема прототипа
Вывод
Благодарности
Дополнительная информация
Глава 29- Отношение к коду как к очерку
Глава 30- Когда кнопка остается единственным предметом, связывающим вас с внешним миром
Основная модель конструкции
Интерфейс ввода
Дерево
Длинный щелчок
Динамическое изменение заполнения дерева
Простой набор текста
Прогнозирование: завершение слова и следующее слово
Шаблоны и замена
Реализация кэш
Распространенные и избранные слова
Отслеживание путей
Буфер набора, редактирование и прокрутка
Буфер обмена
Поиск
Макрокоманда
Эффективность пользовательского интерфейса
Загрузка
Будущие направления
Глава 31- Emacspeak: полноценно озвученный рабочий стол
Создание речевого вывода
Говорящий Emacs
Генерация полноценного речевого вывода
Использование Aural CSS (ACSS) для стилевого оформления речевого вывода
Добавление звуковых обозначений
Беспроблемный доступ к интерактивной информации
Краткий отчет
Вывод
Благодарности
Глава 32- Код в развитии
Применение «книгообразного» вида
Одинаковое должно выглядеть однообразно
Опасность отступов
Перемещение по коду
Используемый нами инструментарий
Изменчивое прошлое DiffMerge
Вывод
Благодарности
Дополнительная информация
Глава 33- Создание программ для «Книги»
Нелегкий путь
Предупреждение для тех, кто боится скобок
Три в ряд
Скользящий наклон
Неравенство в треугольнике
Блуждания по извилистостям
«Что вы говорите!» — то есть «Ага!»
Вывод
Дополнительная информация
Послесловие
О тех, кто работал над книгой
Смотрите также

Косачёв В.С., Алёшин А.В., Байбуз В.Н. Методические указания по выполнению курсовой работы по дисциплине Программирование на языке высокого уровня

  • формат doc
  • размер 466 КБ
  • добавлен 11 мая 2010 г.
Методические указания по выполнению курсовой работы (проекта) по дисциплине Программирование на языке высокого уровня для студентов очной и заочной форм обучения специальности 220400 – Программное обеспечение вычислительной техники и автоматизированных систем. – Краснодар: ИМСИТ, 2005. – 60 с. Приведена тематика, сформулированы требования к структуре, содержанию и оформлению пояснительной записки курсовой работы (проекта). Одобрено научно-метод...

Мозговой М. В. Классика программирования: алгоритмы, языки, автоматы, компиляторы. Практический подход

  • формат djvu
  • размер 2.93 МБ
  • добавлен 14 февраля 2009 г.
СПб.: Наука и Техника, 2006. - 320 с.: ил. Книга посвящена описанию фундаментальных основ компьютерной науки и их применению на практике. Рассмотрено большое количество алгоритмов и моделей, которые можно использовать в повседневном программировании. При этом показано, как их использовать. Практически все книги подобной направленности имеют ярко выраженную теоретическую ориентацию. В них много формул, теорем и доказательств, но крайне мало листин...

Одинцов И. Профессиональное программирование. Системный подход

  • формат pdf
  • размер 6.45 МБ
  • добавлен 22 ноября 2010 г.
Издательство: СПб.: БХВ-Петербург Год: 2002 Страниц: 512 Книга посвящена основным направлениям профессионального программирования. Подробно рассматриваются методологии, технологии, языки и системы программирования, аппаратная и операционная платформы, как давно известные, так и новейшие. Представлены различные их классификации. Книгу характеризуют две особенности: взаимосвязанный, системный подход к программированию и изложение программирования...

Смирнов А.А., Хрипков Д.В. Технологии программирования: учебно-практическое пособие

  • формат pdf
  • размер 1.04 МБ
  • добавлен 02 декабря 2011 г.
ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ : учебно-практическое пособие. – М. : Изд. центр ЕАОИ, 2009. – 191 с. учебно-практическое пособие посвящено изучению важнейших направлении развития технологий программирования;особенности использования объектно-ориентированного программирования в различных системах;технологии программирования, основанные на динамическом распределении памяти;технологии программирования, используемые при обработки экономической информаци...

Martin R. The Clean Coder A Code of Conduct for Professional Programmers

  • формат pdf
  • размер 6.06 МБ
  • добавлен 01 декабря 2011 г.
Paperback: 256 pages Publisher: Prentice Hall; 1 edition (May 23, 2011) Language: English ISBN-10: 0137081073 ISBN-13: 978-0137081073 (рус. изд. Идеальный программист. Как стать профессионалом разработки ПО) Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals. In The Clean Coder: A Co...