Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Внимание! Есть замечания модератора по теме: Желательно не вставлять в качестве описания аннотацию, а высказать свое мнение о книге
Старый 11.12.2013, 12:40   #31
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Цитата:
Займитесь.
Да могу заняться, в принципе.
Вместо "спасибо" можно разрешить разместить активисту помимо ссылок на файлообменники, реферальные ссылки на озон, например (все равно это лучше вот такой рекламы: http://programmersforum.ru/showpost....&postcount=141). Но можно и не разрешать ^^.
rrrFer вне форума Ответить с цитированием
Старый 26.12.2013, 13:46   #32
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Быстрая разработка программ: принципы, примеры, практика
Язык: русский
Количество страниц: 752
Скачать: rutracker.org/forum/viewtopic.php?t=905917
Исходники: на C++ и Java (приложил к сообщению)
Вложения
Тип файла: zip SourceArchive.zip (212.5 Кб, 25 просмотров)
8Observer8 вне форума Ответить с цитированием
Старый 20.01.2014, 13:10   #33
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Нашёл вот такой комментарий по поводу книги из моего сообщения выше:
Цитата:
При всех плюсах книги перевод существенно затрудняет её восприятие. Не сказать, что перевод полностью ужасен, но местами он приближается к этому. В новом варианте, основанном на C# (http://www.ozon.ru/context/detail/id/5800704/) качество перевода гораздо лучше, так что рекомендовал бы прочитать C#-вариант и тем, кто работает с C++/Java.
Этот комментарий вот отсюда: http://www.ozon.ru/context/detail/id.../#tab_comments

Поэтому решил читать её в варианте C#. На самом деле, действительно, неважно на каком языке написаны примеры. Книга не концентрируется на языке. Я буду переписывать примеры на Qt C++

Название: Принципы, паттерны и методики гибкой разработки на языке C#
Автор: Martin R., Martin M. / Мартин Р.С., Мартин М.
Язык: русский
Количество страниц: 757
Год: 2011
Скачать: http://rutracker.org/forum/viewtopic.php?t=4295746
Исходники: http://www.objectmentor.com/PPP/

Последний раз редактировалось 8Observer8; 20.01.2014 в 13:41.
8Observer8 вне форума Ответить с цитированием
Старый 20.01.2014, 13:39   #34
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Я думаю, следующую книгу Роберта Мартина "Чистый код" нужно читать раньше, чем "Принципы, паттерны и методики гибкой разработки"

Хотя примеры в книге на Java, но они не отличаются от C++. Все идеи, описанные в книге, легко и естественно можно реализовать на фреймворке Qt (на языке C++)

Название: Чистый код. Создание, анализ и рефакторинг
Автор: Мартин Р.
Язык: русский
Количество страниц: 464
Год: 2010
Скачать: http://rutracker.org/forum/viewtopic.php?t=3088098

P.S. Список всех книг Роберта Мартина: https://sites.google.com/site/uncleb...ltingllc/books

Последний раз редактировалось 8Observer8; 20.01.2014 в 13:44.
8Observer8 вне форума Ответить с цитированием
Старый 20.01.2014, 18:13   #35
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Чистый код можно и вовсе не читать. А если читать - то порядок не важен. Я просматривал по диагонали - книга не серьезная. Там есть некоторые забавные моменты, которые были упущены в программе ВУЗа (например нам ни слова не сказали про то, как правильно составлять юнит тесты), но написана она настолько поверхностно, что я бы ее первокурсниками (или даже поступающим в ВУЗы) рекомендовал. Общеразвивающая книжка. Ее по-любому мало. А ряд моментов в ней, ИМХО, весьма спорны.
rrrFer вне форума Ответить с цитированием
Старый 20.01.2014, 18:24   #36
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Я считаю, что порядок важен. Вот цитата из книги "Чистый код":

Цитата:
Эта книга во многих отношениях является «предысторией» для книги,
написанной мной в 2002 году: «Agile Software Development: Principles, Patterns, and
Practices» (сокращенно PPP). Книга PPP посвящена принципам объектно-
ориентированного проектирования и практическим приемам, используемым
профессиональными разработчиками. Если вы еще не читали РРР, скажу, что там
развивается тема, начатая в этой книге. Прочитавшие убедятся, что многие идеи
перекликаются с идеями, изложенными в этой книге на уровне кода.

В этой книге периодически встречаются ссылки на различные принципы
проектирования. В частности, упоминается принцип единой ответственности (SRP),
принцип открытости/закрытости (ОСР) и принцип обращения зависимостей
(DIP). Все эти принципы подробно описаны в РРР
Если прочитал по диагонали, то сочувствую. Автор предупреждал, что так делать не надо:

Цитата:
Профессионализм имеет две составляющие: знания и практический опыт. Вы
должны узнать принципы, паттерны, приемы и эвристические правила, известные
каждому профессионалу, а также «втереть» полученные знания в свои пальцы,
глаза и внутренности усердной работой и практикой.
Я могу объяснить вам физику езды на велосипеде. В самом деле, классическая
физика относительно прямолинейна. Сила тяжести, сила трения, ротационный
момент, центр тяжести и т. д. — все это можно описать менее чем на одной
странице уравнений. Этими формулами я докажу вам, что езда на велосипеде возможна,
и предоставлю всю необходимую для этого информацию. Но когда вы впервые
заберетесь на велосипед, вы все равно неизбежно упадете.
С программированием дело обстоит точно так же. Конечно, мы могли бы записать
все «хорошие» принципы чистого кода, а потом доверить вам всю практическую
работу (другими словами, позволить вам упасть, забравшись на велосипед), но
какие бы из нас тогда были учителя?
Нет. В этой книге мы пойдем по другому пути.
Умение писать чистый код — тяжелая работа. Она не ограничивается знанием
паттернов и принципов. Над кодом необходимо попотеть. Необходимо пытаться
и терпеть неудачи. Необходимо наблюдать за тем, как другие пытаются и терпят
неудачи. Необходимо видеть, как они спотыкаются и возвращаются к началу;
как мучительно принимаются решения и какую цену приходится платить за
неверный выбор.
Приготовьтесь основательно потрудиться во время чтения книги. Перед вами
не «легкое чтиво», которое можно проглотить в самолете и перевернуть
последнюю страницу перед посадкой. Книга заставит вас потрудиться, и потрудиться
усердно. Какая работа вам предстоит? Вы будете читать код — много кода. И вам
придется как следует подумать, что в этом коде правильно, а что нет. Вы будете
наблюдать за тем, как мы разбираем эти модули, а потом собираем заново. Это
потребует немало времени и усилий; но мы считаем, что результат того стоит.
Книга разделена на три части. В первых нескольких главах излагаются принципы,
паттерны и приемы написания чистого кода. В них приводится довольно
солидный объем кода, и читать их будет непросто. Весь этот материал подготовит вас
ко второй части. Если вы отложите книгу после первой части — всего хорошего!
Во второй части книги трудиться придется еще больше. Она состоит из
нескольких практических сценариев нарастающей сложности. Каждый сценарий
представляет собой упражнение по чистке кода — или преобразовании проблемного
кода в код с меньшим количеством проблем. Чтобы усвоить материал этой части,
необходимо основательно потрудиться. Вам придется переключаться туда-сюда
между текстом и листингами. Вам придется анализировать и разбирать код, с
которым мы работаем, и осознать причину каждого вносимого изменения. Выделите
на это время, потому что работа займет не один день.
Третья часть книги — концентрированное выражение ее сути. Она состоит из
одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. В ходе очистки кода в практических сценариях мы
документировали причину каждого выполняемого действия в виде эвристического правила
или «запаха». Мы пытались понять нашу собственную реакцию на код в процессе
его чтения и изменения; старались объяснить, почему мы чувствовали то, что
чувствовали, или делали то, что делали. Результат представляет собой базу знаний,
описывающую наш путь мышления в процессе чтения, написания и чистки кода.
Впрочем, без тщательного чтения всех практических сценариев из второй части
книги пользы от базы знаний будет немного. В этих сценариях мы тщательно
пометили каждое вносимое изменение ссылкой на соответствующее
эвристическое правило. Ссылки заключаются в квадратные скобки и выглядят примерно
так: [Н22]. Это позволяет читателю видеть контекст, в котором применяются
эвристики! Главная ценность заключается даже не в самих эвристиках, а связях
между ними и конкретными решениями, принимаемыми в ходе чистки кода
практических сценариев.
Чтобы помочь вам отслеживать эти связи, мы разместили в конце книги список
перекрестных ссылок. В нем приведены номера страниц всех ссылок. По этому
списку можно найти каждое место, в котором применялась та или иная
эвристика.
продолжение
Цитата:
Если вы прочитаете первую и третью часть, пропустив анализ практических
сценариев, — считайте, что вы прочитали еще одну «легкую» книгу о написании
качественного кода. Но если вы потратите время на проработку всех сценариев,
проследите за каждым крошечным шагом, за каждым решением, если вы
поставите себя на наше место и заставите себя думать в том же направлении, то
ваше понимание этих принципов, паттернов, приемов и эвристик значительно
углубится. Знания уже не будут «внешними». Они проникнут в ваши пальцы,
глаза и сердце. Они станут частью вашей личности — как велосипед становится
продолжением вашего тела, когда вы научитесь на нем ездить.

Последний раз редактировалось Alex11223; 29.12.2016 в 19:22.
8Observer8 вне форума Ответить с цитированием
Старый 21.01.2014, 11:11   #37
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
Сообщение Литература по С++

Следующая книга содержит примеры на Java, но можно легко переписать на С++. Они будут понятны и начинающим С++ разработчикам. Называется: "Рефакторинг. Улучшение существующего кода"

Это отличная книга. Я её стал читать потому что на неё (и ряд других книг) есть ссылки в книгах замечательного разработчика Роберта Мартина "Чистый код. Создание, анализ и рефакторинг" и "Принципы, паттерны и методики гибкой разработки на языке C#" (ссылки на которые я давал выше)

Как и в книге "Чистый код" - здесь используется JUnit для создания юнит тестов (на языке Java). Для начинающих C++ разработчиков я рекомендую выполнить мою инструкции по CppUnit и вы научитесь писать юнит тесты на C++:
- http://programmersforum.ru/showpost....2&postcount=15
- http://programmersforum.ru/showpost....4&postcount=16
- http://programmersforum.ru/showpost....6&postcount=17

Название: Рефакторинг. Улучшение существующего кода.
Год: 2003
Автор: Мартин Фаулер
Количество страниц: 432
Язык: русский
Скачать: http://rutracker.org/forum/viewtopic.php?t=3825130

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

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

Последний раз редактировалось Alex11223; 29.12.2016 в 20:51.
8Observer8 вне форума Ответить с цитированием
Старый 05.02.2014, 10:43   #38
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Ссылки на материалы по контейнерным классам и алгоритмам:

1. Обзорная глава (№4) "Контейнерные классы" из книги Макса Шлее "Qt 4.8. Профессиональное программирование на C++"
Ссылка: http://rutracker.org/forum/viewtopic.php?t=4582272

2. Документация по Qt контейнерам на русском: http://www.doc.crossplatform.ru/qt/4...ontainers.html

3. Анализ производительности std::vector, std::list и std::deque: http://microfork.com/stdvector-stdli...ance-analisys/

4. Алгоритм выбора STL-контейнера: http://habrahabr.ru/company/infopulse/blog/194726/

5. Главы под названиями "Chapter 12: Understanding Containers and Itarators" и "Chapter 13: Mastering STL Algorithms" из книги Professional C++ (2nd Edition, 2012). В книге параллельно рассматривается C++11
Ссылка: http://kickass.to/wrox-professional-...-t7461950.html
Исходники: http://www.wrox.com/WileyCDA/WroxTit...-DOWNLOAD.html

6. Книга целиком об STL: "Эффективное использование STL"
Ссылка: http://rutracker.org/forum/viewtopic.php?t=956876
8Observer8 вне форума Ответить с цитированием
Старый 08.02.2014, 08:57   #39
mark74
 
Регистрация: 31.01.2014
Сообщений: 4
По умолчанию

C++ учебник
http://www.cplusplus.com/doc/tutorial/

Последний раз редактировалось Alex11223; 29.12.2016 в 19:16.
mark74 вне форума Ответить с цитированием
Старый 03.04.2014, 16:10   #40
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Приёмы объектно-ориентированного проектирования. Паттерны проектирования
Год: 2010
Автор: Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж.
Язык: Русский
Количество страниц: 366
Ссылка: http://rutracker.org/forum/viewtopic.php?t=3193196

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

Издание предназначено как для профессиональных разработчиков, так и для программистов, осваивающих объектно-ориентированное проектирование.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Литература ser70 Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 8 23.09.2013 10:52
Литература rushmod Помощь студентам 10 18.08.2012 13:49
Литература по VS C++ arcer Visual C++ 6 30.08.2011 22:40
Литература 13th Помощь студентам 7 01.01.2009 17:05