Далее моё личное мнение, которое запросто может «не совпадать с мнением редакции»:
Если у меня есть клиент для некоего внешнего API, и API требует отсылать не больше 2 запросов в секунду, то передать параметр 500ms куда-то там в менеджер очереди запросов — достаточная фиксация?
Нет, недостаточная. Почему именно 500, а не, скажем, 600? А вот комментарий вида «API требует отсылать не больше 2 запросов в секунду» — достаточная.
есть три вида строк (unquoted, quoted, raw), и я выбираю не представлять информацию о том, какого именно вида была строка, в AST, а сразу парсить их в универсальное представление — это надо фиксировать как-то?
Разумеется. Иначе ваш последователь будет ломать голову: «На кой чёрт этот умник стал парсить именно в универсальное представление — это же требует в три раза больше памяти и совершенно не нужно в данном случае?!»
дальнейшие планы формализуются в виде списка фич где-то в JIRA, багтрекере TODO.md или на доске маркером, а не в виде комментариев в коде.
Ага. Потом с доски всё стирают, с JIRA переходят на Redmine (попутно теряя кучу данных) и все такие: «Так, мы же, вроде, хотели что-то там улучшить, но что?! Кто-нибудь может вспомнить?»
часть базы модифицируется вне транзакции
Так, на всякий случай — работа с БД всегда идёт в транзакциях. Если вы не управляете ими явно это не значит что их нет…
А что делать-то, в конце концов? Копировать описание бага в комментарии? А зачем?
А нет никакого универсального рецепта. Это элемент искусства, в некотором роде.
Это вопрос баланса. В целом медленно работающий код сейчас лучше чем очень быстро работающий код через 5 лет. Где конкретно остановить «ползунок» на этой шкале определяется бесконечно большим числом факторов.
Что именно вы вкладываете в это? Я вот, например, пишу парсер CMake-файлов по грамматике на сайте. Там точно нужны комментарии?
Мне видится ровно два вариант:
1) Код настолько тривиальный, что комментарии в нём действительно не нужны (менее вероятно)
2) Комментарии, таки, нужны.
У меня были случаи, когда подобные вещи описывались в виде отдельного TeX-документа, с формулами и их выводами. Но это ИМХО тоже нужно не везде.
Или мы, опять же, говорим о разных допущениях.
Допущения — это те исходные позиции, которые явным образом не зафиксированы в коде, но были обговорены или додуманы при его написании. Мне казалось это довольно очевидно.
А это зачем писать?
Ну, в моём мире редко когда приложение пишется сразу в полном и идеальном виде. Обычно всё начинается с PoC, а дальше развивается. Возможно в вашем — по-другому. Но, опять же, сильно сомневаюсь.
Ну, да, TODO для этого, и заодно описание, почему какие-то костыли были сделаны, возможно, с ссылкой на багрепорт — да, бывает. Но таких комментариев как раз чем меньше, тем лучше.
TODO — это вообще не про это. Оно скорее имеет отношение к предыдущему пункту. Про ссылки на баг-репорты тут уже кто-то (явно имеющий хороший опыт) рядом написал (про смену баг-трекера и тому подобные вещи).
Но может быть и наоборот. Когда комментарий правильный, а код — нет. Так что различие комментария и кода — это как различие кода с тестом. Если не сходится, то нужно разобраться и что-то из двух поправить. А если комментария нет, то ошибка в логике происходящего никогда не найдется.
Это не «наоборот». Это ровно тот сценарий, который я описал. В целом, конечно, написание комментариев не меньшее искусство чем написание кода. А может быть и большее (по моим наблюдениям писать более-менее работающий код умеет в разы больше людей, чем разумные комментарии)
Из самого вашего вопроса я делаю вывод о том, что вы не понимаете смысл комментариев в коде. Это плохо. Но, к сожалению, весьма распространено (особенно среди тех, кто никогда не возвращался даже к собственному коду 3-5-10 летней давности, не говоря уже о коде чужом — собственно это один из столпов на которых зиждется подход «Да тут всё нужно к чёртовой матери переписать!»).
Хорошие комментарии могут содержать много очень полезной информации:
— почему сделано так, а не иначе
— какие допущения были приняты при написании этого кода
— какие изменения в будущем предполагаются автором
— какие детали на момент написания коды не были достаточно уточнены
— и т.д. и т.п.
Выше человек написал
Комментарии нужны для того, чтобы описать почему здесь сделано именно так, а не иначе, а не для ответа на вопрос что здесь происходит.
но это несколько упрощённая точка зрения. Комментарии объясняющие «что здесь происходит» (то есть, по сути, дублирующие код) не только бесполезны, но и вредны так как являются той самой очень быстро устаревающей документацией которая, к тому же, запросто может оказаться изначально неверной (когда автор написал в комментарии одно, а в коде, по ошибке или неопытности, реализовал, по сути, не совсем то, что написано).
Те самые знаменитые: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает где вы живёте» и «Отсутствие комментариев в коде служит достаточным поводом для увольнения программиста с работы».
Откуда у вас нарисовалась цена 600$, не понимаю. Платим в среднем 200, все довольны, кроме Газпрома.
Это как? Газовоз же покупается целиком, по единой цене. И что-то берут сомнения что СПГ может быть дешевле $200…
Проблемы Газпрома меня мало волнуют, я не его акционер :) Но за Новатэк можно порадоваться. Цена 600 взялась из цен (видел в какой-то статье) для населения, порядка 0.6 евро за куб. Если платите 0.2 — значит там (где видел) была какая-то лажа.
А что не так с нашим дальнобоем?
В какой-то момент Литва решила что будет отличной идеей брать с российских фур плату за езду по литовским дорогам (благо транзита было много). Правда коварные русские, почему-то, ответили симметрично, а учитывая разницу в протяжённости российских и литовских дорог ответ оказался несколько ассиметричным… Впрочем с запуском второй очереди Усть-Луги проблема стала менее актуальной.
Именно. Хотите в ЕС — закрываете Игналину, иначе никак. Это ни черта не добровольно и это была не наша идея
У вас довольно странное понятие о добровольном и принудительном. «От чёрт, они в магазине заставили меня заплатить! Так что я не добровольно купил у них телевизор!»
газ по 200$ появился в трубе толко после появления газового терминала, до этого Газпром продавал по 430$ (дороже чем кому либо из своих клиентов)
То есть платить по $600 но не Газпрому это лучше чем платить Газпрому по $430? Это всё напоминает мне ситуацию с литовскими дальнобоями…
Ложь, это было одно из условий вступления в ЕС, договор о вступлении легко гуглитса.
Что именно ложь? Что «единственная, кто добровольно вышел из привилегированного «атомного клуба», закрыв свою единственную действующую АЭС»? То есть вышла не добровольно, её принудили?!
9 блок в Электренай на 400 MW запущен в 2012
У вас какие-то проблемы с цифрами (и вообще с логикой)… Игналинская АЭС была окончательно остановлена в 2009 году. Зачем же понадобилось 3 года спустя запускать новые энергоблоки (на Электренай или где бы то ни было ещё) если
недостатка в энергии нету
? И да, как же так получилось что вычеркнули из электробаланса страны порядка 2ГВт мощностей и ничего не изменилось? И зачем, тогда, строить все эти НордБалт и ЛитПол?
запустили терминал СПГ в Клайпеде. после запуска которого Газпром заплакал и резко скинул цену на газ с 430 $ до 200 $ за 1000 кубов, лишь бы у их брали, а не из Катара, Норвегии или США.
Я не очень понял: регазифицированный СПГ стоит дешевле $200? И да, вы весьма деликатно скрыли за словом «запустили» понятие «арендовали». Многие до сих пор сомневаются в экономической целесообразности этого шага (вот, например). Ну, и по поводу происхождения газа на этом ТСПГ.
Впрочем, вы можете продолжать считать это всё укреплением энергонезависимости Литвы. Я не собираюсь вас переубеждать. Но и вам не следует навязывать именно такой подход Белоруссии (тем более что у белорусов нет возможности за каких-то $60 млн./год только арендных платежей подогнать к причалу плавучий терминал регазификации).
В таких случаях, обычно, не фильтруется, а агрегируется (например считается тот самый «нарастающий итог»).
И да, автор статьи немного смешал понятия (то есть статья, в большей степени, академическая, чем промышленная). Обычно в качественно спроектированных БД, которые эксплуатируются в реальной жизни соединения (JOIN) происходят по ключам (первичные-внешние), в ключах не бывает NULL'ов и так далее. Но так бывает не всегда. О чём, собственно, и статья.
а) «У Белорусии нету потребности АЭС» Как вы это установили? Что насчёт диверсификации? А насчёт прогнозов по росту энергопотребления? Чем закрывать?
б) В чём конкретно проблема с границей? Почему граница Франции и, скажем, Швейцарии или Бельгии — это и не граница вовсе, а граница Белоруссии и Литвы — это «да вы что?!» Ведь вас же беспокоят не административные/политические проблемы, а технологические?
И да, что не так с этой конкретной АЭС? На ней ВВЭР, а не РБМК.
а) если вы считаете что обеспечение энергетической безопасности страны это «вести себя как мудак» из этого ещё не следует абсолютная истинность такой точки зрения
б) у французов не одна АЭС построена, практически, на границе. И не только у них. А уж как японцы борются с последствиями аварии на Фукусиме (смывая всё подрят в океан) — это просто песня. Но плохие, при этом, почему-то только белорусы…
Наверное не «равных», а «одинаковых»? Иначе непонятно зачем дополнительно нарезать мелкие треугольники…
Тогда ничего не делать. Довольно странно размышлять о проблемах сопровождения кода, который уже не существует…
Нет, недостаточная. Почему именно 500, а не, скажем, 600? А вот комментарий вида «API требует отсылать не больше 2 запросов в секунду» — достаточная.
Разумеется. Иначе ваш последователь будет ломать голову: «На кой чёрт этот умник стал парсить именно в универсальное представление — это же требует в три раза больше памяти и совершенно не нужно в данном случае?!»
Ага. Потом с доски всё стирают, с JIRA переходят на Redmine (попутно теряя кучу данных) и все такие: «Так, мы же, вроде, хотели что-то там улучшить, но что?! Кто-нибудь может вспомнить?»
Так, на всякий случай — работа с БД всегда идёт в транзакциях. Если вы не управляете ими явно это не значит что их нет…
А нет никакого универсального рецепта. Это элемент искусства, в некотором роде.
Мне видится ровно два вариант:
1) Код настолько тривиальный, что комментарии в нём действительно не нужны (менее вероятно)
2) Комментарии, таки, нужны.
Допущения — это те исходные позиции, которые явным образом не зафиксированы в коде, но были обговорены или додуманы при его написании. Мне казалось это довольно очевидно.
Ну, в моём мире редко когда приложение пишется сразу в полном и идеальном виде. Обычно всё начинается с PoC, а дальше развивается. Возможно в вашем — по-другому. Но, опять же, сильно сомневаюсь.
TODO — это вообще не про это. Оно скорее имеет отношение к предыдущему пункту. Про ссылки на баг-репорты тут уже кто-то (явно имеющий хороший опыт) рядом написал (про смену баг-трекера и тому подобные вещи).
Это не «наоборот». Это ровно тот сценарий, который я описал. В целом, конечно, написание комментариев не меньшее искусство чем написание кода. А может быть и большее (по моим наблюдениям писать более-менее работающий код умеет в разы больше людей, чем разумные комментарии)
Хорошие комментарии могут содержать много очень полезной информации:
— почему сделано так, а не иначе
— какие допущения были приняты при написании этого кода
— какие изменения в будущем предполагаются автором
— какие детали на момент написания коды не были достаточно уточнены
— и т.д. и т.п.
Выше человек написал
но это несколько упрощённая точка зрения. Комментарии объясняющие «что здесь происходит» (то есть, по сути, дублирующие код) не только бесполезны, но и вредны так как являются той самой очень быстро устаревающей документацией которая, к тому же, запросто может оказаться изначально неверной (когда автор написал в комментарии одно, а в коде, по ошибке или неопытности, реализовал, по сути, не совсем то, что написано).
Это как? Газовоз же покупается целиком, по единой цене. И что-то берут сомнения что СПГ может быть дешевле $200…
Проблемы Газпрома меня мало волнуют, я не его акционер :) Но за Новатэк можно порадоваться. Цена 600 взялась из цен (видел в какой-то статье) для населения, порядка 0.6 евро за куб. Если платите 0.2 — значит там (где видел) была какая-то лажа.
В какой-то момент Литва решила что будет отличной идеей брать с российских фур плату за езду по литовским дорогам (благо транзита было много). Правда коварные русские, почему-то, ответили симметрично, а учитывая разницу в протяжённости российских и литовских дорог ответ оказался несколько ассиметричным… Впрочем с запуском второй очереди Усть-Луги проблема стала менее актуальной.
У вас довольно странное понятие о добровольном и принудительном. «От чёрт, они в магазине заставили меня заплатить! Так что я не добровольно купил у них телевизор!»
То есть платить по $600 но не Газпрому это лучше чем платить Газпрому по $430? Это всё напоминает мне ситуацию с литовскими дальнобоями…
Но в целом я вашу позицию понял.
Что именно ложь? Что «единственная, кто добровольно вышел из привилегированного «атомного клуба», закрыв свою единственную действующую АЭС»? То есть вышла не добровольно, её принудили?!
У вас какие-то проблемы с цифрами (и вообще с логикой)… Игналинская АЭС была окончательно остановлена в 2009 году. Зачем же понадобилось 3 года спустя запускать новые энергоблоки (на Электренай или где бы то ни было ещё) если ? И да, как же так получилось что вычеркнули из электробаланса страны порядка 2ГВт мощностей и ничего не изменилось? И зачем, тогда, строить все эти НордБалт и ЛитПол?
Я не очень понял: регазифицированный СПГ стоит дешевле $200? И да, вы весьма деликатно скрыли за словом «запустили» понятие «арендовали». Многие до сих пор сомневаются в экономической целесообразности этого шага (вот, например). Ну, и по поводу происхождения газа на этом ТСПГ.
Впрочем, вы можете продолжать считать это всё укреплением энергонезависимости Литвы. Я не собираюсь вас переубеждать. Но и вам не следует навязывать именно такой подход Белоруссии (тем более что у белорусов нет возможности за каких-то $60 млн./год только арендных платежей подогнать к причалу плавучий терминал регазификации).
И да, автор статьи немного смешал понятия (то есть статья, в большей степени, академическая, чем промышленная). Обычно в качественно спроектированных БД, которые эксплуатируются в реальной жизни соединения (JOIN) происходят по ключам (первичные-внешние), в ключах не бывает NULL'ов и так далее. Но так бывает не всегда. О чём, собственно, и статья.
Это, например, когда у вас
Вот тут можно почитать о том, что получилось в результате.
б) В чём конкретно проблема с границей? Почему граница Франции и, скажем, Швейцарии или Бельгии — это и не граница вовсе, а граница Белоруссии и Литвы — это «да вы что?!» Ведь вас же беспокоят не административные/политические проблемы, а технологические?
И да, что не так с этой конкретной АЭС? На ней ВВЭР, а не РБМК.
б) у французов не одна АЭС построена, практически, на границе. И не только у них. А уж как японцы борются с последствиями аварии на Фукусиме (смывая всё подрят в океан) — это просто песня. Но плохие, при этом, почему-то только белорусы…