|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.04.2011, 19:46 | #1 |
C++ hater
СтарожилДжуниор
Регистрация: 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. |
09.04.2011, 21:46 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Меня в целом ситуация с программированием и IT в настоящий момент не радует. Сумбурное развитие какое-то. Нагромождение кучи разных теорий и технологий и в итоге одна сплошная путаница.
Что до книг (раньше я об O'Reilly был лучшего мнения. Да и странное животное у них в этот раз на обложке). Половина авторов - идиоты. Пишут книги все, кому не лень. ООП - ооооо ООП. Крутая штука. О нём полюбому надо написать в книге. Причем это будет куча долбаных определений, от который легче новичку не будет. Итог: новичок убеждается, что ООП - это круто и его надо везде использовать, но он не умеет его использовать, ему не объяснили как нужно мыслить в стиле ООП и получаем на выходе говнокод, но зато на классах и блин пипец какой используемый в других проектах. Ну а в последние годы веяния моды - это паттерны. Банда четырёх просто боги, что донесли эту штукенцию в массы. Теперь если программа без паттернам - то она отстой и не канает. Попробуй теперь людям только объясни, что pattern в переводе с англицкого - это не только шаблон, но и пример/образец. Это вовсе не шаблоны проектирования, а образцы. Пример размышлений и т.д. и т.п. Их можно и нужно брать за основу, но копировать целиком и полностью их не надо. И вот вроде книг много, но их качество и содержание... Где книга, которая показывает как нужно писать? Не видел ни одной. Откуда новичок научится как правильно управлять памятью в С++, чтобы не было утечек? Откуда он узнает как правильно бросать исключения и обрабатывать их? Оно конечно есть отдельные примеры в книгах, где всё красиво, но они искусственные. Если глава о классах - плевать на память (проблемы с утечками естественно для простоты пояснения опущены). Но потом в главе про утечки куда-то пропадают классы. Исключения тоже не в тему используются (ну это же чисто пример и реальный код будет отличаться. Примерно так в книгах пишут обычно). В итоге из-за таких унылых источников знаний первые лет так 10 программист учится программировать, доходит до всего сам и, как следствие, не привносит ничего нового в индустрию (а ведь мог бы, если бы ему всё нормально изначально объяснили, а не бегал он по граблям самостоятельно). Готов поспорить, что большинство изучающих С++ не понимают как компилятор обрабатывает их код, почему в хедерах нехорошо объявлять глобальные переменные и зачем вообще нужны эти глупые макросы во всех хедерах (или #pragma once для MS VC++), которые как-то защищают от какого-то повторного включения. А ведь если бы им это объяснялось нормально в книгах, то и обучение шло быстрее. И такая штука со всеми языками. Обучают не тому и не так в этих самых книгах. А по поводу магазинов: цены в них действительно отличаются. Покупал в январе три книжки, так искал тупо интернет-магазин в котором они все были и в котором сумма с учетом доставки была бы ниже. Для тех книг это был kniga.ru. В обычном магазине к книгам не присматривался и получил с одной облом в виде газетной бумаги. Скрасил моё расстройство разве что пупырчатый пакет, в который эти книги были упакованы ЗЫ. Чуть не забыл. Против объяснений на пальцах я лично ничего не имею. Собственно и в универе частенько примеры из жизни приводили. Структуру данных "очередь" объясняли на примере очереди в магазине. И проблемы многопоточного программирования можно красиво на подобных примерах привести. Тут главное не углубляться и не добавлять лишние детали, которые будут отвлекать (наличие семьи и отца семейства, например, лишние в описании обсервера, т.к. они в этом паттерне к коду плохо привязываются. Ну отец - подписчик, а его семья тогда кто? Лишние непонятки вносятся, в общем). |
09.04.2011, 22:43 | #3 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Ну оно так и есть - на всем сейчас пытаются заработать только деньги, а качество уходит на второй план...печально конечно...
Достойных книг, где было бы все четко и понятно объяснено - вобще мало...но все же по крайней мере для себя я выделил авторов, в чьих книга довольно таки хорошо описывается та или иная информация... Паттерны...хоть и познакомился я с ними относительно не так давно, но после данного знакомства - представление об ООП и вобще о проектировании программных продуктов изменилось в лучшую сторону. Использование паттернов избавило от изобретения собственных велосипедов, читаемость и вобще вид код стал намного понятнее та и правильность кода(не знаю как это толком назвать) очень возрастает...ну вобщем использование паттернов в проекте - считаю очень таки хорошим и правильным тоном...Из литературы - gof + примеры в интернете... Цены на учебники довольно таки не низкие, посему в большинстве случаев читаю электронные варианты...
Будь проще и люди к тебе потянутся
|
11.04.2011, 19:07 | #4 | |
Пользователь
Регистрация: 20.04.2009
Сообщений: 58
|
Цитата:
|
|
11.04.2011, 19:40 | #5 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Цитата:
Так вот чем отличаются для компилятора cpp файлы от h? Тем, что по сути h ему нафиг не нужны и он о них ничего не знает. При компиляции компилятору на входе подаётся только куча срр файлов (ну и всякие ключики для установки параметров компилятора, но тут это не суть важно). И вот берёт компилятор первый cpp файл (все срр обрабатываются отдельно и о существовании друг друга ничего не знают) и отдаёт его препроцессору, которому собственно интересны все эти #include, #define,... Что делает препроцессор? А ничего хитрого. Увидел #include и тупо вместо него воткнул содержимое указанного там файла. Соответственно как работает эта защита от повторного подключения хедера? При повторном подключении получается просто пустой текст в хедере (#ifndef же уже не срабатывает и попадаем как раз после #endif, а после него обычно пустота). А если каждый cpp файл компилируется отдельно, то эта "защита" распространяется ли на разные файлы? Нет не распространяется. Т.е. для каждого срр файла будет иметься своя копия всех подключаемых хедеров. А если в хедере прописана глобальная переменная, то что будет? А будет свой экземпляр этой переменной для каждого срр файла. Есть еще желание совать в h файл реализацию всего и вся? Есть желание совать туда всё подряд, кроме описания прототипов функций/классов? Ну вот как-то так в кратце. Надеюсь, что хоть чуток понятнее стали причины всех этих волшебств с "защитой" хедеров и почему это вдруг нельзя переменные описывать в хедере. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хорошая программа для разрезания жестких дисков для 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 |