Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.235.249.219] |
|
Страницы: (32) 1 [2] 3 4 ... 31 32 ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Ты специально пишешь программы так, чтобы потом тебе самому было не понять?
Плохо написанный код на любом языке приходится перебирать до самого основания. Но в ООП-языках у программиста есть хотя бы какой-то стимул делить задачу на части, что хоть немного упрощает её анализ. Добавлено Можешь не держать в голове. Заведи справочник по стандартной библиотеке. |
Сообщ.
#17
,
|
|
|
Но ведь существует и другой стиль (я читал про это в инете) написания С++ программ: по быстрому что-то набросать, а потом рефакторить, рефакторить и рефакторить. Может потому что так быстрее получается: написать говнокод, а потом его отрефаторить, чем сразу писать "набело", долго продумывая все нюансы. Как считаете? |
Сообщ.
#18
,
|
|
|
Цитата Исмаил Прокопенко @ Но ведь существует и другой стиль (я читал про это в инете) написания С++ программ: по быстрому что-то набросать, а потом рефакторить, рефакторить и рефакторить. Я вас просил подтвердить свои слова кодом на Си. Чтобы разговор был предметным. А вы опять за рассуждения ... |
Сообщ.
#19
,
|
|
|
Цитата JoeUser @ Я вас просил подтвердить свои слова кодом на Си. Я извиняюсь. Но кода не будет. Ещё раз прошу пардона. |
Сообщ.
#20
,
|
|
|
Цитата Исмаил Прокопенко @ Ты не поверишь, я вишу в FAR-е. Студия – разве что в качестве отладчика. Рефакторинг, выходящий за пределы возможностей FAR-ного редактора с плагинами, мне не нужен. Итп.И "порог вхождения" в C++ ещё и потому высок, потому что писать хоть сколько то сложные программы невозможно без специализированных тулзов, типа IDE, браузеров иерархии классов и т.п. ... Ты себе напридумывал страшилок. Все эти страшные фичи C++, наоборот, позволяют тебе не думать над всем тем, над чем C думать требует. Не поняв этого, ты и подошёл к C++ с позиции C, что было ошибкой. Цитата Исмаил Прокопенко @ Ну, что я говорю. Ответь сначала на один вопрос: зачем тебе всё это знать? Это C-шный подход. Плюсовый – "некая хрень f, выглядящая как функция с двумя параметрами и что-то там возвращающая, вызывается c параметрами b и c, и то, что она возвращает, попадает в A". Этого разве не достаточно? Зачем тебе вглубь лезть? C++ спроектированы как раз так, чтобы тебе не требовалось лазить по нутрам, а ты наперекор ему это делаешь. В принципе, ну и ради бога, на здоровье, только жаловаться-то потом зачем? Просто? Если не надо разбираться: а что такое эти A, b и c? Какой они тип имеют в этой точке программы? А какая именно функция здесь подразумевается под f? А какая функция выполняется под знаком "="? А если иерархия имеет 5 уровней с перекрестным наследованием и виртуальными и многократно перегруженными функциями (в том числе и конструкторами)? Просто? И тут придется перелопачивать столько кода и проанализировать столько зависимостей (зачастую неявных, как говорят "по умолчанию"), что мама не горюй. Добавлено Цитата Исмаил Прокопенко @ Та как бы и не удивительно. Я извиняюсь. Но кода не будет. |
Сообщ.
#21
,
|
|
|
Цитата Исмаил Прокопенко @ Этот стиль хорош только для программ с коротким временем жизни. Написать программу нормально получается быстрее, чем отрефакторить написанную на скорую руку. А привыкнув так писать, и само написание может оказаться быстрее. При аккуратном подходе меньше времени на отладку уходит. Может потому что так быстрее получается: написать говнокод, а потом его отрефаторить, чем сразу писать "набело", долго продумывая все нюансы. |
Сообщ.
#22
,
|
|
|
О достоинствах и преимуществах С++ в этой теме было сказано не мало.
Но все же БОЛЬШЕ хотелось послушать про недостатки С++ и его ограничения. Все мы знаем, что "серебряной пули" не существует и у всех языков программирования есть какие-то недостатки и слабые места, которые вызывают проблемы при коддинге. Я сейчас не о тех "проблемах", которые возникают у новичка просто потому, что он плохо знает язык. Я о реальных/настоящих проблемах и ограничениях при программировании на С++, которые возникают даже у опытных кодеров на С++. |
Сообщ.
#23
,
|
|
|
Как ни странно, самый большой его недостаток в его преимуществе – высокий уровень контроля над средствами низкого уровня и совместимость с C на уровне исходных текстов. Именно это создаёт новичкам в Плюсах множество проблем.
|
Сообщ.
#24
,
|
|
|
Цитата Qraizer @ Именно это создаёт новичкам в Плюсах множество проблем. а гуру С++ что создает проблемы? Что раздражает в С++? |
Сообщ.
#25
,
|
|
|
Цитата Исмаил Прокопенко @ а гуру С++ что создает проблемы? Что раздражает в С++? Ну я далеко не гуру, но некоторою "многословность" у C/C++ замечаю. К примеру, как будет выглядеть та же задача, которую я написал выше на С++, реализованная на Perl5 (ссылка): #!/usr/bin/perl $Text = "Хотелось бы конкретных примеров.\n". "Типа таких \"вот человек решал эту задачу (описание задачи) на СИ полгода.". "Я сделал её на С++ на неделю\""; map {$M{$_}++} split(/[\s,\.=\(\)\"+-]+/,$Text); map {print ${$_}[0]." : ".${$_}[1]."\n"} sort { ${$b}[1] <=> ${$a}[1] || ${$a}[0] cmp ${$b}[0] } map {[$_,$M{$_}]} keys %M; Скрытый текст С : 1 СИ : 1 Типа : 1 Хотелось : 1 Я : 1 бы : 1 вот : 1 её : 1 задачи : 1 задачу : 1 конкретных : 1 неделю : 1 описание : 1 полгода : 1 примеров : 1 решал : 1 сделал : 1 таких : 1 человек : 1 эту : 1 Правда компактнее? |
Сообщ.
#26
,
|
|
|
Сообщ.
#27
,
|
|
|
Цитата Исмаил Прокопенко @ Если признаком гуру считать то, что он в отличие от новичков умеет применять инструменты к месту, не использует сомнительных архитектурных решений без необходимости и не будет применять фичу ради неё самой, то да, я гуру. Лично меня ничего не раздражает. Я понимаю причины, почему C++ именно таков, и понимаю, почему те или иные его аспекты нельзя было бы сделать иначе.а гуру С++ что создает проблемы? Что раздражает в С++? Достаточно соблюдать несколько несложных правил, и программирование на Плюсах будет доставлять только удовольствие. Из-под пальцев будет выходить рабочий код, не требующий отладки (кроме разве что если набажил с разработкой или реализацией алгоритмов, но тут ни языке дело ни разу), надёжный в плане отказоустойчивости, легко сопровождаемый. Именно по причине того, что "не требуется знать, как оно устроено". К примеру, в Плюсовых программах практически не встречается код с сырыми указателями и адресной арифметикой. Уже этого достаточно, чтобы гарантировать отсутствие львиной доли ошибок, которые допускаются в C программах. Они, конечно, зачастую-таки есть, но глубоко в недрах реализаций абстракций, которые однажды были уже отлажены и больше внимания к себе не требуют. Добавлено P.S. Цитата Qraizer @ И да, ещё признаком гуру можно считать тот факт, что он знает, когда эти правила можно нарушить и как именно это делать правильно . Достаточно соблюдать несколько несложных правил, и программирование на Плюсах будет доставлять только удовольствие. |
Сообщ.
#28
,
|
|
|
Цитата Qraizer @ Они, конечно, зачастую-таки есть, но глубоко в недрах реализаций абстракций Т.е. их труднее отловить? Цитата Qraizer @ И да, ещё признаком гуру можно считать тот факт, что он знает, когда эти правила можно нарушить и как именно это делать правильно А ещё гуру знает слабые места языка и знает его ограничения/НЕДОСТАТКИ. И что вызывает НАИБОЛЬШУЮ сложность при работе на С++. Может он поделится инфой? Чтобы новичок не наступал на грабли? |
Сообщ.
#29
,
|
|
|
Цитата Исмаил Прокопенко @ Правда. Но "компактней" не значит лучше. Для кода "читабельность" важней компактности. У меня на Perl'е просто гораздо больше практики, чем на C/C++. Читать и писать мне такое - привычно и удобно. И очень существенно - просто быстрее. Хотя тебя понимаю. Для меня данная ситуация несколько напоминает холивары с редактором vi/vim. Народу, который его освоил - я завидую по-белому. С виду аскетичный редактор, со своей "идеологией" режимов - на поверку оказывается очень мощным, мощнейшим инструментом. Однако, чтобы им пользоваться - надо привыкать, надо начинать пользоваться. Много людей, которые себя заставили - очень довольны своими усилиями. Наверное нечто подобное и с языком C++... А я уже лет 15-20 "намечаю в планах" заставить себя работать со включенным NumLock'ом. Как наработался некогда на 83-кнопочных клавах, засело на уровне инстинкта - NumPad == стрелки и ничто иное |
Сообщ.
#30
,
|
|
|
Цитата JoeUser @ Хотя тебя понимаю. Не думаю. Просто я не программист. У меня другая профессия. Поэтому у меня голова СОВСЕМ ДРУГИМ под завязку забита. И мне просто нужно по быстрому сварганить программу на плюсах. А тут выяснятся, что столько всего нужно знать. Мало того что сам синтаксис на порядок сложней сишного. Так ещё всякие контейнеры и итераторы есть. И всякие тулзы/браузеры кода и прочие приблуды. И прочие нюансы Чтобы все освоить на должным уровне нужно ГОДЫ И ГОДЫ заниматься только чисто программированием и тулзами для программирования. Но у меня-то совсем другая профессия. И там тоже много нужно знать. А голова ведь не резиновая. Да и времени столько на освоение я не могу себе выделить Вот и маешься: как бы все это обойти, нет ли каких-то обходных путей, чтобы "раз-раз и в дамки" |