Программирование

Различные книги в жанре Программирование

Scrum: гибкая разработка ПО

Майк Кон

Данная книга предназначена для прагматичных специалистов в области разработки программного обеспечения, которые хотят получить надежные, заслуживающие доверия ответы на большинство трудных вопросов, с которыми им приходится сталкиваться в процессе внедрения Scrum. В своей книге автор описывает все аспекты процесса внедрения: запуск процесса, оказание людям помощи в освоении новых ролей, структуризация коллективов, увеличение охвата, работа с рассредоточенным коллективом и, наконец, внедрение эффективных показателей и непрерывное совершенствование. В книге встречаются врезки под заголовком «Попробуйте прямо сейчас», включающие наиболее эффективные советы автора. Во врезках под заголовком «Возражения» автор воспроизводит типичные дискуссии с теми, кто сопротивляется переменам, и дает практические рекомендации, которые позволят вам аргументированно ответить на подобные возражения и развеять сомнения людей. – Практические способы немедленного начала внедрения, а также быстрого повышения вашей квалификации и получения желаемых результатов. – Способы преодоления индивидуального сопротивления переменам, которых требует Scrum. – Кадровое обеспечение Scrum-проектов и формирование эффективных коллективов. – Формирование сообществ в поддержку усовершенствования организации из энтузиастов. – Выбор технических приемов гибкой методологии разработки, которыми следует воспользоваться (или как минимум поэкспериментировать). – Руководство деятельностью самоорганизующихся коллективов. – Как добиться максимальной эффективности от Scrum-спринтов, планирования и методов повышения качества. – Распространение Scrum на проекты с рассредоточенными коллективами и на проекты, предполагающие использование нескольких коллективов. – Применение Scrum к проектам со сложными последовательными процессами или к проектам, которые должны отвечать требованиям различных стандартов. – Влияние Scrum на вопросы кадров, технического обеспечения и управления проектами. Независимо от того, выполнили ли вы лишь несколько спринтов или несколько проектов с применением гибкой методологии разработки, и от того, какова ваша нынешняя роль (менеджер, разработчик, наставник, руководитель Scrum-проекта, владелец продукта, аналитик, лидер коллектива или лидер проекта), эта книга поможет добиться еще большего успеха в вашем следующем проекте. Но она поможет вам и в гораздо более важном и ответственном деле: преобразовать всю вашу организацию.

Непрерывное развертывание ПО: автоматизация процессов сборки, тестирования и внедрения новых версий программ

Джез Хамбл

Tестирование программного обеспечения, поставляемого пользователям, часто бывает болезненным, рискованным и длительным процессом. Перед вами книга, представляющая совершенно новую стратегию разработки – набор принципов и практических методик, обеспечивающих быструю инкрементную поставку высококачественного программного обеспечения. Благодаря автоматизации процессов сборки, установки и тестирования и улучшению взаимодействия разработчиков, тестировщиков и администраторов команда проекта получает возможность поставлять изменения и новые средства в течение считанных часов или даже минут, независимо от размера проекта и сложности его кодовой базы. Авторы начинают с рассмотрения основ процесса быстрой и надежной поставки программного обеспечения с минимальными рисками. Затем они вводят понятие «конвейера развертывания» – автоматизированного процесса, управляющего всеми изменениями проекта, от регистрации изменений до выпуска очередной версии программы. И наконец, в книге обсуждаются способы поддержки непрерывного развертывания, начиная с инструментов управления инфраструктурами, данными и конфигурациями и заканчивая управлением целыми проектами. Авторы предлагают передовые методики, включая автоматизированное управление инфраструктурами, перенос данных и применение средств виртуализации. Для каждой представленной стратегии приведен обзор ключевых проблем, возникающих при ее применении, описаны способы уменьшения рисков и оптимальные методики реализации. В книге рассмотрены следующие вопросы: – автоматизация всех процессов сборки, интеграции, тестирования и развертывания программного обеспечения; – реализация конвейера развертывания на уровне команд и организаций; – улучшение взаимодействия разработчиков, тестировщиков и администраторов; – стратегии инкрементной разработки новых программных средств большими распределенными командами; – реализация эффективных стратегий управления конфигурациями; – автоматизация приемочного тестирования – от анализа требований до реализации процессов; – тестирование производительности, безопасности, доступности и других нефункциональных требований; – реализация непрерывного развертывания с минимальным временем простоя; – управление инфраструктурами, данными, компонентами и зависимостями; – управление рисками, аудит и соответствие проекта регуляторным требованиям и стандартам ведения бизнеса. Книга будет полезна всем участникам процесса поставки – разработчикам, системным администраторам, тестировщикам и менеджерам проектов. Она поможет вашей организации внедрить современную технологию разработки и поставки программного обеспечения, ускорить процесс разработки, повысить надежность поставки и прибыльность проекта.

Рефакторинг кода на JavaScript: улучшение проекта существующего кода

Мартин Фаулер

Более двадцати лет опытные программисты во всем мире использовали книгу Мартина Фаулера Рефакторинг, когда им нужно было улучшить проект существующего кода, повысить удобство сопровождения программного обеспечения или облегчить понимание существующего кода. Это – такое долгожданное – новое издание было полностью обновлено, чтобы отразить важные изменения в области программирования. Второе издание книги содержит обновленный каталог рефакторингов и включает примеры кода на JavaScript, а также новые функциональные примеры, демонстрирующие рефакторинг без классов. Как и в первом издании, здесь объясняется, что такое рефакторинг, почему вы должны прибегать к нему, как распознать код, который нуждается в рефакторинге, и как успешно провести его независимо от того, какой язык программирования вы используете. Основные темы книги: – Понимание процесса и общих принципов рефакторинга. – Быстрое применение полезных рефакторингов для облегчения понимания и изменения программ. – Распознавание запаха в коде, который сигнализирует о возможном применении рефакторинга. – Каталог рефакторингов с объяснениями, мотивацией, техникой применения и простыми примерами. – Создание надежных тестов для рефакторингов. – Компромиссы и препятствия на пути рефакторинга.

Пользовательские истории: гибкая разработка программного обеспечения

Майк Кон

В этой книге, выхода которой с нетерпением ожидало сообщество сторонников гибких методологий разработки программного обеспечения, описывается процесс подготовки требований к разрабатываемой системе, который позволяет экономить время, избавляет от необходимости в переделках и ведет к созданию более совершенных программ. Лучший способ создать программное обеспечение, максимально полно удовлетворяющее потребностям пользователей, – начать с пользовательских историй. Это простые, понятные и краткие описания функциональности, которая представляет деловую ценность для реальных пользователей. В книге приводятся подробные рекомендации относительно того, как следует писать пользовательские истории и включать их в жизненные циклы разработки проекта. Вы узнаете, что такое хорошие пользовательские истории и что делает истории плохими. Вы познакомитесь с практическими методами сбора историй, позволяющими добиться хороших результатов даже тогда, когда возможность непосредственного общения с пользователями отсутствует. Автор демонстрирует, как систематизировать подготовленные пользовательские истории, установить для них приоритеты и эффективно применять для решения задач планирования, разработки и тестирования программного обеспечения. • Моделирование пользовательских ролей. • Сбор историй: опрос пользователей, анкетный метод, наблюдение, собрания. • Работа с менеджерами, инструкторами, продавцами и другими представителями пользователей. • Написание пользовательских историй для приемочного тестирования. • Использование историй для ранжирования задач, составления графиков работ и оценки трудозатрат. • В конце каждой главы приводится список контрольных вопросов и упражнений для самопроверки. Книга будет полезна разработчикам, тестировщикам, аналитикам и менеджерам проектов, использующим любую гибкую методологию программного обеспечения: ХР, Scrum… и даже собственный гибкий подход.

Предметно-ориентированные языки программирования

Мартин Фаулер

При правильном выборе и применении предметно-ориентированные языки могут существенно упростить сложный код, обеспечить эффективное общение с пользователями, повысить производительность и устранить узкие места разработки. В этой книге известный эксперт в области программного обеспечения Мартин Фаулер предоставляет информацию, которая поможет определиться, следует ли использовать предметно-ориентированные языки для решения стоящих перед вами задач. Если окажется оправданным применение предметно-ориентированных языков, то вам пригодится вторая часть книги, в которой подробно, на конкретных примерах, описаны технологии, применяемые при создании таких языков. Данная книга, по сути, представляет две книги под одной обложкой. Фаулер начинает с обзора общих принципов и концепций, лежащих в основе предметно-ориентированных языков программирования. Читатели узнают, как работают предметно-ориентированные языки, как добиться, чтобы с пользовательским синтаксисом предметно-ориентированного языка было проще работать, чем с синтаксисом таких альтернатив, как XML. Затем автор переходит к подробному рассмотрению примеров, которые помогут разработчикам лучше понять, когда и как использовать ту или иную методику. Фаулер рассматривает как внутренние, так и внешние предметно-ориентированные языки, а также альтернативные вычислительные модели, генерацию кода и другие темы. Методы, описанные в данной книге, могут использоваться в большинстве современных объектно-ориентированных языков программирования. В основном примеры в книге написаны на Java и C#, но в некоторых из них использован язык Ruby. Все главы по возможности организованы в виде самодостаточных частей, а большинство справочных разделов – в знакомом читателю формате описания шаблонов программирования. Из этой книги разработчики получат достаточно информации для того, чтобы принять обоснованное решение об использовании предметно-ориентированных языков в своей работе, а также извлечь из их применения максимальную пользу. В книге освещены следующие темы. – Сравнение предметно-ориентированных языков с различными схемами и библиотеками, а также решение вопроса о достаточных альтернативах. – Применение синтаксических анализаторов и генераторов синтаксических анализаторов, синтаксический анализ внешних предметно-ориентированных языков. – Изучение, сравнение и выбор языковых конструкций предметно-ориентированных языков. – Применение генерации кода и сравнение стратегий генерации кода. – Языковые инструментальные средства для создания предметно-ориентированных языков.

Основы Scrum: практическое руководство по гибкой разработке ПО

Кеннет С. Рубин

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

Грокаем глубокое обучение

Эндрю Траск

Глубокое обучение – это раздел искусственного интеллекта, цель которого научить компьютеры обучаться с помощью нейронных сетей – технологии, созданной по образу и подобию человеческого мозга. Онлайн-переводчики, беспилотные автомобили, рекомендации по выбору товаров именно для вас и виртуальные голосовые помощники – вот лишь несколько достижений, которые стали возможны, благодаря глубокому обучению. «Грокаем глубокое обучение» научит конструировать нейронные сети с нуля! Эндрю Траск знакомит со всеми деталями и тонкостями этой нелегкой задачи. Python и библиотека NumPy способны научить ваши нейронные сети видеть и распознавать изображения, переводить любые тексты на все языки мира и даже писать не хуже Шекспира!