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

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

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

Майк Кон

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

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

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

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

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

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

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

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

Эндрю Траск

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

Совершенный алгоритм. Графовые алгоритмы и структуры данных

Тим Рафгарден

Алгоритмы – это сердце и душа computer science. Без них не обойтись, они есть везде – от сетевой маршрутизации и расчетов по геномике до криптографии и машинного обучения. «Совершенный алгоритм» превратит вас в настоящего профи, который будет ставить задачи и мастерски их решать как в жизни, так и на собеседовании при приеме на работу в любую IT-компанию. Во второй книге Тим Рафгарден – гуру алгоритмов – расскажет о графовом поиске и его применении, алгоритме поиска кратчайшего пути, а также об использовании и реализации некоторых структур данных: куч, деревьев поиска, хеш-таблиц и фильтра Блума. Серия книг «Совершенный алгоритм» адресована тем у кого уже есть опыт программирования и основана на онлайн-курсах, которые регулярно проводятся с 2012 года. Вы перейдете на новый уровень, чтобы увидеть общую картину, разобраться в низкоуровневых концепциях и математических нюансах. Познакомиться с дополнительными материалами и видеороликами автора (на английском языке) можно на сайте www.algorithmsilluminated.org. Тим Рафгарден – профессор Computer Science и Management Science and Engineering в Стэнфордском университете. Он изучает связи между информатикой и экономикой и занимается задачами разработки, анализа, приложений и ограничений алгоритмов. Среди его многочисленных наград – премии Калай (2016), Гёделя (2012) и Грейс Мюррей Хоппер (2009).

Вероятностное программирование на Python: байесовский вывод и алгоритмы

Кэмерон Дэвидсон-Пайлон

Байесовские методы пугают формулами многих «айтишников», но без анализа статистики и вероятностей сейчас не обойтись. Кэмерон Дэвидсон-Пайлон рассказывает о байесовском методе с точки зрения программиста-практика, работающего с многофункциональным языком PyMC и библиотеками NumPy, SciPy и Matplotlib. Раскрывая роль байесовских выводов при А/В-тестировании, выявлении мошенничества и в других насущных задачах, вы не только легко разберетесь в этой нетривиальной теме, но и начнете применять полученные знания для достижения своих целей.

Разработка игр на Unreal Engine 4 за 24 часа

Арам Куксон

Всего за 24 урока, каждый продолжительностью 1 час или меньше, вы узнаете, как начать проектировать великолепные игры с помощью движка Unreal Engine 4 под Windows, Mac, PS4, Xbox One, iOS, Android, Linux, Интернета или для всех сразу! Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считаные часы вы научитесь создавать эффекты, использовать приемы скриптинга, реализовывать физику и даже вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные вами в предыдущих, создавая крепкий фундамент для успешной работы с реальными задачами.

Windows Mobile. Разработка приложений для КПК

Брюс Е. Крелль

Из этой книги вы узнаете, как можно создавать эффективные программы для КПК (карманных персональных компьютеров) на базе семейства операционных систем Windows Mobile. Вы найдете здесь библиотеки и инструменты, которые помогут заметно сократить время разработки проектов. На примере работающих программ продемонстрирована техника построения графических интерфейсов на маленьком экране Pocket PC. В издании рассмотрена архитектура Windows Mobile, работа с COM-объектами, проектирование многопоточных приложений и синхронизация, а также оптимизация и отладка программ и их компонентов.