powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Стиль программирования.
80 сообщений из 80, показаны все 4 страниц
Стиль программирования.
    #33746333
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой стиль программирования считаете наиболее приемлемым?
Меня клинит между двумя вариантами :

1)
//от микрософт/венгерская
class CSomeClass{
//код
};
void SomeVoidFn(LPCTSTR lpszstr){
//код
}

2)
//по типу gnu|opensource
class some_class{
//код
};
void some_void_function(const char* some_string){
//...
}

ваши мнения?
...
Рейтинг: 0 / 0
Стиль программирования.
    #33746340
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если работаешь на предприятии - то какой принят стиль, так и пиши.
Если "вольный художник" - пиши, как удобнее

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Стиль программирования.
    #33746370
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считаю так же. Раз тебя не отягощают никакие внешние факторы, пиши так как тебе будет нагляднее.

Я, зачастую, пишу стразу 2-мя (если так можно выразиться). То, что относится к интерфейсу - 1-м методом, что к внутренней реализации - 2-й.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33746402
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhСчитаю так же. Раз тебя не отягощают никакие внешние факторы, пиши так как тебе будет нагляднее.

Я, зачастую, пишу стразу 2-мя (если так можно выразиться). То, что относится к интерфейсу - 1-м методом, что к внутренней реализации - 2-й.
Так, блин, абракадабра же тогда получается!

У меня два или три приложения загнулись на стадии разработки из-за того, что я сначала начинал в стили microsoft, а потом (когда 30 процентов или больше кода уже было), на gnu. там уже из-за этого ничего под конец нельзя было понять!.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33746487
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErVУ меня два или три приложения загнулись на стадии разработки из-за того, что я сначала начинал в стили microsoft, а потом (когда 30 процентов или больше кода уже было), на gnu. там уже из-за этого ничего под конец нельзя было понять!.

Так смотря что, каким стилем. Есстественно, я не пишу половину одним, половину другим, смотря с какой ноги встал. У меня порой бывают функции 5-й, 7-й степени вложенности, которые разделены на уровни. Зачем? Что бы было легче изменять при использовании в другом проекте или в каких-нибудь других случаях. А еще бывает, несколько уровней интерфейса библиотеки, ну типа сконвертить звук (высший уровень) или сконвертить в PCM, сконвертить PCM, сконвертить из PCM (пониже). Так вот, чтобы это все дело боло еще более наглядней, то мне удобнее отделять одно от другого разными стилями. Тогда это бросается в глаза.

Но, это чистА мое имхо. Вообще, я нигде не слышал, чтобы так извращались. Мне так удобнее писать проекты, особенно, когда еще не точно представляешь что из этого всего получиться (в плане кода).
...
Рейтинг: 0 / 0
Стиль программирования.
    #33746513
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErVТак, блин, абракадабра же тогда получается!

У меня два или три приложения загнулись на стадии разработки из-за того, что я сначала начинал в стили microsoft, а потом (когда 30 процентов или больше кода уже было), на gnu. там уже из-за этого ничего под конец нельзя было понять!.
Мне, лично, всё равно, какая нотация используется для именования калссов/функций и т.п. ...
Если наименования осмысленные, код нормально отформатирован (для читабельности) и снабжён достаточными комментариями... то какие тут могут возникнуть проблемы?
А если ещё и спроектировано всё удачно, то тут уж и сопровождающий кодер не будет ругаться, мол "Какой (вырезано цензурой) весь этот бред наваял!?"...

А вообще тема довольно избитая и ей посвящена не одна статья и даже книга...
Вот тут , например, можно найти хорошие советы... Хотя автор больше выражает своё личное мнение, но... о вкусах не спорят...
...
Рейтинг: 0 / 0
Стиль программирования.
    #33747650
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Венгерская нотация применяется для программирования на С, а не на С++. В С++ она не нужна.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33747906
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имеешь в виду мфц?
мне венгерская больше нра. Хотя приставки P и LP как-то пока не нра.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Стиль программирования.
    #33747920
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErVУ меня два или три приложения загнулись на стадии разработки из-за того, что я сначала начинал в стили microsoft, а потом (когда 30 процентов или больше кода уже было), на gnu. там уже из-за этого ничего под конец нельзя было понять!.Тут нет твоей вины - это ошибка руководства. Не фиг поручать работу программиста кодеру. Не по Сеньке шапка.
ErVКакой стиль программирования считаете наиболее приемлемым?Основной принцип: стиль должен быть таким, чтобы через 10 лет, ты смог врубиться в свою сегодняшнюю писанину за 5 минут.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33748209
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pandrew
p> Основной принцип: стиль должен быть таким, чтобы через 10
p> лет, ты смог врубиться в свою сегодняшнюю писанину за 5
p> минутМечты ... мечты ...
Ну т.е. врубиться то можно, а вот понять, нафига все это написано - уже нельзя :)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Стиль программирования.
    #33748231
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Карабас Барабас
pandrew
p> Основной принцип: стиль должен быть таким, чтобы через 10
p> лет, ты смог врубиться в свою сегодняшнюю писанину за 5
p> минутМечты ... мечты ...
Ну т.е. врубиться то можно, а вот понять, нафига все это написано - уже нельзя :)

Posted via ActualForum NNTP Server 1.3
Я полностью поддреживаю pandrew в этом вопросе. Если мне программист принесет х"о написанный код то я его буду долго п"ть ногами. Код написанный три года назад благополучно читается и все понятно. Более того я прекрасно читаю код написанный другими людьми, даже без комментариев.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33748575
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pandrewТут нет твоей вины - это ошибка руководства.
кхм... я же сам себе руководством был! :)
...
Рейтинг: 0 / 0
Стиль программирования.
    #33748918
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErVкхм... я же сам себе руководством был! :)Самокритика вещь хорошая, но и выводы делать иногда полезно.
ErVУ меня два или три приложения загнулись на стадии разработкиНельзя же так регулярно переоценивать свои силы. Попытки сразу построить небоскреб (или вечный двигатель) при отсутствии элементарного строительного опыта (не знания цикла Карно) приведут только к куче битых кирпичей (или "мучительной боли за бесцельно прожитые годы").
"Учиться, учиться и учиться" вам батенька надо и на своих ошибках тоже.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33755834
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pandrew ErVкхм... я же сам себе руководством был! :)Самокритика вещь хорошая, но и выводы делать иногда полезно.
ErVУ меня два или три приложения загнулись на стадии разработкиНельзя же так регулярно переоценивать свои силы. Попытки сразу построить небоскреб (или вечный двигатель) при отсутствии элементарного строительного опыта (не знания цикла Карно) приведут только к куче битых кирпичей (или "мучительной боли за бесцельно прожитые годы").
"Учиться, учиться и учиться" вам батенька надо и на своих ошибках тоже.
Вообще-то я уже несколько лет программированием занимаюсь, и довольно серъёзно. :-[

А проблемы начались, когда наткнулся на противоречие предлагаемых стилей - GNU vs Microsoft, и противоречивую информацию по поводу того, что лучше.

так что "отсутсвие элементарного опыта" - не мой случай.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33756416
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErV
так что "отсутсвие элементарного опыта" - не мой случай.
Твой твой.....
...
Рейтинг: 0 / 0
Стиль программирования.
    #33757572
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
road_run ErV
так что "отсутсвие элементарного опыта" - не мой случай.
Твой твой.....
Обоснуй. :)
...
Рейтинг: 0 / 0
Стиль программирования.
    #33757840
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErV road_run ErV
так что "отсутсвие элементарного опыта" - не мой случай.
Твой твой.....
Обоснуй. :)
Итак начнем
1) "У меня два или три приложения загнулись на стадии разработки из-за того, что я сначала начинал в стили microsoft, а потом (когда 30 процентов или больше кода уже было), на gnu. там уже из-за этого ничего под конец нельзя было понять!."
Если программист сам не может понять свой код, который он написал.... то это результат:
а) отсутсвие структурированности солюшена и четко ограниченных модулей которые выполнают оперделенный круг задач.
б) отсутсвие комментарий.
в) отсутсвие алгоритма и (или) спецификации по которой разрабатывается приложение.
г) безобразное написание кода, использование переменных типа myParam1 a p1 s1 или s4, дублирование кода, использование слишком длинных методов и т.п.
2) "кхм... я же сам себе руководством был! :)"
Соотвественно все вышеперечисленное Ваши ошибки.
3)На соответсвенно здравое замечание

"Нельзя же так регулярно переоценивать свои силы. Попытки сразу построить небоскреб (или вечный двигатель) при отсутствии элементарного строительного опыта (не знания цикла Карно) приведут только к куче битых кирпичей (или "мучительной боли за бесцельно прожитые годы").
"Учиться, учиться и учиться" вам батенька надо и на своих ошибках тоже."

Получаем ответ
"Вообще-то я уже несколько лет программированием занимаюсь, и довольно серъёзно. :-[
А проблемы начались, когда наткнулся на противоречие предлагаемых стилей - GNU vs Microsoft, и противоречивую информацию по поводу того, что лучше.
так что "отсутсвие элементарного опыта" - не мой случай."
Соотвественно:
а) мерятся пиписьками на конструктивную критику это ИМХО крайне неправильно.
б) Проблемы ИМХО начались задолго до "GNU vs Microsoft", как говорится плохому танцору стили мешают.
г) Повторюсь это ваш случай.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33758166
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV
road_run
Харош ОффТопить... Не надо такие вопросы решать на форуме.
Всякого рода междоусобчики и споры "не в тему" - в личку.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33760299
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 road run.
Мне влом спорить. Если взять двух любых программистов, всегда можно найти область, в которой один разбирается, а второй нет, и наоборот. Ты, к примером, можешь быть гением в области баз данных (где я - ноль), но не разбираться в 3D графическом программировании. А ругаться можно до бесконечности, это всё равно ни к чему не приведёт, так что, ИМХО, бессмыслено.

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

ЗЫ: "Верёвку достаточной длины, чтобы выстрелить себе в ногу" я читал, она как раз и была одной из причин, почему вообще этотк топик появился.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33760767
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitrii K.Всякого рода междоусобчики и споры "не в тему" - в личку.очень интересно, где тут личка? Не вижу.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Стиль программирования.
    #33760771
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoочень интересно, где тут личка? Не вижу.
Скорее всего под личкой понимается мыло

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Стиль программирования.
    #33760985
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас
maXmoочень интересно, где тут личка? Не вижу.
Скорее всего под личкой понимается мыло

Да что угодно, и мыло в том числе...
Форум, вроде, не для того существует, чтобы пинать друг друга "добрыми словами"...
...
Рейтинг: 0 / 0
Стиль программирования.
    #33761102
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сколько форумов знаю, только на этом нет лички :)
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Стиль программирования.
    #33772615
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 maXmo, Карабас Барабас, Dmitrii K

Ну и кто теперь оффтопит ? :)
Можно - по теме?
...
Рейтинг: 0 / 0
Стиль программирования.
    #33772624
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErVМожно - по теме?
Я по теме уже высказался

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Стиль программирования.
    #33773913
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
road_runИтак начнем
1) "У меня два или три приложения загнулись на стадии разработки из-за того, что я сначала начинал в стили microsoft, а потом (когда 30 процентов или больше кода уже было), на gnu. там уже из-за этого ничего под конец нельзя было понять!."
Если программист сам не может понять свой код, который он написал.... то это результат:
а) отсутсвие структурированности солюшена и четко ограниченных модулей которые выполнают оперделенный круг задач.
б) отсутсвие комментарий.
в) отсутсвие алгоритма и (или) спецификации по которой разрабатывается приложение.
г) безобразное написание кода, использование переменных типа myParam1 a p1 s1 или s4, дублирование кода, использование слишком длинных методов и т.п.
2) "кхм... я же сам себе руководством был! :)"
Соотвественно все вышеперечисленное Ваши ошибки.
3)На соответсвенно здравое замечание

"Нельзя же так регулярно переоценивать свои силы. Попытки сразу построить небоскреб (или вечный двигатель) при отсутствии элементарного строительного опыта (не знания цикла Карно) приведут только к куче битых кирпичей (или "мучительной боли за бесцельно прожитые годы").
"Учиться, учиться и учиться" вам батенька надо и на своих ошибках тоже."


Это ваши собственные выводы, или они где либо изложены. Если изложены, то можно ли ссылочку, а если нет, то может быть изложите.
Многим программиста, особенно начинающим это сильно поможет. К сожалению, не всегда можно найти грамотного руководства (у нас в Азербайджане, я еще не встречал:( и приходится варится в своем соку.
Все что вы перечислили очень похож на мой диагноз, особенно годичной давности.
Хотел уточнить пункт про:
использование переменных типа myParam1 a p1 s1 или s4, дублирование кода.
Можно про это поподробнее? Вы имеете ввиду, что каждой переменной надо давать осмысленные имена? Даже буферным, которые будут использованы только в двух сточках кода?
...
Рейтинг: 0 / 0
Стиль программирования.
    #33773953
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Homosum
Хотел уточнить пункт про:
использование переменных типа myParam1 a p1 s1 или s4, дублирование кода.
Можно про это поподробнее? Вы имеете ввиду, что каждой переменной надо давать осмысленные имена? Даже буферным, которые будут использованы только в двух сточках кода?

По всей видимости имелось именно это. Буферные обычно именуют соответственно buf, buf_elem, buf_recv, ...

Также, например в делфи, например, параметрам функций, к имени переменной добавляют символ, обозначающий параметр, например a. Если в классе есть свойство с именем Svoivstvo, то функция устанавливаящая это свойство будет, например, иметь параметр aSvoistvo. И так далее по всему коду.

А использование переменных, это прерагатива книг, по стилю программированию. Их можно поискать в инете. Кстати, в этом топике, какая-то ссылка уже была.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33774073
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
road_runг) использование переменных типа myParam1 a p1 s1 или s4
Вспомнилось. Был у меня случай с относительно небольшим кодом, строк так на 20 тыс. И там была куча функций принимающих пару аргументов, различного рода компараторы, поисковики, модификаторы и прочие. Сколько не пробовал писать разные там first + second, никак не получалось добиться читаемости. Только когда перешел на идентификаторы вида ptr1 + ptr2, i1 + i2, n1 + n2 все стало на свои места. Ну читаются они именно так как используются по смыслу - указатель первый и указатель второй. :-))) Хуже того, можно было использовать и ptr[1] + ptr[2] :-)))
...
Рейтинг: 0 / 0
Стиль программирования.
    #33774129
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HomosumХотел уточнить пункт про:
использование переменных типа myParam1 a p1 s1 или s4, дублирование кода.
Можно про это поподробнее? Вы имеете ввиду, что каждой переменной надо давать осмысленные имена? Даже буферным, которые будут использованы только в двух сточках кода?
Про переменные вам уже рассказали... можно добавить про дублирование кода и длину методов...
Если в программе в нескольких местах выполняются похожие действия, то целессобразно выносить такие куски кода в отдельные функции, причём функции должны быть по-возможности лаконичными и выполнять только то, для чего предназначены. Вроде простое и понятное правило, но не всегда выполняется... Интересно, что некотрые крупные софтверные компании строго следят за его выполнением своими кодерами. Если исходный код включает методы слишком большой длины, то производится рефакторинг кода, то есть разбиение на более мелкие куски с выделением в отдельные методы. Где-то встречал, что оптимальной считается длина метода около 60-ти строк... вроде бы при этом сводится к минимуму (в определённой степени) вероятность багов в данном методе, да и при тестировании/сопровождениями намного проще работать с такими "атомами" кода, чем с километровыми супер-функциями с тучей параметров...
А вообще - ковыряйте веб, недостатка в информации по данной тематике быть не должно.

To ALL
Раз уж подняли эту тему и топик упорно не хочет тонуть в глубинах форума, то есть предложение выносить сюда линки на интересные или понравившиеся вам статьи/книги, затрагивающие вопросы стиля программирования, содержащие советы/правила по кодированию, проектированию, тестированию софта.....
А то обсуждать можно долго, но бы было интересней (и полезней) почитать что-нибудь стоящее...
Удачи.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33774233
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я road_runг) использование переменных типа myParam1 a p1 s1 или s4
Вспомнилось. Был у меня случай с относительно небольшим кодом, строк так на 20 тыс. И там была куча функций принимающих пару аргументов, различного рода компараторы, поисковики, модификаторы и прочие. Сколько не пробовал писать разные там first + second, никак не получалось добиться читаемости. Только когда перешел на идентификаторы вида ptr1 + ptr2, i1 + i2, n1 + n2 все стало на свои места. Ну читаются они именно так как используются по смыслу - указатель первый и указатель второй. :-))) Хуже того, можно было использовать и ptr[1] + ptr[2] :-)))

Вот, вот... про подобное я уже писал в начале топика (из-за чего весь сыр бор пошел ). В таких случаях, для меня например удобнее использовать разные стили программирования. Удобнее отделять одно от другого.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33774358
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Homosum
Это ваши собственные выводы, или они где либо изложены. Если изложены, то можно ли ссылочку, а если нет, то может быть изложите.
Многим программиста, особенно начинающим это сильно поможет. К сожалению, не всегда можно найти грамотного руководства (у нас в Азербайджане, я еще не встречал:( и приходится варится в своем соку.
Все что вы перечислили очень похож на мой диагноз, особенно годичной давности.
Хотел уточнить пункт про:
использование переменных типа myParam1 a p1 s1 или s4, дублирование кода.
Можно про это поподробнее? Вы имеете ввиду, что каждой переменной надо давать осмысленные имена? Даже буферным, которые будут использованы только в двух сточках кода?
В силу обстоятельств весьма интересовался данной областью пожалуй лучшее из того что читал это "Рефакторинг: улучшение существующего кода" вот ссылка http://www.books.ru/shop/books/30436 . Мне очень понравилось понятие данное в книге "дурно пахнущий код".....
To All Я столкнулся с проблемой проводя исследования различных инструментов рефакторинга для c++ я практически ничего не обнаружил... Единственная достойная утилита ref++ (вернее плагин для vs2003-2005). После ее использования в течении дня больше с ней расставатся не хочется... Единственный минус она триальная... All я предлагаю поделится со страждущими сслыками на инструменты для рефакторинга под c++...
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775077
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Homosum road_runИтак начнем
1) "У меня два или три приложения загнулись на стадии разработки из-за того, что я сначала начинал в стили microsoft, а потом (когда 30 процентов или больше кода уже было), на gnu. там уже из-за этого ничего под конец нельзя было понять!."
Если программист сам не может понять свой код, который он написал.... то это результат:
а) отсутсвие структурированности солюшена и четко ограниченных модулей которые выполнают оперделенный круг задач.
б) отсутсвие комментарий.
в) отсутсвие алгоритма и (или) спецификации по которой разрабатывается приложение.
г) безобразное написание кода, использование переменных типа myParam1 a p1 s1 или s4, дублирование кода, использование слишком длинных методов и т.п.
2) "кхм... я же сам себе руководством был! :)"
Соотвественно все вышеперечисленное Ваши ошибки.
3)На соответсвенно здравое замечание

"Нельзя же так регулярно переоценивать свои силы. Попытки сразу построить небоскреб (или вечный двигатель) при отсутствии элементарного строительного опыта (не знания цикла Карно) приведут только к куче битых кирпичей (или "мучительной боли за бесцельно прожитые годы").
"Учиться, учиться и учиться" вам батенька надо и на своих ошибках тоже."


Это ваши собственные выводы, или они где либо изложены. Если изложены, то можно ли ссылочку, а если нет, то может быть изложите.
Многим программиста, особенно начинающим это сильно поможет. К сожалению, не всегда можно найти грамотного руководства (у нас в Азербайджане, я еще не встречал:( и приходится варится в своем соку.
Все что вы перечислили очень похож на мой диагноз, особенно годичной давности.
Хотел уточнить пункт про:
использование переменных типа myParam1 a p1 s1 или s4, дублирование кода.
Можно про это поподробнее? Вы имеете ввиду, что каждой переменной надо давать осмысленные имена? Даже буферным, которые будут использованы только в двух сточках кода?
кроме вышеперечисленных элементарных навыков (2 road_run- которые,я кстати давно уже знаю и юзаю). напарывался, например,на утверждение, что "нормальная" программа должна проходить проверку правописания в Word'е. Что касается имен по типу p1, p2, то из-за них возникают проблемы, когда код переваливает по объёму за 50 килобайт, но быват так, что возникает ошибка и в банальных функциях в три строки.

отсутствие комментариев даёт проблемы через пару недель после того, как код был благополучно положен "на полочку". Они нужны в эти случаях.

Я бы вообще порекомендовал кроме "верёвки достаточной длины, чтобы выстрелить себе в ногу", "C++ Unleashed", книги по "экстремальному програмированию". Там интересные вещи рассказываются как раз о проектировании программ. Кроме того есть советы и в книгах типа "Programming Windows Xth edition".
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775117
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV
кроме вышеперечисленных элементарных навыков (2 road_run- которые,я кстати давно уже знаю и юзаю). напарывался, например,на утверждение, что "нормальная" программа должна проходить проверку правописания в Word'е.

Не согласен. По моему мнению это стеб.

P.s. Не надо личных намеков. Человек уважаем за то, что он говорит, а не за то, что говорят о нем.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775130
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh ErV
кроме вышеперечисленных элементарных навыков (2 road_run- которые,я кстати давно уже знаю и юзаю). напарывался, например,на утверждение, что "нормальная" программа должна проходить проверку правописания в Word'е.

Не согласен. По моему мнению это стеб.

P.s. Не надо личных намеков. Человек уважаем за то, что он говорит, а не за то, что говорят о нем.
Знаешь, по-моему как раз был не стёб. Большая часть из той книги как раз таким методом и была написана - можно сказать, что английский текст.

ЗЫ. фиг с ними с "намёками".
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775196
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV Akh ErV
кроме вышеперечисленных элементарных навыков (2 road_run- которые,я кстати давно уже знаю и юзаю). напарывался, например,на утверждение, что "нормальная" программа должна проходить проверку правописания в Word'е.

Не согласен. По моему мнению это стеб.

P.s. Не надо личных намеков. Человек уважаем за то, что он говорит, а не за то, что говорят о нем.
Знаешь, по-моему как раз был не стёб. Большая часть из той книги как раз таким методом и была написана - можно сказать, что английский текст.


Как будут называться переменные "ip-адрес отправителя", "ip-адрес получателя", "порт отправителя", "порт получателя"?
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775282
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh ErV Akh ErV
кроме вышеперечисленных элементарных навыков (2 road_run- которые,я кстати давно уже знаю и юзаю). напарывался, например,на утверждение, что "нормальная" программа должна проходить проверку правописания в Word'е.

Не согласен. По моему мнению это стеб.

P.s. Не надо личных намеков. Человек уважаем за то, что он говорит, а не за то, что говорят о нем.
Знаешь, по-моему как раз был не стёб. Большая часть из той книги как раз таким методом и была написана - можно сказать, что английский текст.


Как будут называться переменные "ip-адрес отправителя", "ip-адрес получателя", "порт отправителя", "порт получателя"?
Согласен. Здесь - только через подчерки (ip_sender_adress, ip_receiver_adress, sneder_port, reciever_port). Как я понял, предполагалось, ворд должен подчерки игнорировать. :)

Но здесь возможен вариант, когда эти переменные будут полями класса соответственно:
sender->port
sender->ip
и т.д.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775324
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV
Но здесь возможен вариант, когда эти переменные будут полями класса соответственно:
sender->port
sender->ip
и т.д.

А функции API? Их нельзя использовать? А как называть свои функции и методы? Всегда можно обойтись одним словом?
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775380
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErVкроме вышеперечисленных элементарных навыков (2 road_run- которые,я кстати давно уже знаю и юзаю). напарывался, например,на утверждение, что "нормальная" программа должна проходить проверку правописания в Word'е. Что касается имен по типу p1, p2, то из-за них возникают проблемы, когда код переваливает по объёму за 50 килобайт, но быват так, что возникает ошибка и в банальных функциях в три строки.

отсутствие комментариев даёт проблемы через пару недель после того, как код был благополучно положен "на полочку". Они нужны в эти случаях.

Я бы вообще порекомендовал кроме "верёвки достаточной длины, чтобы выстрелить себе в ногу", "C++ Unleashed", книги по "экстремальному програмированию". Там интересные вещи рассказываются как раз о проектировании программ. Кроме того есть советы и в книгах типа "Programming Windows Xth edition".
То есть вы ведете разработку по по технологии XP?
И что же там интересного рассказывается?
И какая разница сколько кода написано или человек пишет грамотно или безграмотно - третьего не дано.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775395
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot ErV]
отсутствие комментариев даёт проблемы через пару недель после того, как код был благополучно положен "на полочку". Они нужны в эти случаях.
[quot]
Да совсем забыл - пишите так что бы ваш код можно было использовать многократно . Спасибо что ErV мне напомнил.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775411
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
road_run ErVкроме вышеперечисленных элементарных навыков (2 road_run- которые,я кстати давно уже знаю и юзаю). напарывался, например,на утверждение, что "нормальная" программа должна проходить проверку правописания в Word'е. Что касается имен по типу p1, p2, то из-за них возникают проблемы, когда код переваливает по объёму за 50 килобайт, но быват так, что возникает ошибка и в банальных функциях в три строки.

отсутствие комментариев даёт проблемы через пару недель после того, как код был благополучно положен "на полочку". Они нужны в эти случаях.

Я бы вообще порекомендовал кроме "верёвки достаточной длины, чтобы выстрелить себе в ногу", "C++ Unleashed", книги по "экстремальному програмированию". Там интересные вещи рассказываются как раз о проектировании программ. Кроме того есть советы и в книгах типа "Programming Windows Xth edition".
То есть вы ведете разработку по по технологии XP?
И что же там интересного рассказывается?
И какая разница сколько кода написано или человек пишет грамотно или безграмотно - третьего не дано.
По каким параметрам оценивается грамотностьили безграмотность, интересно было бы узнать?

Разработку по технологии XP я не веду, но в книгах такого типа даётся хорошая справка по WinAPI (про который, я подозреваю, кое-кто (не имею в виду кого-либо конкретного :)) вообще никогда не слышал). Кроме кода, объясняющего, что такое FileMapping или, например, как создать окошко, там есть ещё кодовые примеры (в которых можно поучится стилю) и переодически проскакивают различные соображения по этому поводу.

вообще, ИМХО, вопрос о стиле возник из-за большой гибкости C++ - из (конкретно этого) языка можно ведь что угодно сделать.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775451
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErVРазработку по технологии XP я не веду, но в книгах такого типа даётся хорошая справка по WinAPI (про который, я подозреваю, кое-кто (не имею в виду кого-либо конкретного :)) вообще никогда не слышал). Кроме кода, объясняющего, что такое FileMapping или, например, как создать окошко, там есть ещё кодовые примеры (в которых можно поучится стилю) и переодически проскакивают различные соображения по этому поводу.

вообще, ИМХО, вопрос о стиле возник из-за большой гибкости C++ - из (конкретно этого) языка можно ведь что угодно сделать.
Ааааааа уууу ауууцаыв пврп причем WinApi бл* (извините не сдержаля) XP - http://www.xprogramming.ru/
все говорите о чем хотите... зарекаюсь в форум писать только читать заместо анекдотов
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775477
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот опять достигли взаимонепонимания...
А ведь уже пробовал вас остановить ;)

Надеюсь, третьего раунда не будет.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775484
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
road_run ErVРазработку по технологии XP я не веду, но в книгах такого типа даётся хорошая справка по WinAPI (про который, я подозреваю, кое-кто (не имею в виду кого-либо конкретного :)) вообще никогда не слышал). Кроме кода, объясняющего, что такое FileMapping или, например, как создать окошко, там есть ещё кодовые примеры (в которых можно поучится стилю) и переодически проскакивают различные соображения по этому поводу.

вообще, ИМХО, вопрос о стиле возник из-за большой гибкости C++ - из (конкретно этого) языка можно ведь что угодно сделать.
Ааааааа уууу ауууцаыв пврп причем WinApi бл* (извините не сдержаля) XP - http://www.xprogramming.ru/
все говорите о чем хотите... зарекаюсь в форум писать только читать заместо анекдотов
:lol:
Извини! :)
Всё время два сокращения путаю. (eXtremeProgramming - WindowsXP :))
Книгу я прочитал, и "принял к сведению".В частности, мой практический опыт написания программ на заказ подтвердил то, чтотам говорится о традиционных методиках проектирования. Стараюсь использовать то, что прменимо, но само собой - парное программирование в одиночку не попробуешь. :) А по рефакторингу книженция стоит будь здоров... Для скачивания ещё чего-то её не встречал, хотя очень хочу изучить.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775522
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh ErV
Но здесь возможен вариант, когда эти переменные будут полями класса соответственно:
sender->port
sender->ip
и т.д.

А функции API? Их нельзя использовать? А как называть свои функции и методы? Всегда можно обойтись одним словом?
Так вот в этом то и проблема! Функции WinAPI используют венгерскую нотацию, которая, по мнению автора книги, "полезна только в ассмблере, где о переменной известен только её адрес, и вносит неразбериху в код на C++". Как я понимаю, если язык - С++, имена функций можно либо разделить namespace'ами (это вместо префиксов), либо объединить в классы(это уже будет покруче). вот только не факт, что от этого читабельность улучшится.
И проблема в используемых мной приложениях возникала из-за того, что неизбежно возникает смешение двух стилей и неразбериха.
Образец "венгерского кода" я уже видел, я ТАК писать не буду.
(чего стоит название переменной m_rgbpcmSkinMaps! - экспорт в X-файлы для 3dsmax).
хотя, с другой стороны, "понятное" написание проги требует ООООЧЕНЬ хорошего представления того, что прога делает. Тут скорость уже падает, так как над одной функцией можно долго сидеть и думать, как в ней две переменные назвать так чтобы она былачитабельней... по идее это должно проходить с опытом.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775563
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErVКак я понимаю, если язык - С++, имена функций можно либо разделить namespace'ами (это вместо префиксов), либо объединить в классы(это уже будет покруче). вот только не факт, что от этого читабельность улучшится.

Я и говорю - стеб
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775575
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErV
Всё время два сокращения путаю. (eXtremeProgramming - WindowsXP :))
Книгу я прочитал, и "принял к сведению".В частности, мой практический опыт написания программ на заказ подтвердил то, чтотам говорится о традиционных методиках проектирования. Стараюсь использовать то, что прменимо, но само собой - парное программирование в одиночку не попробуешь. :) А по рефакторингу книженция стоит будь здоров... Для скачивания ещё чего-то её не встречал, хотя очень хочу изучить.
Ну вот смотри попробуем найти точки понимания ты все время ведешь разработку один. Тут можно соблюдать свои правила наиболее тебе понятные. А когда проект разрабатывает человек 6 что происходит. Каждый начинает писать так как он привык? Обычно придерживаются определенных соглашений по кодированию со всеми вытикающими более того достаточно часто код кодин код разрабатывается несколькими программистами.... ну и т.д.
Насчет хроший код или плохой в книге по рефакторингу вводится прекрасное определение "дурно пахнущий код" и даются примеры этого дурно пахнущего кода... Более того примеры примитивные и интуитивно понятные...
Теперь что происходит в реальности несмотря на то что все вроде бы знают как правильно писать код на этапе рефакторинга переодически видишь такие перлы - что хоть стой хоть падай (переодически я их вижу и в своем коде)
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775606
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HomosumХотел уточнить пункт про:
использование переменных типа myParam1 a p1 s1 или s4, дублирование кода.
Можно про это поподробнее? Вы имеете ввиду, что каждой переменной надо давать осмысленные имена? Даже буферным, которые будут использованы только в двух сточках кода?
В правилах, которые используются при написании кода, внашей организации есть такие строчки
"Следует употреблять только осмысленные имена переменных. Исключение составляют единичные переменные:
• счетчик цикла — i,j,k;
• обозначения количества объектов — n;
• обозначения временной строковой переменной — s, str."
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775662
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
road_run ErV
Всё время два сокращения путаю. (eXtremeProgramming - WindowsXP :))
Книгу я прочитал, и "принял к сведению".В частности, мой практический опыт написания программ на заказ подтвердил то, чтотам говорится о традиционных методиках проектирования. Стараюсь использовать то, что прменимо, но само собой - парное программирование в одиночку не попробуешь. :) А по рефакторингу книженция стоит будь здоров... Для скачивания ещё чего-то её не встречал, хотя очень хочу изучить.
Ну вот смотри попробуем найти точки понимания ты все время ведешь разработку один. Тут можно соблюдать свои правила наиболее тебе понятные. А когда проект разрабатывает человек 6 что происходит. Каждый начинает писать так как он привык? Обычно придерживаются определенных соглашений по кодированию со всеми вытикающими более того достаточно часто код кодин код разрабатывается несколькими программистами.... ну и т.д.
Насчет хроший код или плохой в книге по рефакторингу вводится прекрасное определение "дурно пахнущий код" и даются примеры этого дурно пахнущего кода... Более того примеры примитивные и интуитивно понятные...
Теперь что происходит в реальности несмотря на то что все вроде бы знают как правильно писать код на этапе рефакторинга переодически видишь такие перлы - что хоть стой хоть падай (переодически я их вижу и в своем коде)
в книге по XP(eXtremal Programming) было сказано, что (всё не буду перечислять :))
а) слишком длинных имен переменных не бывает
б) отличие системы в том, что используется ВСЁ ВРЕМЯ - то есть, всё время происходит рефакторинг, тесты и интеграция.
в) "мы умудрились договориться даже о том, где расставлять фигурные скобки!" :) :)

насчёт "дурнопахнущего кода" я согласен, и опять, вопрос про стили возник из-за того, что код, где смешение стилей происходит явно и повсеместо, как раз дурнопахнущим и является.

я не могу заявить, что "пользуюсь рефакторингом", так как эта чертова (извиняюсь) книга так до меня и не добралась по разным причинам. Стараюсь держать код читабельным и следовать правилам - "самая простая вещь, которая будет работать".

Насчёт "ляпов", о которых ты писал... не мог бы выкинуть сюда один - глянуть?

ЗЫ:Тут про книги по программингу кто-то спрашивал - ещё ОФФИГЕННАЯ книга есть - "жемчужины программирования", увы, только в книжных магазинах...
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775705
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot ErV]

Насчёт "ляпов", о которых ты писал... не мог бы выкинуть сюда один - глянуть?

[quot]

Код: plaintext
1.
Gost_Algo = new CGOSTHash();
Gost_Algo->Init();
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775740
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
road_run[quot ErV]

Насчёт "ляпов", о которых ты писал... не мог бы выкинуть сюда один - глянуть?

[quot]

Код: plaintext
1.
Gost_Algo = new CGOSTHash();
Gost_Algo->Init();


Имеешь в виду - Init() надо было в конструктор запихнуть? Или что?
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775768
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErVИмеешь в виду - Init() надо было в конструктор запихнуть? Или что?
Ну да аффтар никак не смог обосновать лишний метод....
...
Рейтинг: 0 / 0
Стиль программирования.
    #33775804
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
road_run ErVИмеешь в виду - Init() надо было в конструктор запихнуть? Или что?
Ну да аффтар никак не смог обосновать лишний метод....
Ну, если метод не виртуальный (т.е. будет перегружаться), т.е. - действительно, нафига?
...
Рейтинг: 0 / 0
Стиль программирования.
    #33776811
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV
вообще, ИМХО, вопрос о стиле возник из-за большой гибкости C++ - из (конкретно этого) языка можно ведь что угодно сделать.

Здесь я полностью не согласен. У меня есть опыт разработки на других языках, и даже если взять такой "примитивный" язык, как внутренний язык среды "1С:Предприятие", то и там очень важно понятие стиля и все, что было здесь сказано.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33786264
armas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стив Макконнелл Совершенный код
http://]http://www.natahaus.ru/2005/09/07/sovershennyy_kod__master_klass.html
Второе издание. Твердый переплет
896 стр., 2005 г.
Издательство: Питер
Русская редакция .
Серия: Мастер-класс.
ISBN 5-7502-0064-7

От издательства:
Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО ≈ с другой, автор синтезировал из самых эффективных методик и наиболее эффективных принципов ясное прагматичное руководство. Каков бы ни был ваш профессиональный уровень, с какими бы средствами разработками вы ни работали, какова бы ни была сложность вашего проекта, в этой книге вы найдете нужную информацию, она заставит вас размышлять и поможет создать совершенный код. Книга состоит из 35 глав, предметного указателя и библиографии.

Отзывы о книге:
"Это просто самая лучшая книга по конструированию ПО из всех, что когда-либо попадались мне в руки. Каждый разработчик должен иметь ее и перечитывать от корки до корки каждый год. Я ежегодно перечитываю ее на протяжении вот уже девяти лет, и все еще узнаю много нового!"
Джон Роббинс, автор книги "Debugging Applications for Microsoft .NET and Microsoft Windows"

"Современное ПО должно быть надежным и гибким, а создание защищенного кода начинается с дисциплинированного конструирования программы. За десять лет так и не появилось лучшего руководства по этой теме, чем эта книга."
Майкл Ховард, специалист по защите ПО, корпорация Microsoft; один из авторов книги "Writing Secure Code"

"Это исчерпывающее исследование тактических аспектов создания хорошо спроектированных программ. Книга Макконнелла охватывает такие разные темы, как архитектура, стандарты кодирования, тестирование, интеграция и суть разработки ПО."
Гради Буч, автор книги "Object Solutions".
...
Рейтинг: 0 / 0
Стиль программирования.
    #33787214
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
armasСтив Макконнелл Совершенный код
http://]http://www.natahaus.ru/2005/09/07/sovershennyy_kod__master_klass.html
Второе издание. Твердый переплет
896 стр., 2005 г.
Издательство: Питер
Русская редакция .
Серия: Мастер-класс.
ISBN 5-7502-0064-7

От издательства:
Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО ≈ с другой, автор синтезировал из самых эффективных методик и наиболее эффективных принципов ясное прагматичное руководство. Каков бы ни был ваш профессиональный уровень, с какими бы средствами разработками вы ни работали, какова бы ни была сложность вашего проекта, в этой книге вы найдете нужную информацию, она заставит вас размышлять и поможет создать совершенный код. Книга состоит из 35 глав, предметного указателя и библиографии.

Отзывы о книге:
"Это просто самая лучшая книга по конструированию ПО из всех, что когда-либо попадались мне в руки. Каждый разработчик должен иметь ее и перечитывать от корки до корки каждый год. Я ежегодно перечитываю ее на протяжении вот уже девяти лет, и все еще узнаю много нового!"
Джон Роббинс, автор книги "Debugging Applications for Microsoft .NET and Microsoft Windows"

"Современное ПО должно быть надежным и гибким, а создание защищенного кода начинается с дисциплинированного конструирования программы. За десять лет так и не появилось лучшего руководства по этой теме, чем эта книга."
Майкл Ховард, специалист по защите ПО, корпорация Microsoft; один из авторов книги "Writing Secure Code"

"Это исчерпывающее исследование тактических аспектов создания хорошо спроектированных программ. Книга Макконнелла охватывает такие разные темы, как архитектура, стандарты кодирования, тестирование, интеграция и суть разработки ПО."
Гради Буч, автор книги "Object Solutions".

Если честно (не обижайся) на банальную рекламу похоже.

2 road_run.
Ты говорил насчет ссылок по рефакторингу - не поделишся? :)
...
Рейтинг: 0 / 0
Стиль программирования.
    #33787501
armas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ErV
ну,блин, вы даете!
эта ссылка на целую книгу в эл.виде, к-рая... must have ;-)
Удачи!
...
Рейтинг: 0 / 0
Стиль программирования.
    #33788685
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErV
2 road_run.
Ты говорил насчет ссылок по рефакторингу - не поделишся? :)
Гмм что то не помню про то что говорил но вот на очень хорошую тулзовину для рефакторинга всегда пжалуйста .... эх если бы еще кряк можно было бы для нее найти...
...
Рейтинг: 0 / 0
Стиль программирования.
    #33788687
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
road_run ErV
2 road_run.
Ты говорил насчет ссылок по рефакторингу - не поделишся? :)
Гмм что то не помню про то что говорил но вот на очень хорошую тулзовину для рефакторинга всегда пжалуйста http://www.refpp.com/.... эх если бы еще кряк можно было бы для нее найти...
...
Рейтинг: 0 / 0
Стиль программирования.
    #33796471
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
armas2 ErV
ну,блин, вы даете!
эта ссылка на целую книгу в эл.виде, к-рая... must have ;-)
Удачи!
:lol: пардон, обознался. (Люди, никогда не пишите за ночь курсовую... :))
...
Рейтинг: 0 / 0
Стиль программирования.
    #33797119
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Уважаемые Знатоки! Разрешите вам задать ламерский вопрос и может быть не совсем в тему.
Кто-нибудь знаком с книгой В.Штерна "Основы С++. Методы программной инженерии"? Если да, то какое у вас к ней отношение?
Лично я ее читал, ну прям - как детектив какой, интересно - ужас. Может это от того, что нахожусь на начальном уровне в С++.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33797815
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть ещё такой каталожек хороших книжек
...
Рейтинг: 0 / 0
Стиль программирования.
    #33797897
5758903
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заходите на страницу самие http://]http://220.ws.co.ua/135.htm прикольные исходники!!!!
...
Рейтинг: 0 / 0
Стиль программирования.
    #33797899
5758903
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
220.ws.co.ua
...
Рейтинг: 0 / 0
Стиль программирования.
    #33799454
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?Уважаемые Знатоки! Разрешите вам задать ламерский вопрос и может быть не совсем в тему.
Кто-нибудь знаком с книгой В.Штерна "Основы С++. Методы программной инженерии"? Если да, то какое у вас к ней отношение?
Лично я ее читал, ну прям - как детектив какой, интересно - ужас. Может это от того, что нахожусь на начальном уровне в С++.
Начальный - это какой? :)
что знакомо (какие термины/понятия/функции) из списка:
перегрузка операторов,
шаблоны (template'ы), std::vector, std::bitset,
пространства имен, укзатели, наследование,
классы, полиморфизм, перегрзка операторов,
абстрактный метод, константный метод, ссылка,
абстрактный класс, "умный" указатель, typedef,
макрос, COM, WinAPI, HANDLE, std::cout, _tcsprintf.

:)
...
Рейтинг: 0 / 0
Стиль программирования.
    #33799792
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Из всего перечисленного еще не освоил - шаблоны, макросы и COM.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33799874
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErVstd::vector, std::bitset, пространства именмда... во времена бц3.1 такого не было.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33799916
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Ну и самое главное - я еще на С++ не выполнял никакой серьезный проект, кроме учебных примеров.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33801989
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?Ну и самое главное - я еще на С++ не выполнял никакой серьезный проект, кроме учебных примеров.
С серъезным проектом - почитай книги по экстремальному програмированию. Серъезно - я когда писал прогу на заказ, и пытался пользоваться традиционныи средствами проектирования получил ряд проблем, которые решаются в этих книгах...

и ещё :) что делают следующие строки (имена изначально были понятные :)):

int func(const char* p){
int i = 0;
if (p)
while(*(ptr++))
i++;
return i;
}

???
Просто многие парятся с указателями...
...
Рейтинг: 0 / 0
Стиль программирования.
    #33802180
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV ?Ну и самое главное - я еще на С++ не выполнял никакой серьезный проект, кроме учебных примеров.
С серъезным проектом - почитай книги по экстремальному програмированию. Серъезно - я когда писал прогу на заказ, и пытался пользоваться традиционныи средствами проектирования получил ряд проблем, которые решаются в этих книгах...

и ещё :) что делают следующие строки (имена изначально были понятные :)):

int func(const char* p){
int i = 0;
if (p)
while(*(ptr++))
i++;
return i;
}

???
Просто многие парятся с указателями...
ptr надо бы как-то это...
А если это опечатка и вместо ptr должно быть p то это просто strlen.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33802607
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErVи ещё :) что делают следующие строки (имена изначально были понятные :)):

int func(const char* p){
int i = 0;
if (p)
while(*(ptr++))
i++;
return i;
}

???
Просто многие парятся с указателями...
Простые вещи нужно делать низкоуровнеми средствами. Это и быстрее и "стильнее".
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
int func(const char* p) {
	_asm {
		xor		eax, eax
		mov		edi, p
		test	        edi, edi
		jz		l01
		mov		ecx, 0xffffffff
		repnz	        scasb
		mov		eax, ecx
		not		eax
		dec		eax 
l01:
	}               
}
...
Рейтинг: 0 / 0
Стиль программирования.
    #33802812
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Балтика ErVи ещё :) что делают следующие строки (имена изначально были понятные :)):

int func(const char* p){
int i = 0;
if (p)
while(*(ptr++))
i++;
return i;
}

???
Просто многие парятся с указателями...
Простые вещи нужно делать низкоуровнеми средствами. Это и быстрее и "стильнее".
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
int func(const char* p) {
	_asm {
		xor		eax, eax
		mov		edi, p
		test	        edi, edi
		jz		l01
		mov		ecx, 0xffffffff
		repnz	        scasb
		mov		eax, ecx
		not		eax
		dec		eax 
l01:
	}               
}

Вообще каждый пишет по своему. для меня C++ код удобнее читать.
Кроме того, он будет работать (теоретически) на любой машине - т.е. не 8086-based, хотя мне эо как то и все равно.

Кроме того - здесь мне просто интересно было посмотреть, знает ли человек указательную механику и т.д..
...
Рейтинг: 0 / 0
Стиль программирования.
    #33803888
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
ErV ?Ну и самое главное - я еще на С++ не выполнял никакой серьезный проект, кроме учебных примеров.
С серъезным проектом - почитай книги по экстремальному програмированию. Серъезно - я когда писал прогу на заказ, и пытался пользоваться традиционныи средствами проектирования получил ряд проблем, которые решаются в этих книгах...

и ещё :) что делают следующие строки (имена изначально были понятные :)):

int func(const char* p){
int i = 0;
if (p)
while(*(ptr++))
i++;
return i;
}

???
Просто многие парятся с указателями...

В данном примере, функция func принимает указатель со спецификатором const (это означает, что в данной функции, сами данные на которые указывает *p – изменить нельзя).
Так как указатель имеет тип char – это означает, что в функцию передается указатель на начало символьного массива.
В функции объявляется переменная i типа int которая инициализируется 0 и именно ее значение будет возвращено из данной функции.
Далее в конструкции - if (p) проверяется не содержит ли указатель значение 0. И если
не содержит, то в цикле while увеличиваем значение адреса, которое расположено в указателе, на величину которое занимает тип char и соответственно, увеличиваем счетчик i. По количеству таких итераций, получаем число - сколько раз менялся адрес в указателе p. Ну и соответственно, данное число - будет показывать количество символов в строке, на начало которой указывал *p как параметр функции при ее вызове.

Ptr – это опечятка.

Если я не прав, то пусть меня поправят. Буду – признателен за указание на ошибки моего рассуждения.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33803918
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Конечно, что в предложении: “Так как указатель имеет тип char – это означает, что в функцию передается указатель на начало символьного массива”,
будет правильнее написать: “Так как указатель имеет тип char – это означает, что в функцию передается адрес первого символа символьного массива.”
...
Рейтинг: 0 / 0
Стиль программирования.
    #33804514
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Балтика ErVи ещё :) что делают следующие строки (имена изначально были понятные :)):

int func(const char* p){
int i = 0;
if (p)
while(*(ptr++))
i++;
return i;
}

???
Просто многие парятся с указателями...
Простые вещи нужно делать низкоуровнеми средствами. Это и быстрее и "стильнее".
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
int func(const char* p) {
	_asm {
		xor		eax, eax
		mov		edi, p
		test	        edi, edi
		jz		l01
		mov		ecx, 0xffffffff
		repnz	        scasb
		mov		eax, ecx
		not		eax
		dec		eax 
l01:
	}               
}

Не скрою, мне интересны фичи по ускорению программ.
На BCB5 сравнил скорость выполнения этой функции и штатной strlen, выяснилось что штатная работает примерно в 5-6 раз быстрее. В ассемблерном промежуточном файле видно, что strlen была вставлена не как intrinsic, а как обычный вызов функции. Но надежда, что можно заменить на что-то более быстрое, все равно жива
...
Рейтинг: 0 / 0
Стиль программирования.
    #33811104
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?Конечно, что в предложении: “Так как указатель имеет тип char – это означает, что в функцию передается указатель на начало символьного массива”,
будет правильнее написать: “Так как указатель имеет тип char – это означает, что в функцию передается адрес первого символа символьного массива.”
указатель и адрес (ИМХО) - синонимы.
...
Рейтинг: 0 / 0
Стиль программирования.
    #33811317
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV ?Конечно, что в предложении: “Так как указатель имеет тип char – это означает, что в функцию передается указатель на начало символьного массива”,
будет правильнее написать: “Так как указатель имеет тип char – это означает, что в функцию передается адрес первого символа символьного массива.”
указатель и адрес (ИМХО) - синонимы.
С точностью до типизации в языке. Увеличение указателя ptr на n означает прибавление к адресу n * sizeof(*ptr).
...
Рейтинг: 0 / 0
Стиль программирования.
    #33813455
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
2ErV
На мой, (возможно не правильный) взгляд, все-таки именно – адрес.
Потому как, если написать заголовок функции, вот так:
Код: plaintext
1.
int func(const char** p)
то, все равно в функцию будет передаваться не указатель, а именно адрес участка памяти по которому расположен указатель p, который в свою очередь содержит адрес участка памяти того, на что сам указывает.

Вообще-то, С++ мне очень – нравится. Только само его изучение, тренирует мозги – будь здоров. Ведь, казалось бы, одна и та же “закорлючка”, но поставленная в разном месте, может вызвать совершенно разные действия или последствия. А сколько всевозможных тонкостей и нюансов!
...
Рейтинг: 0 / 0
Стиль программирования.
    #33814223
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?2ErV
На мой, (возможно не правильный) взгляд, все-таки именно – адрес.
Потому как, если написать заголовок функции, вот так:
Код: plaintext
1.
int func(const char** p)
то, все равно в функцию будет передаваться не указатель, а именно адрес участка памяти по которому расположен указатель p, который в свою очередь содержит адрес участка памяти того, на что сам указывает.

Вообще-то, С++ мне очень – нравится. Только само его изучение, тренирует мозги – будь здоров. Ведь, казалось бы, одна и та же “закорлючка”, но поставленная в разном месте, может вызвать совершенно разные действия или последствия. А сколько всевозможных тонкостей и нюансов!
ИМХО: разделять понятия "указатель" и "адрес" - значит создавать путаницу и двусмысленность.

в случае "int func(const char** p)"
p - "адрес адреса строки". или "адрес, по которому храниться адрес строки".
:) :) :)
...
Рейтинг: 0 / 0
Стиль программирования.
    #33815494
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV ?2ErV
На мой, (возможно не правильный) взгляд, все-таки именно – адрес.
Потому как, если написать заголовок функции, вот так:
Код: plaintext
1.
int func(const char** p)
то, все равно в функцию будет передаваться не указатель, а именно адрес участка памяти по которому расположен указатель p, который в свою очередь содержит адрес участка памяти того, на что сам указывает.

Вообще-то, С++ мне очень – нравится. Только само его изучение, тренирует мозги – будь здоров. Ведь, казалось бы, одна и та же “закорлючка”, но поставленная в разном месте, может вызвать совершенно разные действия или последствия. А сколько всевозможных тонкостей и нюансов!
ИМХО: разделять понятия "указатель" и "адрес" - значит создавать путаницу и двусмысленность.

в случае "int func(const char** p)"
p - "адрес адреса строки". или "адрес, по которому храниться адрес строки".
:) :) :)

И вовсе не бессмыслица: указатель - переменная, адрес - это данные в такой переменной.
И потому не "адрес адреса", а "адрес переменной, хранящей адрес строки".
...
Рейтинг: 0 / 0
Стиль программирования.
    #33817528
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?
Код: plaintext
1.
int func(const char** p)
то, все равно в функцию будет передаваться не указатель, а именно адрес участка памяти по которому расположен указатель p, который в свою очередь содержит адрес участка памяти того, на что сам указывает.вот конкретно тут ничего никуда не передаётся, это только объявление функции :) Передаваться будет при вызове.
...
Рейтинг: 0 / 0
80 сообщений из 80, показаны все 4 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Стиль программирования.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]