Здравствуйте, LaptevVV, Вы писали:
A>>Так вот, у меня появилась гипотеза, что те, кто пишет if (service.IsStarted == true), просто слышали звон. Останавливаются на половине, пытаются изображать строгость, при этом не расписывая состояния для каждого кейса. LVV>Эт ты глубоко копнул. LVV>Все проще — у меня начинающие так пытаются писать, пока я им по рукам не дам. LVV>После пи*лей — сразу как-то все понимают и начинают писать нормально
Пи*лей ведь можно не только дать, но и получить ))
Я имею в виду, что они скажут: "Это у нас нормально". И придётся копать и аргументировать.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
LVV>>Все проще — у меня начинающие так пытаются писать, пока я им по рукам не дам. LVV>>После пи*лей — сразу как-то все понимают и начинают писать нормально A>Пи*лей ведь можно не только дать, но и получить ))
Ну, не от студентов же A>Я имею в виду, что они скажут: "Это у нас нормально". И придётся копать и аргументировать.
Студенты не скажут.
Тут же как в шахматах.
Начинающих учат: конь на краю доски — очень плохо.
И аргументируют вполне разумно — ходов мало, стоит как пень, ничего не делает
Но гроссмейстеры играют на край конем, когда надо.
Поэтому мой ответ студентам: сначала стань гроссмейстером, а потом играй конем на край.
Когда это будет полезно.
В конторе это может быть было сделано когда-то таким же джуном.
Или для каких-то джунов. Это надо спрашивать у них.
Здравствуйте, LaptevVV, Вы писали:
LVV>Начинающих учат: конь на краю доски — очень плохо. LVV>И аргументируют вполне разумно — ходов мало, стоит как пень, ничего не делает
Ну вот видишь, аргументируют же. А не говорят: "Я гроссмейстер — ты дурак".
LVV>Студенты не скажут.
Это смотря какой студент попадётся.
У меня в третьем классе был физрук, телосложением напоминавший первую советскую атомную бомбу РДС-1. Как-то он начал докапываться до чистоты прыжка через снаряд, на что я ему сразу сказал: "Так покажите, как надо". Если бы мне на вопрос, почему надо (или не надо) писать таким-то образом, ответили: "Потому что потому", я бы для начала поинтересовался, где работал гроссмейстер и какими проектами он славен. Не для того, чтобы ему поверить на слово (на слово верить нельзя никому), а просто чтобы понять, надо ли вообще принимать его во внимание.
Кстати, именно поэтому я программированию пошёл учиться на предприятие, где пилили кем-то реально используемые системы, а в универ только в сессии приходил.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Alekzander, Вы писали:
A>>>Когда я давным-давно впервые увидел в коде сабж, то решил, что автор издевается (особенно без йода-сравнений). Но так действительно пишут, и нередко. K>>это не про nullable? A>Нет, и не про operator bool.
А как ты узнаешь глядя на код, что это не оно? Наверняка, первое, что подумаешь — "Ааааа! Опять очередной говнокодер-извращенец!".
Или тут же пойдёшь определение переменной проверять?
Мне лично такая хрень вообще по барабану. В зависимости от обстоятельств могу написать и так и так. Например:
if (a == true) ... // a is boolif (b == true) ... // b is bool?
вместо
if (a) ... // a is boolif (b == true) ... // b is bool?
А если кто-то решит такое покритиковать, то минимум заслужит покручивание пальцем у виска.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
A>>>>Когда я давным-давно впервые увидел в коде сабж, то решил, что автор издевается (особенно без йода-сравнений). Но так действительно пишут, и нередко. K>>>это не про nullable? A>>Нет, и не про operator bool.
IT>А как ты узнаешь глядя на код, что это не оно? IT>Или тут же пойдёшь определение переменной проверять?
IT>Мне лично такая хрень вообще по барабану. В зависимости от обстоятельств могу написать и так и так. Например:
Мне лично nullable bool кажется опасной штукой, и я не поленюсь расписать .has_value() и .value() (даже не operator *). (Речь в данном случае про std::optional).
Как узнаю, что это оно — да просто таких отважных программистов, которые не боятся nullable bool, давно не попадалось. Всех знакомых сивок уже укатали крутые горки.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Alekzander, Вы писали:
A>Мне лично nullable bool кажется опасной штукой, и я не поленюсь расписать .has_value() и .value() (даже не operator *). (Речь в данном случае про std::optional).
Вот опять началось. Кажется/не кажется. Всё зависит. Если надо, то пусть будет nullable. Не вижу особых проблем. Не удобно — да. Прям вот опасно — да с чего?
A>Как узнаю, что это оно — да просто таких отважных программистов, которые не боятся nullable bool, давно не попадалось. Всех знакомых сивок уже укатали крутые горки.
Я тебя умоляю... Вы в реальном мире живёте или где? Обычная ситуация — дремучая база данных с NULL BIT полями. Генерируем модель данных — получаем кучу bool?.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
A>>Мне лично nullable bool кажется опасной штукой, и я не поленюсь расписать .has_value() и .value() (даже не operator *). (Речь в данном случае про std::optional).
IT>Вот опять началось. Кажется/не кажется.
Ты написал: "Мне лично", и я в тон ответил: "Мне лично". Если и началось, то не с меня.
A>>Как узнаю, что это оно — да просто таких отважных программистов, которые не боятся nullable bool, давно не попадалось. Всех знакомых сивок уже укатали крутые горки.
IT>Я тебя умоляю... Вы в реальном мире живёте или где? Обычная ситуация — дремучая база данных с NULL BIT полями. Генерируем модель данных — получаем кучу bool?.
Меня бесполезно умолять, реальный мир от этого не изменится. Я много где работал, и везде, абсолютно везде, где люди использовали плюсы и до появления std::optional (C++17) писали свой nullable из говна и палок, они НИКОГДА не делали ни operator T, ни сравнения. Чистые .has_value()/.value().
Я считал (и считаю) это экстремизмом, и эта та причина, по которой я не люблю современную культуру C++ (даже странно, что сравнения с T там всё-таки реализовали), но даже я бы никогда не использовал == true, чтобы вытаскивать bool из nullable. Ни на одном языке.
Но я тебя услышал. В смысле, гипотезу о том, что если писать == true, это позволит универсально обходиться и с булями и с nullable, и именно поэтому люди так и пишут.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Alekzander, Вы писали:
A>Я считал (и считаю) это экстремизмом, и эта та причина, по которой я не люблю современную культуру C++
Зря ты сразу не упомянул C++, а из контекста не только стартового топика, но и всего треда это не понятно. Так бы я не стал встревать в обсуждение этого древнего овна. Тем более обсуждать "культуру" C++. Там же одно безкультурье, начиная со стандарта
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали: A>>Я считал (и считаю) это экстремизмом, и эта та причина, по которой я не люблю современную культуру C++ IT>Зря ты сразу не упомянул C++, а из контекста не только стартового топика, но и всего треда это не понятно. Так бы я не стал встревать в обсуждение этого древнего овна. Тем более обсуждать "культуру" C++. Там же одно безкультурье, начиная со стандарта
Потому что тред не про C++.
Исключительно для тех, кому интересно моё скромное мнение
Я бы и на шарпе написал a.HasValue && a.Value. Дело даже не в том, что их можно перепутать, а в том, что так нагляднее. Речь не про автосгенерённый по базе код, а про обычные алгоритмы.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.