Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 3 [Все]   Вниз
  Печать  
Автор Тема: Книжная полка разработчика систем со встроенными микропроцессорами  (Прочитано 156518 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« : 28-01-2011 07:19 » 

Не секрет, что при всем изобилии книг по программированию подавляющее большинство из них - просто хлам, не дающий читателю ни малейшего понятия о том, как на самом деле проектируются, реализуются и сопровождаются программы промышленного объема и промышленного уровня качества. Ситуация с литературой по программированию микропроцессоров и микроконтроллеров еще на порядок хуже - почти вся она сводится к передиранию описания системы команд МК из datasheet'а, после чего следует пара примитивных программ типа "помигать светодиодиком". Для самых начинающих, безусловно, это будет познавательно. Но что делать дальше, когда медитировать, глядя на мигающий светодиод, уже надоело? Увы, большинство книг на этом заканчивается.

Поэтому весьма ценным будет обмен столь дефицитной литературой по сабжу. Прочитали что-то стоящее - не сочтите за труд черкнуть несколько строчек в данной теме. Решили, что книга не стоит затраченного времени/денег - тоже напишите, чтобы другие не наступили на те же грабли.

Приводить здесь ссылки на скачивание сканов излишне - это не вполне законно, а взрослые люди сами знают, как их найти. В крайнем случае - вопросы в личку. Гораздо ценнее будет снабдить сообщение краткой аннотацией, которая позволит остальным определить лично для себя ценность данной книги.
« Последнее редактирование: 28-02-2011 13:41 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 28-01-2011 07:51 » 

Jack G. Ganssle.
The art of designing embedded systems.
Butterworth-Heinemann, 2000
ISBN 0-7506-9869-1



Перевод на русский не попадался. Имеется также второе издание, но я его пока не читал.

Книга написана человеком, которому действительно есть что сказать по предмету: на его счету более сотни промышленных разработок встроенных систем для самых разных областей, включая космическую и медицинскую технику, охранные системы (в том числе для Белого дома), приборы для навигации и научных исследований и многое другое. Кроме того, Джек - автор более 600 статей по программированию встроенных систем, а также занимается просветительской и педагогической деятельностью. Подробнее ознакомиться с его деятельностью можно здесь: http://www.ganssle.com/

Что касается самой книги: это не техническое описание конкретных моделей микропроцессоров, компиляторов, методик разработки и т.п. Скорее это критический взгляд на то, каким образом сегодня проектируются системы со встроенными микропроцессорами, выявление слабостей существующих стихийных традиций и реальные предложения по систематизации и рационализации процесса.

Большое внимание уделяется проблеме качества продукта, причем на всех уровнях: от стратегии разработки надежной системы до типичных промахов при проектировании и изготовлении устройства и практических советов по использованию приборов (осциллографа, логического анализатора и пр.) при поиске дефектов.

Отдельная глава посвящена организации работы в коллективе разработчиков.

По глубине философского взгляда на предмет я бы поставил эту книгу в один ряд с "Искусством схемотехники" Хоровица и Хилла и "Совершенным кодом" МакКоннелла. Для начинающих может показаться тяжеловатой, но на пути от чайника к профессионалу будет большим подспорьем.

* Ganssle.jpg (6.42 Кб - загружено 8125 раз.)
« Последнее редактирование: 28-02-2011 13:51 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 28-01-2011 13:12 » 

James W. Grenning.
Test Driven Development for Embedded C.
The Pragmatic Bookshelf, 2010.



Эта книга еще официально не издана, но уже можно получить бета-версию из издательства. В данный момент самой свежей является 10-я бета-версия. Автор обещал выпустить книгу осенью 2010-го, но еще не закончил работу.

Без всякого преувеличения книгу можно назвать уникальной. Шутка ли, автор учит объектному подходу к проектированию программ, которые впоследствии реализуются на языке C! В это невозможно поверить, пока сам не проследишь за каждым шагом фокуса и не убедишься, что все без обмана. Более того, автор еще и предлагает проектировать firmware при помощи технологии TDD (Test-Driven Design). В отношении языка C лично для меня это открытие, все прочитанные мною ранее учебники учат лишь синтаксису языка, обходя вниманием проектирование и реализацию программы.

Ну и чтобы окончательно перевернуть процесс проектирования firmware с головы на ноги, как ему и положено быть, автор показывает, как можно использовать тестовых дублеров в программах на C, после чего оказывается, что бОльшую часть кода можно тестировать на рабочем ПК, даже не прибегая к помощи симулятора микроконтроллера, не говоря уже об испытаниях на прототипе.

На мой взгляд, эта книга - лучшая из прочитанных мной до сих пор на тему проектирования firmware. Именно ее мне так не хватало для построения полной картины цикла проектирования встроенных систем от идеи до реализации. Рекомендую всем, кого интересует проблема качества встроенного ПО.

* jgade.jpg (19.56 Кб - загружено 8116 раз.)
« Последнее редактирование: 28-02-2011 13:52 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 29-01-2011 05:16 » 

Mike Mason.
Pragmatic Version Control using Subversion (2nd edition).
The Pragmatic Programmers LLC, 2006.
ISBN 0-9776166-5-7



Строго говоря, эта книга не является ориентированной именно на проектирование встроенных систем. Но, с другой стороны, такое проектирование нуждается в качественном управлении версиями ничуть не меньше, чем проектирование софта для "больших" компьютеров, а то и больше: ведь помимо программного кода во встроенном проекте присутствуют и другие артефакты (принципиальные схемы, фотошаблоны печатных плат, чертежи несущих конструкций, сборочные чертежи и многое другое), которые не менее интенсивно, чем код, меняются в ходе проекта. К тому же многие разработчики встроенных систем получали образование в области разработки/конструирования радиоэлектронной аппаратуры (или же вовсе получали его в те времена, когда о дисциплине управления версиями еще и не слышали) и не имеют понятия о предмете.

Как и другие книги серии Pragmatic, эта написана профессионалами для профессионалов, а значит, чрезвычайно прагматична. Это значит, что содержание книги не сводится к справочнику по командам и опциям SVN. Вместо этого дается достаточно полная картина роли, которую играет VCS в общем и SVN в частности в общем процессе проектирования. Приведены практические рекомендации по рациональной организации структуры каталогов проекта, а также множество идиом и паттернов управления версиями.

Рекомендую книгу  как тем, кто только созрел до идеи управления версиями своих проектов и нуждается в практических рекомендациях, так и тем, кто уже освоил основные команды SVN, но еще не уловил самой сути этого инструмента и использует его как замену backup'а для файлов проекта, тем самым забивая микроскопом гвозди.

P.S. Кроме этой книги, в серии Pragmatic имеются также выпуски, посвященные управлению версиями в CVS и Git. По их поводу ничего не могу сказать, поскольку не пользуюсь этими инструментами, но заинтересованным рекомендую обратить внимание. Думаю, не разочаруетесь.

* svn2.jpg (26.71 Кб - загружено 8072 раз.)
« Последнее редактирование: 19-08-2011 06:46 от RXL » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 29-01-2011 15:14 » 

Бонни Бэйкер.
Что нужно знать цифровому разработчику об аналоговой электронике.
М.: "Додека-XXI", 2010.
ISBN 978-5-94120-170-9



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

По стилю изложения я бы сравнил эту книгу со знаменитым "Искусством схемотехники" Хоровица и Хилла, которое уже стало эталоном: материал изложен достаточно строго, позволяя учитывать все нюансы происходящих в схеме процессов, и в то же время не перегружен заумными формулами, которые все равно невозможно использовать на практике из-за значительного разброса параметров серийных компонентов. Основное внимание уделено подробному анализу причин, по которым реальная схема отличается от идеальной, и способов приблизиться к желаемому идеалу достаточно близко.

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

* baker.jpg (14.25 Кб - загружено 7993 раз.)
« Последнее редактирование: 28-02-2011 13:52 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 29-01-2011 19:40 » 

Joe Pardue.
C Programming for Microcontrollers. Featuring ATMEL’s AVR Butterfly and the Free WinAVR Compiler.
Smiley Micros.
ISBN 0-9766822-0-6



Книга может представлять интерес для новичков, делающих первые шаги в освоении популярных 8-разрядных микроконтроллеров семейства AVR фирмы Atmel, а особенно для тех из новичков, кто обзавелся девайсом под названием Butterfly.

В целом материал примерно так же незатейлив и уныл, как и сам девайс, и представляет некое подобие подборки примитивных лабораторных работ для нерадивых учеников (вроде обитателей раздела "Срочно пАмАгите!!!"), которые сводятся к загрузке готового кода в готовый девайс и созерцанию результата. Вся самостоятельная работа состоит в соединении нескольких проводков и деталек на плате для быстрого макетирования. Кроме того, дается немного теории, но совсем по верхам.

Чтение данной книги специалистами - пустая трата времени.

* Pardue.jpg (19.54 Кб - загружено 8056 раз.)
« Последнее редактирование: 28-02-2011 13:52 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 17-02-2011 23:33 » 

Шевкопляс Б.В.
Микропроцессорные структуры. Инженерные решения.
2-е изд.
М.: "Радио и связь", 1990
ISBN 5-256-00460-3



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

Впервые открыв эту книгу, я ощутил смутное ощущение дежа-вю. Припомнилось, что за несколько лет до этого (разгул позднего социализма) мой научный руководитель был приглашен на закрытые курсы повышения квалификации под эгидой Министерства электронной промышленности, одного из наиболее могущественных в советские времена. Каким-то образом ему удалось вывезти оттуда контрабандой ксерокопию экземпляра преподавательских конспектов с грифом "для служебного пользования", хотя это, мягко говоря, настоятельно не поощрялось. Аксакалы еще должны помнить печально известное качество отечественного копировального оборудования. Копия была сделана на рулоне разграфленной для самописца бумаги (самое подходящее из того, что шефу удалось урвать на месте) и имела весьма неважное качество. Но это все второстепенные детали - вчитавшись, оторваться было уже невозможно.

После того, как я присягнул на этом самом рулоне (Библия в те годы еще не вошла в моду), что не отдам его в чужие руки, буду беречь, как зеницу ока, и верну точно в указанный срок, я получил заветный свиток в свое распоряжение. Хотя сроки и поджимали, я успел проштудировать его несколько раз и довольно неплохо в нем ориентировался.

Велико же было мое удивление, когда, раскрыв эту книгу, я увидел давно знакомые схемы. Имя автора курса я к тому времени запамятовал, но содержимое красноречиво говорило само за себя.

Не думаю, что книгу можно рекомендовать всем без разбора. Тем, кто считает, что булки микросхемы растут на деревьях, она может показаться скучноватьй и даже архаичной. Ее аудитория - не те, кто спрашивает, к примеру, где взять микросхему кодека Manchester-II, а тем, кому интересно, как устроен и как работает кодек Manchester-II.

Если попытаться найти для данной книги ближайшую аналогию, то я выбрал бы, безусловно, "Паттерны проектирования" "банды четырех". Это примерно такие же паттерны, но только в области аппаратных решений: столь же строгие, лаконичные и завершенные схемные решения, которым можно найти множество применений.

* Шевкопляс.gif (5.29 Кб - загружено 7958 раз.)
« Последнее редактирование: 28-02-2011 13:52 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 18-02-2011 09:14 » 

Евстифеев А.В.
Микроконтроллеры AVR семейства Classic фирмы ATMEL.
Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL.
Микроконтроллеры AVR семейства Tiny.
Микроконтроллеры AVR семейства Mega.
Изд. Додэка XXI
Год издания и ISBN не указываю, поскольку книги периодически переиздаются.



Это семейство книг представляет собой фактически компиляцию фирменной документации ATMEL по различным семействам 8-разрядных микроконтроллеров AVR. Излагаются общие по всему семейству данные, а также оговариваются особенности некоторых моделей, когда они существенны.

В принципе могут оказаться полезным для ленивых, которых пугают объемы оригинальной документации, или для тех, кто испытывает трудности с техническим английским. Никакой уникальной информации, заслуживающей внимания, я в них не обнаружил. Книги в целом не хорошие и не плохие - придраться вроде не к чему, но и хвалить не за что. В целом всю серию я отнес бы к разряду книг, которых могло бы и не быть без особого ущерба для читателей.

* Classic.jpg (22.88 Кб - загружено 7878 раз.)
* TinyMega.jpg (24.14 Кб - загружено 7933 раз.)
* Tiny.jpg (22.04 Кб - загружено 7930 раз.)
* Mega.jpg (27.19 Кб - загружено 7887 раз.)
« Последнее редактирование: 28-02-2011 13:53 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 28-02-2011 13:39 » 

Arnold S. Berger
Embedded Systems Design: An Introduction to Processes, Tools, and Techniques
CMP Books © 2002
ISBN: 1-57820-073-3



Полная противоположность книгам, упомянутым в предыдущем посте.
Автор обладает буквально энциклопедическими знаниями по предмету. Он поработал в промышленности, занимаясь инструментальными средствами разработки. Он имеет большой педагогический опыт, полученный во время преподавания в университете Вашингтона, причем для самой широкой аудитории - от студентов младших курсов до инженеров со стажем, решивших повысить свою квалификацию в области разработки встроенных систем. Весь этот опыт самым благоприятным образом сказался на содержании книги.
Книга дает представление о самых разных аспектах жизненного цикла встроенных систем от задания на разработку до сопровождения готовых изделий:
  • обоснованный выбор платформы для реализации проекта;
  • решение о разделении функций между аппаратниыми и программными компонентами системы;
  • выбор инструментальных средств поддержки разработки как аппаратной, так и программной части, а также их рациональное использование;
  • использование внутрисхемной эмуляции;
  • тестирование на всех этапах разработки.
Приведены многочисленные примеры различных проблемных ситуаций при разработке, с которыми довелось столкнуться автору, и способы решения этих проблем. Даны практические советы по эффективному использованию конкретных инструментов (осциллограф, логический анализатор, внутрисхемный эмулятор, встроенные в кристалл отладочные средства) для тестирования и отладки встроенных систем.
Автор описывает неудачные проектные решения из реальных устойств, которые затрудняли (или даже делали практически невозможным)применение отладочных инструментов, и дает рекомендации, как избежать таких ошибок. Он акцентирует внимание на том, что возможность эффективной отладки может и должна закладываться при проектировании устройства, и дает рецепты, как достичь этой цели.
Несмотря на то, что со времени выхода книги прошло почти 10 лет, она никоим образом не утратила актуальность, поскольку не содержит справочных данных по конкретной элементной базе, а ее философия не устареет еще долго.
Единственный, на мой взгляд, недостаток книги заключается в том, что тема тестирования раскрыта несколько поверхностно, а рекомендации приведены самые общие. Впрочем, возможно, я просто придираюсь, учитывая мой повышенный интерес именно к этой области.
Настоятельно рекомендую эту книгу как профессионалам, так и (особенно) стремящимся стать таковыми.

* Berger.jpg (17.31 Кб - загружено 7931 раз.)
« Последнее редактирование: 28-02-2011 13:53 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 01-03-2011 13:46 » 

Майкл К. Физерс.
Эффективная работа с унаследованным кодом.
"Вильямс", 2009.
ISBN 978-5-8459-1530-6



Строго говоря, эту книгу нельзя отнести к числу специализированных по тематике раздела, она может оказаться полезной любому практикующему программисту. С другой стороны, ПО  встроенных систем - это такое же ПО, как и любое другое, только зачастую с более жесткими требованиями, налагаемыми условиями работы в реальном времени (надежность, производительность, компактность и т.д.). Поэтому оно подвержено тем же болезням, только подчас в еще более тяжелой форме.
Каждый, кто пытается быть в курсе последних веяний в области программной инженерии, знает, что по-хорошему писать тесты следует до написания кода; что даже если этому правилу не всегда удается неукоснительно следовать, то по крайней мере нужно стремиться к максимальному покрытию кода тестами; что при каждом изменении кода, даже на первый взгляд незначительном, желательно запустить как можно более полный набор модульных тестов (регрессионное тестирование); что периодически нужно прислушиваться к "запахам" кода и при первых симптомах производить рефакторинг...
Впрочем, эти прописные истины можно сравнить с призывом переходить дорогу по "зебре" на зеленый свет или бросать мусор только в урну: это знают практически все, но все ли выполняют? Причем даже те, кто следуют им не укоснительно, не застрахованы от ситуации, что в один далеко не прекрасный момент им вручат написанный другим умельцем довольно неряшливый исходник и попросят изменить или добавить какую-то функцию. Модульные тесты в проекте не предусмотрены (они ведь требуют лишних усилий и времени), документации нет по той же причине - в исходниках и так все написано. Вопреки здравому смыслу это чудо все же работает, но трогать его боязно, ибо за заплатками и подпорками не видно начального замысла.
Если вы оказались в такой ситуации, примите мои "поздравления": вы по горло в... "унаследованном коде", именно таким нейтральным словом сегодня принято называть подобные продукты в приличном обществе. И эта книга может стать для вас спасательным кругом, ибо она учит выживать и даже добиваться успеха в подобных случаях.
По стилю изложения книга напоминает знаменитый "Рефакторинг" Фаулера: автор классифицирует типичные проблемы ("запахи") плохого кода, обсуждает способы их решения и в заключение дает краткий рецепт, расписанный по шагам. Разумеется, учитывается специфика работы с унаследованным кодом: когда это возможно, "задним числом" дописываются необходимые тесты, которые помогают более уверенно вносить изменения в код. Там, где это затруднительно, предлагаются наименее рискованные методы рефакторинга без последующего регрессионного тестирования.
К недостаткам книги я бы отнес излишнюю громоздкость и детальность примеров. Слишком часто приходится вникать в малоинтересные читателю детали чужих задач, пытаясь выделить суть на фоне этих помех. Пожалуй, придуманные рафинированные примеры были бы легче для понимания, чем фрагменты реального кода.
Несмотря на это, книга в целом заслуживает самой высокой оценки.

* Feathers.jpg (15.68 Кб - загружено 7828 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 30-03-2011 09:10 » 

Роберт Гласс.
Факты и заблуждения профессионального программирования.
"Символ", 2008.
ISBN 13: 978-5-93286-092-2
ISBN 10: 5-93286-092-8



55 фактов и 10 распространенных заблуждений, касающиеся всех стадий жизненного процесса ПО - от сбора требований до сопровождения и прекращения эксплуатации.

По насыщенности фактами из реальной жизни данную книгу можно сравнить разве что с "Мифическим человеко-месяцем" Брукса, а по объективности и беспощадности критики - с работами Дейкстры ("Как быть, если правда колет глаза" и пр.). Автор перечисляет наиболее злободневные с его точки зрения проблемы программной инженерии, но при этом не предлагает готовых решений (которые, впрочем, не во всех случаях известны).

Автор в процессе критики не испытывает ни малейшего трепета перед признанными авторитетами и брэндами (впрочем, он и сам - немалый авторитет и брэнд в одном лице). Громкие имена и складные рекламные слоганы не имеют значения, если предлагаемые ими пути никуда не ведут. Если внешне складная теория не согласуется с фактами - тем хуже для теории.

Книга обязательна к прочтению всеми, кто играет (или надеется играть в обозримом будущем) значительную роль в коллективе разработчиков ПО как менеджер или ведущий специалист.

* Facts_and_Fallacies.jpg (18.88 Кб - загружено 7857 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 06-04-2011 12:39 » 

Роберт Мартин.
Чистый код: создание, анализ и рефакторинг.
СПб.: Питер, 2010.
ISBN 978-5-49807-381-1



Что следует понимать под "чистым кодом"? Разумеется, код, свободный от разного рода загрязнений. Разновидностей загрязнений очень много, и большинство из них можно распознать и вычистить по методикам, которые приводятся в книге. Эти рекомендации вовсе не носят абстрактный характер, совсем наоборот: автор берет фрагменты известных проектов с открытым кодом и показывает, сколько грязи порой кроется даже в популярных приложениях, созданных признанными мастерами, и какой чистоты кода можно добиться, приложив некоторые усилия для этого.
Что делать, чтобы добиться чистоты кода? У скаутов есть правило, которое они обязаны безукоризненно соблюдать: "Оставь место стоянки чище, чем оно было до твоего прихода". Хороший программист должен придерживаться этого правила в отношении кода, над которым он работает, постоянно находя шероховатости в нем и полируя его до блеска. Довод "зато работает", часто приводимый в защиту небрежно слепленного приложения, нельзя считать убедительным. Даже если кажется, что оно работает сию секунду, вполне вероятно, что завтра ситуация ухудшится: либо обнаружится ошибка, которую нужно срочно исправить, либо изменятся бизнес-требования, и эти изменения должны воплотиться в изменениях кода. А исправления и изменения куда приятнее и продуктивнее вносить в чистый код.
Некоторые главы написаны приглашенными авторами, некоторые из которых (Майкл Физерс, Джеймс Гренинг) уже знакомы нам по предыдущим обзорам. Поэтому материал порой повторяется, возникает ощущение дежа-вю. Впрочем, дельная мысль от повторения не теряет ценности.
Безусловно, книга обязательна для прочтения профессионалами. Я бы рекомендовал читать ее после "Совершенного кода" МакКоннелла, поскольку многие темы перекрываются, но в данной книге они раскрыты глубже.

* Martin.jpg (28.56 Кб - загружено 7845 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 11-04-2011 13:48 » 

Джон Влиссидес.
Применение шаблонов проектирования. Дополнительные штрихи.
М.: Издательский дом "Вильямс", 2003.
ISBN 5-8459-0393-9



Полагаю, трудно найти программиста, который если и не проштудировал с карандашом, то хотя бы не полистал известное творение "банды четырех" под названием "Паттерны проектирования". Это золотой фонд литературы по программированию.
К сожалению, довольно трудно научиться использовать паттерны, ограничившись чтением лишь этой книги. Примерно так же трудно, как получить общее образование, читая "Большую Советскую Энциклопедию"; или научиться объектно-ориентированному программированию, используя руководство Страуструпа по C++. Все-таки справочник имеет другое назначение.
Книга Влиссидеса гораздо больше подходит на роль учебника по использованию паттернов проектирования на практике. Фактически это мастер-класс, который наглядно показывает, как выбирать и как использовать уже знакомые нам по книге GoF паттерны для решения прикладных задач. Особая ценность книги, на мой взгляд, состоит в том, что паттерны представлены не поодиночке, как в справочнике, а во взаимодействии, как это обычно бывает на практике.
Представлены также несколько паттернов, по разным причинам не вошедших в справочник GoF. Во время издания справочника они либо были сыроваты, либо авторы посчитали их недостаточно общими. Впрочем, паттерны лишними не бывают, и не исключено, что какой-то из них придется ко двору в проектах читателей.
Завершают книгу "семь правил успеха" разработчика паттернов. Возможно, не каждому судьбой предначертано создать собственный паттерн, но почитать их в любом случае интересно, ведь в них сконцентрирован опыт "банды".
Рекомендую всем, кто оценил значимость паттернов, но не слишком уверенно чувствует себя при их применении.

* Vlissides.jpg (17.96 Кб - загружено 7762 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 12-04-2011 09:46 » 

Белов А.В.
Самоучитель разработчика устройств на микроконтроллерах AVR.
СПб.:Наука и техника, 2008.
ISBN 978-5-94387-363-8



Давненько в нашем обзоре не было книг для начинающих. Исправляю это упущение.
Книга относится к самому начальному уровню, но при этом написана довольно добротно. В отличие от комплекта книг, описанного в посте  7, это не перевод материалов, передранных с сайта разработчика, а действительно учебник, по которому можно чему-то научиться. Причем учебник вполне самодостаточный: начинается он с описания двоичной системы счисления и элементарной логики, затем даются основы цифровой электроники, и лишь затем автор приступает к основному материалу. Начинающие могут читать его подряд, не прибегая к другим источникам информации.
К особенным достоинствам учебника я бы отнес то, что автор дает примеры решения одной и той же задачи дважды - на ассемблере и языке C. Это дает читателю возможность самому составить собственное мнение о достоинствах и недостатках каждого из подходов, а не полагаться на мнения многочисленных самопровозглашенных гуру, которыми переполнены форумы соответствующей тематики.
Итак, если у вас чешутся руки научиться работать с микроконтроллерами, но вы никак не решитесь сделать первый шаг, не зная, с чего начать, рекомендую раскрыть эту книгу. Безусловно, перевернув последнюю страницу, вы не станете экспертом в данной теме, но толчок для движения в нужном направлении вы определенно получите. Ну а в дальнейшем самосовершенствовании помогут другие хорошие книги, которые уже есть (и еще будут) в данном разделе.

* Belov.jpg (27.88 Кб - загружено 7733 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 12-05-2011 07:46 » 

Леффингуэлл Д., Уидриг Д.
Принципы работы с требованиями к программному обеспечению. Унифицированный подход.
"Вильямс", 2002.
ISBN 5-8459-0275-4



Очевидно, что успех ожидает программу в том случае, если она выполняет то, что хочет от нее пользователь (впрочем, эта банальная истина простирается далеко за пределы области разработки ПО). Из этого непосредственно следует, что перед разработкой нового продукта следует как можно тщательнее разобраться с пожеланиями его будущих потребителей. Именно поэтому работа с пользовательскими требованиями является одной из важнейших частей процесса разработки. Точнее, по логике должна являться. Но так ли это в реальности? Многие ли разработчики способны побороть искушение поскорее начать писать код, не успев толком дослушать пожелания заказчика? И многие ли из тех, кто в принципе осознали важность работы с требованиями, представляют себе, как это реально делается? Мой личный опыт общения с разработчиками, как непосредственный, так и при помощи различных форумов и других средств коммуникации, вынуждает дать ответ "нет" на оба эти вопроса.
О работе с требованиями выпущено уже немало книг. К сожалению, слишком многие из них практически бесполезны. В них муссируются очевидные и интуитивно понятные истины: как среди будущих пользователей будущего продукта выбрать наиболее подходящих для совместной конструктивной работы, как лучше взаимодействовать с ними, как постараться "вытащить" из них важные детали, о которых они умалчивают, и так далее. Но ценность любой работы определяется ее конечным результатом. Если в итоге мы получаем многословное пространное собрание требований к системе с точки зрения различных пользователей, ценность такого документа невелика: работа с ним отнимет у разработчика много времени даже при условии, что требования стабильны; если же они еще и изменчивы, как это обычно бывает, ценность документа стремится к нулю: даже если аналитики успевают вовремя его модифицировать, разработчики вряд ли смогут постоянно его перечитывать в попытках найти изменения.
Часть проблем решается путем формализации. Например, стандарт IEEE STD 830 предлагает несколько вариантов оформления спецификации требований к ПО, что позволяет автору спецификации сосредоточиться на содержании документа, не тратя время на изобретение его формата, а читателям, привыкшим к такой структуре, легко ориентироваться в документе. Однако мало знать, что должно получиться в итоге; желательно знать также, каким образом это можно получить. В этом отношении полезность данной книги трудно переоценить.
Авторы используют современный подход к документированию требований, основанный на нотации UML. Эта нотация достаточно компактна и в то же время выразительна, работать с ней значительно проще, чем с обычными словесными описаниями. Предложенный авторами пакет Modern SRS весьма удачно дополняет IEEE STD 830. В его основе лежит модель прецедентов, соответствующих основным функциональным требованиям, дополненная вспомогательными диаграммами, уточняющими детали.
Большое внимание уделено проблеме трассировки требований. Авторы демонстрируют сначала трудности трассировки вручную, которые делают этот процесс чрезвычайно трудоемким, а затем способы автоматизации посредством наиболее популярных инструментов от Borland и Rational.
Рекомендую книгу всем, кто стремится организовать процесс разработки качественного ПО, в особенности тем, в чьих интересах построить работу в соответствии со стандартами семейства ISO 9000 и даже CMM.

* Leffingwell.bmp (97.6 Кб - загружено 7872 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 17-05-2011 09:37 » 

James W. Grenning.
Test Driven Development for Embedded C.
The Pragmatic Bookshelf, 2010.



Эта книга еще официально не издана, но уже можно получить бета-версию из издательства. В данный момент самой свежей является 10-я бета-версия. Автор обещал выпустить книгу осенью 2010-го, но еще не закончил работу.

В апреле 2011 года эта замечательная книга наконец-то увидела свет. Выпущена финальная электронная версия, отправлена в печать бумажная.

Новые выходные данные: ISBN-10: 1-934356-62-X, ISBN-13: 978-1-934356-62-3
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 30-05-2011 14:46 » 

Эрик Эванс.
Предметно-ориентированное проектирование (DDD): структуризация сложных программных систем.
М.: ООО "И.Д. Вильямс", 2011.
ISBN 978-5-8459-1597-9 (рус.)



Несмотря на то, что аббревиатура DDD (Domain-Driven Design, предметно-ориентированное программирование) уже не первый год знакома тем, кто внимательно следит за развитием технологий программирования, эта парадигма до сих пор не получила такого распространения, которого она по праву заслуживает. (Впрочем, консервативность и неспешность в мире software, особенно заметные на фоне стремительного прогресса hardware, - предмет отдельного разговора). Поэтому каждая книга на данную тему представляет ценность, особенно такая добротная, как эта.
DDD стала неотъемлемой частью "гибких" (Agile) технологий программирования, и по степени влияния на разработку я могу сравнить ее разве что с TDD. Основной акцент в DDD делается на моделирование предметной области с последующей эволюцией этой модели в архитектуру приложения. В качестве основного инструмента для такого моделирования рассматривается UML, которому в данный момент просто нет альтернатив по выразительности, а в качестве средства воплощения модели в код - парадигма ООП. Впрочем, автор не зацикливается исключительно на этих средствах и наглядно демонстрирует, как они могут комбинироваться с другими, например, диаграммами потоков данных, процедурным и функциональным программированием и т.д.
Эванс рассматривает вроде бы давно знакомые проблемы, но как бы с высоты птичьего полета, отчего мелкие детали становятся неразличимы, зато вся картина в целом проясняется на более высоком уровне. Если речь заходит о паттернах, то это не те, давно знакомые паттерны GoF и им подобные, а более масштабные; если обсуждается рефакторинг, то не тот, о котором писал Фаулер, а затрагивающий модель в целом. И так во всем, ведь область применения DDD - это в первую очередь стратегия.
Следует отметить, что не весь материал книги представляет непосредственный интерес для разработчиков встроенных систем. Некоторые аспекты относятся исключительно к проектированию архитектуры "многослойных" приложений корпоративного уровня. А впрочем, как знать, ведь стремительный прогресс микроэлектроники ведет к тому, что возможности сегодняшних микроконтроллеров превосходят характеристики персональных компьютеров, а то и серверов недавнего прошлого, и не удивлюсь, если в ближайшее время появятся "многослойные" архитектуры firmware...
Ну и в заключение пара цитат признанных авторитетов по поводу данной книги:

Цитата
"Если вам кажется, что ваша ставка на объектно-ориентированное программирование не окупает себя, то из этой книги вы узнаете, чего же вам не хватает." — Уорд Каннингем

Цитата
"Эта книга должна стоять на полке у каждого мыслящего программиста". — Кент Бек

P.S. Если кто-то из неимеющих эту книгу на своей полке почувствует себя уязвленным последней цитатой, убедительнейшая просьба писать лично Беку и не засорять данную тему.

* Evans.jpg (15.49 Кб - загружено 7523 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 24-06-2011 06:59 » 

Mark VanderVoord.
Embedded Testing with Unity and CMock.
This Book is Released Under Creative Commons Attribution-Noncommerical-Share Alike 3.0.



Эта замечательная книга невелика по объему (всего 44 страницы, часть которых к тому же занята забавными иллюстрациями), зато по объему втиснутых в нее знаний превосходит многие увеститые тома, упомянутые в моих обзорах.
Как видно из названия, предмет данной книги - использование двух не слишком известных, но крайне необходимых разработчикам систем со встроенными микропроцессорами инструментов: Unity и CMock.
Unity - это очень компактная и простая в использовании среда модульного тестирования, реализованная на стандартном ANSI C и как следствие обладающая замечательной портабельностью. Эти свойства делают Unity воистину универсальным инструментом: ее можно использовать на компьютере разработки (например, в среде GCC или MS Visual Studio), выполнять тесты на симуляторе (я успешно делал это в средах VMLAB и Proteus для микроконтроллеров Atmel AVR семейства Mega) или даже на целевом микроконтроллере на отладочной плате или самом устройстве, если они обладают возможностью вывода текстовой информации. Пожалуй, это лучшая среда модульного тестирования на C из тех, которые мне доводилось пробовать.
CMock - это также компактный и довольно простой фреймворк для автоматизированного построения мок-объектов, необходимых для полноценного модульного тестирования программ на С. Как и в случае Unity, простота и компактность достигнуты отнюдь не в ущерб функциональности. К сожалению, мне не с чем сравнивать CMock, поскольку это единственный продукт подобного рода из тех, с которыми мне доводилось иметь дело, но он меня ни разу не разочаровал.
Книга написана весьма оригинальным стилем - в виде шуточной истории про некоего очередного злодея, решившего поработить Вселенную при помощи своего супермегадевайса. Разумеется, на его пути стоят супергерои-спасители, поэтому злодей вынужден проектировать свой гаджет максимально надежным, работоспособным в любых условиях. До него быстро доходит, что эта цель недостижима без тщательного тестирования, поэтому он шаг за шагом постигает премудрости Unity и CMock и тут же использует их на практике.
Но занимательно - не значит непременно несерьезно (точно так же, как излишняя строгость изложения - не обязательно признак глубины мысли). Тщательно проштудировав фрагменты приведенного в книге кода, можно многое понять и многому научиться.
Автор книги является также одним из соавторов описываемых им инструментов (которые, кстати говоря, доступны бесплатно и с открытым кодом). Он также весьма открытый и приятный в общении человек (к сожалению, у меня не было возможности для личного общения, только по переписке). Он является сотрудником уже известной нам (точнее, тем из нас, кто читал мои переводы статей по разработке firmware) фирмы Atomic Objects.
В своем рейтинге ставлю данную книгу на самую вершину.

* VanderVoord.jpg (56.29 Кб - загружено 7467 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #18 : 28-06-2011 13:10 » 

Питер Гудлиф.
Ремесло программиста. Практика написания хорошего кода.
СПб.: Символ-Плюс, 2009.



Вполне добротная книга, посвященная практически всем аспектам программной инженерии.
Особо приятно отметить факт, что автор уделяет некоторое внимание специфическим аспектам, связанным с разработкой встроенного ПО. Разумеется, проходится он по этим темам поверхностно и кратко, но все же не игнорирует эту сторону программной инженерии вовсе, как это делает большинство авторов. Сам факт, что заговор молчания вокруг этой довольно темной и скользкой темы понемногу начинает отступать, не может не радовать. (Хотя, конечно, справедливости ради следует отметить, что паритет тут соблюдается довольно щепетильно, и большинство разработчиков встроенных систем точно так же игнорируют теорию программирования, тщетно полагая, что сами до всего додумаются).
Автор не только дает информацию, но и заставляет читателя думать. В конце каждой главы приводится ряд вопросов, над которыми стоит призадуматься и сделать для себя выводы.
Конечно, объем книги (около 700 стр.) крайне недостаточен: чтобы более-менее полно раскрыть тему, таких книг потребовалось бы не менее десятка. И все же для начинающих изучать программную инженерию всерьез она вполне годится в качестве отправной точки.
Рекомендую всем разработчикам, в особенности тем, кто худо-бедно освоил по учебнику свой первый язык программирования, выполнил все упражнения в 5 строк и находится на перепутьи, не зная, куда двигаться дальше.

* Goodliffe.jpg (11.94 Кб - загружено 7443 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 12-08-2011 07:12 » 

Daniel J. Pack, Steven F. Barrett.
Microcontrollers Fundamentals for Engineers and Scientists.
Morgan&Claypool Publishers, 2006.
ISBN 1598290584.



Купился на название и предисловие, из которых следует, что целевая аудитория книги - практикующие инженеры и ученые, которые не имели ранее опыта работы с микроконтроллерами, но хотели бы его приобрести. Невольно вспомнилась величайшая (без всякого преувеличения) книга Хоровица и Хилла, также адресованная инженерам и ученым, стремящимся расширить рамки своей компетентности. Но Пак и Баррет не смогли даже близко подобраться к высокой планке стандарта де-факто, заданной "Искусством схемотехники".
Если уж речь действительно идет об инженерах и ученых, то разве что о бесконечно далеких от предмета, например, инженерах-строителях или "ученых"-философах. На самом деле книга куда больше подошла бы для учащихся техникумов, студентов младших курсов ВУЗов и даже смышленых старшеклассников, собирающихся сделать электронику своей будущей профессией.
Откровенно говоря, книга написана доступным языком и излагает материал понятно и последовательно, поэтому, если убрать с ее обложки претенциозную адресацию инженерам и ученым и поставить гораздо более уместную метку "Для чайников", она заняла бы вполне достойное место на книжных полках. Для инженера ее чтение - попросту потерянное время, ничего интересного вы там не найдете.

* fundamentals.JPG (7.07 Кб - загружено 6661 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 15-08-2011 12:13 » 

Steven F. Barrett, Daniel J. Pack
Atmel AVR Microcontroller Primer: Programming and Interfacing.
Copyright © by Morgan & Claypool, 2008.
ISBN: 1598295411



Эти авторы (хоть и в другом порядке) уже попадали в мой обзор с другой книгой. В этот раз, прямо скажем, они тоже не слишком порадовали.
Данная книга представляет собой 15-й том серии "SYNTHESIS LECTURES ON DIGITAL CIRCUITS AND SYSTEMS". Из названия видно, что в этот раз авторы не растеклись мыслью о некоем абстрактном "микроконтроллере вообще", а выбрали предметом рассмотрения вполне конкретную модель - Atmel ATmega 16. Что ж, девайс вполне достойный, чего, к сожалению, не могу сказать о данном опусе.
При чтении просто напрашивалась аналогия с подобными творениями нашего соотечественника Евстифеева: все, что достойно прочтения, целиком стянуто из документации изготовителя, все же, что добавлено сверх того, сплошь примитивно и уныло. Правда, к чести Евстифеева следует заметить, что ему хотя бы пришлось потрудиться над переводами даташитов на русский язык, нашему дуэту даже на это напрягаться не пришлось.
К сожалению, спекулятивный спрос на книги по микроконтроллерам зачастую рождает именно такое предложение; дело Дарьи Донцовой начинает процветать и в сфере технической литературы...

* Barrett2.jpg (11.69 Кб - загружено 6682 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 25-08-2011 10:36 » 

Michael Barr, Anthony Massa.
Programming Embedded Systems With C and GNU Development Tools.
O'Reilly, 2006.
ISBN: 0-596-00983-6



Очень качественное и добротное пособие для начинающих разработчиков. Приведенные в книге многочисленные примеры базируются на одноплатном компьютере Arcom VIPER-Lite (XScale ARM), но авторы буквально с первых страниц учат правильному подходу к разработке систем, поэтому примеры могут быть легко портированы на любую имеющуюся у читателя платформу (например, AVR или PIC).
Весь материал в книге очень удачно сбалансирован. При написании подобных книг авторы зачастую сваливаются в одну из крайностей: либо рассматривают абстрактный "сферический контроллер в вакууме", либо закапываются в детали устройства конкретной модели, копируя целые главы из технических описаний от производителя. В данном случае этого нет, авторы удачно балансируют на грани между чрезмерной общностью и излишней детальностью изложения.
Изложение традиционно начинается с самых элементарных задач, вроде мигания светодиодом и опроса кнопки с подавлением дребезга контактов. Однако далее рассматриваются более серьезные темы: коммуникации, многопоточность, синхронизация процессов, работа в сетях и т.п. Приведен обзор операционных систем реального времени, более детально рассмотрены eCos и Embedded Linux.
Отдельная глава посвящена оптимизации встроенного ПО по различным критериям. Описаны возможности автоматической оптимизации кода компилятором GCC, методы ручной оптимизации и компромиссы, на которые при этом приходится идти.
Пожалуй, единственным недостатком данной книги является пробел по части тестирования встроенных систем, а также общей организации процесса проектирования.

* Programming Embedded Systems.jpg (17.78 Кб - загружено 6724 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 31-08-2011 07:48 » 

Jean J. Labrosse.
Embedded Systems Building Blocks, Second Edition. Complete and Ready-to-Use Modules in C.
Miller Freeman, 2000.
ISBN: 0-87930-604-1



Эта книга удивительно долго ускользала от моего внимания. Я был абсолютно уверен, что кто-то просто обязан был ее написать, ведь тема буквально лежит на поверхности. Тем не менее среди массы прочитанных книг ничего подобного не находилось, что вынуждало продолжать изобретать многочисленные велосипеды. И вот наконец-то удача: долгожданная книга нашлась.
Книга фактически представляет собой сборник-энциклопедию готовых решений типовых задач проектирования, как аппаратных, так и программных. В ней можно найти готовые схемы и код для работы со светодиодными индикаторами и табло на ЖК на базе HD44780, опроса клавиатуры и подавления дребезга контактов, работы с UART и таймерами, аналоговым и цифровым вводом/выводом и т.д.
Многие задачи решены дважды: как в среде ОС реального времени uC/OS-II, так и на "голом железе" микроконтроллера. Для каждого решения полностью опубликованы исходные коды на языке C.
Разумеется, не обошлось и без небольшой ложки дегтя. Все примеры в книге ориентированы на микропроцессор Intel 80188, который даже в год издания книги уже можно было считать экзотикой и анахронизмом, не говоря о сегодняшнем дне. Однако код написан весьма грамотно, аппаратно-зависимые части программы четко отделены от бизнес-логики, поэтому достаточно легко адаптировать модули под свою предпочтительную платформу.
Книга будет полезна всем категориям читателей. Новички, не имеющие опыта, смогут начать его накапливать, изучая готовые добротные решения типовых задач, опытные же разработчики, утомленные регулярными изобретениями велосипедов, смогут направить силы и время на решение действительно сложных задач.

* Labrosse.jpg (24.44 Кб - загружено 6742 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #23 : 21-09-2011 13:32 » 

John Catsoulis
Designing Embedded Hardware
O'Reilly, May 2005
ISBN: 0-596-00755-8



Превосходное дополнение к книге Michael Barr, Anthony Massa. Programming Embedded Systems With C and GNU Development Tools.
Книга содержит практически все необходимое для начального ознакомления с миром встроенных микропроцессоров. В ней рассмотрены наиболее популярные семейства выпускаемых в настоящее время микроконтроллеров, а также основные интерфейсы, датчики, преобразователи АЦП и ЦАП, микросхемы памяти, управления питанием и многие другие полезные мелочи, без которых не обойтись при построении действительно полезной системы.
Не обойдены вниманием и вопросы программирования, хотя и в небольшом объеме. Особенно любопытен небольшой обзор языка Forth, который изначально предназначался для программирования систем реального времени, но оказался забыт раньше, чем микроконтроллеры стали реально доступны.
Во всей книге автору удалось соблюсти тонкий баланс: он не углубляется в чрезмерно мелкие детали, оставляя это читателю при необходимости, но и не злоупотребляет поверхностностью изложения, когда книга становится попросту набором общих фраз. Материала в книге в самый раз для того, чтобы дать разработчику начальный толчок и задать направление движения. Дальше можно уже непосредственно переходить к справочным материалам от производителей устройств.
Книга оставила очень хорошее впечатление, настоятельно рекомендую.

* DEH.jpg (33.3 Кб - загружено 6537 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #24 : 22-09-2011 09:29 » 

Джерард Месарош.
Шаблоны тестирования xUnit. Рефакторинг кода тестов.
Вильямс, 2009.
ISBN 978-5-8459-1448-4, 978-0-13-149505-0



Если вы достаточно ленивы (а только достаточно ленивый человек может добиться успехов в программировании), вы, как и я, приступая к изучению нового предмета, наверняка не раз мечтали о единственной книге, после прочтения которой можно превратиться из новичка в мастера. К сожалению, в подавляющем большинстве случаев этим мечтам не суждено сбыться, и мы вынуждены пропускать через голову десятки и сотни источников, собирая информацию по крупицам. Процесс этот долог и нелегок.
А теперь хорошая новость: по крайней мере, в области тестирования такая книга действительно есть. Книга "Шаблоны тестирования xUnit. Рефакторинг кода тестов" вобрала в себя все необходимое для овладения хитрой наукой тестирования. Эту книгу смело можно было бы назвать энциклопедией тестирования; однако, в отличие от энциклопедии, ее можно читать последовательно от начала до конца.
Автор рассматривает каждый аспект тестирования буквально со всех сторон. В результате мы не только постигаем теорию тестирования и знакомимся с его технологиями, но и получаем представление о внутреннем устройстве инструментов тестирования. Глубина изложения материала дает возможность не только освоить имеющиеся инструменты, но и при необходимости самостоятельно разработать новые, благо объем книги позволяет (более 800 стр.).
Следует обратить особое внимание на разделы, посвященные "тестовым двойникам". При разработке "сверху вниз" по методике TDD мы часто попадаем в ловушку: с одной стороны, каждый модуль должен быть тщательно протестирован, и мы не имеем право писать код, для которого не созданы тесты, причем тесты должны сначала выдавать ошибки. С другой стороны, в ходе выполнения операций наш модуль должен обращаться к услугам нижележащих модулей, которых в данный момент нет и не может быть, ведь их черед еще не наступил.
Зачастую из этой ловушки пытаются выкарабкаться, соглашаясь на компромисс: программа проектируется "сверху вниз", а реализуется "снизу вверх". Такой подход, конечно же, имеет право на жизнь, но обладает рядом существенных недостатков.
Есть другой, более рациональный подход: вместо пока не реализованных модулей наш тестируемый модуль обращается к их "заместителям" (дублерам), созданным специально для целей тестирования. Дублеры являются частью технологической оснастки процесса разработки и обычно не входят в конечный продукт, поэтому они делаются как можно проще (но не проще, чем это можно себе позволить!); с другой стороны, часто дублеры обладают дополнительными свойствами (которых нет у "настоящих" модулей, которые подменяют дублеры), которые позволяют провести более полное и тщательное тестирование, чем оригинальные модули.
Дублеры и их использование в процессе тестирования подробно рассмотрены в книге, классифицированы и снабжены ценными практичными рекомендациями.
Не обойдена вниманием также важнейшая тема рефакторинга тестов. Автор приводит огромное количество "запахов" вместе с рекомендациями по их устранению.
Рекомендовать книгу не буду, поскольку за меня это уже сделал Мартин Фаулер; на обложке книги красуется его подпись с печатью-рекомендацией. А этот товарищ, как известно, плохому не научит.

* xUnit.bmp (169.97 Кб - загружено 6815 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #25 : 05-10-2011 19:58 » 

Мартин Фаулер.
Рефакторинг. Улучшение существующего кода.
Символ-Плюс, 2008.
ISBN 5-93286-045-6, 978-5-93286-045-8, 0-201-48567-2



Сначала я не планировал включать подобные книги в свой обзор, ведь задача обзора - помочь ситателю сориентироваться, какие книги стоит прочитать, а без каких можно обойтись. Относительно таких книг гамлетовский вопрос "читать или не читать" попросту не возникает - их читать просто необходимо. Не найдете же вы отзывов критиков о букваре, - практически каждый человек, умеющий читать, в свое время прошел через него.
Так что эта заметка включена лишь для того, чтобы на нее можно было ссылаться в перечне литературы в статьях. Если вы уже знакомы с этой книгой (что наиболее вероятно), вам вряд ли будет интересна рецензия на нее. Если по какой-то причине нет, вам однозначно следует отложить все дела и немедленно углубиться в чтение. Это одна из небольшого количества книг (к их числу еще можно отнести "Паттерны проектирования" банды четырех, "Жемчужины программирования" Бентли, "Конкретная математика" Кнута и т.п.), без прочтения которых попросту противопоказано заниматься серьезным программированием.

* Fowler.jpg (26.5 Кб - загружено 6518 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #26 : 28-10-2011 12:43 » 

Роберт Мартин, Мика Мартин.
Принципы, паттерны и методики гибкой разработки на языке C#.
Символ-Плюс, 2011.
ISBN 978-5-93286-197-4



Какое отношение имеет книга, посвященная технике программирования на C#, к данному разделу?
Самое прямое. Паттерны проектирования - это понятие гораздо более высокого уровня, чем конкретный язык программирования. То, что в качестве иллюстраций выбран именно C#, лишь облегчает понимание материала, поскольку этот язык выразительнее, чем C++, и привычнее для большинства, чем, скажем,Smalltalk. Во всяком случае, читается книга ничуть не хуже, чем тот же "Рефакторинг" Фаулера, проиллюстрированный примерами на Java.
Большинство приведенных в книге паттеров уже знакомы читателям по книге "банды четырех". Но все же эти книги не дублируют друг друга. В книге "бандитов" каждый паттерн тщательно препарирован, засушен и пришпилен булавкой к странице, словно жук в коллекции; читателю остается изучать их в статике, восхищаясь их изяществом, а также мастерством их создателей. У Мартина все иначе. Паттерн возникает естественным путем в результате попытки улучшить код при решении конкретной задачи; мы видим его в динамике и как бы становимся соавторами его создания. Когда работа завершена остается ощущение, что иначе и быть-то не могло.
Приведено также несколько паттернов, не описанных в книге "бандитов".
Еще одним достоинством книги является то, что весь приведенный в ней код разработан исключительно по методике TDD. Для каждого, даже тривиального, метода непременно имеется заранее подготовленный модульный тест. Для улучшения покрытия кода тестами Мартин регулярно применяет тестовые двойники, которые все без разбора почему-то именует "моками" (мы уже знаем, как они зовутся на самом деле).
Большое внимание автор уделил рассмотрению основных принципов объектно-ориентированного проектирования и их влияния на "запахи" кода. Основная цель книги - научить читателя создавать программы с хорошей архитектурой, но без излишеств: архитектура перестраивается по мере развития проекта.
Рекомендую книгу к прочтению всеми программистами, независимо от ипользуемых языков и платформ: она окажется в равной степени полезной как разработчику настольных приложений, так и проектировщику встроенных систем.

* Martin.jpg (13.13 Кб - загружено 6394 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #27 : 29-10-2011 22:20 » 

Andy Lindsay.
What’s a Microcontroller? Student Guide.
Parallax, 2003
ISBN 1-928982-02-6



Рекомендую эту книгу преподавателям, которые вынуждены изобретать велосипеды, организуя лабораторные работы по изучению микроконтроллеров. Здесь вы найдете достаточно связный цикл готовых лабораторных работ, построенных по принципу от простого к сложному. Изготовить для них стенды не составит труда даже в домашних условиях, лазерно-утюжным методом. Однако имейте в виду, что базовым в данном курсе является микроконтроллер PIC16C57, и тем, кто не является фанатом этой архитектуры, придется поискать другой курс.
Книга может оказаться полезной также для студентов, которые на занятиях вынуждены изучать окаменелости вроде семейства 580 (такое до сих пор действительно случается, причем гораздо чаще, чем можно было бы ожидать) и хотели бы самостоятельно изучить более современную элементную базу.

* Lindsay.jpg (24.16 Кб - загружено 6484 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #28 : 01-11-2011 22:21 » 

Jack Ganssle, Michael Barr.
Embedded Systems Dictionary.
CMP Books, 2003.
ISBN 1-57820-120-9



Книга задумана как энциклопедический словарь по встроенным системам, но на самом деле, несмотря на скромный объем, охватывает гораздо более широкий круг смежных тем. В ней можно найти статьи по математике, электротехнике и электронике,  операционным системам и многим другим областям знаний, которые могут быть полезны разработчику встроенных систем.
Оба авторитетных автора не нуждаются в представлении, их книги уже упоминались в моем обзоре, а инженеры, следящие за профессиональной компьютерной периодикой, наверняка неоднократно читали их статьи.
Хотя с момента выхода книги прошло уже 8 лет, ее рано относить к устаревшим. По непонятным мне причинам промышленная компьютерная инженерия весьма консервативна (хотя по логике должна быть одной из передовых областей техники), и по моим самым скромным оценкам отстает от теории лет на 10, если не больше. Так что на данный момент книга вполне актуальна и пригодна к использованию.

* Dictionary.jpg (16.22 Кб - загружено 6249 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #29 : 03-11-2011 10:37 » 

Bruce Powel Douglass.
Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems.
Addison Wesley, 2002.
ISBN 0-201-69956-7



Комментировать в общем особенно нечего, все сказано в названии. В книге собраны паттерны, относящиеся к системам реального времени. Некоторые из них довольно тривиальны, но попадаются и весьма изощренные.
В целом по прочтении у меня создалось впечатление, что материала книги вполне должно хватить для разработки собственной операционной системы реального времени.
Рекомендую профессионалам в области разработки встроенных систем.

* RealTimeDesignPatterns.jpg (7.63 Кб - загружено 6584 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #30 : 25-11-2011 09:04 » 

Эрик Фримен, Элизабет Фримен.
Паттерны проектирования.
СПб.: Питер, 2012.
ISBN 978-5-459-00435-9



Довольно подробное и богато иллюстрированное (как рисунками, так и примерами) руководство по основным паттернам проектирования.

По правде говоря, паттернов могло бы быть и больше, рассмотрено лишь подмножество классического набора "банды четырех". Зато каждый паттерн разобран столь детально, что "белых пятен" в их понимании после внимательного прочтения книги остаться не должно. Кроме того, по ходу изложения авторы постоянно задают вопросы, поиск ответа на которые требует достаточно глубокого понимания предмета.

Тем, кто еще не слишком уверенно себя чувствует в обращении с паттернами проектирования, эта книга определенно будет полезна.

* Freeman_Patterns.jpg (11.23 Кб - загружено 4492 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #31 : 19-12-2011 13:18 » 

Гради Буч, Роберт А. Максимчук, Майкл У. Энгл, Бобби Дж. Янг, Джим Коналлен, Келли А. Хьюстон.
Объектно-ориентированны анализ и проектирование с примерами приложений. Третье издание.
М.: "Вильямс", 2010.
ISBN: 978-5-8459-1401-9



Книга, ставшая одним из лучших учебников проектирования объектно-ориентированных программ, переиздается уже не первый год, причем с каждым годом, подобно старому вину, становится лишь лучше.
Главный плюс последнего издания - подробное описание языка UML 2.0 с разбором новшеств, которые изрядно прибавили выразительности и без того мощному инструменту объектно-ориентированного моделирования. Некоторые из них (например, диаграммы синхронизации) представляют особый интерес при проектировании программно-аппаратных средств встроенных систем.
Рекомендую ознакомиться с книгой даже тем, кто уже знаком с предыдущими изданиями и уверенно чувствует себя в обращении с предыдущими версиями UML. Тем же, кто до сих пор вовсе не знаком с этим инструментом, - читать обязательно.

* OOA.jpg (11.54 Кб - загружено 4309 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #32 : 28-12-2011 07:40 » 

Мартин Фаулер (при участииРебекки Парсонс).
Предметно-ориентированные языки программирования.
М.:"Вильямс", 2011.
ISBN 978-5-8459-1738-6.



Очередная книга из знаменитой серии "A Martin Fowler Signature Book", к тому же написанная собственноручно самим маэстро. Разумеется, обходить вниманием подобные книги не следует ни в коем случае.
Тема разработки предметно-ориентированных языков и ориентированных на них инструментальных средств в литературе (особенно в русскоязычной) ранее толком не освещалась. Книга Фаулера заполняет этот пробел, причем практически полностью. Несмотря на небольшой объем (менее 500 страниц), она покрывает практически все аспекты данной темы с энциклопедической полнотой.
Желательно, если вы приступите к чтению книги, заранее запасшись некоторым багажом знаний. Так, очень не повредит предварительное знакомство с теорией формальных языков и грамматик. Знакомство с инструментальными средствами типа yacc, lex, bison, ANTLR, а также с языками программирования C/C++, C#, Java, Ruby также существенно облегчит понимание многочисленных примеров.
Чем владение материалом книги может помочь разработчику встроенных систем? В первую очередь, на мой взгляд, в разработке инструментария для функционального, системного и приемочного тестирования. Первые шаги в этом направлении уже делаются, но работы предстоит еще непочатый край.

* DSL.jpeg (9.26 Кб - загружено 4277 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #33 : 23-01-2012 10:29 » 

Simon D.
An Embedded Software Primer.
Addison-Wesley, 1999.
ISBN 978-0201615692.



Основная тема книги - разработка программного обеспечения встроенных систем с использованием операционных систем реального времени. Изложены как общие концепции, так и особенности их реализации в нескольких распространенных RTOS.
Отдельная глава посвящена различным методам отладки (на инструментальной системе, симуляторе, внутрисхемном эмуляторе, целевой системе). Впрочем, тема отладки раскрыта весьма поверхностно, изучать ее лучше по другим источникам.
В конце книги приведен пример реализации системы реального времени под управлением RTOS uC/OS на инструментальной системе, подводящий итог пройденному материалу.
Хотя книга издана более 10 лет назад, не стоит относить ее к устаревшим. Рекомендую ее как вполне добротное учебное пособие для тех, кто желает познакомиться с системами реального времени и научиться применять их в своих разработках.

* Simon.jpg (21.8 Кб - загружено 4129 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #34 : 30-01-2012 08:15 » 

Mike Loukides, Andy Oram.
Programming With GNU Software.
O'Reilly, 1996.
ISBN 978-1565921122.



Руководство для начинающих по использованию toolchain'а GCC. Исчерпывающим руководством его назвать, конечно, трудно, но в целом дает неплохое представление о предмете.
К достоинствам книги следует отнести то, что авторы не просто переписывают список опций из соответствующего мануала, а довольно подробно показывают всю цепочку преобразований, которые исходный текст претерпевает на пути превращения в машинный код.
Помимо компилятора, обзорно рассмотрены также другие инструменты GNU, используемые в процессе разработки: отладчик dbg, утилита сборки проектов make, профилировщик gprof, система управления версиями RCS.
Включил эту книгу в свой обзор ввиду той важной роли, которую играет инструментарий GNU при разработке firmware. Написана книга довольно давно, но основные описанные в ней концепции с тех пор существенно не менялись.

* GNU.jpg (22.82 Кб - загружено 4078 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #35 : 25-04-2012 11:27 » 

Elecia White.
Making Embedded Systems: Design Patterns for Great Software.
O'Reilly, 2012.
ISBN: 978-1-449-30214-6



Как неоднократно упоминалось ранее, великое множество книг по разработке встроенных систем не стоят той бумаги, на которой напечатаны (в особенности это касается русскоязычных изданий, среди которых практически нет исключений из этого неутешительного правила). Данная книга, к счастью, к категории хлама не относится. Более того, она заслуживает самой высокой оценки с первой до последней страницы.
Несмотря на небольшой объем (чуть более 300 страниц), книга настолько насыщена полезной информацией, что может претендовать на роль энциклопедии разработчика. Охват тем просто поражает: от разработки  архитектуры (причем это не привычные читателям общие слова вроде "хорошая архитектура лучше плохой", а вполне конкретные и конструктивные рекомендации с учетом современного состояния предмета) до деталей реализации, включая решение проблем отладки в реальном времени; не обойдены вниманием ни оптимизация кода (причем с весьма разумным подходом, что в данной области встречается не столь часто), ни основы численных методов (с учетом специфики ограниченных вычислительных ресурсов большинства встроенныхсистем), ни даже вопросы энергосбережения.
Весьма любопытным дополнением к книге являются вопросы, которые автор обычно задает претендентам на получение работы в его компании. Многие из них нетривиальны и проверяют в первую очередь способность претендента самостоятельно мыслить и находить решения, а не запас вызубренных фактов.
Настоятельно рекомендую всем разработчикам, кроме начинающих (поскольку изложения необходимых им азов в этой книге они не найдут). Все остальные непременно найдут в ней что-то полезное для себя, независимо от уровня.

* Making_Embedded_Systems.jpg (39.41 Кб - загружено 4045 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #36 : 16-05-2012 12:38 » 

Ted Jensen.

Tutorial on Pointers and Arrays in C.

Version 1.2.
Sept. 2003.
URL: http://home.netcom.com/~tjensen/ptr/cpoint.htm

Эта книга не может похвастать красочной обложкой, поскольку она не издавалась в бумажном виде. Зато она доступна всем желающим в нескольких форматах по ссылке, указанной выше.
Как видно из названия, книга посвящена достаточно узкой теме указателей и массивов в языке C. Впрочем, именно эта тема обычно труднее всего дается изучающим язык, поэтому такая специализация вполне оправданна. Материал изложен последовательно, снабжен многочисленными выразительными примерами.
Книга чрезвычайно полезна новичкам в языке C. Если вы не видите принципиальной разницы между char str[] = "ABC" и char* pstr = "ABC", а написание конструкций вроде "указатель на массив из десяти байт", "массив из десяти указателей на байт" или "массив из десяти указателей на функцию, возвращающую байт" вызывает путаницу, то данная книга поможет достичь уверенности, а это очень важно для "эмбеддера", поскольку невозможно технично программировать на языке C, не освоив тонкостей манипуляции с указателями.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #37 : 14-07-2012 00:16 » 

Miro Samek.
Practical Statecharts in C/C++: Quantum Programming for Embedded Systems.
CMP Books, 2002.
ISBN: 1−57820−110−1



Одна из немногих книг, заставляющих в корне пересмотреть весь свой предшествующий опыт разработки приложений.
Многие открытия происходят на стыке наук: человек приходит из другой области знаний, принося с собой определенный багаж, и видит проблему с другой стороны, с которой раньше никто не догадался заглянуть. В области программирования это явление тоже нередко встречается.
Конечно, не всегда такое "вторжение" благотворно, особенно со стороны гуманитарных наук (и зачастую псевдонаук). Отличный пример - эссе гуманитария Аллена Голуба "Веревка достаточной длины, чтобы выстрелить себе в ногу", представляющее смесь банальностей и несуразностей  в одном флаконе.
К счастью, есть и другие примеры. До того, как заняться разработкой встроенных систем, Миро Самек вел научную работу в области квантовой механики и защитил докторскую диссертацию. Перейдя в новую для себя область, он обнаружил параллель между поведением иерархических конечных автоматов и процессами, описываемыми квантовой теорией поля. Результатом этого обобщения стала метафора "квантового программирования", развитию которой и посвящена данная книга.
Должен заметить, что автор настолько часто прибегает к этой метафоре, что читателю, не знакомому с квантовой теорией поля хотя бы в общих чертах, возможно, будет не очень просто уследить за нитью рассуждений. (Впрочем, физико-математическое образование всегда было хорошим бонусом для занятия программированием, а в области встроенных систем - и подавно, так что особого секрета я здесь не открою).
Автор неоднократно упоминает в ходе повествования, что ни одной принципиально новой концепции он не вводит, все было известно до него: конечные автоматы (в том числе иерархические), активные объекты, обмен сообщениями и т.п.; о квантовой теории поля и говорить излишне. Однако соединение этих концепций воедино дает мощный инструмент построения высокореактивных систем реального времени. Впрочем, пожалуй, он несколько поскромничал, поскольку некоторые описанные им паттерны, равно как и концепция "наследования поведения", образующая стержень квантового программирования, ранее мне не встречались, хотя я стараюсь быть в курсе публикаций на эту тему.
Особую ценность книге придает то, что это не просто набор заумных концепций, не имеющих отношения к реальным нуждам программиста-практика. Самек воплотил эти идеи в виде фреймворка, который он так и назвал - "Quantum Framework". Этот фреймворк позволяет строить реактивные системы на языках C и C++ ценой относительно скромных усилий, не тратя время на реализацию инфраструктуры. Более того, автор любезно предоставляет этот фреймворк всем желающим бесплатно и с открытым кодом. Это не может не радовать, учитывая, что бесплатные продукты далеко не всегда сопровождаются столь исчерпывающим руководством по их использованию. Фреймворк находится на прилагаемом к книге диске; его также можно скачать на сайте автора http://www.state-machine.com .
Рекомендую опытным разработчикам; для новичков, пожалуй, книга может оказаться тяжеловатой. Также книга может оказаться интересной и для разработчиков обычных, "больших" приложений (в частности, один из моих коллег заинтересовался переносом фреймфорка в среду .NET для реализации биллинговых приложений).

* Samek.jpg (24.13 Кб - загружено 3806 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
korkunov
Новенький

ru
Offline Offline

« Ответ #38 : 19-07-2012 20:09 » 

Hi.
@TS
Спасибо за работу и уважение к публике!
Печально, что лит-ра не на родном, ну лан, главное, чтобы меньше воды. (Пока не читал, но, надеюсь, будет полезно)

Удачи!
Записан
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #39 : 19-07-2012 21:22 » 

Спасибо за работу и уважение к публике!

И Вам спасибо на добром слове!

Печально, что лит-ра не на родном

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

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #40 : 26-08-2012 20:54 » 

Lisa Simone.
If I Only Changed the Software, Why is the Phone on Fire?: Embedded Debugging Methods Revealed. Technical Mysteries for Engineers.
Elsevier, 2007.
ISBN: 978-0-7506-8218-3



Книга, адресованная разработчикам встроенных систем, написана в довольно необычном для данного жанра полухудожественном-полутехническом стиле. Она состоит из девяти глав, каждая из которых посвящена процессу поиска и исправления нетривиальной ошибки в одной из встроенных систем.
В основе сюжета лежат реальные ошибки, сделанные в реальных проектах и попортившие немало крови разработчикам. Действие перенесено в стены некоей вымышленной компании, населенной вымышленными же сотрудниками с различными навыками и опытом. По ходу расследования каждого случая читателю предлагается ответить на ряд вопросов, при этом каждый правильный ответ приближает к разгадке причины ошибки. На основе приведенных подсказок внимательный читатель уже к середине каждого рассказа сможет понять, в чем кроется эта причина, а в конце главы - проверить правильность своих предварительных выводов.
В конце каждой главы производится подробный "разбор полетов" и даются практические рекомендации по действиям в подобной ситуации (их подробно записывает в свой блокнот старательная девушка-стажер). Этот блокнот полностью опубликован в виде приложения в конце книги.
На мой вкус, автор все же несколько переборщила с "художественностью": помимо описания объективных событий, она постоянно держит нас в курсе, какое у кого при этом было выражение лица, кто и в каком месте почесался и прочих не столь важных деталей. Также явно лишними, на мой взгляд, выглядят интрижки в коллективе (хотя, возможно, эти сведения пригодятся тем, кто намерен искать счастья в забугорных компаниях и хочет заранее получить представление о психологическом климате в них).
Странноватым показался еще один аспект. Лиза Саймон является профессором Института технологии штата Нью-Джерси и преподает инженерные дисциплины инженерам-биомедикам. При этом на протяжении без малого трехсот страниц нет ни единого упоминания о модульном тестировании кода. В ходе повествования периодически появляются персонажи из отдела тестирования, но они тестируют готовую разработку как "черный ящик", и вполне логично, что почти все ошибки проявляются уже у клиента (либо на выставке, что еще хуже для престижа компании). При этом среди рассмотренных ошибок нет ни одной, которая ускользнула бы незамеченной от грамотно составленного набора модульных тестов. Есть направления программирования, где небрежное кодирование является стандартом де-факто , но медицинские системы к таковым уж никак не относятся. Это тем более странно, что книгу рекомендовал в своем блоге Jack Ganssle, которого в легкомысленном отношении к качеству никак не заподозришь.
Итог: в целом книга уровня выше среднего, но от идеала все же достаточно далека. Рекомендую к прочтению профессионалам с учетом вышесказанных замечаний.

* Lisa Simone.jpg (47.68 Кб - загружено 3605 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #41 : 29-08-2012 08:44 » 

Bruce Powel Douglass.
Real Time UML: Advances in The UML for Real-Time Systems, Third Edition.
Addison Wesley, 2004.
ISBN: 0-321-16076-2



Брюс Дуглас вряд ли нуждается в представлении: он широко известен в кругах программной инженерии и своими трудами в рабочей группе OMG по применению UML в системах реального времени, и как один из создателей Rhapsody, и, наконец, как автор множества хороших технических книг. Данная книга - одна из их числа.
Книга имеет немалый объем (около 750 страниц), но даже он едва вместил весь обширный материал. Здесь собраны воедино и довольно подробное описание нотации UML 2.0, и практика использования UML в процессе проектирования в среде Rhapsody (с многочисленными примерами). Особое внимание уделено, конечно же, специфике систем реального времени, которая не нашла отражения в UML 1.X.
Недостатков в книге я не нашел, а достоинства можно перечислять бесконечно долго. Впрочем, лучше убедитесь в этом сами, ведь данная книга - не из тех, чтение которых можно считать потраченным впустую временем.
Настоятельно рекомендую продвинутым разработчикам и архитекторам (причем не только систем реального времени).

* Douglas.JPG (8.45 Кб - загружено 3504 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #42 : 25-10-2012 11:04 » 

Keith Curtis.
Embedded Multitasking With Small Microcontrollers.
Elsevier Inc., 2006
ISBN:978-0-7506-7918-3



Название книги подразумевает, что она просто обязана быть настольной для каждого разработчика встроенных систем. В данном случае обертка совершенно не соответствует содержимому.
Книга откровенно слабая. Очень похоже на то, что автор пришел в embedded-мир из области электроники, как и многие другие, но так и не удосужился более-менее глубоко изучить программирование. Любительский подход виден буквально в каждом аспекте: тут и рекомендации по архивированию последовательных версий файлов проекта (похоже, автор не слышал о существовании систем управления версиями), и незамысловатый "водопадный" процесс проектирования (о гибких методиках также ни полслова), и чрезвычайно наивный подход к тестированию без использования каких бы то ни было инструментов и методик, и не менее наивные способы реализации конечных автоматов... Этот список можно продолжать долго.
В принципе, с недостатком теории и методологии можно было бы смириться, если бы книга достаточно подробно рассказывала хотя бы об одной из многочисленных  операционных систем реального времени. Увы, даже этого в ней нет.
Пожалуй, я при всем желании не смогу подобрать категорию читателей, которым эта книга могла бы оказаться полезной. Профи в ней не найдут для себя совершенно ничего нового, а начинающие, если они достаточно легковерны, приобретут массу вредных привычек, от которых впоследствии придется избавляться. Поэтому рекомендую и тем, и другим не тратить на нее время.

* EmbeddedMultitasking.JPG (16.93 Кб - загружено 3334 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #43 : 08-11-2012 07:51 » 

Kirk Zurell.
C Programming for Embedded Systems.
CMP Books, 2000
ISBN: 978-1929629046



Автор книги является сотрудником канадской компании Byte Craft Limited, которая производит довольно малоизвестный компилятор языка C для не слишком популярных ныне семейств микропроцессоров под названием ByteCraft. Этот факт оказал непосредственное влияние на содержимое книги, причем не слишком благоприятное.
Изложенный в книге материал основывается на диалекте C, поддерживаемом данным компилятором. А поскольку этот диалект, прямо скажем, далековат от стандарта языка, а сам материал при этом довольно примитивен, то и ценность данной книги в целом, на мой взгляд, невелика.
Признанный в embedded-кругах корифей Майкл Барр прокомментировал эту книг довольно мягко:
Цитата
Результат - книга, которая годится в качестве руководства пользователя компилятора ByteCraft, но не слишком подходящая для остальных".
Джон Хекендорф высказался категоричнее:
Цитата
Увы, я считаю, что эта книга не пригодна для обучения ни на каком уровне.
Мне остается лишь присоединиться к мнению Джона. Не могу порекомендовать эту книгу никому.

* Zurell.gif (22.38 Кб - загружено 3265 раз.)
« Последнее редактирование: 02-04-2013 04:38 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #44 : 12-12-2012 05:34 » 

Adam Dunkels.
Programming Memory-Constrained Networked Embedded Systems.
Swedish Institute of Computer Science, Doctoral Thesis, SICS Dissertation Series 47, February 2007.
Printed by Arkitektkopia, Vasteras, Sweden.
ISSN 1101-1335

В основу данной книги легла докторская диссертация молодого, но уже весьма известного в области программной инженерии (особенно в части встроенных систем) ученого, старшего научного сотрудника Шведского института компьютерных наук Адама Данкелса (не ручаюсь за правильность транскрипции шведской фамилии).
Данная диссертация, в отличие от многих других, написанных лишь для формального получения ученой степени, внесла действительно неоценимый практический вклад в embedded-инженерию. Среди наиболее известных продуктов Адама следует упомянуть концепцию протопотоков (protothreads), две компактных реализации стека протоколов TCP/IP для встроенных систем - uIP и lwIP, а также операционную систему реального времени Contiki, ориентированную на использование беспроводных датчиков с малым энергопотреблением.
Работа получила высокую оценку: Адам был награжден премией Роджера Нидхема в 2008 году. Это неудивительно, поскольку выполнена она на высоком уровне. Автор приводит не только готовые решения, но и тщательный сравнительный анализ с аналогами. Те, кто намеревается воспользоваться плодами его трудов (а таких уже немало), получают не "кота в мешке", как это частенько бывает, а могут объективно оценить все плюсы и минусы своего выбора.
Продукты, упомянутые в диссертации, являются открытым кодом и могут быть загружены с сайта автора для бесплатного использования.
Рекомендую разработчикам уровней от среднего и выше.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #45 : 23-01-2013 08:20 » 

Tammy Noergaard.
Embedded Systems Architecture. A Comprehensive Guide for Engineers and Programmers.
Elsevier Inc., 2005.
ISBN: 0-7506-7792-9



Автор попытался уместить в одной книге буквально все, что относится к миру встроенных систем: от физических основ электроники до системной инженерии со всеми промежуточными остановками. Здесь и цифровая схемотехника, и архитектура микропроцессоров, и объектно-ориентированный анализ, и чего только нет еще... Само собой, такой широкий охват при ограниченном объеме издания неизбежно выливается в малую глубину содержания.
Впрочем, книгу нельзя считать совсем уж бесполезной. Хотя каждая из тем и не раскрыта на должном (для профессионала) уровне,  тем не менее практически каждый аспект инженерии встроенных систем если и не обрисован в общих чертах, то хотя бы упомянут вскользь. Поэтому, если воспринимать ее не как учебник, а скорее как обзор учебного плана или перечень тем, подлежащих впоследствии достаточно глубокому изучению, она вполне способна принести определенную пользу своему читателю. По крайней мере, в дидактическом плане она явно полезнее большинства книг, в которых бессистемно чередуются фрагменты текста, вырванные из руководств производителей элементной базы, и примитивные примеры программ в несколько строк.
Приятным сюрпризом явилось знакомство автора с современными "гибкими" технологиями разработки программного обеспечения, в частности, например, с Унифицированным процессом. В части тестирования и управления качеством, к сожалению, таких приятных сюрпризов не оказалось: общие фразы, традиционная путаница между тестированием и отладкой и т.д.
В целом учебник потянет на твердую четверку. Рекомендую начинающим и "середнячкам", которые собрались подтянуть уровень до профи, но не знают, в каком направлении двигаться.

* EmbeddedSystemsArchitecture.jpg (20.5 Кб - загружено 3000 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #46 : 01-04-2013 12:58 » 

Kim H. Pries, Jon M. Quigley.
Testing complex and embedded systems.
CRC Press, 2011.
ISBN: 978-1-4398-2140-4

Несмотря на скромный объем (около 280страниц), в книге затронуто множество тем, относящихся к тестированию: от математического обоснования статистической достоверности результатов тестирования до этических аспектов взаимодействия команды тестировщиков с разработчиками и потребителями продукции. Зачастую широта охвата достигалась в ущерб глубине: многие темы действительно лишь слегка затронуты (особенно это касается глав, посвященных математической статистике) и потребуют от читателя изучения дополнительной специальной литературы. Это скорее обзорное введение в предмет, нежели учебное пособие.
Следует отметить ряд достоинств книги. В первую очередь радует осведомленность авторов в части современных гибких методик проектирования ПО, что нашло отражение в итеративном подходе к тестированию. Интересен также обширный опыт авторов в таких областях, как разработки для автопрома, минобороны и др. Эти сведения не так легко найти в литературе, но они отнюдь не будут лишними для разработчиков встроенных систем.
Наиболее существенным недостатком книги назову тяжелый для чтения стиль изложения. Несмотря на небольшой объем, я потратил на ее изучение около месяца довольно напряженного чтения.

* TCES.jpg (22.46 Кб - загружено 2816 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #47 : 01-12-2013 21:37 » 

Steve Berczuk, Brad Appleton.
Software Configuration Management Patterns: Effective Teamwork, Practical Integration.
Addison-Wesley, 2002.
ISBN: 0201741172



Из всех дисциплин программной инженерии управление конфигурациями (Configuration Management, CM) освещено в литературе, пожалуй, хуже всех. При этом данная дисциплина играет важнейшую роль в ходе реализации проекта (причем не только программной его части).
Упомянутая книга стала классикой CM, на нее ссылаются множество источников. Описанные в ней паттерны составляют золотой фонд CM и дают ответы на множество вопросов, возникающих при командной работе над проектом, части которого тесно взаимосвязанны. На примере собственного коллектива могу сказать, что внедрение этих паттернов в практику (после их подробного изучения на нескольких семинарах) здорово упростило и облегчило некоторые аспекты разработки. Впрочем, разработчику-одиночке многие из представленных паттернов тоже окажутся отнюдь не лишними.
Хотя книга издана более десяти лет назад, она относится к категории тех книг, которые сохраняют актуальность очень долго (да и ощутимой конкуренции в данной теме, к сожалению, не наблюдается). Рекомендую профессионалам, которые добрались до уровня организации и совершенствования процессов.

* BA.jpg (18.48 Кб - загружено 2404 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #48 : 04-01-2014 22:47 » 

Michael McRoberts.
Beginning Arduino.
Apress, 2013.
ISBN: 978-1-4302-5016-6



Книга написана любителем (в хорошем смысле слова) и поэтому будет понятна даже начинающим, желающим ознакомиться с миром микроконтроллеров, но не имевшим такой возможности до появления Arduino. Порог вхождения в предмет минимален (или, по крайней мере, показался мне таковым; пока не было возможности опробовать книгу на подопытном новичке). Даже навыки чтения принципиальных электрических схем на первых порах не потребуются, поскольку приведены подробные монтажные схемы с использованием беспаечных макетных плат и готовых модулей Arduino, которые легко доступны и весьма недороги.
В то же время простота изложения - это не та простота из поговорки, которая "хуже воровства" и которой грешат многие из упомянутых в предыдущих рецензиях изданий. Автор приводит необходимый минимум знаний, чтобы можно было не только слепо копировать конструкции, но и понять, как и почему они работают.
Разумеется, снобы, располагающие фирменными системами прототипирования и отладки встроенных систем за многие тысячи долларов, сочтут книгу наивной. Для тех же, кто ищет бюджетные средства разработки, она (в сочетании с самим Arduino) может оказаться полезной как минимум в качестве инструмента быстрого построения макета (не исключено, что и целевой системы). Материал мог бы также послужить неплохой базой для построения практикума для будущих инженеров-эмбеддеров.
Рекомендую к прочтению всем, кто еще не читал и у кого при слове Arduino рука не тянется к пистолету.

* BeginningArduino.jpg (41.37 Кб - загружено 2384 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #49 : 12-04-2014 20:56 » 

David Griffiths, Dawn Griffiths.
Head First C.
O'Reilly, 2012.
ISBN: 978-1449399917



Подавляющее большинство учебников по языкам программирования (не только C) грешат одним существенным недостатком: изложенного в них материала недостаточно для того, чтобы после прочтения сразу приступить к написанию более-менее осмысленных программ. Как правило, оторванные от реальности примеры вроде "Hello World" иллюстрируют отдельные конструкции языка, но не способны выполнять полезную работу; для полезной же работы потребуется дополнительное изучение библиотек, утилит и прочего инструментария.
Данная книга выгодно отличается в этом плане. Это не просто букварь с описанием основ языка. Книга изобилует, небольшими, но завершенными программами, иллюстрирующими различные аспекты программирования: обмен данными по сети через сокеты, создание процессов и потоков, синхронизация, работа с графикой, событиями и т. д. Их изучение и выполнение всех упражнений обеспечит хорошую базу для решения реальных задач. Читатель получит начальные представления о библиотеках POSIX и важнейших утилитах GNU.
Рекомендую как изучающим язык C, так и преподавателям, которые нуждаются в современном учебнике.

* head-first-c.jpeg (25.6 Кб - загружено 2169 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #50 : 20-05-2014 06:26 » 

Gojko Adzic.
Specification by Example. How successful teams deliver the right software.
Manning Publications Co, 2011.
ISBN: 978-1617290084



Эта книга считается классикой для изучения основ функционального тестирования. Автор, известный консультант в области качества программного обеспечения, обобщает опыт нескольких компаний, использующих ajile-технологии при производстве своих продуктов. Спектр деятельности этих компаний весьма широк, что дает автору возможность испытать практикой множество своих рекомендаций (а порой и пересмотреть выданные в более раних публикациях).
Подробно рассматриваются наиболее сложные проблемы функционального тестирования: тестирование приложений с графическим интерфейсом, баланс (порой весьма тонкий) между полнотой тестирования и приемлемым временем выполнения тестов, отказ от "скриптового" подхода к тестированию. Даются рекомендации по активному вовлечению будущих пользователей продукта в процесс подготовки спецификаций. Наконец, приводятся рецепты по превращению тестов из технологических артефактов в полноценную документацию продукта.
Рекомендую системным аналитикам, техническим лидерам команд разработчиков, профессиональным тестировщикам ПО, а также зрелым разработчикам, желающим освоить практическое применение спецификаций на основе примеров (SBE), "исполняемых спецификаций", разработки на основе спецификации поведения (BDD), функционального тестирования (в т.ч. регрессионного) и т.п.
Также сильно подозреваю, что изложенные в книге идеи могут оказать немалую пользу специалистам других областей, кроме зазработки ПО, особенно смежных (в частности, в области разработки встроенных систем). Ведь программная инженерия на деле не настолько отличается от прочих "инженерий", как это часто принято считать.

* Adzic.jpg (13.9 Кб - загружено 2095 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #51 : 30-06-2014 11:57 » 

Jason Cohen.
Best Kept Secrets of Peer Code Review: Modern Approach. Practical Advice.
Smart Bear Inc., 2006.
ISBN: 978-1599160672



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

* BestKeptSecrets.jpg (17.58 Кб - загружено 1917 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #52 : 15-07-2014 13:00 » 

Brian Foote, Joseph Yoder .
Big Ball of Mud.
Technical Report #WUCS-97-34 (PLoP '97/EuroPLoP '97), September 1997.



Это фрагмент 4-го тома трудов Конференции по языкам паттернов программирования, который авторы любезно опубликовали в виде свободно доступной электронной книги (желающие могут прочитать online либо скачать копию в желаемом формате здесь).
Основной недостаток книги: она написана довольно живым языком, поэтому, если вы при чтении обычно привыкли лазить в словарь за каждым вторым словом, одолеть ее будет непросто - нырять придется гораздо чаще обычного. Основное достоинство: она написана довольно живым языком, поэтому, если ваш английский не хромает на обе ноги, помимо пользы получите еще и удовольствие от стиля. Текст довольно остроумен и к тому же снабжен прекрасно подобранными иллюстрациями.
Тема публикации довольно тесно переплетается с ранее рассмотренной в обзоре книгой Физерса, но, несмотря на гораздо более скромный объем, не так сильно пересекается с ней, как я поначалу ожидал. Авторы рассматривают причины появления на свет "грязной" архитектуры и различные способы ее улучшения. Разумеется, все эти способы представлены в виде паттернов проектирования.
В отличие от многих других авторов, Фут и Йодер не делают при виде "грязной" архитектуры брезгливую мину, держа программу двумя пальцами на вытянутой руке и оттопырив мизинец подальше. Напротив, они признают, что паттерн "Большой Комок Грязи" имеет право на жизнь в определенных ситуациях как вполне естественная временная стадия развития проекта. Но слово "временная" здесь ключевое - любимый многими принцип-самооправдание "зато работает" тут не принимается, и грязь постепенно удаляется из проекта, пока код не засияет чистотой.
Рекомендую тем, кто придерживается золотой середины между эстетствующим снобизмом изначально идеальных проектов в вакууме и цинизмом сырой халтуры под девизом "пипл схавает".

* BigBallOfMud.jpg (10.5 Кб - загружено 1887 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #53 : 07-08-2014 20:03 » 

David A. Black.
The Well-Grounded Rubyist.
Manning Publications Co, 2009.
ISBN: 1933988657



Вполне достойный учебник языка программирования Ruby. Изучив его, вы вряд ли сразу станете экспертом Ruby, но необходимые базовые знания для понимания основных конструкций получите. Глубина погружения в материал как раз достаточна для того, чтобы опытный (т. е. хорошо владеющий навыками программирования на других языках) программист мог быстро освоить предмет.
Рекомендую разработчикам, которым необходим мощный инструмент для автоматизации рутинных процессов жизненного цикла разработки. Пригодится книга и тем, кто хочет разобраться в уже имеющихся инструментах автоматизации (например, от разработчиков из Atomic Object) или даже усовершенствовать их.

* Black.jpg (13.65 Кб - загружено 1859 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #54 : 09-08-2014 21:02 » 

Гаврилов С.А.
Полупроводниковые схемы. Секреты разработчика.
2009.



Постоянные посетители моего "книгоблога" наверняка заметили, что в нем довольно редко появляются книги наших соотечественников, а если и появляются, их содержимое еще реже оказывается достойным потраченного на их чтение времени. Я отнюдь не поклоняюсь западным авторитетам, это лишь объективное отражение нашей действительности (и, надо сказать, довольно печальное для меня отражение). Сегодня я рад представить достойное исключение - книгу, которая написана на очень приличном техническом уровне и не уступает классике жанра.
Судьба книги поучительна и печальна - все потенциальные издатели от нее отказались, не увидев коммерческого интереса (еще одна черта времени - практически все, что не связано с изучением 1С, верстки веб-страничек и еще пары-тройки подобных "топовых" тем, оказывается за бортом). Автор, потративший на ее написание массу труда и вложивший в нее колоссальный накопленный опыт, совершил красивый поступок - оформил свое творение в виде бесплатной электронной книги и выложил в открытый для всех доступ. Низкий ему поклон за это.
Обхем книги невелик, но она вмещает огромный объем знаний, большую часть которых трудно отыскать в популярных изданиях. Легким чтением ее никак не назовешь, тем более что на многие вопросы автор заставляет искать ответы самостоятельно. Однако сомневаюсь, что найдется так уж много инженеров (даже опытных), которые не найдут в ней ничего нового для себя. Автор весьма кропотлив в тонких деталях, в которые большинство предпочитают не вдаваться (и пренебрежение которыми может плачевно сказаться на практике).
Охват тем достаточно широк - согласование каскадов многокаскадных схем, исследование устойчивости, предельные режимы схем и многое другое. При этом подход максимально практичен: минимум сложных выкладок, максимум понимания базовых процессов, разбор наиболее типичных ошибок, их исправление и доведение схемы до оптимума.
Рекомендую специалистам-схемотехникам продвинутого уровня, которые давно переросли уровень классических букварей уровня Хоровиц/Хилл, Титце/Шенк, Фолкенберри и т. п. и интересуются более тонкими явлениями, которые могут встретиться в нетривиальных схемах. И напоследок - повторный респект автору, если он случайно прочтет эти строки.

* Gavrilov.jpg (8.99 Кб - загружено 1965 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #55 : 27-12-2014 19:09 » 

Clive Maxfield, John Bird, Tim Williams, Walt Kester, Dan Bensky.
Electrical Engineering: Know It All.
Elsevier, 2008.
ISBN: 978-1-85617-528-9



Авторы попытались объять необъятное, поместив в одной книге практически все, что действительно необходимо знать об электронике инженеру (а иногда даже чуточку больше). И, как ни странно, у них это практически получилось.
Книга почти самодостаточна: большинство тем начинается с самых азбучных азов, порой включая даже элементарную физику и решение дифференциальных уравнений, а заканчивается на уровне, вполне приличном для получения практических результатов. Охват тем также широчайший: основы электродинамики и теории цепей, цифровая и аналоговая схемотехника, слабосигнальная и силовая электроника, преобразования Лапласа и цифровая обработка сигналов, беспроводные сети, борьба с помехами и многое другое.
Естественно, такая широта тем сказалась на объеме книги, он зашкаливает за тысячу страниц. Впрочем, время, затраченное на ее чтение, вряд ли окажется потраченным впустую, если вы не гуру 80-го уровня, знающий (и помнящий!) все эти темы назубок.
Для всех, кто желает подтянуть уровень в области электроники.

* eekia.JPG (16.24 Кб - загружено 1645 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #56 : 11-03-2015 13:13 » 

Дастин Босуэлл, Тревор Файчер.
Читаемый код, или Программирование как искусство.
Питер, 2012
ISBN: 978-5-459-01188-3



Тема книги весьма избита и при этом вечно актуальна: оформление кода таким образом, чтобы он был понятен не только автору (да и то в течение нескольких дней после его написания).
В целом рекомендации вполне конструктивны и разумны (хотя не со всеми могу согласиться; в частности, авторы ратуют за прижившуюся в стенах Microsoft "венгерскую" нотацию, которую лишь с большой натяжкой можно отнести к хорошему стилю программирования). Разумное следование им действительно может повысить читаемость кода, а это немаловажно, особенно при работе в команде.
Рекомендую всем, независимо от стажа.

* RC.jpg (5.66 Кб - загружено 1464 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #57 : 15-04-2015 11:28 » 

Jack Ganssle, Tammy Noergaard, Fred Eady, Lewin Edwards.
Embedded Hardware: Know It All.
Elsevier, 2008
ISBN: 978-0750685849



Книга входит в серию "Newnes Know It All".
Серия ориентирована преимущественно на начинающих, но я рекомендую всем хотя бы бегло ее просмотреть, поскольку материал излагается на достаточно серьезном уровне. В частности, заслуживает внимания приложение, посвященное тонкостям разводки печатных плат для различных применений.

* EmbHard.jpg (39.33 Кб - загружено 1358 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #58 : 26-04-2015 18:24 » 

Маркус Гэртнер.
ATDD. Разработка программного обеспечения через приемочные тесты.
ДМК Пресс, 2013.
ISBN 978-5-94074-572-3



Аспект "гибких" технологий программирования, называемый "разработкой, управляемой тестированием" (TDD), безусловно, представляет собой большой шаг вперед по сравнению с хорошо известной не одно десятилетие, но готовящейся на честно заслуженный отдых "водопадной" моделью (и уж тем более весьма популярным в массах "творческим" подходом, который после очистки от демагогической шелухи оказывается попросту отсутствием какого бы то ни было систематического подхода). Очень кратко его суть можно сформулировать так: вначале на основе спецификаций пишутся модульные (unit) тесты, и лишь затем - продукционный код в минимальном количестве, позволяющем пройти весь набор заранее подготовленных тестов. Есть нюансы (например, некоторые радикальные течения полностью исключают отдельные спецификации, утверждая, что модульные тесты и являются теми самыми спецификациями), но в целом картина примерно такова.
Разумеется, большая степень покрытия кода тестами, которая автоматически обеспечивается TDD, значительно повышает качество кода по многим показателям (как прямо, так и косвенно). Тем не менее у этого подхода есть весьма значительный изъян, обусловленный принципиально низкоуровневым характером модульного тестирования. Строго говоря, верификация функциональных спецификаций производится функциональными же тестами, а никак не модульными; то же относится и к валидации пользовательских требований, которая производится посредством приемочного тестирования. Поэтому остается значительный риск того, что программа, разработанная с применением TDD и полностью прошедшая модульное тестирование, окажется не вполне удовлетворяющей пользовательским требованиям.
Напрашивается вполне логичный вывод: если наша цель - получить код, который без проблем пройдет приемочное тестирование, значит, разработка должна управляться приемочными тестами. Впрочем, это очень легко сказать, но далеко не так просто воплотить на практике. Данная книга посвящена именно этой теме: как методологической, так и инструментальной поддержке разработки ПО через приемочные тесты (ATDD).
К явным достоинствам книги следует отнести то, что автор не склонен исповедовать "культ карго" и наглядно демонстрирует примат метода над инструментальными средствами, демонстрируя, как поставленная цель достигается в различных средах разработки. Внимательному читателю не должно составить труда применить изложенные идеи к избранному им набору инструментов.
Должен заметить, что применение ATDD к разработке firmware+hardware может оказаться посложнее, чем для "большого" софта, и потребовать, помимо программных средств, еще и специализированного оборудования. Тем не менее в этом направлении однозначно следует двигаться (и, по моим сведениям, соответствующие инструменты уже на подходе и вскоре должны стать доступны).

* ATDD.jpg (15.56 Кб - загружено 1363 раз.)
« Последнее редактирование: 26-04-2015 18:27 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #59 : 24-06-2015 14:39 » 

Bruce Powel Douglass.
Design Patterns for Embedded Systems in C. An Embedded Software Engineering Toolkit.
Elsevier, 2011.
ISBN 978-1-85617-707-8



Книга посвящена актуальнейшей, но при этом практически нераскрытой теме: паттернам проектирования программного обеспечения встроенных систем. Некоторые из них похожи на уже знакомые нам из мира "большого" программирования паттерны; другие заточены под специфику встроенных систем и вряд ли имеют аналоги в других областях.
Как и прочие книги Брюса Дугласа, эта подробно, детально и исчерпывающе полно описывает каждый из представленных паттернов (а их там боле двух десятков). И почему-то так же тяжело читается, хотя не могу понять почему: вроде бы придраться не к чему.
Рекомендую продвинутым разработчикам, которые уже преодолели детские болезни развития, столь характерные для отрасли embedded, и успешно занимаются совершенствованием процессов.

* Design Patterns for Embedded Systems in C.jpg (10.88 Кб - загружено 1221 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #60 : 20-09-2015 20:37 » 

Jean Labrosse, Jack Ganssle, Robert Oshana & al.
Embedded Hardware: Know It All.
Elsevier, 2007
ISBN: 978-0-7506-8583-2



Еще одна книга из уже знакомой читателям этой рубрики серии "Newnes Know It All".
Книга фактически является энциклопедией встроенного ПО (впрочем, это неудивительно, если взглянуть на список ее авторов). Не знаю, как редактору удалось собрать вместе такое созвездие лучших специалистов мира embedded, но результат получился выше всяких похвал.
Глядя на год издания, эту книгу не назовешь очень уж новой. Тем не менее мир ПО довольно консервативен, мир встроенного ПО - консервативен вдвойне, и изложенный в ней материал отнюдь не утратил актуальности.
Для совсем начинающих книга будет, пожалуй, тяжеловата. Для тех, кто желает повысить квалификацию и заодно расширить кругозор - в самый раз. Даже гуру, уверен, найдут в ней для себя какие-то прежде незнакомые моменты.

* ES.jpeg (21.91 Кб - загружено 985 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #61 : 09-01-2016 23:39 » 

Phillip Whitt.
Pro Freeware and Open Source Solutions for Business.
Apress Media, 2015
ISBN: 978-1-4842-1131-1 (paper), 978-1-4842-1130-4 (eBook)



Данная книга не ориентирована ни на разработчиков встроенных систем, ни вообще на какой-то узкий круг профессионалов в определенной области. Ее аудитория - люди, умеющие считать деньги и стремящиеся использовать бесплатное ПО в своей профессиональной деятельности, разумеется, не в ущерб функциональности.
Не секрет, что в мире свободного ПО ведется немало разработок, вполне способных успешно конкурировать с платными продуктами. Не секрет также, что в этом мире существует огромное число графоманов от софта, новичков, ухватившихся за задачу не по зубам, просто нерадивых энтузиастов, у которых угас первоначальный интерес к теме. Поэтому сориентироваться в этом море и выбрать действительно достойный продукт, обладающий достойным качеством, многочисленным сообществом пользователей, хорошей поддержкой и перспективами развития, порой не так просто. Некоторую помощь в этом выборе может оказать эта книга.
Объем ее невелик, и на энциклопедическую полноту охвата она вряд ли сможет претендовать. Впрочем, как отправная точка она вполне пригодна, а поиск доступных альтернатив можно отложить и до тех пор, пока ограничения выбранного продукта не начнут негативно сказываться на продуктивности работы.
Вот неполный перечень областей, охваченных данным обзором: офисные приложения, заметки, финансы, создание PDF, торговля, архивирование и резервное копирование данных, рисование, редактирование изображений, аудио/видео и еще множество полезных для малого бизнеса приложений.
Рекомендую тем, кто находится в поиске практичных средств для решения своих задач (т.е практически всем читателям моего блога).

* pro_freeware_and_open_source_solutions_for_business.jpg (53.09 Кб - загружено 627 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #62 : 24-02-2016 12:53 » 

Peter van der Linden.
Expert C Programming: Deep C Secrets.
Prentice Hall PTR, 1994.
ISBN: 0-13-177429-8

Я нечасто рекомендую книги столь почтенного возраста, поскольку в динамичном мире программирования за пару десятков лет меняется очень многое. Данная книга - одно из немногих исключений.
Книга обречена на успех уже хотя бы потому, что ее автор знаком с предметом не понаслышке, а, так сказать, изнутри. Он участвовал в разработке Sun OS, в частности, в разработке компиляторов C и Pascal. Неудивительно, что он владеет языком C на экспертном уровне. Когда речь заходит о тонких моментах языка, ему есть что поведать не только о том, что происходит с кодом, но и почему это происходит именно таким образом.
После прочтения книги у внимательного читателя должны окончательно рассеяться сомнения о том, как в действительности работает та или иная конструкция языка, а уж наводящие ужас на новичков объявления вроде char *(*c[10])(int **p); или void (*signal(int sig, void (*func)(int))) (int); и вовсе будут читаться как букварь. Также будет окончательно поставлена жирная точка в дискуссиях, отличаются ли массивы в C от указателей или это одно и то же.
Часть материала посвящена также языку C++ (на мой взгляд, совершенно напрасно, поскольку для поверхностного подхода этот язык сложноват, а для детального нужна книга более объемная; впрочем, они и так есть). В заключительной главе приводятся типичные вопросы из интервью при приеме на работу в Sun, Microsoft и др.; поиск ответов на эти вопросы тоже будет полезен для повышения эрудиции, и не только касательно C.
Рекомендую тем, кто пишет код на C и обладает уровнем не ниже среднего; новичкам предпочтительнее будет подтянуть свой уровень по другим букварям и лишь затем приступать к чтению.

* ExpertC.jpg (16.73 Кб - загружено 673 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #63 : 05-05-2016 22:26 » 

Matt Chernosky.
How to Use Ceedling for Embedded Test-Driven Development with Step-by-Step Examples.
Cамиздат.
ISBN: -

Книга доступна для бесплатной загрузки на сайте автора по ссылке. Оставьте свой почтовый адрес, и файл будет на него отправлен. В качестве приятного бонуса на этот же адрес будет приходить рассылка от автора, в которой также есть что почитать.
Собственно, это скорее не книга, а небольшая брошюра (26 страниц), представляющая собой введение в Ceedling, очень полезный open source кросплатформенный инструмент для разработки встроенного ПО с использованием методик TDD (разработка через тестирование). Однако, несмотря на малый объем, она содержит все необходимое для начала работы.
Описаны процедура установка необходимого ПО, создание тестового проекта, создание тестового и продукционного кода, процесс рефакторинга, создание мок-объектов для полноценного модульного тестирования кода. В конце приведен краткий справочник по наиболее часто применяемым функциям Ceedling.
Самый большой недостаток этой книги, который мне удалось обнаружить, - это то, что вышла она лишь сейчас, а не года три назад, когда я по крупицам собирал информацию, необходимую для начала программирования микроконтроллеров. Немного завидую тем, кто начинает освоение эмбеддинга с этой книги: их путь будет гораздо быстрее и легче моего.
Рекомендую всем новичкам, кто намерен создавать качественный встроенный код на языке C, но не знает, с чего начать.

(Источник).
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #64 : 17-05-2016 22:50 » 

Джез Хамбл, Дейвид Фарли.
Непрерывное развертывание ПО. Автоматизация процессов сборки, тестирования и внедрения новых версий программ.
Вильямс, 2011.
ISBN: 978-5-8459-1739-3



Оригинал:
Jez Humble, David Farley.
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation.
Addison-Wesley, 2010.
ISBN-13: 978-0321601919
ISBN-10: 0321601912



Книга из серии "Addison-Wesley Signature Series (Fowler)", и это само по себе уже замечательная рекомендация: Мартин Фаулер на чем попало свою подпись не поставит.
Есть простая житейская мудрость: если что-то получается с трудом, нужно делать это снова и снова, пока полученный навык не позволит легко справляться с трудностями. Через это проходят и первоклассник, непослушной рукой выводящий крючки в прописи, и начинающий водитель, неспособный поначалу стронуть авто с места... Есть свои традиционные трудности и у разработчиков ПО. Одна из самых трудоемких задач - интеграция написанного разными людьми (или даже командами) кода в целостный проект, исправление ошибок интеграции, которые являются одними из наиболее сложных и трудоемких в исправлении, и доведение качества кода до уровня, приемлемого для выпуска релиза.
Самый надежный способ бороться с этими трудностями - не откладывать решение проблем до сдачи проекта, а исправлять ошибки как можно раньше, желательно непосредственно после их обнаружения (и, соответственно, обнаруживать их как можно раньше, желательно непосредственно после их возникновения). Для этого необходимо собирать и тщательно тестировать проект как можно чаще, буквально с первых дней и строк кода. В этом и состоит основная идея "непрерывных" процессов (непрерывная интеграция/развертывание/поставка ПО). Как только появятся первые логически завершенные функции, их можно отдать тестировщикам, а также показать будущим пользователям продукта на предмет соответствия их ожиданиям.
Сборка и развертывание проекта вручную - кропотливый, однообразный и вследствие этого чреватый ошибками труд (причем цена ошибки порой может оказаться весьма высокой, например, 365 миллионов долларов за 45 минут). Внедрять непрерывное развертывание можно лишь при условии полной его автоматизации, иначе затраты на него просто не позволят команде уложиться в бюджет и сроки.
Ценность книги (как и остальных из серии) - в ее практичности. Авторы не дают досужие советы, они рекомендуют конкретные инструменты (многие из которых бесплатны) и методики для достижения цели. Книги вполне достаточно для того, чтобы построить полный "конвейер развертывания" в своей команде. Рассмотрены фактически все основные ступени и аспекты процесса, даны ценные рекомендации, как собрать необходимые инструменты воедино.
Книга из разряда обязательных к прочтению для менеджеров проекта, тимлидов и ключевых специалистов.

(Источник).

* ContDel1.jpg (127.89 Кб - загружено 473 раз.)
* ContDel_eng1.jpg (43.26 Кб - загружено 487 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #65 : 06-06-2016 13:40 » 

Chad Fowler.
My Job Went to India. 52 Ways to Save Your Job.
Pragmatic Programmer, 2005.
ISBN: 978-0-9766-9401-4



Я давно знал о существовании этой книги, но постоянно не было то возможности ее найти, то времени ее прочитать... И вот наконец, как в известном тосте, желания совпали с возможностями.
Я был заранее уверен, что Pragmatic Programmer плохую или даже посредственную книгу не напечатает. Но реальность все равно превзошла мои ожидания. Без преувеличения это одна из лучших книг по программированию, несмотря на то, что в ней нет ни строчки машинного кода.
Собственно, сама тема (перенос кодинга в страны третьего мира, причем не обязательно это буквально Индия) не нова, а за десять лет, прошедших с момента выхода книги в свет, тенденция лишь укрепилась. Даже в жаргоне отечественных программистов укрепился петросянизм "индусский код" (хотя, говоря по совести, сия чаша также не минует и "белых господ", судя по содержанию тематических форумов). Это вызвало резкое снижение количества рабочих мест в так называемых цивилизованных странах, которые расслабил большой бум эпохи доткомов. Этот бум принес программистам на некоторое время супердоходы, минимум вдвое-втрое превышающие доходы инженеров в других отраслях, поэтому ломка после окончания бума оказалась весьма болезненной.
Основная идея книги такова: уход кодинга в офшоры - это всерьез и надолго, он имеет реальное экономическое обоснование, и нужно не ностальгировать по безвозвратно ушедшим золотым денькам, а искать свое место в изменившемся мире. Автор предлагает целых 52 рецепта адаптации к новым реалиям, и все они как минимум заслуживают внимания.
Хотя автор смотрит на ситуацию с двух точек зрения - американской и индийской, российскому читателю также полезно прочитать эту книгу. Тем более что в нашей стране самым парадоксальным образом сочетаются обе эти грани: с одной стороны, приживается офшорное программирование на западных хозяев, с другой - столичные корпорации все активнее прибирают к рукам замкадовские провинциальные активы заодно с их дешевой рабочей силой, создавая своеобразный офшор без пересечения границ размером почти в шестую часть суши. Неважно, в какой роли вы пребываете в данный момент, "российского американца" или "российского индуса"; книга не окажется бесполезной в любом случае.
Рекомендую всем, причастным к миру программной инженерии, независимо от места проживания, специфики работы и опыта.

(Источник)

* mjwti_small.jpg (41.3 Кб - загружено 463 раз.)
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Страниц: 1 2 3 [Все]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines