Шаг 1 - Введение. Зачем все это надо и что это такое.
Шаг 1 - Введение. Зачем все это надо и что это такое.
Чтобы сразу пояснить свой план, сообщу - здесь и далее я собираюсь вместе с Вами разобрать следующие темы:
1. Объекты-указатели на другие объекты.
2. Объекты-интерфейсы к другим объектам.
3. Использование шаблонов как средства безопасности.
4. Массивы данных, итераторы и курсоры.
5. Нестандартное управление памятью.
6. Разное.
Давайте посмотрим, что мы имеем на этот день. Если Вы добрались сюда, и начали читать, значит Вы облазили FirstSteps по всем разделам, вероятно, списали часть разделов себе на винчестер, и держите на столе пачку книг по программированию. Предполагаю так же, что Вы имеете за своей спиной 2-4 работающих проекта на FoxPro, Delphi или C/C++. То есть опыт имеете, но супермастером себя ПОКА не считаете. Но почему, собственно? Что нам мешает? Разве в Lotus или Microsoft работают одни гении (звучит прикольно, кстати)? Почему какие-то ребята вполне способны написать Windows или PhotoShop, или там DeltaForce, а нам то что мешает? Вы только подумайте - С++ изобрел один Бьярн Страуструп. Один! И перевернул мир. А STL придумал Алексей Степанов. Один. Сейчас в Хьюлет-Паккарде сидит. Тоже мир перевернул. (Если не верите, сравните второе и третье издание Страуструпа, "Язык программирования С++").
Похоже где-то есть неслабый пробел. Ну, может Вас, в институте учили разным штучкам и фенечкам в программировании, а меня, помнится, учили, что: "Компьютер состоит из монитора, системного блока и клавиатуры; при выходе из строя системного блока необходимо заменить системный блок". И если про бинарные деревья и хэш-таблицы можно почитать у Д. Кнута, то есть огромная область, которой похоже не учат до сих пор. Похоже на то, как если Вы выучили иностранный язык, и можете на нем читать-писать, а вот как разговорная речь так вроде все слова понятны, а вместе не ложатся. (Христос за это апостолов корил: "Какое слово вам непонятно!") Почему? Потому, что слова в разговорной речи, а равно и в программировании, складываясь, могут приобретать иной смысл и становиться фразеологизмами, или идиомами. И нам этот смысл надо постигать посредством чтения умных книжек. А что там? А там посмотришь на прилавки - выбор каков - "С++ для тупых", "С++ для Бивиса и Батт-хеда" да плюс справочники по функциям и алгоритмам. Но того, о чем я говорю, практически нет.
Итого получается, что не хватает нам того, чтобы секреты мастерства нам кто-то передавал. Секретов-то много, своим умом не дойдешь. Это в древности хорошо было - помирает старый мастер, перед смертью в двух словах раз-два, сказал пару слов и глазки закатил. Ну вы знаете - "Как ты делаешь такой вкусный чай" - "Ложите побольше заварки!". С программированием такого не бывает. Надо секрет загодя узнавать, мастера душить. Найти бы его только. Но делать то что-то надо!
Так вот, что я предлагаю: Я тут сижу и прорабатываю пачку книжек на эту тему. По мере продирания через них буду шкрябать статейки, и размещать их на FS. Надеюсь, авторы не обидятся. Напишу пяток-десяток, если будут отклики - продолжу. Если нет - значит не надо.
Насчет чего статейки будут - я выше перечислил. Еще будут объекты, поддерживающие транзакции, блокировки, очереди запросов на транзакции, имитация (в том числе и безопасная) массивов, инкапсуляция небезопасных типов в безопасные шаблоны, итераторы, создающие упрощенные копии сканируемого массива, управление памятью с оптимизацией и сборкой мусора, обработка исключений, виртуальные конструкторы(!), двойная и N-мерная диспетчеризация. Во всяком случае я это планирую (Самому страшно от того, что я перечислил; Но может силов мущинских моих не хватит, тогда не знаю…) Все это по силам практически любому, кто досюда вообще дочитал, и не помер со скуки. А пользы, как говорил Коровьев, он же Фагот, "от этого пения целый вагон". Вот например, самое простое - объект-указатель при отладке и на ранней стадии реализации проекта может управлять безопасным и низкопроизводительным массивом, а в релиз версии - самым обычным. При этом вы пользуетесь объектом-указателем как самим массивом.
Ну и ладно. Закончим со вступлением.
На всякий случай укажу свои основные источники, у которых я беру поносить идеи и мысли на время:
1. Jeff Alger. C++ for real progammers. (Джефф Элджер. С++).
2. James Coplien. Advanced C++ Styles and Idioms.
3. Мейерс, Скотт. Эффективное использование С++.
4. Страуструп, Бъярни. Язык программирования С++. Третье издание.
5. Буч, Гради. Объектно-ориентированное проектирование с примерами на С++. Второе издание.
6. Бабе, Бруно. Все о С++.
7. Microsoft corp. Официальное пособие по разработке приложений на VC++6.0
Вообще говоря, в основном все буду брать у Элджера. Проще, и интереснее. Мы же не умереть собираемся.
Ну и все. Начнем, пожалуй.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Введение Что же это такое – веб-приложение?
Введение Что же это такое – веб-приложение? Несмотря на то что многим кажется, будто компьютеры вокруг были всегда, широкое распространение эти персональные вычислительные машины получили лишь в последние 30 лет. Еще более юна Повсеместно Протянутая Паутина, или World Wide
Введение. Зачем программам быть свободными?
Введение. Зачем программам быть свободными? На сегодня в школе, как и в некоторых других сегментах рынка, преобладают «альтернативные», нестандартные операционные системы и платформы (такие, как «МС-ДОС», «Майкрософт Уиндоуз», «Майкрософт Уиндоуз НТ», «МакОС» версий до X).
(1.13) Можно ли из W2kPro сделать W2kServer, и зачем это надо?
(1.13) Можно ли из W2kPro сделать W2kServer, и зачем это надо? Можно. Хотя и нельзя :-) Для этого служит программка под названием NTSwitch. Всё что она делает, это сохраняет копию вашего реестра, редактирует его, и восстанавливает его обратно. Благодаря тому, что различные версии
1.3. Что такое Windows Product Activation, и зачем он нужен?
1.3. Что такое Windows Product Activation, и зачем он нужен? Это новая технология, разработанная Microsoft для борьбы с нелегальными копиями их программного обеспечения. Впервые подобный механизм был опробован на Terminal Service, из W2k Server, теперь же, похоже, подобным образом будут защищаться
Что такое сеть и зачем она нужна
Что такое сеть и зачем она нужна Еще десяток-другой лет назад никто даже понятия не имел, что такое сеть и зачем она нужна. Люди приобретали персональные компьютеры с одной целью – автоматизировать и ускорить требуемые вычисления. Таковыми считались различные операции:
Что такое протокол и зачем он нужен
Что такое протокол и зачем он нужен В предыдущем разделе была очень кратко рассмотрена модель ISO/OSI, которая описывает работу любого сетевого оборудования и сети в целом. Однако это всего лишь модель, рисунок на бумаге. Чтобы все это начало работать, необходим реализующий
17.1. Что такое ядро и когда его надо менять
17.1. Что такое ядро и когда его надо менять Каждый, кто хоть немного интересовался тем, что такое Linux, обязательно встречал в различных руководствах термин "ядро", по-английски - kernel. Ядро - это важнейшая часть Linux, как и любой другой операционной системы, поскольку именно ядро
7.1. Что такое бастион и зачем он нужен?
7.1. Что такое бастион и зачем он нужен? Бастион (он же брандмауэр, он же firewall) – это пакетный фильтр, позволяющий защитить ваш компьютер от действия вредоносных программ, сетевых червей, нежелательного трафика и всевозможных атак.Разберемся, как работает бастион. Данные по
Что и зачем надо замерять
Что и зачем надо замерять Достаточно серьезной ошибкой является попытка выполнить замеры полученных результатов после внедрения нескольких технологий. Например, вы внесли ряд изменений на главную страницу интернет-магазина и кое-что изменили на странице с корзиной
Введение. Зачем программам быть свободными?
Введение. Зачем программам быть свободными? На сегодня в школе, как и в некоторых других сегментах рынка, преобладают «альтернативные», нестандартные операционные системы и платформы (такие, как «МС-ДОС», «Майкрософт Уиндоуз», «Майкрософт Уиндоуз НТ», «МакОС» версий до X).
9.1. Что такое макросы и зачем они нужны
9.1. Что такое макросы и зачем они нужны Достаточно часто пользователю приходится повторять те или иные команды в определенной последовательности (например, оформлять текст курсивом, размером 10, гарнитурой шрифта Arial). Чтобы произвести такое небольшое форматирование,
Что же такое Excel и зачем нужна эта программа
Что же такое Excel и зачем нужна эта программа Excel – это мощнейший вычислительный инструмент, хранилище упорядоченных данных, средство для создания различных графиков, расписаний, диаграмм и т. д. Программа Excel может частично или даже полностью автоматизировать многие
Что это такое и зачем оно вам
Что это такое и зачем оно вам У Интернета есть много различных определений, в том числе и таких, которые могут только напугать. Я предпочитаю следующее: « Интернет – это огромное хранилище информации, которая содержится на разных компьютерах по всему миру, а также способы
11.1. Что такое сеть и зачем она нужна
11.1. Что такое сеть и зачем она нужна Компьютер приобретается с определенной целью – производить необходимые вычисления. Вычисления – это различные операции, выполняемые комплектующими компьютера по желанию пользователя. Это может быть работа с офисными программами,
Введение Что такое BIOS?
Введение Что такое BIOS? Добро пожаловать в первое издание книги «Оптимизация BIOS. Полоное руководство по всем функциям BIOS и их настройкам».Большинство людей даже не подозревают о том, что происходит во время работы на компьютере. Им кажется, что компьютер всего-навсего