Идеальный код

Под редакцией Энди Орама и Грега Уилсона

В этой уникальной книге самые авторитетные разработчики программного обеспечения делятся опытом оригинального решения задач, которые вставали перед ними при реализации крупных IT-проектов.

С помощью этого издания читатель получит возможность оказаться на месте ведущих программистов, увидеть собственными глазами проблемы, возникавшие при реализации разнообразных проектов, и пройти увлекательный путь их преодоления. Авторские статьи отобраны Грегом Уилсоном, редактором журнала «Dr. Dobb's Journal», одного из самых авторитетных IT-изданий в мире, а также редактором издательства O'Reilly Энди Орамом.

Один лишь только список авторов делает эту книгу настоящим бестселлером - здесь вы найдете материалы, написанные такими признанными профессионалами, как Чарльз Петцольд, Джон Бентли, Тим Брэй, Брайан Керниган, и еще тридцатью четырьмя экспертами в области разработки программного обеспечения.

Издательство: Питер, 2011 г.

ISBN 978-5-4237-0331-8, 9780596510046

Количество страниц: 624.

Содержание книги «Идеальный код»:

  • 16 Введение
  • 17 Глава 1. Поиск соответствий с помощью регулярных выражений
    • 18 Практика программирования
  • 27 Глава 2. Дельта-редактор Subversion: Интерфейс и онтология
    • 28 Управление версиями и преобразование дерева
    • 32 Выражение различий в деревьях каталогов
    • 33 Интерфейс дельта-редактора
  • 46 Глава 3. Самый красивый код, который я никогда не писал
    • 46 Мой самый красивый код
    • 48 Усиление отдачи при сокращении размеров
  • 60 Глава 4. Поиск вещей
    • 60 Фактор времени
    • 60 Проблема: Данные веб-блога
    • 61 Регулярные выражения
    • 62 Подключение регулярных выражений к работе
    • 66 Ассоциативное устройство хранения
    • 69 А нужна ли оптимизация?
    • 70 Проблема: Кто выбирал, что и когда?
    • 72 Двоичный поиск
    • 74 Сильные и слабые стороны двоичного поиска
    • 75 Выход из цикла
    • 76 Ищите в большом
    • 76 Поиск с постингом
    • 76 Ранжировка результатов
    • 77 Поиск в Интернете
    • 78 Вывод
  • 79 Глава 5. Правильный, красивый, быстрый (именно в таком порядке): уроки разработки XML-верификаторов
    • 79 Роль XML-проверки
    • 80 Проблема
    • 82 Версия 1: Простейшая реализация
    • 83 Версия 2: Имитация BNF-нотации ценой O(N) операций
    • 85 Версия 3: Первая оптимизация O(log N)
    • 86 Версия 4: Вторая оптимизация: исключение двойной проверки
    • 88 Версия 5: Третья оптимизация O(1)
    • 93 Версия 6: Четвертая оптимизация: кэширование
    • 95 Мораль всей этой истории
  • 96 Глава 6. Платформа для проведения комплексного теста: красота, полученная за счет хрупкости конструкции
    • 97 Платформа для приемочных испытаний, выполненная в трех классах
    • 99 Сложности конструкции платформы
    • 101 Открытая платформа
    • 102 Насколько просто может быть устроен HTML-napcep?
    • 105 Вывод
  • 107 Глава 7. Красивые тесты
    • 108 Изрядно поднадоевший двоичный поиск
    • 111 Знакомство с JUnit
    • 113 Подробный разбор двоичного поиска
    • 114 Задымление разрешается (и приветствуется)
    • 114 Проталкивание через границы
    • 118 Элемент случайности в тестировании
    • 124 Беспокойства о производительности
    • 126 Вывод
  • 128 Глава 8. Динамическая генерация кода для обработки изображений
  • 152 Глава 9. Нисходящая иерархия операторов
    • 153 JavaScript
    • 154 Таблица обозначений
    • 155 Лексемы
    • 156 Старшинство
    • 157 Выражения
    • 158 Инфиксные операторы
    • 160 Префиксные операторы
    • 160 Операторы присваивания
    • 161 Константы
    • 161 Область видимости
    • 163 Операторы
    • 166 Функции
    • 168 Литералы массивов и объектов
    • 169 Что нужно сделать и о чем подумать
  • 170 Глава 10. Поиск методов ускоренного подсчета заполнения
    • 171 Основные методы
    • 172 «Разделяй и властвуй»
    • 175 Другие методы
    • 176 Сумма и разница подсчета заполнения двух слов
    • 177 Сравнение подсчетов заполнений двух слов
    • 178 Подсчет единичных битов в массиве
    • 183 Применение
  • 186 Глава 11. Безопасная связь: технология свободы
    • 187 С чего все начиналось
    • 189 Разбор проблем безопасного обмена сообщениями
    • 191 Ключевая роль удобства и простоты использования
    • 194 Основы
    • 195 Конструктивные цели и решения
    • 196 Конструкция основной системы
    • 199 Блок тестирования
    • 200 Функциональный прототип
    • 201 Завершение, подключение, обкатка
    • 202 Обновление хранилища электронной почты
    • 204 Сохранность дешифрованной информации
    • 205 Гималайский хакинг
    • 207 Организация защиты кода
    • 208 Ревизия Crypt::GPG
    • 211 Скрытые манипуляции
    • 213 Скорость тоже имеет значение
    • 214 Конфиденциальность связи для обеспечения прав человека
    • 215 Хакинг цивилизации
  • 217 Глава 12. Становление красивого кода в BioPerl
    • 218 BioPerl и модуль Bio::Graphics
    • 219 Пример выходной информации Bio::Graphics
    • 221 Требования, предъявляемые к Bio::Graphics
    • 223 Процесс проектирования Bio::Graphics
    • 227 Установка параметров
    • 229 Выбор классов объектов
    • 232 Обработка параметров
    • 237 Пример кода
    • 238 Динамические параметры
    • 242 Расширение Bio::Graphics
    • 243 Поддержка веб-разработчиков
    • 244 Поддержка изображений типографского качества
    • 245 Добавление новых глифов
    • 247 Заключение и извлеченные уроки
  • 249 Глава 13. Конструкция генного сортировщика
    • 250 Пользовательский интерфейс программы Gene Sorter
    • 251 Поддержание диалога с пользователем по Интернету
    • 254 Небольшой полиморфизм может иметь большое значение
    • 257 Фильтрация, оставляющая только значимые гены
    • 258 Теория красоты кода в крупных формах
    • 262 Вывод
  • 263 Глава 14. Как первоклассный код развивается вместе с аппаратным обеспечением (на примере Гауссова исключения)
    • 264 Влияние компьютерной архитектуры на матричные алгоритмы
    • 266 Декомпозиционный подход
    • 267 Простая версия
    • 269 Подпрограмма DGEFA библиотеки UNPACK
    • 272 LAPACK DGETRF
    • 275 Рекурсивное использование LU
    • 278 ScaLAPACK PDGETRF
    • 283 Многопоточная обработка для многоядерных систем
    • 286 Несколько слов об анализе ошибок и итоговом количестве операций
    • 287 Дальнейшее направление исследований
    • 288 Дополнительная литература
  • 290 Глава 15. Долговременные выгоды от красивой конструкции
    • 290 В чем, по-моему, заключается красота программного кода
    • 291 Представление библиотеки лаборатории ЦЕРН
    • 292 Внешняя красота
    • 298 Внутренняя красота
    • 304 Заключение
  • 305 Глава 16. Модель драйверов ядра Linux: преимущества совместной работы
    • 306 Скромное начало
    • 311 Превращение в еще более мелкие части
    • 314 Расширение масштаба до тысяч устройств
    • 316 Свободно присоединяемые мелкие объекты
  • 317 Глава 17. Иной уровень косвенного подхода
    • 317 От кода к указателям
    • 320 От аргументов функций к аргументам указателей
    • 324 От файловых систем к уровням файловой системы
    • 326 От кода к предметно-ориентированному языку
    • 328 Мультиплексирование и демультиплексирование
    • 330 Уровни навсегда?
  • 331 Глава 18. Реализация словарей Python: стремление быть всем во всем полезным
    • 333 Что делается внутри словаря
    • 335 Специальные приспособления
    • 335 Особая оптимизация для небольших хэшей
    • 335 Когда специализация приводит к издержкам
    • 337 Конфликтные ситуации
    • 338 Изменение размера
    • 339 Итерации и динамические изменения
    • 340 Вывод
    • 340 Благодарности
  • 341 Глава 19. Многомерные итераторы в NumPy
    • 342 Основные сложности обработки N-мерных массивов
    • 343 Модель памяти, занимаемой N-мерным массивом
    • 345 Происхождение итератора NumPy
    • 346 Конструкция итератора
    • 346 Перемещение итератора
    • 347 Завершение работы итератора
    • 348 Настройка итератора
    • 349 Определение показаний счетчика итератора
    • 350 Структура итератора
    • 352 Интерфейс итератора
    • 353 Использование итератора
    • 354 Итерация по всем, кроме одного измерения
    • 355 Множественные итерации
    • 357 Истории
    • 358 Вывод
  • 359 Глава 20. Высоконадежная корпоративная система, разработанная для миссии NASA Mars Rover
    • 360 Миссия и совместный информационный портал
    • 361 Потребности миссии
    • 363 Архитектура системы
    • 366 Исследование конкретного примера: Служба информационных потоков
  • 381 Глава 21. ERP5: Конструирование с целью достижения максимальной адаптивности
    • 382 Общие цели ERP
    • 382 ERP5
    • 384 Базовая платформа Zope
    • 388 Понятия, используемые в ERP5 Project
    • 390 Программирование ERP5 Project
    • 394 Вывод
  • 396 Глава 22. Ложка грязи
  • 416 Глава 23. Распределенное программирование с MapReduce
    • 416 Пример мотивации
    • 419 Модель программирования MapReduce
    • 422 Распределенная реализация MapReduce
    • 426 Расширения модели
    • 427 Заключение
    • 428 Дополнительная информация
    • 428 Благодарности
    • 429 Приложение: Решение задачи подсчета слов
  • 431 Глава 24. Красота параллельной обработки
    • 432 Простой пример: банковские счета
    • 435 Программная транзакционная память
    • 441 Реализация транзакционной памяти
    • 444 Задача Санта-Клауса
    • 448 Основная программа
    • 452 Размышления о языке Haskell
    • 453 Вывод
    • 454 Благодарности
  • 456 Глава 25. Синтаксическая абстракция: расширитель syntax-case
    • 460 Краткое введение в syntax-case
    • 463 Алгоритм расширения
    • 474 Преобразование
    • 475 Пример
    • 477 Вывод
  • 479 Глава 26. Архитектура, экономящая силы: объектно-ориентированная рабочая среда для программ с сетевой структурой
    • 481 Типовое приложение: служба регистрации
    • 484 Объектно-ориентированное проектирование рабочей среды сервера регистрации
    • 486 Определение общих свойств
    • 487 Увязка вариантов
    • 489 Связывание воедино
    • 492 Реализация последовательных серверов регистрации
    • 493 Реактивный сервер регистрации
    • 497 Реализация сервера регистрации с параллельной обработкой
    • 504 Вывод
  • 505 Глава 27. Объединение деловых партнеров с помощью RESTful
    • 505 Предыстория проекта
    • 506 Предоставление служб внешним клиентам
    • 507 Определение интерфейса службы
    • 510 Маршрутизация службы с использованием шаблона Factory
    • 512 Обмен данными с использованием протоколов электронного бизнеса
    • 517 Вывод
  • 518 Глава 28. Красивая отладка
    • 519 Отладка отладчика
    • 521 Системный подход к процессу отладки
    • 522 Проблемы поиска
    • 523 Автоматическое обнаружение причины отказа
    • 525 Дельта-отладка
    • 528 Минимизация входных данных
    • 531 Проблема прототипа
    • 532 Вывод
    • 532 Благодарности
    • 532 Дополнительная информация
  • 533 Глава 29. Отношение к коду как к очерку
  • 538 Глава 30. Когда кнопка остается единственным предметом, связывающим вас с внешним миром
    • 539 Основная модель конструкции
    • 543 Интерфейс ввода
    • 543 Дерево
    • 544 Длинный щелчок
    • 548 Динамическое изменение заполнения дерева
    • 549 Простой набор текста
    • 550 Прогнозирование: завершение слова и следующее слово
    • 551 Шаблоны и замена
    • 552 Реализация кэш
    • 553 Распространенные и избранные слова
    • 554 Отслеживание путей
    • 554 Буфер набора, редактирование и прокрутка
    • 556 Буфер обмена
    • 557 Поиск
    • 557 Макрокоманда
    • 558 Эффективность пользовательского интерфейса
    • 558 Загрузка
    • 558 Будущие направления
  • 560 Глава 31. Emacspeak: полноценно озвученный рабочий стол
    • 561 Создание речевого вывода
    • 562 Говорящий Emacs
    • 564 Генерация полноценного речевого вывода
    • 569 Использование Aural CSS (ACSS) для стилевого оформления речевого вывода
    • 570 Добавление звуковых обозначений
    • 574 Беспроблемный доступ к интерактивной информации
    • 581 Краткий отчет
    • 584 Вывод
    • 585 Благодарности
  • 586 Глава 32. Код в развитии
    • 587 Применение «книгообразного» вида
    • 589 Одинаковое должно выглядеть однообразно
    • 590 Опасность отступов
    • 591 Перемещение по коду
    • 592 Используемый нами инструментарий
    • 594 Изменчивое прошлое DiffMerge
    • 596 Вывод
    • 597 Благодарности
    • 597 Дополнительная информация
  • 598 Глава 33. Создание программ для «Книги»
    • 598 Нелегкий путь
    • 599 Предупреждение для тех, кто боится скобок
    • 600 Три в ряд
    • 603 Скользящий наклон
    • 605 Неравенство в треугольнике
    • 606 Блуждания по извилистостям
    • 608 «Что вы говорите!» – то есть «Ага!»
    • 610 Вывод
    • 610 Дополнительная информация
  • 612 Послесловие
  • 614 О тех, кто работал над книгой

Инструкция как скачать книгу Под редакцией Энди Орама и Грега Уилсона: Идеальный код в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Идеальный код
Рейтинг книги:
0 голосов
957

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: