|
|
Разработка и тестирование программного обеспечения
|
Объектно-ориентированное программирование — это фундамент современных языков программирования, включая C++, Java, C#, Visual Basic, .NET, Ruby и Objective-C. Кроме того, объекты лежат в основе многих веб-технологий, например JavaScript, Python и PHP. Объектно-ориентированное программирование обеспечивает правильные методики проектирования, переносимость кода и его повторное использование, однако для того, чтобы все это полностью понять, необходимо изменить свое мышление. Разработчики, являющиеся новичками в сфере объектно-ориентированного программирования, не должны поддаваться искушению перейти непосредственно к конкретному языку программирования (например, Objective-C, VB .NET, C++, C#, .NET или Java) или моделирования (например, UML), а вместо этого сначала уделить время освоению того, что автор книги Мэтт Вайсфельд называет объектно-ориентированным мышлением. Несмотря на то, что технологии программирования изменяются и эволюционируют с годами, объектно-ориентированные концепции остаются прежними — при этом неважно, какой именно является платформа. |
|
Немногие книги о компьютерах оказали такое заметное влияние на управление разработкой программного обеспечения, как «Человеческий фактор». Уникальное озарение этой книги, долгие годы сохранявшей свое положение в списке бестселлеров: самые сложные проблемы разработки ПО носят не технологический, а социальный характер. Эти человеческие проблемы решать не просто, однако, решив их, вы увеличите шансы на успех до верхнего предела. В третьем издании появилось шесть новых глав и внесены многочисленные правки в основной текст, так что теперь книга лучше соответствует современным средам разработки и современным проблемам. В частности, обсуждаются патологии лидерства, которые раньше за патологии не считались, эволюционирующая культура собраний, а еще растущее понимание того, что некоторые наши инструменты служат скорее якорями, а не двигателями. Каждый, кому необходимо управлять проектом по разработке ПО или целой организацией такого рода, найдет на страницах этой книги множество ценных советов. |
|
Эта книга — подробное руководство по разработке качественных требований к программному обеспечению. Здесь описаны десятки проверенных на практике приемов выявления, формулирования, разработки, проверки, утверждения и тестирования требований, которые помогут разработчикам, менеджерам и маркетологам создать эффективное ПО. Настоящее издание дополнено новыми приемами, посвященными разработке требований в проектах гибкой разработки (agile). Основная аудитория — бизнес-аналитики и разработчики, а также дизайнеры, программисты, тестировщики и другие члены команды, задача которых понять и удовлетворить чаяния клиентов, а также маркетологи, менеджеры по продуктам и менеджеры проекта, которые должны проникнуться «духом» и особенностями продукта, чтобы сделать его в полной мере конкурентоспособным. Книга состоит из 32 глав, 3 приложений и словаря терминов. |
|
В учебном пособии изложены как общие идеи и основы теории сжатия информации, так и практические методы с подробным описанием конкретных алгоритмов компрессии различных типов цифровых данных. Общие концепции описываются вполне строго и основываются на четких научных принципах. Все алгоритмы проиллюстрированы подробными примерами, снабжены таблицами, диаграммами и рисунками. В книге рассматриваются различные методы сжатия самой разнообразной информации: текстов, графических изображений, звука, анимации, оцифрованных аудио- и видео данных. В руководстве приводятся многие популярные стандарты и протоколы сжатия, такие как JPEG, MPEG, которые часто сопровождаются готовыми к употреблению текстами программ для системы MATLAB. Книга рассчитана на многочисленную аудиторию программистов и Web-дизайнеров, разработчиков телекоммуникационных и информационных систем. |
|
Основываясь на многолетнем опыте, эксперты Грегор Хоп и Бобби Вульф рекомендуют асинхронный обмен сообщениями в качестве оптимальной стратегии интеграции корпоративных приложений. Вместе с тем создание и развертывание решений, основанных на обмене сообщениями, представляет собой весьма непростую задачу для разработчиков. В книге Шаблоны интеграции корпоративных приложений рассматриваются шаблоны проектирования и приводятся практические примеры интеграции приложений, демонстрирующие преимущества обмена сообщениями и эффективность решений, создаваемых на основе этой технологии. Авторы подчеркивают как преимущества, так и недостатки обмена сообщениями, а также дают практические советы по созданию кода подключения приложения к системе обмена сообщениями, маршрутизации сообщений и мониторинга состояния. Если вы хотите научиться управлять системой обмена сообщениями и обеспечивать ее поддержку, а также осуществлять мониторинг, эта книга — для вас. Материал книги включает: • 65 шаблонов проектирования, использующихся при интеграции приложений • Список и графическое представление шаблонов, которые помогут описать крупномасштабные решения интеграции • Примеры использования технологий интеграции, таких как JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP и XSL • Практикум, демонстрирующий создание системы формирования цен на облигации • Описание новых стандартов и перспектив развития технологий интеграции корпоративных приложений • В книге отражен многолетний опыт более чем 60 ведущих специалистов в области шаблонов проектирования и рефакторинга. Независимо от того, где, кем и над чем вы работаете, эта книга позволит вам повысить свой уровень разработчика программных проектов и поможет в работе над конкретными проектами, указав, как наиболее эффективно и безопасно повысить их качество. |
|
С появлением микропроцессоров, обладающих большим числом ядер, понимание конкуренции и параллелизма при разработке программного обеспечения стало еще более важным, чем прежде. В книге вы познакомитесь с преимуществами функционального программирования с точки зрения конкуренции, узнаете, как применять акторы для разработки распределенного программного обеспечения, и исследуете приемы параллельной обработки огромных объемов информации на нескольких процессорах. Эта книга поможет вам приобрести новые навыки в разработке программ, благодаря чему вы будете готовы решать сложные задачи в ближайшие несколько лет. |
|
В этой книге вы не найдете описания конкретных технологий, алгоритмов и языков программирования – ценность ее не в этом. Она представляет собой сборник практических советов и рекомендаций, касающихся ситуаций, с которыми порой сталкивается любой разработчик: отсутствие мотивации, выбор приоритетов, психология программирования, отношения с руководством и коллегами и многих других. Подобные знания обычно приходят лишь в результате многолетнего опыта реальной работы. По большому счёту перед вами – ярко и увлекательно написанное руководство, которое поможет быстро сделать карьеру в индустрии разработки ПО любому, кто поставил себе такую цель. Конечно, опытные программисты могут найти некоторые идеи автора достаточно очевидными, но и для таких найдутся темы, которые позволят пересмотреть устоявшиеся взгляды и выйти на новый уровень мастерства. Для тех же, кто только в самом начале своего пути как разработчика, чтение данной книги, несомненно, откроет широчайшие перспективы. |
|
Хотите заглянуть внутрь черного ящика подсистемы оперативной памяти? Хотите научиться минимальными усилиями создавать эффективный программный код, исполняющийся вдвое-втрое быстрее обычного? Хотите использовать возможности современного оборудования на полную мощь? Тогда — вы не ошиблись в выборе книги! Перед вами уникальное практическое пособие по оптимизации программ под платформу IBM PC и операционные системы семейства Windows, скрупулезно описывающее архитектуру, философию и принципы функционирования оперативной и кэш-памяти. Это одна из тех редких книг, которая представляет переносимую оптимизацию на системном уровне и при этом практически не прибегает к ассемблеру. Здесь вы найдете и оригинальные приемы программирования, и недокументированные секреты, существование которых Intel и Microsoft хотели бы скрыть, и перечень типовых ошибок программистов, снижающих производительность системы, и вполне готовые к использованию решения. Для прикладных и системных программистов. |
|
Стив Макконнелл, автор бестселлера «Совершенный код», других книг и многочисленных статей о разработке ПО, убедительно показывает, что разработка ПО может быть стабильно успешной, если сделать совершеннее саму профессию разработчика ПО. Он не только показывает, почему и как отрасль пришла к своему современному состоянию, и описывает шаги, которые должен предпринять каждый, кто хочет подняться на новый уровень в создании ПО. Он также говорит о корпоративных методиках, призванных увеличить количество профессионально выполненных проектов, и о лицензировании организаций и академических учебных программ как о средстве повышения профессионализма и отдельных разработчиков, и в индустрии ПО в целом. |
|
Перед вами один из самых интересных учебников по машинному обучению — разделу искусственного интеллекта, изучающего методы построения моделей, способных обучаться, и алгоритмов для их построения. Автор воздал должное невероятному богатству предмета и не упустил из вида объединяющих принципов. Читатель с первых страниц погружается в машинное обучение в действии, но без не нужных на первых порах технических деталей. По мере изучения предмета тщательно подобранные примеры, сопровождаемые иллюстрациями, постепенно усложняются. В книге описан широкий круг логических, геометрических и статистических моделей, затрагиваются и такие находящиеся на переднем крае науки темы, как матричная факторизация и анализ РХП. Особое внимание уделено важнейшей роли признаков. Устоявшаяся терминология дополняется введением в рассмотрение новых полезных концепций. В конце каждой главы приводятся ссылки на дополнительную литературу с авторскими комментариями. Книга ясно написана и хорошо организована. Начав с основ, автор умело ведет читателя, знакомя его с полезными фактами и подробно описывая ряд методов машинного обучения. Приводится также псевдокод ключевых алгоритмов. Благодаря всему этому книга задает новый стандарт изучения такой сложной дисциплины как машинное обучение. |
|
Team Foundation Server — это инструмент управления жизненным циклом приложений (Application Lifecycle Management, ALM), который помогает в управлении и планировании всей работы, включая управление портфелем, управление всеми тестовыми случаями и проведение тестов. Взаимодействие с TFS осуществляется с использованием различных клиентов, таких как Microsoft Visual Studio, Microsoft Test Manager (MTM) и веб-портал. Эта книга научит вас настраивать TFS, используя массу точек настройки и расширения. Умение настраивать TFS — очень полезный и мощный навык. Применяя его, вы сэкономите массу времени своим пользователям, а также облегчите для них понимание данных в отчетах. Для пользователей со средним опытом, которые уже знакомы с TFS. |
|
Перед вами настольная книга для системных аналитиков, программистов, архитекторов программного обеспечения, менеджеров проектов и начальников отделов по разработке программ. Кроме того, книга будет полезным учебным пособием для преподавателей, студентов и аспирантов кафедр IT в технических вузах. Как воплотить неясные ожидания заказчика в блестящий и прибыльный проект? Как избежать ошибок на начальном этапе? Как стать эффективным аналитиком? Авторы отвечают на эти вопросы и делятся своими ноу-хау, которые позволят вам стать гуру в разработке программного обеспечения. Главное достоинство книги — ее практическая направленность. В ней собрана полезная информация со ссылками на теоретические материалы из разных областей разработки программного обеспечения: анализа, архитектуры, управления проектами, лидерства и управления персоналом — все, что понадобится в реальных производственных проектах. Помимо этого в книге содержится анализ разнообразных кейсов и ситуаций, а также примеры документов и шаблонов, необходимых для разработки ПО. Авторы структурируют огромный массив теоретической информации исходя из ее практической ценности на каждом этапе профессиональной карьеры. Книга написана простым и доступным языком. Авторы многие годы шли к высшему уровню профессионализма, а вас отделяет от тех же знаний только прочтение этой книги. |
|
Брайану Кернигану и Робу Пайку удалось придать своей книге Практика программирования ту же глубину и профессиональное качество, которые характеризуют их другую классическую совместную работу The Unix Programming Environment. Эта книга поможет любому — программисту сделать свой труд более производительным и эффективным. Практика программирования состоит не только из написания кода. Программисты должны также оценивать затраты и приобретения, выбирать между архитектурными альтернативами, отлаживать и тестировать код, оптимизировать быстродействие, дорабатывать и сопровождать программы, написанные ими же или их коллегами. Одновременно необходимо заботиться о совместимости, стабильности и надежности программ, при этом удовлетворяя стандартам и спецификациям. Практика программирования освещает все эти и другие темы. Книга содержит множество практических советов и реальных примеров на языках С, C++, Java и других. В ее главах подробно рассматриваются следующие вопросы: • отладка: как быстро найти ошибки • тестирование: как гарантировать правильную и надежную работу программы • быстродействие: как сделать программу быстрее и компактнее • переносимость: как сделать программу работоспособной одновременно во многих средах • проектирование: как найти компромисс между поставленными задачами и наложенными ограничениями, выбрав наилучшие алгоритмы и структуры данных • интерфейсы: как управлять взаимодействием компонентов с помощью механизмов абстрагирования и сокрытия информации • стиль: как писать код, который не только хорошо работает, но и понятен для чтения • системы обозначений: как правильно выбрать рабочие языки и программируемые оболочки, чтобы переложить большую часть работы на компьютер и систему Авторы вложили в эту книгу концентрированный опыт многих лет программирования, преподавания и совместной работы с коллегами. Всякий, кому приходится писать программы, почерпнет немало полезного из принципов и рекомендаций, приведенных в книге. |
|
Сделать карьеру программиста намного тяжелее, чем просто быть им. Специфического склада ума, умения мыслить абстрактно, развитой логики мало, главное — сознавать, что работа — это не только способ зарабатывания денег. Не так уж много людей соответствуют всем условиям, и именно об этом меньшинстве пойдет речь. Перед вами — сборник откровенных бесед с известными программистами, системными администраторами и другими «айтишниками». Герои книги исповедуют разные взгляды, относятся к разным социальным группам, могут оперировать миллионами долларов, быть героями гламурных тусовок или простыми офисными трудягами-программистами. Объединяет этих людей умение использовать свои увлеченность, страсть и любовь к профессии как рычаг, позволяющий достигнуть принципиально новых вершин в развитии себя и своего бизнеса. Мы постарались найти самых ярких «звезд» компьютерно-сетевой субкультуры и донести до вас максимально разнообразные мнения, дабы читатель, какие бы ни сложились у него личные вкусы, не скучал в этом пестром калейдоскопе персонажей. |
|
Независимо от инструмента, которым вы пользуетесь для разработки ПО, вам пригодятся шаблоны проектирования. Стабильность, безопасность и дружественный интерфейс – вот три важнейших слагаемых успеха вашего программного продукта. |
|
Всех программистов, которые добиваются успеха в мире разработки ПО, отличает один общий признак: они больше всего заботятся о качестве создаваемого программного обеспечения. Это — основа для них. Потому что они являются профессионалами своего дела. В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как «Дядюшка Боб»), автор бестселлера «Чистый код», рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и подходы для разработки «идеального ПО». Книга насыщена практическими советами в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования. Эта книга — больше, чем описание методов, она о профессиональном подходе к процессу разработки. |
|
«Тот, кто становится руководителем ИТ-подразделения, начинает своего рода «крестовый поход». У каждого свои собственные цели, но всех объединяет постоянное ощущение череды битв и краткосрочных стычек с пользователями, вечная нехватка времени и ресурсов и маневры элементов вверенной инфраструктуры. Каждый день становится испытанием веры, и только истинно преданный своему делу сможет идти по этому пути. Важно суметь пройти не просто в одиночку, а, собрав под свои знамена единомышленников, сколотить вокруг себя команду — своего рода духовно-рыцарский орден вроде тех, что возникли в средневековой Европе. В книге автор делится своим опытом, обретенным в этом походе. Простые слова и несложные формулы, ничего лишнего, что бы тяготило в бою и было сложно воспринимать. Издание будет полезно начальникам ИТ-подразделений, которые хотели бы более рационально и со смыслом проводить свои боевые будни.» |
|
Компьютерный мир сегодня находится в центре революции: мобильные клиенты и облачные вычисления являются сейчас доминирующей парадигмой в развитии программирования и аппаратных инноваций. Пятое оригинальное издание «Компьютерной архитектуры» фокусируется на этом существенном сдвиге. Ключевым моментом нового издания является значительно переработанная глава, посвященная параллелизму уровня данных, которая раскрывает тайну архитектур графических процессоров с помощью четких объяснений, используя традиционную терминологию архитектуры ЭВМ. В книге описывается, каким образом программное обеспечение и облачные технологии стали доступны для сотовых телефонов, планшетных компьютеров, ноутбуков и других мобильных устройств. Каждая глава включает в себя два реальных примера (один мобильный центр и один центр обработки данных), чтобы проиллюстрировать эти революционные изменения. Книга предназначена как для профессиональных инженеров и архитекторов, так и для тех, кто связан с преподаванием и изучением курсов современной архитектуры и проектирования компьютеров. |
|
Данное четвертое издание представляет собой результат существенного пересмотра известного во всем мире учебника по экспертным системам и разработке программного обеспечения с помощью инструментария языка экспертных систем CLIPS. Книга включает сведения, относящиеся к двум основным направлениям: в первой половине книги излагается теория экспертных систем и показано, какое место занимают экспертные системы во всем объеме компьютерных наук, а во второй приведены сведения по программированию с помощью языка CLIPS. Еще одним новым средством, описанным в данном издании, является объектно-ориентированный язык COOL. В начале книги содержится отдельное введение в тематику искусственного интеллекта, объем которого достаточен для изучения экспертных систем. Теоретический материал изложен на уровне, доступном для восприятия студентов старших курсов и аспирантов, интересующихся экспертными системами, которые специализируются в области компьютерных наук, информационных управленческих систем, в программотехнике и других областях. Книга может оказаться полезной для широкого круга читателей, желающих применить экспертные системы в своей работе. |
|
Любой программист — прежде всего, человек со своими достоинствами и недостатками. Но в то же время программист — это интеллектуал, человек, постоянно занятый решением задач, анализом требований, исправлением ошибок, взаимодействием с коллегами и заказчиками. Наконец, программист — это человек, регулярно испытывающий серьезный стресс, вынужденный укладываться в жесткие сроки и просто обязанный постоянно самосовершенствоваться как профессионал и человек. Эта книга содержит исчерпывающую информацию о том, что требуется для выстраивания успешной карьеры программиста, помогает IT-специалистам лучше понять свою профессию и коллег, всегда оставаться востребованным на рынке труда, целенаправленно и результативно развиваться, а также получать от любимой работы настоящую самоотдачу и подлинное удовольствие. |
|