антон
а дебаг как же
Maks
А зачем тебе дебаг?
Maks
На проде? на стейдже?
Maks
У тебя всегда будет в коде висеть log.debug?
Maks
который не будет выводиться
антон
иногда отдаёшь бинарники
антон
да и сервисами программирование не ограничивается
Maks
В любом случае дебаг это как правило локальная разработка, ни разу не видел что бы дебаг левел где то юзался еще
Maks
и соответственно по коду размещать в гите дебаг лог это прям такое
Maks
Ну и конфижить минимальный левел логов соответственно нет смысла особого
Maks
Я просто сейчас смотрел на лоргус, и подумал что это оверхед
Maks
вот в запе вроде нет левела (или я пока не нашел)
Maks
хотя не, там просто иначе сделано
George
дебаг левел очень даже полезен. Конечно, по умолчанию он должен быть выключен, но в определенный не очень хороший момент он может спасти тонну времени на отладку. Ну, или, скажем у нас функциональные тесты гоняются с дебаг левелом, помогает логику обработки данных читать без дебаггера. Но его тоже надо уметь готовить, чтобы читаемо было и важные для понимания ивенты в коде не были пропущены
Maks
Ну я к тому что в конфигах тогда этот левел не нужен
Maks
Ну типо левел априори - все логи.
George
а, тут согласен. Разделение на info-warn-err на уровне конфига сам не использовал никогда. Есть два варианта - или дебаг или не-дебаг ))
Maks
А дебаг дает что то кроме вывода логов уровня дебаг?
Maks
если нет - то соответственно это бессмыслица. Если он как то иначе выводит логи при этом конфиге - то другое дело. Но я считаю что вывод логов должен быть всегда не зависимо от уровня.
Maks
Если чел выводит дебаг и не удалил это из прод среды - то это уже проблема не логгера
Maks
Крч основная претензия в том, что вывод логов зависит от уровня логирования.
Maks
От уровня логирования я считаю должны зависеть другие вещи либо его вообще быть не должно.
Maks
Левел ок для наглядности и разделения.
George
а что еще должен менять логгинг левел кроме логгинг левела? В нашей системе мы не можем позволить себе постоянно детальные логи писать (производительность, расходы на хранение тонны логов, и тд). А польза от них, как я писал, есть. Потому что если в стеке вдруг что-то не так - дебаг логи помогают понять что именно гораздо быстрее. Как прод дебажить, если это все вообще вырезано? Или вот в своем пет проекте - он на RPi крутится, соответственно логи пишутся на микро сд карту. Чем больше и чаще пишет - тем быстрее она сдохнет. Поэтому тоже лучше не увлекаться и по умолчанию только минимум выводить. А еще логи могут содержать чувствительную информацию, за хранение которой могут натянуть. Поэтому важно иметь возможность её получить толкьо в исключительных случаях, чтобы потом подтереть за собой.
Maks
ну вот смотри. У тебя по дефолту все логи пишутся. Ты пишешь им грубо говоря тег: info, debug, warning, error, kernel. Если тебе нужно получить на проде более детальный лог, уровня дебаг, тебе нужно будет для начала добавить эти дебаг логи. И потом по ним отфильтровать результат. Верно?
Maks
У тебя же не будет на проде просто так на всякий случай висеть код типа logger.debug(message)
George
висит indeed, более того - весь проект обильно этими вызовами обмазан. Но поскольку лог левел выше - то это никуда не уходит, пока нет необходимости такой. В тестах, стейджинге и проде ровно один и тот же код.
George
пишешь так, будто в этом есть что-то плохое)
Maks
Я просто ни разу в продакшин коде не встречал дебаг логов)
Maks
К тому же го так устроен, что ты всегда ошибку возвращаешь если она есть.
Maks
точнее если она может быть
Maks
другое дело что такие логгеры позволяют писать так, что у тебя дебаг логи будут висеть во всех средах и просто в проверках скипаться на ифах)
Maks
внутри логгера
Anonymous
А теперь мне нужна хорошая литература для изучения Go :)
Anonymous
Кстати, в чём отличие Fprintf от Printf?
Anonymous
Есть другие предложения?
Anonymous
Я в термукс установил образ Debian
Suleiman
Что ответил?
George
другое дело что такие логгеры позволяют писать так, что у тебя дебаг логи будут висеть во всех средах и просто в проверках скипаться на ифах)
вот где-то тут недопонимание у нас. Потому что в моем понимании это базовая функция любого логгера.
Maks
вопрос в ее необходимости. Я просто как уже сказал, против того что бы на проде были дебаг логи. А если на другом серваке или локально нужны дебаг логи - просто напиши в коде дебаг лог и отследи ошибку. Зачем для этого менять уровень логирования
Maks
Нужны логи - вызови логер. Не нужно - удали вызов логгера. Вот и всё.
George
вопрос в ее необходимости. Я просто как уже сказал, против того что бы на проде были дебаг логи. А если на другом серваке или локально нужны дебаг логи - просто напиши в коде дебаг лог и отследи ошибку. Зачем для этого менять уровень логирования
Но для PHP или другого интерпритируемого языка это может быть и вариант. Для Go это значит рекомпиляция и редеплоймент, что уже само по себе проблема. А если еще учесть комплексную среду из многих сервисов, и сложность самих компонентов — это вообще долгая история выходит. Даже если всё это отбросить. Если на этапе разработки подумать о том какие данные может быть полезно вывести для траблшутинга - это может сэкономить кучу времени, потому что вместо чтения сорцов с целью расставления логов в подозрительных местах, рекомпиляции и прочего, ты просто понижаешь уровень логирования.
Maks
Так тебе всё равно придется ведь логи расставить, потому что просто понижение уровня без добавления дебаг логов ничего не даст
Anonymous
Извиняюсьнеругайтесьпожалуйста Я на Го всего 1 день
Anonymous
Лучше дайте литературы какой-нибудь русскоязычной, а то приходится по английским мануалам учиться
NN
А они такие плохие, ага
George
Так тебе всё равно придется ведь логи расставить, потому что просто понижение уровня без добавления дебаг логов ничего не даст
в том и фишечка, что они уже заботливо расставлены и ждут соответствубщего лог левела в конфиге)
Anonymous
Спасибо
Maks
у меня такая есть, ток я пока не читал)
George
George
подтверждаю, топ стартер гайд
George
да и не только стартер, там и нюансы всякие хорошо описаны
Maks
Вот я ее взял только из за нюансов
Maks
потому что стартед гайд я и сам могу легко осилить)
George
Но без английского хотя бы на уровне чтения документации к языку тяжко в индустрии, наверно. Нет?
Anonymous
Скачал пдф, спасибо)
Anonymous
Но без английского хотя бы на уровне чтения документации к языку тяжко в индустрии, наверно. Нет?
У меня не то, чтобы нет знаний английского, начинал учиться я по английских мануалов. Просто легче воспринимать на русском
Suleiman
Вам не лень читать книги?)) или вы отрывками читаете)
🔥
Вам не лень читать книги?)) или вы отрывками читаете)
Я ни одной не прочёл по програмированию)
🔥
За 7 лет
Suleiman
Насчет курсов, их щас пруд пруди
Suleiman
Особенно меня раздражает OTUS. Позорище какое-то
Suleiman
Нет.....
George
Я ни одной не прочёл по програмированию)
Я сам не то чтобы супер чтец, но считаю, что для того, кто хочет быть профессиональным инженером ПО, а не "программистом-кодером", книги очень не лишние. Я довольно много из них узнал полезного. Не только прикладные по языкам (которые помогают глубже понять язык и его возможности), но и более общие по процессам в целом ("чистая архитектура" Мартина, "мифический человеко-месяц" Брука, "succeeding with Agile" by Cohn). Или инженерные общего назначения ("Алгоритмы" Стивенса, "Cracking the coding interview" by Gayle Laakmann McDowell). Это только то что перед глазами стоит, так то еще хватает всяких толмудов, которые помогают понимать индустрию и как она работает.
Sardor
Всем привет! Только начал читать про Го, начал с книги Go in action. Меня насторожил момент: In Go, you wouldn’t spend time wondering, because the compiler will catch type differences for you. подскажите, пожалуйста, у го типизация в рантайме тоже проверяется? Не только при компиляции же?
Null
Обработка сигналов в операционных системах семейства Unix на Golang https://nuancesprog.ru/p/13609/ @Golang_google
DI
Добрый день. Подскажите, гороутины существуют до тех пор пока не выполнятся/программа не завершится или до конца функции в которой вызывались?
George
Добрый день. Подскажите, гороутины существуют до тех пор пока не выполнятся/программа не завершится или до конца функции в которой вызывались?
Горутины не имеют связи с функциями из которых они вызываются. Думайте о них как о тредах (но не забывайте, что это не они :)) )
Maks
в голанге обычно рич модели юзают?
Michael
Добрый день. Подскажите, гороутины существуют до тех пор пока не выполнятся/программа не завершится или до конца функции в которой вызывались?
main = тоже горутина, если она не ждет остальные горутины, то они заканчиваются с ее завершением. В принципе функция может отработать, а горутина которую она вызвала - продолжить работу
Maks
кто нить мейк в винде ставил?
Maks
Как там? Мне стало лень я поставил wsl2 с убунтой и через нее мейкаю
Maks
я проде поставил инсталлер но там инструкция мутная
Maks
бля, чет не пойму, в гитигнор добавил папки а он их всё равно не игнорит сук