LINUX.ORG.RU

Интересует ваше мнение по поводу использования {}

 


0

1

Тут возник спор с компанией, которая принимает мою работу, по поводу моего повсеместного использования {}

Да, я использую их везде, я знаю все сокращенные формы, но не люблю их использовать по следующих причинах:

1) если используешь {} легче дебажить - для этого просто нужно вставить необходимую сроку внутрь блока, обычно хватает ctr+c. Если же не использовать их - то при поиске ошибок нужно все равно их вставлять, делать дополнительное форматирование и потом назад убирать - я считаю это дурной работой.

2) удобно группировать код при длинном листинге в моей любимой ide netbeans

3) уменьшается возможность глупой ошибки при удалении строки кода или когда лоханулся и не поставил ; Сразу получаешь ошибку.

Или я не прав?

неужели настолько ухудшается читаемость кода чтоб предъявлять претензии?

Перемещено JB из talks

★★

Последнее исправление: JB (всего исправлений: 4)
Ответ на: комментарий от morse

считай как хочеш, но когда ты фрилансер - время деньги. И если я буду править каждую мыслю пришедшую опосля зя бесплатно - я умру с голоду. У каждого решения есть достоинтсва и недостатки.

Если бы я сидел на зарпалту - то с удовольствием правил оформление - солдат спит - служба идет.

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 1)
Ответ на: комментарий от webmak

И что самое обижает, заказчик веб студия и их команда не смогла!!! реализовать нужный функционал, я это сделал за два дня, а теперь их тим лид начал выпендриватся

А, ты и заказчики веб-макаки? Ну это сразу меняет дело.

EXL ★★★★★
()
Ответ на: комментарий от webmak

но когда ты фрилансер - время деньги

Ага, конечно. Вот ты создал этот тред час назад. Написать правило для стилизатора у тебя бы заняло 10 минут. А теперь давай, расскажи мне как каждая минута твоего времени стоит $100500.

morse ★★★★★
()

ставь хоть двойные, но удали перед сдачей средствами netbeans, нет блин, целый тред создал.

t184256 ★★★★★
()
Ответ на: комментарий от webmak

Тогда тыкни главебмакаку, которая там залупилась на присутствие скобок, е#?&ом в эту статью:

http://habrahabr.ru/post/166113/

А именно в эту цитату:

Другая вещь, которую id решила принять как постоянное правило, я тоже настоятельно поддерживаю — это решение всегда использовать { }, даже когда это не является необходимым. Я повидал слишком много кода подобного этому: http://img.gawkerassets.com/post/9/2013/01/figure6-cropped.png Я не смог найти ни одного примера в коде id, где они хоть раз пропустили бы { }. Если опустить дополнительные { }, то разбор блока while() займет в разы больше времени, чем должен был бы. Кроме того, любая правка превращается в настоящее страдание — достаточно представить, что мне потребуется вставить if-условие на пути else if (c > d).

А потом пошли его на три буквы.

EXL ★★★★★
()
Ответ на: комментарий от morse

возникло желание здесь спросить - нельзя? или все время в код втыкать?

webmak ★★
() автор топика
Ответ на: комментарий от t184256

но удали перед сдачей средствами netbeans

Удалить (желательно в биореактор) тут нужно лишь главебмакаку, которой не угодили скобки.

EXL ★★★★★
()
Ответ на: комментарий от EXL

нет эту статью как раз ко мне может применить заказчик) вот мой стиль http://img.gawkerassets.com/post/9/2013/01/figure3-cropped.png

а у них еще короче

http://img.gawkerassets.com/post/9/2013/01/figure6-cropped.png

но в одну строку)

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 3)
Ответ на: комментарий от morse

ну, впереди у тебя ещё долгая и разнообразная жизнь ;)

yyk ★★★★★
()
Ответ на: комментарий от webmak

Причём тут короче? Тут дело не в короче, а в скобках. Либо ты расставляешь везде скобки (даже там, где это не является необходимым), как хороший программист; либо пишешь вот такую лапшу как последний чудак на букву м.

EXL ★★★★★
()
Ответ на: комментарий от EXL

он будет аргументировать, что «тратить понапрасну свободное вертикальное пространство экрана» но там же и ошибка)) http://img.gawkerassets.com/post/9/2013/01/figure6-cropped.png

else if(c > d);
   e = f;
после точки с запятой оператор завершил работу и e = f; - ошибка, вот из-за этого я не работаю в таком стиле

webmak ★★
() автор топика
Ответ на: комментарий от webmak

но в одну строку)

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

EXL ★★★★★
()
Ответ на: комментарий от webmak

Так этот стиль в той статье рассматривается как неприемлемый стиль мудаков. А если твой главмакак все это ещё и пихает в «одну строку», то он мудак вдвойне.

EXL ★★★★★
()
Ответ на: комментарий от EXL

да, его «фишка» максимлаьно оптимизированный код, оно вроде бы и красиво, иногда, но дебажить это кошмар - потому я и отказался его перегонять в одну строку.

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 1)

Всегда использую {} это избавляет от множества случайных ошибок.

andreyu ★★★★★
()
Ответ на: комментарий от webmak

В id советуют писать так, это и есть «не тратить понапрасну свободное вертикальное пространство экрана» и при этом оставаться читаемым и удобным для отладки и редактирования.

максимлаьно оптимизированный код

Какой-какой? Главмакак считает, что чем меньше строк в программе, тем она быстрее работает? Нет, его фишка — говнокод. Кинь ему ссылку на этот тред.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от EXL

да)) вот это я и объяснял хозяину, но он не понял, принял работу, но не понял. Потому я и здесь написал, чтоб понять один ли я идиот или нет)

я еще и переменные для себя поделил, но это уже такое, лично мое удобство)

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 2)
Ответ на: комментарий от msgxx

русского языка в школе не преподавали, потому из-за этого возникает много ошибок, прошу прощения. Стараюсь быть грамотней, но увы и так допускаю много ошибок.

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 2)

вот что в конечном итоге ответил заказчик)

Ok, i will start changes. I need to follow THE rules or I can not publish THE module.... I know there are lot of stupid things, but it is their game rules....

Походу, он этим модульем решил торговать, но требований не поставил) Теперь понятно с какого весь балаган.

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 3)

Ну, разумное решение вам уже предлагали: если coding style в части использования/неиспользования скобок заранее не был оговорен, то исполнитель вправе ставить их или не ставить. В этом плане претензии заказчика он вправе выслушать и «принять к сведению» (то есть, ничего не делать). Тем более, не имеет смысла спорить об этом с заказчиком или доказывать ему что-то. Мало ли что, не оговоренное в требованиях может придти ему в голову.

Фраза «заказчик всегда прав» это не фраза разумного человека. В первую очередь потому что она ложна. Исполнитель тоже не всегда прав. Правы всегда только требования.

Я бы предложил заказчику включить этот пункт о coding style в требования. А скобки бы все же выпилил бесплатно. Это объективно не требует затрат, по-честному если говорить, сохранит отношения с заказчиком и убережет от новых сюрпризов с его стороны.

Такие дела. Непонятки бывают. Ну надо как-то взаимодействовать даже когда они возникли.

anonymous
()
Ответ на: комментарий от webmak

Вот честно, и так и так - норм. Все споры на эту тему насквозь субъективны. Оба правы. А когда оба правы, нужен тот кто рассудит - то есть, стандарт, который принимают обе стороны.

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

anonymous
()
Ответ на: комментарий от anonymous

там не только в скобках требования, их валидатор выкатил изменений на 10 страниц 10 шрифтом.

вот к примеру

The use of $_POST is forbidden; use Tools::getValue() instead
вроде бы и безобидное решение, только тут проблема, ихняя хрень берет и GET и POST и прочую хренотеть, а по моей логике этого не льзя так как опять ихняя же функция при валидации создает переменные post в самом скрипте, и для безопастности я принял решение, что нужно брать переменные из post, хоть это и не сильно обезопасит, но сузит возможность совпадения в названия у других модулей.

Также я использовал namespase - у них это табу.

Logical operator "and" is prohibited; use "&&" instead

в своем стиле все функции которые работают с БД я использую названия, а не && || и т.д., мне это удобно и я быстро нахожу сущность функции, но это мой бзик, понимаю, что у других его нет.

потом идет еще

1 space expected after "if"; 0 found
я не делаю оступы после if, а сразу пишу скобки
TRUE, FALSE and NULL must be lowercase
я их всегда пишу с большими, так как это константы
Variable "$nonSortCategories" have not right syntax. Should be : "$non_sort_categories"
я использую camelCase, а вот так non_sort_categories пишу только те переменные которые идут в sql запрос, чтоб уделить им больше внимания
Protected method name "AdminPoductXMLExportController::_initForms" is not in camel caps
format
я всегда все приватные и закрытые члены класса начинаю с _ мне это удобно и понятно. У них это табу и там мнооооогоо чего - перепись моего кода займет больше чем его создание.

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 4)
Ответ на: комментарий от anonymous

да, но мне никто не сказал что нужен стандарт, я с такими требованиями не сталкивался - всегда мое говно подходило

webmak ★★
() автор топика
Ответ на: комментарий от morse

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

NightmareZombie
()
Ответ на: комментарий от NightmareZombie

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

webmak ★★
() автор топика

Или я не прав?

Ты прав, если код выпускаешь в сроки :))) Вообще, если ты «кормилец» фирмы можешь слать всех в лес и по дрова. Передай коллегам слова Торвальдса: плохой программист думает о коде, хороший программист думает о структурах.

gh0stwizard ★★★★★
()
Ответ на: комментарий от gh0stwizard

Торвальдса: плохой программист думает о коде, хороший программист думает о структурах.

с этим не согласен - так как есть еще команда.

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

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 3)

И еще вспомнил, когда вы приходите на работу, то вам обьясняют по каким стандартам нужно кодить, а чем заказ отличается от найма на работу?

Такое еще можно было бы обьяснить если заказчик ничего не понимает в коммандной работе, но тут же контора, причем с большим обьемом проектов на elance. Они то понимают, что им нужен код согласно стандарта. Я видел их код, да мог предположить, что нужно писать так-же, но моя работа - это отдельный модуль.

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 1)
Ответ на: комментарий от webmak

Расслабься. Теперь ты знаешь, что им нужно. А вообще, если в рамках договора (даже устного) не был оговорен этот вопрос, то ты прав. Я так понял тебе не хотят бабло платить по номиналу? Если это так, то думай сам: либо сам вписываешь условия code style, либо пусть они вписывают; иначе шли их в лес. Придраться, чтобы не платить можно к чему угодно.

gh0stwizard ★★★★★
()

Тут возник спор с компанией, которая принимает мою работу, по поводу моего повсеместного использования {}

Скажи им, что в Apple тоже так думали, как они, а потом случился goto fail.

proud_anon ★★★★★
()
Ответ на: комментарий от gh0stwizard

Нет, бабло мне заплатили, хотят чтоб я бесплатно переделал под их стандарт, а как я уже сказал - пределать у меня займет больше времени чем ушло на написание. Я этого делать не буду, что и озвучил заказчику. У них есть бригада, пусть читают код и правят - задачу я решил, пусть форматируют сами.

webmak ★★
() автор топика
Ответ на: комментарий от proud_anon

Нет, иначе останется неприятный осадок, но тут всем не угодиш.

webmak ★★
() автор топика
Ответ на: комментарий от webmak

Я этого делать не буду, что и озвучил заказчику. У них есть бригада, пусть читают код и правят - задачу я решил, пусть форматируют сами.

Правильно. А если вкатают в договор запись о code style для след. работы можешь и планку поднять, ибо можно делать работу и с вызовом куртизанок на дом заказчика :))

gh0stwizard ★★★★★
()
Ответ на: комментарий от webmak

если заказчик не высказал требований по оформлению кода изначально - то он не прав априори

Удваиваю. Возьми еще немного денег с них, переформатируй, делов-то.

goingUp ★★★★★
()
Ответ на: комментарий от webmak

это некомпетентность. с обеих сторон.

заказчик не упомянул про coding-style. скорее всего потому что он существует только в голове того самого тим-лида.

ты, зная что сдаёшь исходники, не спросил.

anonymous
()
Ответ на: комментарий от anonymous

ага. даже валидатор есть...

но вывод это не меняет.

anonymous
()
Ответ на: комментарий от anonymous

это некомпетентность. с обеих сторон.

согласен, но не за мой же счет должна быть переделка.

У них в заявке стоял пожар, тоесть нужно было быстро, я работал два дня с 9 утра до 3 ночи с 5 минутными перерывами на перекур через каждый час и 30 мин забрать и завести ребенка в садик.

Указанные сроки сдержал - все работает - не устраивает только код. Его править нехочу и вообще ближайшие два дня вообще работать не хочу.

webmak ★★
() автор топика
Ответ на: по мере чтения поправляю себя от anonymous

я видел много кода, но пишу в своем стиле/говнокоде, чего только стоит битрикс, и все три года фриланса писал в своем стиле, потому и не предположил, что нужно специфически.

http://govnokod.ru/search?search=bitrix&language=

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 5)
Ответ на: комментарий от webmak

Наличие такого валидатора всегда большой плюс. Валидатор есть истина в последней инстанции.

Странно, что они не объявили о наличии его заранее и не предоставили его вам. Это несомненно их про*б, именно того человека который сразу не объявил о его существовании.

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

Было бы честно в этом случае, если реализация этого дополнительного требования оплачивалась отдельно. Есть у вас договор и пункт в нем, описывающий как оплачивается реализация дополнительных требований, изначально не выдвигавшихся?

anonymous
()
Ответ на: комментарий от peregrine

заказчик очень даже адекватен, но скуповат) он или забыл, или не подумал и я тоже не подумал ибо не стыкался.

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.