В этой книге, выхода которой с нетерпением ожидало сообщество сторонников гибких методологий разработки программного обеспечения, описывается процесс подготовки требований к разрабатываемой системе, который позволяет экономить время, избавляет от необходимости в переделках и ведет к созданию более совершенных программ. Лучший способ создать программное обеспечение, максимально полно удовлетворяющее потребностям пользователей, – начать с пользовательских историй. Это простые, понятные и краткие описания функциональности, которая представляет деловую ценность для реальных пользователей. В книге приводятся подробные рекомендации относительно того, как следует писать пользовательские истории и включать их в жизненные циклы разработки проекта. Вы узнаете, что такое хорошие пользовательские истории и что делает истории плохими. Вы познакомитесь с практическими методами сбора историй, позволяющими добиться хороших результатов даже тогда, когда возможность непосредственного общения с пользователями отсутствует. Автор демонстрирует, как систематизировать подготовленные пользовательские истории, установить для них приоритеты и эффективно применять для решения задач планирования, разработки и тестирования программного обеспечения. • Моделирование пользовательских ролей. • Сбор историй: опрос пользователей, анкетный метод, наблюдение, собрания. • Работа с менеджерами, инструкторами, продавцами и другими представителями пользователей. • Написание пользовательских историй для приемочного тестирования. • Использование историй для ранжирования задач, составления графиков работ и оценки трудозатрат. • В конце каждой главы приводится список контрольных вопросов и упражнений для самопроверки. Книга будет полезна разработчикам, тестировщикам, аналитикам и менеджерам проектов, использующим любую гибкую методологию программного обеспечения: ХР, Scrum… и даже собственный гибкий подход.
При правильном выборе и применении предметно-ориентированные языки могут существенно упростить сложный код, обеспечить эффективное общение с пользователями, повысить производительность и устранить узкие места разработки. В этой книге известный эксперт в области программного обеспечения Мартин Фаулер предоставляет информацию, которая поможет определиться, следует ли использовать предметно-ориентированные языки для решения стоящих перед вами задач. Если окажется оправданным применение предметно-ориентированных языков, то вам пригодится вторая часть книги, в которой подробно, на конкретных примерах, описаны технологии, применяемые при создании таких языков. Данная книга, по сути, представляет две книги под одной обложкой. Фаулер начинает с обзора общих принципов и концепций, лежащих в основе предметно-ориентированных языков программирования. Читатели узнают, как работают предметно-ориентированные языки, как добиться, чтобы с пользовательским синтаксисом предметно-ориентированного языка было проще работать, чем с синтаксисом таких альтернатив, как XML. Затем автор переходит к подробному рассмотрению примеров, которые помогут разработчикам лучше понять, когда и как использовать ту или иную методику. Фаулер рассматривает как внутренние, так и внешние предметно-ориентированные языки, а также альтернативные вычислительные модели, генерацию кода и другие темы. Методы, описанные в данной книге, могут использоваться в большинстве современных объектно-ориентированных языков программирования. В основном примеры в книге написаны на Java и C#, но в некоторых из них использован язык Ruby. Все главы по возможности организованы в виде самодостаточных частей, а большинство справочных разделов – в знакомом читателю формате описания шаблонов программирования. Из этой книги разработчики получат достаточно информации для того, чтобы принять обоснованное решение об использовании предметно-ориентированных языков в своей работе, а также извлечь из их применения максимальную пользу. В книге освещены следующие темы. – Сравнение предметно-ориентированных языков с различными схемами и библиотеками, а также решение вопроса о достаточных альтернативах. – Применение синтаксических анализаторов и генераторов синтаксических анализаторов, синтаксический анализ внешних предметно-ориентированных языков. – Изучение, сравнение и выбор языковых конструкций предметно-ориентированных языков. – Применение генерации кода и сравнение стратегий генерации кода. – Языковые инструментальные средства для создания предметно-ориентированных языков.
Если вы хотите разрабатывать по методике Scrum программные продукты, способные удовлетворить любого заказчика, то в этой книге вы обнаружите единый источник и исчерпывающее руководство по Scrum, которые вы так долго искали. Автор книги, ведущий специалист по обучению методике Scrum, раскрывает в ней основные ценности, принципы и нормы практики Scrum, а также описывает гибкие, проверенные временем подходы, которые помогут вам эффективно внедрить эту методику в своей практике. Книга поможет начинающим приобрести, а имеющим опыт работы по методике Scrum – уточнить и расширить свои знания этой методики на уровне команды разработчиков, продукта и портфеля заказов. Ее материал, основанный на богатом опыте автора, помогавшего многим организациям успешно внедрять Scrum, легко усваивается и подкрепляется многочисленными иллюстрациям, составленными на совершенно новом языке визуальных образов, красноречиво описывающем роли, артефакты и виды деятельности в Scrum. Книга снабжает каждого члена команды разработчиков, руководителя подразделения и организации общим представлением о Scrum, обширным словарем общепринятых терминов, которым они могут пользоваться, применяя методику Scrum в своей деятельности, а также практическими знаниями, позволяющими извлечь из нее максимальную пользу.
Шаблоны представляют собой одну из наиболее сильных сторон C++, но они все еще остаются недостаточно используемыми, а зачастую и неверно понимаемыми, несмотря на постоянно растущий уровень как языка C++, так и сообщества программистов на этом языке. Во втором издании книги три автора, являющиеся экспертами в данной области, показывают, зачем, когда и как использовать современные шаблоны, чтобы создавать программное обеспечение, более понятное, быстрое, эффективное и легко поддерживаемое. Данное издание описывает новые возможности стандартов C++11, C++14 и C++17 и демонстрирует последние достижения в области шаблонов C++ для создания широкого спектра приложений. Авторы подробно объясняют все новые возможности языка, которые улучшают шаблоны или взаимодействие с ними, рассматривая такие темы, как вариативные шаблоны, обобщенные лямбда-выражения, вывод аргументов шаблонов классов, конструкцию if времени компиляции, передаваемые ссылки и пользовательские литералы. Они также глубоко вникают в фундаментальные концепции языка (такие как категории значений) и полностью охватывают стандартные свойства типов. Книга начинается с основательного учебника, описывающего основные концепции и связанные с ними возможности языка программирования. Остальная часть книги служит всеобъемлющим справочником, уделяющим внимание как подробностям языка, так и методам кодирования, продвинутым технологиям и сложным идиомам программирования шаблонов C++. Множество примеров исходных текстов иллюстрируют абстрактные концепции и наилучшие практические подходы для получения от шаблонов C++ максимальной пользы. Точное понимание поведений шаблонов, позволяющее избежать распространенных ловушек Применение шаблонов для разработки более эффективного, гибкого и сопровождаемого программного обеспечения Изучение наиболее эффективных современных идиом и методов программирования Повторное использование кода без потерь производительности и безопасности Преимущества использования утилит стандартной библиотеки C++ для обобщенного программирования Предварительное знакомство с возможностями концептов в шаблонном программировании
Скотт Келби – всемирно известный автор книг по цифровой фотографии, главный редактор и соучредитель журнала Photoshop User, а также издатель нового журнала Light It. В своей новой книге Скотт описал весь процесс студийной съемки от начала до конца. Здесь приведена детальная информация о технике создания студийных фотографий, начиная со схемы освещения (включая все использованное оборудование) и съемки (включая настройки фотоаппарата и контактные листы фотосессий) и заканчивая важнейшим этапом, который не описан в большинстве книг по студийной съемке, – постобработкой и ретушированием изображений в Photoshop. В книге применяется новаторский подход к описанию схем освещения. Здесь нет ни эскизов, ни трехмерных моделей. Вместо этого схемы освещения предлагается изучать по фотографиям на всю страницу, которые были сделаны с верхней точки непосредственно в ходе съемки. В результате читатели смогут наглядно увидеть, где находятся модель и фотограф по отношению к источникам света и фону. Помимо этого, добавлены снимки, сделанные из-за спины фотографа и с других точек, что позволяет разглядеть съемочную площадку со всех сторон. Каждый год на своих семинарах Скотт Келби обучает тысячи профессиональных фотографов. В этой книге он впервые изложил свой невероятно популярный метод обучения. Теперь у каждого фотографа под рукой будет руководство по созданию студийных портретов, от которых заказчики придут в восторг. Пошаговое руководство по созданию наиболее востребованных схем освещения Съемка с применением минимального количества источников света Постановка света Параметры настройки фотоаппарата и источников света для каждого снимка Методы ретуширования фотографий, применяемые профессионалами для создания наиболее впечатляющих портретов Приемы ретуширования волос, глаз, губ, кожи и других мелких деталей, которые существенно влияют на внешний вид фотографии Создание эффекта высококонтрастного портрета без покупки дорогостоящих плагинов Профессиональные трюки, бесценные советы и специальные эффекты, которые позволят получать неотразимые снимки Помимо этого, Скотт Келби добавил в книгу отдельную главу, в которой рассказывается, как создавать аналогичные фотографии с помощью обычных внешних вспышек. Подобных книг еще не было на рынке!
Это новое издание классической «книги Дракона» полностью переработано и включает последние разработки в области компиляции. Книга предлагает читателю подробное введение в разработку компиляторов, после чего сосредоточивает внимание на применении методов компиляции для решения широкого круга задач проектирования и разработки программного обеспечения. Первая половина книги написана таким образом, чтобы ее можно было использовать в качестве учебника для начинающих, посвященного компиляторам, а вторая может использоваться как пособие по оптимизации кода для студентов старших курсов.
«Цель этой книги, написанной д-ром Джудит Бек, представителем нового поколения когнитивных терапевтов (которой довелось, будучи подростком, выслушивать мои многочисленные рассуждения на любимую тему), – предоставить четкое основание для практики когнитивной терапии. Несмотря на широкие возможности применения когнитивной терапии, в ее основе лежат одни и те же фундаментальные принципы, о которых и пойдет речь в данной работе – базовом руководстве для когнитивных терапевтов». из «Предисловия» Аарона Т. Бека «Удивительно подробное и четкое изложение принципов когнитивной терапии Аарона Бека, доработанной его дочерью и другими коллегами. Эта книга – авторитетное и полное руководство, в котором в творческой манере представлены основы когнитивной терапии». Альберт Эллис, д-р психологии «Работа Джудит Бек будет полезна как терапевтам, стремящимся разобраться в теории и практике когнитивной терапии, так и преподавателям и супервизорам. Зачастую термин когнитивная терапия применяют при каждой попытке помощи людям более реалистично толковать окружающий мир. Но когнитивная терапия гораздо сложнее и идея ее гораздо изящнее, нежели прямой призыв прекратить думать неправильно. Эта содержательная книга, написанная простым языком, поможет читателям разобраться в сути когнитивной терапии и ее практическом применении. С нетерпением жду возможности представить ее моим студентам». Джеральд С. Дависон, д-р психологии
В этом томе рассматриваются методы, позволяющие компьютерам эффективно работать с задачами гигантского размера. Рассматриваемый материал начинается с булевых функций и технологий и трюков работы с битами, затем всесторонне рассматривается генерация всех кортежей и перестановок, всех сочетаний и разбиений, и всех деревьев.
Во втором издании третьего тома содержится исчерпывающий обзор классических алгоритмов сортировки и поиска. Представленная в нем информация дополняет приведенное в первом томе обсуждение структур данных. Автор рассматривает принципы построения больших и малых баз данных, а также внутренней и внешней памяти.