Vasil_Riabko 11 21 июня, 2021 Опубликовано 21 июня, 2021 · Жалоба 15 minutes ago, jcxz said: Имхо: Определяющим мерилом должна быть читаемость кода, а не тупое скобкотыкательство везде где лезет. Если от добавления скобок код становится читаемей - нужно добавить, если сановится нечитаемым - убрать. Да пишите как Вам хочется только не пытайтесь свои творения впихнуть в изделия от которых могут пострадать люди. Цель стандарта MISRA C — улучшить безопасность, переносимость и надежность программ для встраиваемых систем. Написан он на основании опыта ( как летное руководство в авиации ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 21 июня, 2021 Опубликовано 21 июня, 2021 · Жалоба 10 минут назад, Vasil_Riabko сказал: Да пишите как Вам хочется только не пытайтесь свои творения впихнуть в изделия от которых могут пострадать люди. Аналогично и про ваши "творения". Если у вас хоть что-то есть.... 10 минут назад, Vasil_Riabko сказал: Цель стандарта MISRA C — улучшить безопасность, переносимость и надежность программ для встраиваемых систем. Увеличение количества скобок в исходнике делает код более надёжным??? Не знал, спасибо что просвятили... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasil_Riabko 11 21 июня, 2021 Опубликовано 21 июня, 2021 · Жалоба 6 minutes ago, jcxz said: Увеличение количества скобок в исходнике делает код более надёжным??? Не знал, спасибо что просвятили... MISRA C - это не только скобки . Впрочем для Вас все вокруг дураки не правы и стандарт никому не нужен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 21 июня, 2021 Опубликовано 21 июня, 2021 · Жалоба 5 минут назад, Vasil_Riabko сказал: MISRA C - это не только скобки Это скорее страховка при работе с низкоквалифицированным персоналом. Типа надписей "нет ремонтопригодных частей внутри" или "вскрывать только персоналу авторизованных центров" на корпусах бытовой электроники. Но мы-то знаем, что эти надписи предназначены среднестатистическому пользователю без профильного (а то и вообще без никакого) образования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 21 июня, 2021 Опубликовано 21 июня, 2021 · Жалоба 4 минуты назад, Сергей Борщ сказал: Это скорее страховка при работе с низкоквалифицированным персоналом. Типа надписей "нет ремонтопригодных частей внутри" или "вскрывать только персоналу авторизованных центров" на корпусах бытовой электроники. Или "Не предназначено для сушки кошек" на микроволновке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iamnot 0 22 июня, 2021 Опубликовано 22 июня, 2021 · Жалоба 23 часа назад, jcxz сказал: Какая-то бессмыслица.... Если не обращать внимание на скобки, то как можно понять алгоритм работы кода? Ведь порядок выполнения будет зависеть от комбинации этих скобок. Ваше фраза эквивалентна: "Те кто использует скобки уже не обращает на них внимание, и не понимают работы алгоритма глядя на код." Так и знал что зацепятся за эту формулировку. Под не обращает внимания имелось ввиду что глаз не цепляется за скобки а выбирает чисто выражения, но блок кода выделен явно. Но это похоже перешло в очередной холивар. 22 часа назад, Vasil_Riabko сказал: Цель стандарта MISRA C — улучшить безопасность, переносимость и надежность программ для встраиваемых систем. Вот ключевая фраза. Ее и придерживаюсь. Пишу со скобками и считаю что при передаче исходников между людьми с кодом со скобками будет меньше проблем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 3 22 июня, 2021 Опубликовано 22 июня, 2021 (изменено) · Жалоба 1 hour ago, iamnot said: Пишу со скобками и считаю что при передаче исходников между людьми с кодом со скобками будет меньше проблем. Да всем понятно, откуда это там и для чего. У меня лично был опыт, когда любители не ставить скобки написали офигенный код, где отступами выделили желаемое, а скобочек не поставили, без скобочек же читаемый код. И всё работало, потому что именно в этот 'else' код у тех ребят не заходил. И сделано это было в библиотеке. А я месяц искал ошибку у себя в коде, который эту библиотеку использовал, а он именно в этот 'else' заходил. И всё в той ситуации было прекрасно: - Была и библиотека которая "годами работала и проблем не было" - "Мы этой библиотекой 7 лет пользуемся, точно у тебя в коде проблема" - месяц моих поисков ошибки у себя в коде, я уже настолько дебильными тестами свой код покрыл, что сам чуть не двинулся. В итоге, когда я залез в код библиотеки, очень быстро нашёл ошибку, поставил скобки и всё заработало. Но, когда показал тем, кто эту библиотеку говнокодил, то их аргументы против скобок были такие же, как и у адептов бесскобочности в этом треде. Причём звучало и фееричное "В моей практике вообще таких проблем никогда не было",- и не смущало, что разборка вообще велась из-за потерянного месяца работы по той причине что именно в их практике это случилось, и именно о том, что случилось разговор и ведётся. Да и вообще: "В моей практике проблем не было".- это как тот анекдот, когда мужик упал с 55 этажа, пролетает мимо 17-го, и думает: "Ну, пока всё не так уж плохо". Изменено 22 июня, 2021 пользователем one_eight_seven Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 22 июня, 2021 Опубликовано 22 июня, 2021 · Жалоба 15 минут назад, one_eight_seven сказал: Да всем понятно, откуда это там и для чего. У меня лично был опыт, когда любители не ставить скобки написали офигенный код, где отступами выделили желаемое, а скобочек не поставили, без скобочек же читаемый код. И всё работало, потому что именно в этот 'else' код у тех ребят не заходил. И сделано это было в библиотеке. А я месяц искал ошибку Из всего написанного я понял, что проблема у вас была в том что пользуетесь сторонними библиотеками. Именно в этом и проблема, а не в скобках. И не надо подменять понятия. Могу вспомнить массу примеров где код, с табуном скобок, точно так же скрывал в себе баги. И тоже считался отлаженным. Я выкашивал этот табун и находил и исправлял эти баги. Которые скобкотыкатели в своём коде найти не сумели. Ещё раз: Натыкание кучи скобок в код не делает его надёжным. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 3 22 июня, 2021 Опубликовано 22 июня, 2021 (изменено) · Жалоба 4 minutes ago, jcxz said: Могу вспомнить массу примеров где код, с табуном скобок, точно так же скрывал в себе баги. И тоже считался отлаженным. Я выкашивал этот табун и находил и исправлял эти баги. Которые скобкотыкатели в своём коде найти не сумели. Вот прямо убрали скобки и код стал рабочим? Или всё-таки проблемы были в другом? Дело в том, что в моём случае я действительно просто добавил скобки, и код стал рабочим. Изменено 22 июня, 2021 пользователем one_eight_seven Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 22 июня, 2021 Опубликовано 22 июня, 2021 · Жалоба Только что, one_eight_seven сказал: Вот прямо убрали скобки и код стал рабочим? Или всё-таки проблемы были в другом? Убрал скобки (и многий другой мусор, заслонявший структуру алгоритма) и баг стал явно видим. За лесом скобок написатели кода сами видимо потерялись и не заметили бага. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 3 22 июня, 2021 Опубликовано 22 июня, 2021 · Жалоба Ну вот видите "и многий другой мусор" Скобки ничего не заслоняют. Более того, если после if/else более, чем одна строка, скобки будут всё равно. И не нужно строить из себя инвалида по зрению, который резко слепнет, когда после if/else одна строка, и прозревает, когда их две и больше. Хотя бы по той причине, что для того, чтобы посчитать одна там строка или две - уже надо иметь зрение. Отмазка жалкая и мерзкая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iamnot 0 22 июня, 2021 Опубликовано 22 июня, 2021 · Жалоба 3 минуты назад, jcxz сказал: Убрал скобки (и многий другой мусор, заслонявший структуру алгоритма) и баг стал явно видим. За лесом скобок написатели кода сами видимо потерялись и не заметили бага. Убрали Вы их из-за того, что привыкли писать без скобок. Об этом я писал ранее - непривычный стиль. А нашли баг потому что компетенция, свежий взгляд. Так как при наличии скобок код компилировался, то скобки были не причем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 3 22 июня, 2021 Опубликовано 22 июня, 2021 · Жалоба Мне вот этот классический пример ошибок нравится: if(one) if(two) foo(); else bar(); Тоже встречал. Как правильно сказал выше Сергей Борщ, это делают новички. Но зато код какой читаемый! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 22 июня, 2021 Опубликовано 22 июня, 2021 · Жалоба 28 минут назад, iamnot сказал: А нашли баг потому что компетенция, свежий взгляд. Компетенция компетенцией, но пока лишний бурелом не выкосил - не мог найти причину глюков. 29 минут назад, one_eight_seven сказал: если после if/else более, чем одна строка, скобки будут всё равно. Я ничего не имею против скобок там, где они реально нужны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 22 июня, 2021 Опубликовано 22 июня, 2021 · Жалоба Из всего понял только то, что библиотека, которую Вам, ув. @one_eight_seven, дали, была кривая. Ведь это можно было найти? Можно! Вы же нашли. То, что ее не нашли программисты той библиотеки - так это сугубо их косяк. Равно как они же могли подложить мину и в совершенно другом месте, не связанном с расстановкой скобок. 41 минуту назад, one_eight_seven сказал: Мне вот этот классический пример ошибок нравится... ИМХО, такие промахи приводят к потенциально неправильному алгоритму работы в целом и проявляются быстро. Я тоже не против скобок, но только там, где без них обойтись нельзя. А то если так подумать, то и else if() нужно избегать и огораживаться скобками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться