Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Выпуск 13(окончание): Облом и эврика


Информационный Канал Subscribe.Ru

IMHO Ворчунии  (архив выпусков)

Облом и эврика
Элджер "С++"


Вчера, читая дайджест одного дискуссионного листа, предполагающего наличие некоторых технических навыков, - поняла, что мое отношение к Элджеру сродни к авторам следующего диалога:

    [1]: файлы размером более 200 кБайт начинают "нарезаться" на куски, которые довольно трудно вручную объединять (в командной строке сеанса MSDOS можно использовать прогу Ч команду склейки файлов
    copy /b file1+file2+...+fileN result
    [2]: вовсе и не трудно их объединить если использовать...
    Сохраняешь все куски в один файл.
    Дабл кликаешь первый кусок (*.001)
    Жмешь "объединить" - в правом нижнем углу.
    Прога предлагает свое имя результирующего файла.
    Соглашаемся или даем свое.
    Жмем ОК. Всё!
    Если хотите я кину в конфу (333кб)
    Или возьмите здесь http://

Я рыдаю....

2002-08-20
Выпуск 13-ый
(окончание)
Подписаться на рассылки Ворчунии
про книги
про рассылки
Rikulia
рассылка
Истории сэра Ричарда
Шотландского ака
"метр с кепкой"

   





Ворчалка

6Кб Обложка
C++

С++ for Real Programmers

Джефф Элджер
Jeff Alger

Серия:      Библиотека программиста
  Оглавление
Глава 11. "Производящие функции и объекты классов"
Рецензия
Мнения:
  • По следам дискуссий в FIDO7.RU.BOOKS.COMPUTING
  • Змей, Grigory Grubsky, Dmitriy Shadrin, Ktirf
  • Калинин,
  • books.ru
  • ozone
  • Питер-1
  • Питер-2
  • Питер-3
  • Питер-4
  • Дата выпуска:2000
    Издательство:Питер   ISBN: 5-94723-032-1
    (eng) 0-201-61641-6
    Формат:16.5x23см тощина - 1.5см, 320 страниц,
    мягкий переплет, вес - 300г
    Цена:  96 рублей
    (Rushall.ru)
       100 рублей
    (Books.ru)
       105 рублей
    "Питер"
       109 рублей
    (Co@libri)
       17.5 гривен
    (Tid.com.ua)

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

    Общее впечатление от книги двоякое.

    С одной стороны, я ЖУТКО РАЗОЧАРОВАНА. Читая восторженные отклики дважды приплюснутых сишников, я не сделала на них поправку :((

    С другой стороны, я наконец смогла понять, что кроется за обращенными ко мне словами "С++ очень мощный язык, Вы, мое имя в реале, зря его не дооцениваете" от людей, знающих не один язык программирования и не являющиеся чайник-фанатами C++ "т.е. людьми, первый язык которых VC++ или Builder C++".

    Не надо предполагать, что такая преамбула - это начала очередного джехада. Так получилось, что в последнее время почти единственным языком программирования, на котором мне приходится думать - это дельфийский диалект паскаля. Более грамотно говоря, Object Pascal от Borland версий 3-5. И хотя в прошлом я в одинаковой степени владела дообъектными С и Pascal, а еще дальше в глубь 20-го века некоторыми древними паскалеобразными языками, почти без "словаря" читаю код на С++, но волей не волей Дельфин откладывает свой отпечаток на ценности языковых трюков.

    А прочтя предисловие, где обещается поднятие на СЛЕДУЮЩИЙ уровень мастерства, я для себя ожидала двух вещей - улучшить свое понимание С++ и найти применИмые идеи для дельфина. Большинство книг по С++, акромя уж очень элементарных учебников, содержат описания множества вещей, не зависящих от языка реализации. Почему этим страдают именно книги якобы о С++, мне не известно, но это реальность.

    Хватит обо мне, самой ворчливой из ворчливых ;-), наконец, что же книга из себя представляет? Знаете, что такое вариации на тему в музыке? Произведение, в которых талдычится одна и та же мелодия с чуть разными реверансами. Короче говоря, так же муторно как этюды, но технику при этом не развивают. Так вот, в этой книге есть только одна тема - как бы так похитрее и посложнее создать класс, объекты которого вели бы себя как обычный сишный указатель, но при этом минимизировать последствия вечной проблемы С ака утечка памяти. Напоминаю, что эта книга - вариация на тему, а не этюды, т.е. здесь есть только наброски идей - продумывать технику и аккуратно реализовывать ее - Ваша забота.

    Казалось бы, работа с памятью через объекты - должна заинтересовать любого программиста вне зависимости от языка программирования. Читаю одну главу про указатели, другую. Как только автор свои классы, имитирующие указатели, не называет - и умными, и ведущими, и невидимыми, и гениальными. Чувствую, что что-то знакомое во всем этом есть! Ба, так это обыкновенные классы в Дельфи и я это все знаю! :-( Но даже самые элементарные вещи описаны так - что пока не сообразишь, что это тривиально - чувствуешь себя умственно отсталым :-((


    Хотя аллегория с гранями для интерфейсов мне понравилась.

    Глава о производящих функциях после "Паттернов проектирования" дает немножко больше дополнительных деталей.

    Также, как известный литературный герой обнаружила, что говорю прозой, т.е. чаще всего уплотняю память либо по методу Бейкера, либо "уплотнением на месте" ;-)

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

    К сожалению, чисто визуально в коде не выделены те нюансы, которые автор считает важными. Местами приходится гадать - автор так записал для краткости, или такая запись - это фича. Особенно неприятно выискивать в листингах двух почти одинаковых примеров - а в чем собственно разница?

    После прочтения этой книги, я очень в больших "непонятках", почему до второй ступени, т.е. этой книги, доходят не все си-плюс-плюшники?

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

    Теперь мы подошли к тому, что за "просветление" я получила в ходе чтения сей книги. Как любой уважающий себя С++автор Джефф Элджер предваряет основные вариации четырьмя главами об используемых конструкциях С++, что вкупе с муторными объяснениями "заморочек" с операторами выделения памяти, вызываемыми конструкторами и деструкторамми, плюс хитростями в перегрузке одноименных функций приведения навело меня на мысль -
    что я ни разу не видела НАСТОЯЩЕГО УЧЕБНИКА С++!

    Не спешите возражать. Поясню свою мысль.

      С++ может выглядит как С.
      С++ может выглядеть как Object Pascal,
      только ключевые слова другие.
    Точнее сказать С++ может прикидываться аналогом Object Pascal для С.

    Ключ к пониманию - глагол ПРИКИДЫВАТЬСЯ.

    Если Дельфин как представитель Object Pascal - это расширение паскаля, то С++ соотносится с С, как чайник у компа к чайнику на плите. Название одно и то же, но внутренняя сущность разная. Отсюда ноги если не всех, то весьма многих проблем С++ прогеров - пытаются научить не самому языку, а тому, чем С++ прикидывается, то бишь "Object C" :-(

    Представьте, что одно и то же устройство позволяет управлять домашним кинотеатром и рядом стоящей атомной станцией. И юзера научили только управлению своим телефизором, а про аэс может и не сказали, или сказали "это следующий уровень - большинству он не нужен". Пришел юзер вечером уставший, ну нажал не на ту комбинацию - вот Вам и радиоактивное заражение. Т.е. утечка памяти.

    Подводя итоги,

    1. если основной язык у Вас не С++, но Вы в состоянии прочесть листинг и хотите удостовериться, что я тут наболтала об языке - можете прочесть книгу;
    2. если Вы недавно прочли "Паттерны проектирования", то кое-что в третей - четвертой части наверно Вам пригодятся;
    3. если единственный язык, которым Вы когда либо свободно владели, - это С++, то не надо тратить время на эту книгу. Лучше выучите до того же уровня второй язык. А потом третий;
    4. если Вы кроме С++ свободно владеете или владели еще парой-тройкой языков, включая объектные - черт с Вам - пролистайте! И пришлите мне свое мнение ;)

    Прочли?    Разминка для рук:
    С уважением, Ворчуния Ворчащая


    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу

    В избранное