Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2011, 19:46   #1
pproger
C++ hater
СуперМодератор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию паттерны для детсада

седня был в книжном, увидел вот такую книгу
http://www.biblio-globus.ru/descript...uct_no=9663157
думаю, о, еще одна книга о паттернах, отлично. полистал, и прифигел.
паттернов как таковых там довольно мало (около 10, 1 глава рассматривает 1 паттерн). ну это не единственная проблема. принцип паттернов объясняется на картинках (рассматривается обсервер, семья читает газету и отец семейства говорит - а давайте подпишемся, будем в курсе дел N-ска, или паттерн цепочка обязанностей показывается на примере работы кафе, пришел клиент, сделал заказ, официантка записала, повар приготовил). все описания в таком духе, и на каждый паттерн по несколько таких примеров. uml диаграммы похоже стырены из gof(вот это нормальная книга по паттернам), но точно не уверен. вобщем, это стоило выпустить не как книгу, а как комикс) тогда может быть даже купил бы) но только с цветными картинками

если найдете в электронке, или встретите в книжном, советую просмотреть, повеселитесь)
рядом стояли 2 парня, увидели эту книжку, тоже поржали) вообще я заподозрил неладное, когда увидел эту девушку на обложке

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

кстати, всем советую покупать в каком нить books.ru, а в книжном только просмотреть книгу и понять, нужна ли она вам.

вот хотел купить эту книгу в самом большом книжном Москвы, по идее цены должны быть приемлимыми
http://www.biblio-globus.ru/descript...uct_no=9635926
http://www.books.ru/shop/books/816603

500р разница. офигеть, товарищи. совести нет у магазинов. как они такую цену установили - одному богу известно.
и опять же, этот магазин любит устраивать иногда скидки в 25% для держателей дисконт карт. и все сразу ломятся за макулатурой. но даже с такой вроде бы СУЩЕСТВЕННОЙ скидкой моя книга будет стоить ~1000р, что опять же, на 200р дороже того же books.ru, или на 100р того же ozon.ru.

не знаю, зачем это написал, просто решил поделиться мыслями не уважают вобщем людей в рашке, полюбому( везде нае[esc]bcwобмануть хотят
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 09.04.2011 в 19:51.
pproger вне форума Ответить с цитированием
Старый 09.04.2011, 21:46   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,499
По умолчанию

Меня в целом ситуация с программированием и IT в настоящий момент не радует. Сумбурное развитие какое-то. Нагромождение кучи разных теорий и технологий и в итоге одна сплошная путаница.
Что до книг (раньше я об O'Reilly был лучшего мнения. Да и странное животное у них в этот раз на обложке). Половина авторов - идиоты. Пишут книги все, кому не лень.
ООП - ооооо ООП. Крутая штука. О нём полюбому надо написать в книге. Причем это будет куча долбаных определений, от который легче новичку не будет. Итог: новичок убеждается, что ООП - это круто и его надо везде использовать, но он не умеет его использовать, ему не объяснили как нужно мыслить в стиле ООП и получаем на выходе говнокод, но зато на классах и блин пипец какой используемый в других проектах.
Ну а в последние годы веяния моды - это паттерны. Банда четырёх просто боги, что донесли эту штукенцию в массы. Теперь если программа без паттернам - то она отстой и не канает. Попробуй теперь людям только объясни, что pattern в переводе с англицкого - это не только шаблон, но и пример/образец. Это вовсе не шаблоны проектирования, а образцы. Пример размышлений и т.д. и т.п. Их можно и нужно брать за основу, но копировать целиком и полностью их не надо.
И вот вроде книг много, но их качество и содержание... Где книга, которая показывает как нужно писать? Не видел ни одной. Откуда новичок научится как правильно управлять памятью в С++, чтобы не было утечек? Откуда он узнает как правильно бросать исключения и обрабатывать их? Оно конечно есть отдельные примеры в книгах, где всё красиво, но они искусственные. Если глава о классах - плевать на память (проблемы с утечками естественно для простоты пояснения опущены). Но потом в главе про утечки куда-то пропадают классы. Исключения тоже не в тему используются (ну это же чисто пример и реальный код будет отличаться. Примерно так в книгах пишут обычно). В итоге из-за таких унылых источников знаний первые лет так 10 программист учится программировать, доходит до всего сам и, как следствие, не привносит ничего нового в индустрию (а ведь мог бы, если бы ему всё нормально изначально объяснили, а не бегал он по граблям самостоятельно).
Готов поспорить, что большинство изучающих С++ не понимают как компилятор обрабатывает их код, почему в хедерах нехорошо объявлять глобальные переменные и зачем вообще нужны эти глупые макросы во всех хедерах (или #pragma once для MS VC++), которые как-то защищают от какого-то повторного включения. А ведь если бы им это объяснялось нормально в книгах, то и обучение шло быстрее.
И такая штука со всеми языками. Обучают не тому и не так в этих самых книгах.

А по поводу магазинов: цены в них действительно отличаются. Покупал в январе три книжки, так искал тупо интернет-магазин в котором они все были и в котором сумма с учетом доставки была бы ниже. Для тех книг это был kniga.ru. В обычном магазине к книгам не присматривался и получил с одной облом в виде газетной бумаги. Скрасил моё расстройство разве что пупырчатый пакет, в который эти книги были упакованы
ЗЫ. Чуть не забыл. Против объяснений на пальцах я лично ничего не имею. Собственно и в универе частенько примеры из жизни приводили. Структуру данных "очередь" объясняли на примере очереди в магазине. И проблемы многопоточного программирования можно красиво на подобных примерах привести. Тут главное не углубляться и не добавлять лишние детали, которые будут отвлекать (наличие семьи и отца семейства, например, лишние в описании обсервера, т.к. они в этом паттерне к коду плохо привязываются. Ну отец - подписчик, а его семья тогда кто? Лишние непонятки вносятся, в общем).
pu4koff вне форума Ответить с цитированием
Старый 09.04.2011, 22:43   #3
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Ну оно так и есть - на всем сейчас пытаются заработать только деньги, а качество уходит на второй план...печально конечно...
Достойных книг, где было бы все четко и понятно объяснено - вобще мало...но все же по крайней мере для себя я выделил авторов, в чьих книга довольно таки хорошо описывается та или иная информация...
Паттерны...хоть и познакомился я с ними относительно не так давно, но после данного знакомства - представление об ООП и вобще о проектировании программных продуктов изменилось в лучшую сторону. Использование паттернов избавило от изобретения собственных велосипедов, читаемость и вобще вид код стал намного понятнее та и правильность кода(не знаю как это толком назвать) очень возрастает...ну вобщем использование паттернов в проекте - считаю очень таки хорошим и правильным тоном...Из литературы - gof + примеры в интернете...
Цены на учебники довольно таки не низкие, посему в большинстве случаев читаю электронные варианты...
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 11.04.2011, 19:07   #4
N1KeL
Пользователь
 
Аватар для N1KeL
 
Регистрация: 20.04.2009
Сообщений: 58
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Готов поспорить, что большинство изучающих С++ не понимают как компилятор обрабатывает их код, почему в хедерах нехорошо объявлять глобальные переменные и зачем вообще нужны эти глупые макросы во всех хедерах (или #pragma once для MS VC++), которые как-то защищают от какого-то повторного включения. А ведь если бы им это объяснялось нормально в книгах, то и обучение шло быстрее.
Не могли бы вы ответить на эти вопросы здесь, интересно стало. В книгах, которые читал по C++ действительно этого не встречал
N1KeL вне форума Ответить с цитированием
Старый 11.04.2011, 19:40   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,499
По умолчанию

Цитата:
Сообщение от N1KeL Посмотреть сообщение
Не могли бы вы ответить на эти вопросы здесь, интересно стало. В книгах, которые читал по C++ действительно этого не встречал
По хорошему тут материала на статейку наберется. Давно я собственно уже где-то в разделе по С++ эту тему описывал в кратце как смог (с объяснениями у меня беда всегда была, так что не обессудьте).
Так вот чем отличаются для компилятора cpp файлы от h? Тем, что по сути h ему нафиг не нужны и он о них ничего не знает. При компиляции компилятору на входе подаётся только куча срр файлов (ну и всякие ключики для установки параметров компилятора, но тут это не суть важно). И вот берёт компилятор первый cpp файл (все срр обрабатываются отдельно и о существовании друг друга ничего не знают) и отдаёт его препроцессору, которому собственно интересны все эти #include, #define,... Что делает препроцессор? А ничего хитрого. Увидел #include и тупо вместо него воткнул содержимое указанного там файла. Соответственно как работает эта защита от повторного подключения хедера? При повторном подключении получается просто пустой текст в хедере (#ifndef же уже не срабатывает и попадаем как раз после #endif, а после него обычно пустота). А если каждый cpp файл компилируется отдельно, то эта "защита" распространяется ли на разные файлы? Нет не распространяется. Т.е. для каждого срр файла будет иметься своя копия всех подключаемых хедеров. А если в хедере прописана глобальная переменная, то что будет? А будет свой экземпляр этой переменной для каждого срр файла. Есть еще желание совать в h файл реализацию всего и вся? Есть желание совать туда всё подряд, кроме описания прототипов функций/классов?
Ну вот как-то так в кратце. Надеюсь, что хоть чуток понятнее стали причины всех этих волшебств с "защитой" хедеров и почему это вдруг нельзя переменные описывать в хедере.
pu4koff вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хорошая программа для разрезания жестких дисков для 7-ой винды и других ОС. Pumik2010 Windows 3 01.03.2011 01:28
паттерны проектирования prokach Общие вопросы C/C++ 3 18.01.2011 22:23
составить функцию для вычисления значения y=P(x) многочлена для заданного аргумента x KASPEER Помощь студентам 2 12.01.2010 15:03
Насколько можетбыть коротким код для решения задчки для Экселя? saga Microsoft Office Excel 0 04.04.2009 13:35