Andron_ 0 24 августа, 2010 Опубликовано 24 августа, 2010 · Жалоба по осени начал писать проект для сигнальника TI, решил на свой страх и риск использовать С++ и динамическое управление памятью в некоторых моментах. поскольку продумать изначально удачную структуру умишка не хватило (в-смысле, не смог) структура программы получилась путанная местами и через чур замудренная. Сейчас дописываю... Естественно, что писалось полгода назад я уже наглухо забыл. В-принципе, мне нравится - с помощью Doxygen'овской документации весьма приятно дописывать. Динамическое выделение пока также работает стабильно, я боялся худшего. Немного неудобно использовать inline функции в классах - CCS 3.3 корявенько их разворачивает в редакторе во время отладки и по шагам ходит как-то неправильно местами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 24 августа, 2010 Опубликовано 24 августа, 2010 · Жалоба Да это явление может и нормальное, я не спорю. Хуже когда этот класс в принципе не может иметь несколько экземпляров - это уже архитектурная проблема, говорящая о том, что классу тут делать нечего. Можно например написать класс CIdle, который будет инкапсулировать в себе бесконечный цикл, имеющийся в любом контроллере Во-первых, если я хорошо высплюсь, то я и "чисто-С-шных" маразмов в ответ смогу придумать как доказательство того, что С в микроконтроллрах делать нечего. Во вторых, в этой теме уже говорили - и в С несколько переменных, относящихся к одной и той же логической сущности, имеет смысл объединить в структуру даже если эта структра используется в программе в принципе один единственный раз. Это будет "архитектурной проблемой" ? Лучше пусть будет несколько на вид независимых переменных? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xelax 0 25 августа, 2010 Опубликовано 25 августа, 2010 · Жалоба У "плюсов" есть ещё один несомненный плюс. Прежде чем сломя голову что-то писать, надо сначала продумать структуру. То есть, дополнительный организующий момент. Кстати, данная тема именно с этого и началась - с вопроса об оптимальной структуре. Я то наивно полагал, что продумывать структуру программы необходимо вне зависимости от языка программирования. Выскажу кромольную мысль: На архитектуру язык программирования влияет лишь косвенно. Этап перехода с С на С++ уже давным давно закончился (если кто-то ещё не заметил). Все более или менее крупные и что немаловажно УСПЕШНЫЕ компании специализирующиеся на разработке софте (и эмбеддед в том числе) начинают с UML или подобного дизайна. Да собственно это и есть основной этап. А в получившейся на выходе архитектуре-софте любая команда индо-китайских тупокодеров добьёт код за пару месяцев. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 21 25 августа, 2010 Опубликовано 25 августа, 2010 · Жалоба Я то наивно полагал, что продумывать структуру программы необходимо вне зависимости от языка программирования. Ну, иерархическая модель классов более располагает к структурированию, чем рассыпные модули си. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 25 августа, 2010 Опубликовано 25 августа, 2010 · Жалоба Я бы сказал так — по сравнению с С язык С++ более жёстко наказывает за непродуманность структуры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 58 26 августа, 2010 Опубликовано 26 августа, 2010 · Жалоба Я бы сказал так — по сравнению с С язык С++ более жёстко наказывает за непродуманность структуры. Скорее более явно показывает (подчеркивает) корявости в этом контексте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Waso 1 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба Примеры есть у меня, есть и свой подход к программированию для систем с сильно ограниченными ресурсами на С++(на примере AVR). Будет свободное время - напишу статейку по этой теме (если будут желающие её читать :) ). А так вкратце могу сказать, что программы на С++ получаются компактнее, быстрее и легче читаются аналогичных программ на Си. Может, напишем сообща? :rolleyes: Я уже название придумал. "С++ в микроконтроллерах. Почему бы и нет?" Желающие читать такие статьи есть! Вот по крайней мере я, например! Так-что жду с нетерпением. А как наберете с десяток статей - соедините их в книгу и будете барыши получать. ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба А как наберете с десяток статей - соедините их в книгу и будете барыши получать. ;) Наивность впечатляет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Waso 1 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба В чем же она заключается, наивность-то? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DRUID3 0 5 сентября, 2010 Опубликовано 5 сентября, 2010 · Жалоба Этап перехода с С на С++ уже давным давно закончился (если кто-то ещё не заметил). Да... я заметил. Закончился. Как и жизнь C++. Мало того - когда о Cpp забудут на C еще будут писать целые системы. Все более или менее крупные и что немаловажно УСПЕШНЫЕ компании специализирующиеся на разработке софте (и эмбеддед в том числе) начинают с UML или подобного дизайна. ... Эмбэддед буржуи часто называют JavaME. А "подобный дизайн"... Так все с него начинают. Даже строители зданий из железобетонных блоков. Да собственно это и есть основной этап. А в получившейся на выходе архитектуре-софте любая команда индо-китайских тупокодеров добьёт код за пару месяцев. Я сомневаюсь, что для 8-и битника стиральной машины нужна прям-таки команда индусов и менеджеров с UML диаграммами в руках. Ну, иерархическая модель классов более располагает к структурированию, чем рассыпные модули си. ага... И к постоянному переструктурированию. Сколькими способами можно разбить белый лист на подчасти!? Не даром в том же C++ есть все что-бы нарушить инкапсуляцию "если очень надо"... Ну а полиморфизм - это ли не повод накидать в проект всего чего не лень? То, что при этом он, зачастую теряет не только обозримость, но и простую читабельность(х.з. какую там из реинкарнаций и где вызывают - и не все IDE такие же функциональные как мелкософтовская визуалстудия). Ну а уж если появилась иерархическая модель классов - это верный признак, что от первоначальной архитектуры отказались :biggrin: , но переписать все заново не представляется возможным ввиду отсутствия времени совместно с запутанностью и нечитабельностью уже написанного кода. Хорошая статья что-бы задуматься - а туда ли в жизни направляешь стопы свои... ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 21 6 сентября, 2010 Опубликовано 6 сентября, 2010 · Жалоба Хорошая статья что-бы задуматься - а туда ли в жизни направляешь стопы свои... ;) Это всё конечно хорошо, в теории. А в реальности никто не даст 20 лет на вылизывание кода, как в случае с академическим миниксом. Зачастую цикл жизни изделия составляет от 2 до 5 лет. Да и не в каждой конторе работают гении уровня Таненбаума. Так что, оставшимся остаётся довольствоваться прозой и использовать общепринятые методики и наработки. Тем более что действительно, лучше сегодня выпустить актуальное, хоть и несколько сырое изделие, чем завтра сидеть с вылизанным, но никому не нужным... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 6 сентября, 2010 Опубликовано 6 сентября, 2010 · Жалоба Хорошая статья что-бы задуматься - а туда ли в жизни направляешь стопы свои...А вы никогда не слышали как Торвальдс критикует микроядра? :) :bb-offtopic: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neiver 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба А вы никогда не слышали как Торвальдс критикует микроядра? :) :bb-offtopic: Торвальдс и Си++ усиленно критикует. Мне нравится, что Steven Dewhurst ему на это отвечает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
halfdoom 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба но когда у вас будет огромный проект, вы встряните и будете долго понимать, как же так получилось непонятно.Вот большой проект: http://www.freebsd.org/cgi/cvsweb.cgi/src/. C++ есть только в библиотеках для C++. Ничего, не встряли. А NetBSD из той-же серии так вообще на тьму платформ портирована, и во многом благодаря здоровому консерватизму. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DimaG 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба Вот большой проект: http://www.freebsd.org/cgi/cvsweb.cgi/src/. C++ есть только в библиотеках для C++. Ничего, не встряли. А NetBSD из той-же серии так вообще на тьму платформ портирована, и во многом благодаря здоровому консерватизму. А в чем плюс то голого сишного подхода? Никто не спорит, что все, что пишется на С++, можно сделать и на Си. Вопрос - какими средствами и какой надежностью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться