2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 22:49 
Аватара пользователя
Seman в сообщении #1344271 писал(а):
Посмотрите, как реализованы на C простые утилиты таже cat
, сам стиль кодирования. И старайтесь подражать.

ага, только сама эта "утилита" является ярким примером нарушения стиля...

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:06 
warlock66613 в сообщении #1344273 писал(а):

(Оффтоп)

Seman в сообщении #1344271 писал(а):
И старайтесь подражать.
Не получится: в разных проектах стиль диаметрально противоположный. Кроме того, надо просто знать чему конкретно подражать, сами вы этого просто не заметите.

(Оффтоп)

Стиль относится к крупным организациям. Это о том как должен выглядеть код. Есть gnu style, nasa , google(с++) style-coding и т.д. (довольно много). Остальным стоит взять один из этих стандартов за основу или вообще об этом не париться. Если в какой-то конторе "свой стиль" под каждый проект это уже не есть нормально.
Но, я под словом стиль имел ввиду не столько стиль, но и как стоит делать определенные вещи, те же буфера выделять, например и много всего. Подражать и учиться у первого Васи с github`а может и не стоит, а у профессионалов с многолетним опытом и проектами, которыми годам все пользуются, все же наверное не повредит .


-- 07.10.2018, 23:07 --

Geen в сообщении #1344275 писал(а):
Seman в сообщении #1344271 писал(а):
Посмотрите, как реализованы на C простые утилиты таже cat
, сам стиль кодирования. И старайтесь подражать.

ага, только сама эта "утилита" является ярким примером нарушения стиля...


В каком месте?

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:07 
Munin в сообщении #1344274 писал(а):
Там, где возможны тонкости, надо сделать так, чтобы взгляд зацепился, и мозг проанализировал.
Отдельно, не касаясь этого предложения: где есть тонкости, надо сделать комментарий о том, что творится. Если имплементируется алгоритм, назвать его и сослаться, если не фольклор (да и тогда стоит?); если есть оптимизации, указать какие; если есть хитрые оптимизации, посвятить их объяснению ещё больше места (или опять же ссылаться).

Seman в сообщении #1344271 писал(а):
Отлаживать надо уметь.
Ну что там уметь, этому не надо учиться ни годы, ни даже недели (если только отладчик не кошмарный какой-нибудь). Вместе с тем надо свести не гарантированно эффективную деятельность к минимуму (сюда легко ложится и откладывание оптимизаций до получения веских причин и конкретных мест где, и преждевременное абстрагирование*, и много чего). Например, написать юнит-тестов и ассертов, чтобы превентивно локализовать достаточную часть ошибок, притом раз и навсегда. Правда, их написание немного противоречит максиме писать минимум и самого кода вообще, но тут ничего не сделаешь.

* А вот это моё больное место, бывает.

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:13 
Seman в сообщении #1344281 писал(а):
Если в какой-то конторе "свой стиль" под каждый проект это уже не есть нормально.
Это нормально. И проекты разные, и люди разные, и у всех своё мнение о том как делать лучше, и оно меняется с течением времени.
Seman в сообщении #1344281 писал(а):
Но, я под словом стиль имел ввиду не столько стиль, но и как стоит делать определенные вещи, те же буфера выделять, например и много всего.
Вот это самое "много всего" все делают по-разному. Вот например есть С++ code-style от Google. Стоит ли им пользоваться? Да, но только если вы работаете в Google.

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:31 
Аватара пользователя
Seman в сообщении #1344281 писал(а):
Стиль относится к крупным организациям.

К чему угодно и к кому угодно. Например, GNU - не организация.

Seman в сообщении #1344281 писал(а):
Если в какой-то конторе "свой стиль" под каждый проект это уже не есть нормально.

Если "так сложилось исторически", то переделывать уже поздно.

Seman в сообщении #1344281 писал(а):
Но, я под словом стиль имел ввиду не столько стиль, но и как стоит делать определенные вещи, те же буфера выделять, например и много всего.

Это и есть стиль - а не расстановка отступов и скобочек.

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:36 
arseniiv в сообщении #1344282 писал(а):
Ну что там уметь, этому не надо учиться ни годы, ни даже недели (если только отладчик не кошмарный какой-нибудь).

(Оффтоп)

Тут конечно важно, что отлаживать ))))) Бывает 10-строчек олимпиадного программирования, это одно, а бывают миллионы в тысячи файлов. Поставить красненькую точку в какой-то ide, это одно, научится этому недолго, минуты. Но все отладчики которые полезные, все как один "кошмарные" с сотнями страниц документации, хоть windbg, хоть gdb. Изучить это требует времени. Плюс желательно уметь писать тест-кейсы и желательно пользоваться каким-то соответствующим framework для тестирования . Но и даже простой код как в этой теме у тс. В любом отладчике, если бы он посмотрел как выделяется память, где она выделяется, выполнил бы его по шагам, в том числе и в дизассемблированном виде по шагам, понял бы где начинаются чудеса, то вопросы отпали, а понимание как работает его код улучшилось бы значительно.

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:38 
Аватара пользователя
arseniiv в сообщении #1344282 писал(а):
Ну что там уметь, этому не надо учиться ни годы, ни даже недели (если только отладчик не кошмарный какой-нибудь).

Умение отлаживать отнюдь не сводится к умению пользоваться отладчиком (хотя и оно может быть непростым).

warlock66613 в сообщении #1344285 писал(а):
Вот например есть С++ code-style от Google. Стоит ли им пользоваться? Да, но только если вы работаете в Google.

А если нет - у него стоит поучиться. "Да у любого Цукермана есть чему поучиться..."

-- 07.10.2018 23:39:48 --

Seman в сообщении #1344289 писал(а):
В любом отладчике, если бы он посмотрел как выделяется память, где она выделяется, выполнил бы его по шагам, в том числе и в дизассемблированном виде по шагам, понял бы где начинаются чудеса, то вопросы отпали, а понимание как работает его код улучшилось бы значительно.

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

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:48 
Munin в сообщении #1344288 писал(а):
Например, GNU - не организация.


Я имел ввиду как организацию(FSF) так и само сообщество. Я не имел ввиду абревиатуру(GNU)(понятно, что сами три буквы не могут писать стандарты, и программы тоже не могут). Я также не имел ввиду любую операционную систему в которую входят продукты созданные сообществом. Я дал ссылку на их документ(вместе с насовским для примера) про стиль. и это именно о том как расставлять скобочки и прочий стиль.

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:56 
Munin в сообщении #1344290 писал(а):
А если нет - у него стоит поучиться.
Его действительно полезно почитать, поскольку там приводятся подробные обоснования, но просто следовать ему - нет. Например, этот гайд диктует полный отказ от использования системы исключений. Но там приводятся конкретные причины, и если их прочитать, то становится понятно, что для Google такое решение разумно, а для вас - нет.

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение08.10.2018, 00:09 
Аватара пользователя
Seman в сообщении #1344293 писал(а):
и это именно о том как расставлять скобочки

Что вовсе не значит, что стиль - это про это.

Больше рекомендуется
Саттер, Александреску. Стандарты программирования на С++.

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение08.10.2018, 00:19 

(Оффтоп)

Seman в сообщении #1344289 писал(а):
Бывает 10-строчек олимпиадного программирования, это одно, а бывают миллионы в тысячи файлов. Поставить красненькую точку в какой-то ide, это одно, научится этому недолго, минуты. Но все отладчики которые полезные, все как один "кошмарные" с сотнями страниц документации, хоть windbg, хоть gdb. Изучить это требует времени.
Такую отладку значит точно надо стараться минимизировать.

Seman в сообщении #1344289 писал(а):
Плюс желательно уметь писать тест-кейсы и желательно пользоваться каким-то соответствующим framework для тестирования .
А я о чём. :-)

Кстати не понимаю, почему некоторые настроены так сильно против IDE. Полезные же штуки, особенно когда написаны грамотно.


-- Пн окт 08, 2018 02:20:22 --

О коде: кстати есть книги типа Code complete.

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение08.10.2018, 00:26 
Аватара пользователя
arseniiv в сообщении #1344300 писал(а):
Такую отладку значит точно надо стараться минимизировать.

Может, и надо, но занимать даже после минимизации она всё равно может тонны сил и времени :-)

arseniiv в сообщении #1344300 писал(а):
О коде: кстати есть книги типа Code complete.

Ну, рядом с Саттером и Александреску несколько не смотрится: не тот уровень. Но на определённом этапе развития, безусловно, полезна.

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение08.10.2018, 00:45 
Munin в сообщении #1344301 писал(а):
несколько не смотрится
Зато применимо ко многим языкам. Плюс это книга очевидностей, которые, как известно, не все всем известны одновременно, и я там нашёл несколько полезных вещей как-то.

Munin в сообщении #1344301 писал(а):
Может, и надо, но занимать даже после минимизации она всё равно может тонны сил и времени :-)
Не спорю, хотя там где-то должна появиться верхняя граница, если код всё же держать в каком-то состоянии.

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение08.10.2018, 01:11 
Аватара пользователя
Ну, в "дикие 90-е" были даже книжки советов Голуба, но сейчас они как-то уже не смотрятся. Есть в них что-то от советских советов "на перегоревшей лампочке штопать носки". (Code Complete всё-таки получше.)

-- 08.10.2018 01:13:38 --

arseniiv в сообщении #1344305 писал(а):
Не спорю, хотя там где-то должна появиться верхняя граница, если код всё же держать в каком-то состоянии.

    Есть такая профессия, сынок: легаси-код саппортить.

 
 
 
 Re: Странное поведение оператора if else в языке Си
Сообщение08.10.2018, 01:25 
Munin в сообщении #1344298 писал(а):
Seman в сообщении #1344293 писал(а):
и это именно о том как расставлять скобочки

Что вовсе не значит, что стиль - это про это.

Больше рекомендуется
Саттер, Александреску. Стандарты программирования на С++.


(Оффтоп)

Нет, не значит. Разное можно называть этим словом. Я для примера привел, те ссылки. Замечу, все же, что С и C++ разные языки. Изначально речь про C . По С, что мне попадались стандарты про стиль, там именно больше про оформление, т.е. внешний вид кода, скобочки. И говорят в C про стиль больше про оформление, например, цитата из известной книжки (Керниган, Ричи) :
Цитата:
Мы рекомендуем писать только один оператор на строке и (обычно) оставлять пробелы вокруг операторов.
Расположение фигурных скобок менее существенно; мы выбрали один из нескольких популярных стилей.
Выберите подходящий для вас стиль и затем используйте его последовательно.
https://nsu.ru/xmlui/bitstream/handle/nsu/9058/kr.pdf

В разговоре и обсуждениях могут называть разное стилем. Например, можно сказать, что на C можно при желании программировать в объектно-ориентированном стиле, но C не объектно-ориентированный язык, поэтому это плохой для C стиль. В принципе, должно быть понятно, о чем речь.
C С++ , в том же google style guide, действительно все шире. Я конкретно, специально уточнил, что имел ввиду в совокупности, не только оформление, что стоит у профессионалов учиться разному.

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


arseniiv в сообщении #1344300 писал(а):
почему некоторые настроены так сильно против IDE. Полезные же штуки, особенно когда написаны грамотно.

(Оффтоп)

Я не против, но когда учишься лучше запоминать без автозаполнения и подсветки синтаксиса. И сложно перенести весь функционал в gui. Реализовать тысячу опций в виде аргументов командной строки проще, чем кучу окошек с тысячами полей и чекбоксов.

 
 
 [ Сообщений: 102 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group