|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
VarcomАлексей КЗапомни, комментировать надо предметную область. У нас в компании один поставил в коде Sleep(5000). А через пару лет мы всем отделом пытались догадаться 5000 - это говно-константа, нужно так: Код: c# 1. 2. 3.
и комментарий теперь заложен в имени переменной ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2015, 22:40 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
MrVoidЭто просто настоящий зоопарк. Я, например, с трудом читаю такой говнокод, потому что "davesDump", "hotel", "newMotel" - это всё тип Lodging! И где же тут "качественное API" и "грамотное название переменных"? Не пойму что не нравится - ну названия отелей, ну "такие у них имена". Причем тут апи. Покажи, как надо! Давай вспомним название темы. Если бы вместо var стояли бы Lodging, тя все бы устраивало? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2015, 23:15 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
refregMrVoidЭто просто настоящий зоопарк. Я, например, с трудом читаю такой говнокод, потому что "davesDump", "hotel", "newMotel" - это всё тип Lodging! И где же тут "качественное API" и "грамотное название переменных"? Не пойму что не нравится - ну названия отелей, ну "такие у них имена". Причем тут апи. Покажи, как надо! Давай вспомним название темы. Если бы вместо var стояли бы Lodging, тя все бы устраивало? Нет, ну если бы было написано "davesDumpLodging", тогда другое дело. В дальнейшем нифига не понятно, что это за тип - и каждый раз надо возвращацо назад. В любом случае необходимо внятное название переменных! А то тут "hotel", а тут "dump" - и ищи, к чьей жопе яйца... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2015, 00:08 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
MrVoidrefregпропущено... Не пойму что не нравится - ну названия отелей, ну "такие у них имена". Причем тут апи. Покажи, как надо! Давай вспомним название темы. Если бы вместо var стояли бы Lodging, тя все бы устраивало? Нет, ну если бы было написано "davesDumpLodging", тогда другое дело. В дальнейшем нифига не понятно, что это за тип - и каждый раз надо возвращацо назад. В любом случае необходимо внятное название переменных! А то тут "hotel", а тут "dump" - и ищи, к чьей жопе яйца...В каком дальнейшем месте это будет непонятно? зачем вам знать тип промежуточных переменных? зачем вам возвращаться назад, чтоб узнать этот тип, если этот тип определен в любом месте. Он будет явно объявлен, в любой последующей части кода, он будет точно тем же типом. Что за бредни ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2015, 00:45 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
ппц тупизм развели. весь этот срач имеет смысл только если код процедуры не влезает в экран. если влезает, то абсолютно покуй как объявлять - весь код на ладони и понятен. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2015, 08:42 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
Алексей КD129пропущено... У нас один умный написал так (пишу по памяти саму идею)Зато не скучно. :-) Зато проэкт закрыли - из-за завала в производительности. Заказчику продали ЭТО для работы на селеронах 2003 года. А оно не побежало. Там не только это было, естественно, а вообще много зауми, вместо экономично работающего кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2015, 10:41 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
Roman Mejtesзачем вам знать тип промежуточных переменных? зачем вам возвращаться назад, чтоб узнать этот тип, если этот тип определен в любом месте. Он будет явно объявлен, в любой последующей части кода, он будет точно тем же типом. Что за бредни Есть разница - читать код, и запомнить, какой был обьявлен тип без дополнительных действий, только глазами - или нужно обязательно наводиться, отвлекаться. Разрабатывать то хорошо, но приходится же еще и поддерживать - и в контексте аджайлов - в проэкте практически нет "своего кода" - каждый кусок многократно переписывается случайными людьми - и каждый раз, когда надо понять, что же делает конкретный кускок, а он только "варит" - это дополнительная трудность. Только из-за политики (если заставляют писать var - не где это разумно, а везде, для возможной "легкости переименования" - которая может и не наступить, а вот читать то все равно приходится. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2015, 10:48 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
MrVoid>> использование var принуждает вас более грамотно называть сами переменные >> использование var принуждает к более качественному API Я вот не люблю принуждение. :-) И тому подобные ролевые игры. Если мне тяжело и неудобно работать (а хотябы и у меня свой стиль мышления (какого-никакого)) то я начинаю работать хуже. Тратится творческая энергия на преодоление неудобств и "принуждений" - а на основную задачу остается меньше. Проблема в формальном подходе. var написал? Да! Молодец! - а с какого перепугу это вообще критерий? Вместо работающего кода - отчет о количестве использованых варежек и покрытии юнит-тестами. Которые сами по-себе не гарантируют ничего . ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2015, 13:40 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
D129MrVoid>> использование var принуждает вас более грамотно называть сами переменные >> использование var принуждает к более качественному API Я вот не люблю принуждение. :-) И тому подобные ролевые игры. Если мне тяжело и неудобно работать (а хотябы и у меня свой стиль мышления (какого-никакого)) то я начинаю работать хуже. Тратится творческая энергия на преодоление неудобств и "принуждений" - а на основную задачу остается меньше. Проблема в формальном подходе. var написал? Да! Молодец! - а с какого перепугу это вообще критерий? Вместо работающего кода - отчет о количестве использованых варежек и покрытии юнит-тестами. Которые сами по-себе не гарантируют ничего . Без этого никак в командных проектах. Должен быть выдержан единый стиль кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 07:44 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
LameUserБез этого никак в командных проектах. Должен быть выдержан единый стиль кода. Кому должен? Код должен работать - и в зависимости от задачи, он может быть разным. Вот мне написали как можно сократить следующий код: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Нахлобуч - однозначно спец. :-) Код: c# 1. 2. 3. 4. 5. 6.
Блестяще. И не так уж сложно. И клин код. А вот теперь, ситуация - я сделал паблиш (это код веб сайта). И один пользователь жалуется, что он все сделал, а не работает. И надо добавить лог, потому, что раз жалуется один, значит испорченные данные в базе - конкретно у него. Но какие? (базу писал не я). Так что лог должен выглядеть примерно так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
И предположим, что это случилось через 3 месяца после написания круто закрученного кода. В какой ситуации, будет менее рисковано добавив строку лога, сразу сделать паблиш (да, да, так тоже бывает!)? Мы все-таки техники, а не художники или скульпторы. И делаем машины, а не произведения дизайнерской фантазии. А машина должна быть ремонтопригодна. Должен быть лючок для смазки, и сменный фильтр, когда откручиваешь одну гаечку - сдвигаешь крышечку, поменял, закрутил - и не надо газорезом разрезать отполированный и заваренный намертво корпус. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 09:20 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
D129LameUserБез этого никак в командных проектах. Должен быть выдержан единый стиль кода. Кому должен? Код должен работать - и в зависимости от задачи, он может быть разным. Вот мне написали как можно сократить следующий код: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Нахлобуч - однозначно спец. :-) Код: c# 1. 2. 3. 4. 5. 6.
Блестяще. И не так уж сложно. И клин код. А вот теперь, ситуация - я сделал паблиш (это код веб сайта). И один пользователь жалуется, что он все сделал, а не работает. И надо добавить лог, потому, что раз жалуется один, значит испорченные данные в базе - конкретно у него. Но какие? (базу писал не я). Так что лог должен выглядеть примерно так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
И предположим, что это случилось через 3 месяца после написания круто закрученного кода. В какой ситуации, будет менее рисковано добавив строку лога, сразу сделать паблиш (да, да, так тоже бывает!)? Мы все-таки техники, а не художники или скульпторы. И делаем машины, а не произведения дизайнерской фантазии. А машина должна быть ремонтопригодна. Должен быть лючок для смазки, и сменный фильтр, когда откручиваешь одну гаечку - сдвигаешь крышечку, поменял, закрутил - и не надо газорезом разрезать отполированный и заваренный намертво корпус. Должен заказчику. Ваш пример некорректен. Стиль кода не должен влиять на конечный результат. В вашем случае это рефакторинг, а не стиль кода. Самописные поделки на одного прогера можно писать как угодно (если не требуется их дальнейшее развитие), а корпоративные проекты - как правило так не пишутся. Спорить можно бесконечно, но best practice для меня в командных проектах - это единый стиль кода. Если я руководитель проекта - я прошу соблюдать участников проекта единый стиль кода. Если кто-то не хочет этого делать - я снимаю этого человека с проекта. Если я исполнитель - я соблюдаю единый стиль, если этого требует РП. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 12:25 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
LameUser если этого требует РП. Все знают, к чему приводит бездумное - "упал отжался". Но в программировании - еще не все. Соблюдение правил ради соблюдения правил как раз и приводит к тому, что проэкт становится неразвиваемым. Если не считать развитием - добавление к существуюещму застывшему в юнит тестах коду новых слоев кодированного льда. А если считать - то пожалуйста. Если бы в той реальной функции, которую я изменил - реализовать корпоративный стандарт (всей той фирмы, где я работаю) - то у меня не было бы права вставить в функцию ни строчки, чтобы не портить клин код и результаты юнит тестов. Зато была бы возможность добавить "слушателя" который перехватил бы вызов этой функции, и подменил бы коллекцию, которую я не имел бы права (стандарты!) создавать с помощью оператора new (Это грязный код!) а обязан был бы описать во внешнем конфигурационном хмл, и подгрузить стандартными для корпорации способами. Плавали, знаем. А начиналось все хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 12:59 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
LameUser В вашем случае это рефакторинг Разве добавление логов и изменение бизнес-логики - это рефакторинг? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 13:01 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
D129LameUser В вашем случае это рефакторинг Разве добавление логов и изменение бизнес-логики - это рефакторинг? Вот вы сами и подтвердили, что в вашем случае это не стиль написания кода, а рефакторинг + изменение БЛ. На счет предыдущего поста - не стоит впадать в крайности, без дисциплины проект обречен. И как вы заметили - дисциплина не должна сводиться к "упал отжался", а наоборот - к согласию всех участников проекта с правилами/требованиями. В общем я не хотел вас, или кого-то еще обидеть, просто делюсь своим опытом и мнением. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 14:02 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
LameUser просто делюсь своим опытом и мнением. Я тоже. Просто правила имеют свойство размножаться и укрепляться. Отменяет их только полный провал проэкта и фирмы. Что у нас и происходит сейчас. Была иллюзия - у руководства - очень похожая на то, что вы говорите. И ее выполнили, поэтапно доведя до абсурда, и нигде не нашлось механизма, который этот абсурд остановил бы. Так я исходя из опыта - и заявляю, что лучше бы код работал быстро, чем был искуственно и сверх всякой меры синтаксисически зачищен. Начинают ведь с хорошего - переменные с маленькой буквы, функции с большой - ну как с этим поспоришь... Но само право у руководства влезать в это - это беда. Они начинают вводить еще правила, и еще - исключительно из благих намеряний (и жажды деятельности). Потом кто-нибудь умный предалагает сделать супер-конфигурабельность, потом еще.... Я видел разный код - и у меня не занимало много времени привыкнуть к какому-нибудь стилю (видал я и функции по 1500 строк, и реализацию классов без использования классов). Но вот политики юнит тестов (которые даже ухитряются проверять, вызвали некий приватный метод или нет!) мне не нравятся больше всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 14:21 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
Pallaris5000 - это говно-константа, нужно так: Код: c# 1. 2. 3.
и комментарий теперь заложен в имени переменной Как думаешь, какой код будет более понятный: Код: c# 1. 2. 3.
или Код: c# 1. 2. 3. 4. 5. 6.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 16:58 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
D129 Код: c# 1. 2. 3. 4. 5. 6.
Блестяще. И не так уж сложно. И клин код. А вот теперь, ситуация - я сделал паблиш (это код веб сайта). И один пользователь жалуется, что он все сделал, а не работает. И надо добавить лог, потому, что раз жалуется один, значит испорченные данные в базе - конкретно у него. Но какие? (базу писал не я). Так что лог должен выглядеть примерно так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Сказали, добавить логи - вот, и добавь - че макароны делать? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 21:31 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
D129 Я вот не люблю принуждение. :-).... "Ты не один" (с) - я разделяю ваше мнение. Беспредельный формализм убивает живое и работающее. Как всегда - должна быть найдена "золотая середина" Насчет var - в foreach-ах - самое то. Часто явное определение типа - очень "многа букаф" - больше чем тело цикла. Насчет лога. (Все равно давно уже офтоп) В вашем примере 1) форматирование строки уже отнимает ресурсы 2) запись лога очень желательно формализовать - так чтобы можно было его внятно парсить и автоматически анализировать, а не судорожно рыскать ctrl-F в тысячестрочных простынях Давеча Элон Маск жаловался, что его инженерам приходится орудовать hex-вьюверами в терабайтах телеметрии для поиска причин аварии Фалкона Я для этого дела использую интерфейс с делегатом вида Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
1) первый параметр - просто число-маркер для поиска в тексте кода , мнемоническое правило - положительное число - это нормально, отрицательное - как минимум подозрительно; индексатор(ы) цикла(ов) - если есть; список обьектов - сколько уместно в данном контексте 2) если лог-делегат не проинициализирован - этот вызов вообще ничего не делает - даже не тратит время и память на форматное преобразование строк debug-лога - это очень важно если циклы прокручиваются миллионы раз 3) если какой-то обьект нужно "поставить на контроль" - это можно сделать даже run-time на работающем 24/7 приложении - лог-делегат выдаст кучу поддающегося парсингу текста - доступного для структурного и статистического анализ, который тоже можно делать на лету ; хотч конечно нужно быть готовым к некоторому торможению ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2015, 00:29 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
Пример с вставкой логирования плох. Надо писать как понятнее и что очень важно как короче сейчас, а не как потом логировать и дебажить. Надо будет логировать поменяешь. Писать кучу говнокода с мыслями о том что вдруг надо будет брейкпоинт сунуть или переменную залогировать зло. Пиши как можно короче. Понадобится перепишешь на длинное, отдебажишь и вернешь как надо. Мало что так же полезно как короткий код в нашем деле. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2015, 02:44 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
VarcomPallaris5000 - это говно-константа, нужно так: Код: c# 1. 2. 3.
и комментарий теперь заложен в имени переменной Как думаешь, какой код будет более понятный: Код: c# 1. 2. 3.
или Код: c# 1. 2. 3. 4. 5. 6.
? Читал в одной книжке... Вобщем, щас не модно юзать слип. Надо всякие Spin, Task и прочие модные штуки. Все 23-летние сеньоры заворачивают на собеседованиях, если ты заюзаешь Sleep или goto - им на лекциях в ВУЗе говорили, что это не круто. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2015, 10:04 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
Alexey2112goto - им на лекциях об этом уже полвека повизгивают http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/pp/ewd215.html ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2015, 10:08 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
ИзопропилAlexey2112goto - им на лекциях об этом уже полвека повизгивают http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/pp/ewd215.html Да какая разница, что говорил чел, который уже давно умер и не знает, какие щас дела? В его время он, может, и задавал тон, а сейчас - "извини, подвинься". Любой современный 23-летний сеньор должен всегда подвергать сомнению и проверять любую чушь, которую говорили старые маразматики в какие-то там стародавние времена. Лично я несколько раз использовал goto и это было клёво. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2015, 10:34 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
VarcomPallaris5000 - это говно-константа, нужно так: Код: c# 1. 2. 3.
и комментарий теперь заложен в имени переменной Как думаешь, какой код будет более понятный: Код: c# 1. 2. 3.
или Код: c# 1. 2. 3. 4. 5. 6.
? Откуда новый разраб будет знать, что где-то в объявлении переменной стоит комментарий? Он читает метод, и понятия об этом не имеет. Потом, если значение переменной поменяется с 5000 на 6000 - нужно еще и комментарий найти и в нем поменять. Далее, комментарий полностью дублирует смысл, заложенный в названии переменной, и только отвлекает внимание, его приходится читать. Так что комментарий тут совсем не нужен ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2015, 10:35 |
|
Неявное объявления переменных через var
|
|||
---|---|---|---|
#18+
Alexey2112, Дейкстра для тебя - маразматик? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2015, 10:37 |
|
|
start [/forum/topic.php?fid=20&msg=39011252&tid=1401344]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
89ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 204ms |
0 / 0 |