Где ж ты со своим светочем был пять дней назад, а?
Это жиза привыкай
Сперва подумал что это MyExcelDays, потом присмотрелсяприсмотрелся и пригрустил :(
Приуныл же!
Та ну блять, естественно, вот эти милипиздрические схемки на ларек дяди васи, где он один и у него из вычислительных приборов только счеты и то с трудом уместятся.
А отслеживать и оптимизировать никто не будет, это ж жиза.
А отслеживать и оптимизировать никто не будет, это ж жиза.
У тебя просто тимлида нормального не было =D
*плак-плак* даааааа
а ещё 100500 не сторонних библиотек от которых проёбаны исходники, и из документации только изредка встречающиеся комментарии к используемым методам
да-да, только хотел написать " и кстати мало библиотек"
Все правильно.
Первые четыре пункта это принципы быстрого достижения последнего результата.
Первые четыре пункта это принципы быстрого достижения последнего результата.
А ещё бывает, что именно ты всё это и наворотил...
почему бывает, чаще всего именно я всё это и делаю в своих домашних прикалюхах... если больше месяца к коду не притрагивался, то можно считать код потерянным, т.к. хуйчёвспомниш из всего этого дерьма
НО ЭТО ВСЁ-РАВНО НЕ ПОВОД КОММЕНТИРОВАТЬ КОД — НАХУЙ БУДУЩЕГО МЕНЯ!
ебстественно, будущий я меня не отпиздит... а вот на работе приходится сдерживаться, хуйзнает, вдруг пока я ещё буду там работать, наймут какова бугая нам в помощь, а он возьми и залезь в мой код, потом оглядываться по сторонам в страхе что щас кулак прилетит
Кстати клёвая идея! Вангую появление произведения в жанре цибербанкъ где штрейкбрехеры будущего будут жестоко пиздить программёров за отстутсвие комментариев, но те всё-равно не будут коментить код, съезжая на "вива ля резистансЪ!".
:)
:)
Ъ!
Предлагаю расширение сюжета - программеры из будущего путешествуют в прошлое, чтобы отпиздить нынешних программеров.
Ну так давно ведь известный принцип : "пиши код так, будто сопровождать его будет склонный к насилию псих, который знает, где ты живешь".
Хороший код в комментариях не нуждается, так то.
Люди путают документацию и комментарии
16... тысяч... строк... не документированного кода... О_О
Я уже после 100 (строк) плохо ориентироваться в своих каракулях начинаю.
Я уже после 100 (строк) плохо ориентироваться в своих каракулях начинаю.
Даже если с комментариями?
У меня обычно так:
//функция передачи данных
//принимает байтовый срез передаваемых данных
//возвращает результат передачи
func sendData(data []byte) (result bool) {
result = net.send(data)
return result
}
//TODO: написать описание
func gDFUS_test(r map[string]interface{}, k []string, p bool) {
...
//сто двадцать строк сокращённого ада
//и обращений к неизвестным науке библиотекам
//без единого коммента
return true
}
//функция передачи данных
//принимает байтовый срез передаваемых данных
//возвращает результат передачи
func sendData(data []byte) (result bool) {
result = net.send(data)
return result
}
//TODO: написать описание
func gDFUS_test(r map[string]interface{}, k []string, p bool) {
...
//сто двадцать строк сокращённого ада
//и обращений к неизвестным науке библиотекам
//без единого коммента
return true
}
Эх, и смешно, и грустно.
Фи, комментарии на русском.
Глянь на досуге какой-нибудь арабский проект, посмеёшься
Там каждую строчку призыв к Джихаду?
скорее "Аллах всемогущий, надеюсь, гурии встретят меня даже если я не распутаю этого адского объектного осьминога"
Вот тебе пара арабских проектов, где смеяться?
https://github.com/NouranMahmoud/markdown-arabic
https://github.com/ahmadajmi/BloodDonation
Комментарии на английском - стандарт в программировании. За русские комментарии (которые не дублируют английские) в аду сажают в особо горячий котел.
https://github.com/NouranMahmoud/markdown-arabic
https://github.com/ahmadajmi/BloodDonation
Комментарии на английском - стандарт в программировании. За русские комментарии (которые не дублируют английские) в аду сажают в особо горячий котел.
Воу, воу. Да я и не спорю. Я ж не из рабочего проекта сюда кусок кода скинул.
Видел исходники какого-то проекта с комментами справа налево на арабском - смотрелось дико. Редкость, к счастью.
Видел исходники какого-то проекта с комментами справа налево на арабском - смотрелось дико. Редкость, к счастью.
А что делать за названия функций транслитом?
Как категорично.
Российская компания, с российским менеджментом, российскими программистами, делает продукт для Российского рынка.
Комментарии на английском?
Ради гипотетического случая, вдруг к разработке будут привлечены не русскоязычные кадры?
Дороговато.
Российская компания, с российским менеджментом, российскими программистами, делает продукт для Российского рынка.
Комментарии на английском?
Ради гипотетического случая, вдруг к разработке будут привлечены не русскоязычные кадры?
Дороговато.
У нас на работе есть класс подсчета объёмов по счетчикам, он состоит из 10к строк, и писали его 10 лет, выглядит это как помойное ведро, НИКТО НЕ ЗНАЕТ КАК ОНО РАБОТАЕТ, и тут выясняется что оно работает неверно в определенных случаях, искать в этом, то самое место такая залупедрень...
И иногда эти 16к строк в одном файле.
Как-то лет семь назад, участвовал в доработке одного проекта. Там один из файлов был около 70 тысяч строк кода. Это было ядро системы разработанное основателем, лет за 10 до того. Весь остальной код в ~600 файлах был лишь обвязкой для этого ядра. Мне слава богу ничего в этом файле, за год работы, менять не пришлось.
иногда эти 16к строк в одной строке
как раз в тему: http://habrahabr.ru/company/friifond/blog/268063
Я не могу описать весь спектр эмоций
О, мы так над ппервогодками прикалываемся. Так сказать родной метод. Привет из Эллады.
16 тысяч строк это ещё мало
Пишущих код без комментов надо насиловать анально, причём объём дилдо подбирать в прямой пропорцией с количеством недокументированного/некомментированного кода. Фух, отпустило)
Учитывая что это за люди, так ты их только поощришь.
Хммм... Да, возможно:)
Кстати, похоже, мой коммент разворошил быдлокодерское гнездо)
Код должен быть самодокументированным, в первую очередь. Каждый коммент - это оправдание непонятному куску программы
В некоторых местах комент требуется для объяснения почему именно так а не эдак. Так что ваш комент пустоват, комментировать или нет, ответ да, но лишь там где это действительно необходимо.
Совершенно верно. И там, где код непонятен, нужно писать коммент... или рефакторить. По желанию автора.
Аааа, все в машину, гений программирования в треде!
Знаешь, не стоит пытаться так умничать. Даже если ты свято уверен в непогрешимости своего кода, не факт, что тебе не придётся разбирать код такого же "самодокументированного" умника- тогда твоя генияльность прилетит тебе же по роже.
Знаешь, не стоит пытаться так умничать. Даже если ты свято уверен в непогрешимости своего кода, не факт, что тебе не придётся разбирать код такого же "самодокументированного" умника- тогда твоя генияльность прилетит тебе же по роже.
Нет, мне по роже прилетит чужая "гениальность".
Комменты нужны там, где нет времени/сил/желания делать наглядно. Такое случается.
Комменты нужны там, где нет времени/сил/желания делать наглядно. Такое случается.
Да нет, твоя же- ибо ты тоже участвуешь в распостранении этого мнения.
А ты не согласен, что код *должен* быть самодокументированным?
Надо же к чему-то стремиться по мере своего скилла и доступного времени.
И я повторюсь: понятный код в комментировании не нуждается. Если ты против... ну, это было бы странно
Надо же к чему-то стремиться по мере своего скилла и доступного времени.
И я повторюсь: понятный код в комментировании не нуждается. Если ты против... ну, это было бы странно
Я не знаю, кто и где вбивает эту чушь вам в головы, что вы в неё свято верите. Да так свято, что готовы порвать любого, посягнувшего на священную корову. Во-первых, начнём с того, что если речь идёт не о твоей домашней поделке- то твой код может понадобится отредактировать другому человеку. И далеко не факт, что то, что тебе кажется абсолютно очевидным, для него не будет выглядеть какой-то хернёй. Далее- понятный и хороший код очень часто- разные вещи. В третьих, вопреки мнению гениев, в IDE вылавливается далеко не всё и не всегда, да и его использование не везде возможно. Ну и как тебе было бы читать тысяч двадцать строк понятного кода, чтобы отловить некую мелочь в некоей функции, которая, при наличии комментов, была бы выловлена гораздо быстрее? Суть: комменты не просто так придумали и они не просто так используются.
Наглядно в ряде случаев = медленно и обобщенно.
Ну и немного о понятном коде:
Пример того, как комментарий облегчает жизнь:
N1
G80T8
M6
G56
M01
G28G91Z0.
G0G40G90G95
X0.Y0.
S550M03
G43Z10.M08H8 (KORREKTOR. )
G81G98Z-24.R2.F0.07
/Y-102.
G80
M05
G28G91Z0.M09
M01G90
M00 (PROVER OTVERSTIE)
Пример того, как комментарий облегчает жизнь:
N1
G80T8
M6
G56
M01
G28G91Z0.
G0G40G90G95
X0.Y0.
S550M03
G43Z10.M08H8 (KORREKTOR. )
G81G98Z-24.R2.F0.07
/Y-102.
G80
M05
G28G91Z0.M09
M01G90
M00 (PROVER OTVERSTIE)
Ко всяким интерфейсам и классам типа ICommentRepository, CommentRepository с методами CommentReadModel GetCommentById(int Id) писать полные комменты это отличный способ бездарно тратить своё рабочее время.
Ну да, а потом выясняется, что Id - начинается с 100000, потому что 0-99999 - зарезервированные значения, что GetCommentById - читает запись из СУБД, а для быстрого чтения из memcached тебе нужно вызвать GetMemCachedCommentById, который, кстати, еще и отличается от первого возвращаемой структурой. Что для чтения ветки комментов тебе лучше воспользоваться функцией getCommentsByNodeId, а не 5000 раз дрочить СУБД/memcached. А если чтение не удалось по какой-то причине, то номер ошибки придется искать по всему коду.
> что Id - начинается с 100000,
В методе должна быть проверка граничных значений, если это играет роль.
>значения, что GetCommentById - читает запись из СУБД, а для быстрого чтения из memcached тебе нужно вызвать GetMemCachedCommentById,
Я выше сказал, публичные методы должны сопровождаться комментариями-пояснениями их назначения. А вот полные коменты для них писать - действительно пустая трата времени.
>Что для чтения ветки комментов тебе лучше воспользоваться функцией getCommentsByNodeId
То же самое.
В методе должна быть проверка граничных значений, если это играет роль.
>значения, что GetCommentById - читает запись из СУБД, а для быстрого чтения из memcached тебе нужно вызвать GetMemCachedCommentById,
Я выше сказал, публичные методы должны сопровождаться комментариями-пояснениями их назначения. А вот полные коменты для них писать - действительно пустая трата времени.
>Что для чтения ветки комментов тебе лучше воспользоваться функцией getCommentsByNodeId
То же самое.
> В методе должна быть проверка граничных значений, если это играет роль.
И комментарий, почему эта проверка существует.
> полные коменты для них писать
Тогда непонятно, что ты называешь "полными комментами" - пятистраничное сочиние? У каждого метода должны быть кратко описаны передаваемые переменные, возвращаемые данные. Если возвращаемые данные специфичны для метода (типа кода ошибки), то должны быть описаны и они тоже. Если есть хоть какие-то нюансы - они должны тоже быть описаны.
Пример такого нюанса из модуля авторизации по OAuth у разных провайдеров:
# В conf лежат:
# client_id - номер приложения mail.ru
# redirect_uri - адрес возврата, должен совпадать с таким же при запросе.
# secret_key - секретный ключ
# По документации нужно использовать private_key, но это же mail.ru, поэтому - secret_key.
sub auth_process {...
И комментарий, почему эта проверка существует.
> полные коменты для них писать
Тогда непонятно, что ты называешь "полными комментами" - пятистраничное сочиние? У каждого метода должны быть кратко описаны передаваемые переменные, возвращаемые данные. Если возвращаемые данные специфичны для метода (типа кода ошибки), то должны быть описаны и они тоже. Если есть хоть какие-то нюансы - они должны тоже быть описаны.
Пример такого нюанса из модуля авторизации по OAuth у разных провайдеров:
# В conf лежат:
# client_id - номер приложения mail.ru
# redirect_uri - адрес возврата, должен совпадать с таким же при запросе.
# secret_key - секретный ключ
# По документации нужно использовать private_key, но это же mail.ru, поэтому - secret_key.
sub auth_process {...
Это один из сорока почти одинаковых репозиториев в DAL-слое, зарезервированных значений нет, наличие или отсутствие кеширования определяется при инициализации di-контейнера. И каждый раз писать, что Id - Id комменария, а returns - комментарий с заданным Id это бред. Но если херачить говнокод с кучей подводных камней - о них надо указывать, спору нет. Но лучше писать вменяемый код.
> "из сорока почти одинаковых репозиториев"
Сорок почти одинаковых? Так бы сразу и сказали. Разумеется, ни один последователь индусской религии копипаста никогда не поймет необходимости писать комментарии к коду и коммитам или соблюдать соглашения по коду.
Сорок почти одинаковых? Так бы сразу и сказали. Разумеется, ни один последователь индусской религии копипаста никогда не поймет необходимости писать комментарии к коду и коммитам или соблюдать соглашения по коду.
Комментарии должны идти максимум к публичным полям/методам (чтобы интеллектуальный ввод подхватывал и вообще). Комментарии внутри блока кода обычно нужны только если пишешь какой-то костыль.
А потом кто-то открывает твой код и сидит часами, выискивая, где же в нём некая функция. Или ты гений кодинга?
про IDE слышал? Функция часами выискивать...
Слышал. А про то, что не всегда это применимо в реальной жизни, ещё и видел лично.
После такого ультимативного заявление нужно привести пример своего кода. Или просто так балаболишь?
Заявление - это идеал, к которому, по моему скромному, должен стремиться каждый.
А свои печальные реалии я уже сверху привёл.
А свои печальные реалии я уже сверху привёл.
Судя по минусам, которые мне накидали, тут куча гениев программирования. Неясно, правда, почему их до сих пор разные майкрософты с адобами с руками не оторвали- стесняются к таким светилам обращаться, наверное.
Из всех вас троих наиболее верную позицию высказал только Hellsy.
Хотя - почему верную? Люди вон кодят говно, ничего не комментируя, и живут себе спокойно. Скорее эта позиция наиболее человечная, выражающее уважение к коллегам.
Хотя - почему верную? Люди вон кодят говно, ничего не комментируя, и живут себе спокойно. Скорее эта позиция наиболее человечная, выражающее уважение к коллегам.
Код должен быть самодокументированым, но и комментарии должны быть.
//самая важная функция в этой либе, вам понравитЪся
public int a(int b, int c, int r)
{
q(b+c);//прогреваем кэш для z
if(s())//>=w(r)
{
a(c+r);//это чтобы не вылетело
}
return h(r, a, c-s());
}
public int a(int b, int c, int r)
{
q(b+c);//прогреваем кэш для z
if(s())//>=w(r)
{
a(c+r);//это чтобы не вылетело
}
return h(r, a, c-s());
}
видал как-то в местном Кекс-шопе елдак, который был больше моей сжатой в кулак руки по локоть... в принципе, для первого раза - неплохо. Для рецедива, скорее всего, подойдёт калёная булава, приделанная к суровому электрогайковёрту(мощнее любого шуруповёрта раза в 2-4)
Я за небольшие 6 лет опыта увидел уже столько кода без комментов и немало поработал с обфусцированным кодом, так что каждый такой код для меня наоборот это вызов. Мотивирует неплохо.
Что же я посмотрел только что, что же! Господи, пусть это будет фейк, прошу
Инкостыляция, Поликостылизм и костылирование.
П.С. ООП не так плохо когда ты прочитал хотя бы пару книжек и видел примеры хорошей архитектуры, а то у одних паттерны и солид головного мозга, у других классы == структуры, никто и не подозревает что ООП надо если не уметь, то учится готовить, и да оно не везде заходит =(
П.С. ООП не так плохо когда ты прочитал хотя бы пару книжек и видел примеры хорошей архитектуры, а то у одних паттерны и солид головного мозга, у других классы == структуры, никто и не подозревает что ООП надо если не уметь, то учится готовить, и да оно не везде заходит =(
Ну, в С++ класс отличается от структуры только модификатором доступа по умолчанию.
Перевод не вполне верный.
Я не минусовал никого в этом треде, потому что тут почти все комменты - чья-то жизненная боль.
Недокументированный код - часть этой боли. И разве ты не согласен с тем, что код *должен* быть самодокументированным, насколько этому сопутствует скилл и доступное время?
А говнокожу я или нет - не мне судить. Свой код весь прекрасен.
Я не минусовал никого в этом треде, потому что тут почти все комменты - чья-то жизненная боль.
Недокументированный код - часть этой боли. И разве ты не согласен с тем, что код *должен* быть самодокументированным, насколько этому сопутствует скилл и доступное время?
А говнокожу я или нет - не мне судить. Свой код весь прекрасен.
А когда туда добавляются всплывающие события с уникальным названием типа "ERROR" или "SUCCESS", которые неизвестно кто и неизвестно где получает, а большая часть переменных оказывается геттерами/сеттерами с кучей колбэков - вот тогда хочется схватить топор с пожарного щита и тщательной побеседовать с авторами кода.
А что мешает еженедельно уделять время рефакторингу кода? ах да...лень...
Во-первых, дедлайны. А во-вторых, рефакторинг без профилирования - разновидность онанизма. Узкие места, чаще всего, неизвестны заранее.
Рефакторинг обычно не связан с оптимизацией приложения.
Чтобы написать коммент, необходимо залогиниться