2014 dxdy logo

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

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




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 22:49 
Заслуженный участник
Аватара пользователя


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

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

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:06 


29/12/13
306
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 
Заслуженный участник


27/04/09
28128
Munin в сообщении #1344274 писал(а):
Там, где возможны тонкости, надо сделать так, чтобы взгляд зацепился, и мозг проанализировал.
Отдельно, не касаясь этого предложения: где есть тонкости, надо сделать комментарий о том, что творится. Если имплементируется алгоритм, назвать его и сослаться, если не фольклор (да и тогда стоит?); если есть оптимизации, указать какие; если есть хитрые оптимизации, посвятить их объяснению ещё больше места (или опять же ссылаться).

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

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

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:13 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:31 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Seman в сообщении #1344281 писал(а):
Стиль относится к крупным организациям.

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

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

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

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

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

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:36 


29/12/13
306
arseniiv в сообщении #1344282 писал(а):
Ну что там уметь, этому не надо учиться ни годы, ни даже недели (если только отладчик не кошмарный какой-нибудь).

(Оффтоп)

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

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:38 
Заслуженный участник
Аватара пользователя


30/01/06
72407
arseniiv в сообщении #1344282 писал(а):
Ну что там уметь, этому не надо учиться ни годы, ни даже недели (если только отладчик не кошмарный какой-нибудь).

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

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

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

-- 07.10.2018 23:39:48 --

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

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

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:48 


29/12/13
306
Munin в сообщении #1344288 писал(а):
Например, GNU - не организация.


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

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение07.10.2018, 23:56 
Заслуженный участник


02/08/11
6892
Munin в сообщении #1344290 писал(а):
А если нет - у него стоит поучиться.
Его действительно полезно почитать, поскольку там приводятся подробные обоснования, но просто следовать ему - нет. Например, этот гайд диктует полный отказ от использования системы исключений. Но там приводятся конкретные причины, и если их прочитать, то становится понятно, что для Google такое решение разумно, а для вас - нет.

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение08.10.2018, 00:09 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Seman в сообщении #1344293 писал(а):
и это именно о том как расставлять скобочки

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

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

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение08.10.2018, 00:19 
Заслуженный участник


27/04/09
28128

(Оффтоп)

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 
Заслуженный участник
Аватара пользователя


30/01/06
72407
arseniiv в сообщении #1344300 писал(а):
Такую отладку значит точно надо стараться минимизировать.

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

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

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

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение08.10.2018, 00:45 
Заслуженный участник


27/04/09
28128
Munin в сообщении #1344301 писал(а):
несколько не смотрится
Зато применимо ко многим языкам. Плюс это книга очевидностей, которые, как известно, не все всем известны одновременно, и я там нашёл несколько полезных вещей как-то.

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

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение08.10.2018, 01:11 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Ну, в "дикие 90-е" были даже книжки советов Голуба, но сейчас они как-то уже не смотрятся. Есть в них что-то от советских советов "на перегоревшей лампочке штопать носки". (Code Complete всё-таки получше.)

-- 08.10.2018 01:13:38 --

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

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

 Профиль  
                  
 
 Re: Странное поведение оператора if else в языке Си
Сообщение08.10.2018, 01:25 


29/12/13
306
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  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group