Кіт ✙
во
Кіт ✙
Кто дизлайкает тот гомофоб(негофер)
Кіт ✙
Веду пересчёт гомофобов(негоферов) кто хочет в список ставьте диз
MDWIT
Веду пересчёт гомофобов(негоферов) кто хочет в список ставьте диз
А причем тут язык программирования и взгляды на жизнь? Разве ты не выбираешь ЯП под задачи?)
Vladislav
выбираю задачи под ЯП
Vladislav
а его выбрал исходя из своих взглядов
Иван
я выбираю пикачу
Segmentation
Я вот тоже сам себе задачи выбираю)
Segmentation
Главное, чтобы было интересно
Segmentation
Так хочется пошутить не эту тему, но наверное тут нельзя
Null
English for Developers - канал для тех, кто хочет учить технический английский. От создатателей популярного ит-канала Data analysis. 1. техническая лексика 2. опросы на английском 3. шутки на английском Подписывайтесь, проходите опросы, читайте полезные прогерские фразы на английском: english_forprogrammers. 1 канал вместо тысячи учебников и курсов
Null
✔️ chi Подробный гайд по интеграции JWT-аутентификации в приложение на Go + chi с использованием chi jwtauth middleware. ⚙️ Github 🗒 Гайд @Golang_google
daniel
Всем привет! Хочу понять как примерно выглядит продакшн код на go. Может кто-то натыкался на соотвествующие репозитории с микросервисами, монолит итд (REST, RPC не важно, любой CRUD подойдёт)? Чтобы там семантически go стайл, со слоями, с тестами, трейсерами, нормалтным логированием, красиво, кошерно и прочее. ПС: Понимаю, что одного правильного решения нет, просто хочется увидеть что-то более зрелое, а не аля с крашкурсов по Go за n-часов, ютуб туториалов и прочих примеров для новичков
MDWIT
Всем привет! Хочу понять как примерно выглядит продакшн код на go. Может кто-то натыкался на соотвествующие репозитории с микросервисами, монолит итд (REST, RPC не важно, любой CRUD подойдёт)? Чтобы там семантически go стайл, со слоями, с тестами, трейсерами, нормалтным логированием, красиво, кошерно и прочее. ПС: Понимаю, что одного правильного решения нет, просто хочется увидеть что-то более зрелое, а не аля с крашкурсов по Go за n-часов, ютуб туториалов и прочих примеров для новичков
Это к сожалению приходит не с первой итерацией приложения. Мы пришли к реализации монорепы с микросервисами внутри. Это позволяет шарить нам между сервисами модули, сущности и репозитории. Вне монорепы мы храним контракты и gateaway. Из того что хоть как-то похоже на нашу реализацию я найти не смогу скорее всего. Но вот что-то из адекватного: https://github.com/dipeshdulal/clean-gin https://github.com/bxcodec/go-clean-arch/tree/v2
Темирлан
Здравствуйте, можете пожалуйста подсказать хороший курсы по go
Emin Zalaev
stepik программирование на Golang
Nikita
Ребят, хотел бы уточнить про многопоточность и т.д. врлде знаю и понимаю, но вдруг где-то ошибаюсь или можете дополнить Общее: у нас есть процессы, на которых можем создать несколько потоков. И дальше от этооо есть разные модели, как "раскидать" выполнение нашей программы 1) многопоточность. 1 процессор, несколько потоков на нем. Каждая задача выполняется в отдельном потоке (с другим потоком не пересекается) 2) асинхронная (многопоточка? (комб название)). 1 процесс (или несколько тоже), 1 поток (или несколько потоков). Наши задачи выполняются на разных потоках частично (это же и конкурентность, "гонки" и т.д., да?) 3) параллелизм. Несколько процессов и может быть хоть по 1 потоку, хоть несколько. Главное, что задачи выполняютсч на нескольких процессах И основываясь на этих 3х, можно комбинировать. Например, 3 процесса, по 3 потока на каждом. И задачи частями выполнять на всех 9 потоках (то есть и параллелзим, и ассинхроность, и многопоточность) В гошке, когда мы пишпм go и создаем горутины (легковесные потоки по сути), то количество процессов же применяется по дефолтну равному количеству ядер процессора. А вот дальше, как я понимаю, гошка сама распределяет на каких процессах расположить потоки. И это все, соответственно, конкурентно (ассинхронно) выполняется Где неправ, неточен илм вы можете дополнить, пишите, буду рад)
Rostislav
Ребят, хотел бы уточнить про многопоточность и т.д. врлде знаю и понимаю, но вдруг где-то ошибаюсь или можете дополнить Общее: у нас есть процессы, на которых можем создать несколько потоков. И дальше от этооо есть разные модели, как "раскидать" выполнение нашей программы 1) многопоточность. 1 процессор, несколько потоков на нем. Каждая задача выполняется в отдельном потоке (с другим потоком не пересекается) 2) асинхронная (многопоточка? (комб название)). 1 процесс (или несколько тоже), 1 поток (или несколько потоков). Наши задачи выполняются на разных потоках частично (это же и конкурентность, "гонки" и т.д., да?) 3) параллелизм. Несколько процессов и может быть хоть по 1 потоку, хоть несколько. Главное, что задачи выполняютсч на нескольких процессах И основываясь на этих 3х, можно комбинировать. Например, 3 процесса, по 3 потока на каждом. И задачи частями выполнять на всех 9 потоках (то есть и параллелзим, и ассинхроность, и многопоточность) В гошке, когда мы пишпм go и создаем горутины (легковесные потоки по сути), то количество процессов же применяется по дефолтну равному количеству ядер процессора. А вот дальше, как я понимаю, гошка сама распределяет на каких процессах расположить потоки. И это все, соответственно, конкурентно (ассинхронно) выполняется Где неправ, неточен илм вы можете дополнить, пишите, буду рад)
то количество процессов же применяется по дефолтну равному количеству ядер процессора только вроде не ядер, а потоков если 4 ядра и есть мультитрединг, то 8 потоков
Rostislav
это и будут "логические процессоры"
Nikita
Спасибо за уточнение
Rostislav
легко проверить: fmt.Println(runtime.NumCPU)
Rostislav
и сравнить с числом тредов в компе
Rostislav
1. Гошка сама распределяет горутины внутри треда\тредов ОС
Rostislav
2. Треды ОС шедулятся самой ОС
Rostislav
есть статья от ardan labs scheduler. Ее можно почитать
Бузург
люди кто в js разбираеться
Бузург
?
Roman
люди кто в js разбираеться
JavaScript программисты
Бузург
как через XMLHttpRequest принимать двумерный массив и обрабатывать его
D
Всем привет. Подскажите, где ( в какой бд ) и как лучше хранить шаблоны?
Zafarzhon Odilov 🪐
https://acmp.ru/asp/do/index.asp?main=task&id_course=1&id_section=4&id_topic=38&id_problem=1197 Почему не правильный результат пишет?
Zafarzhon Odilov 🪐
В си решение также
Zafarzhon Odilov 🪐
Если так решать, то правильно. Так в чем же я ошибся?🧐
Илья
вроде fmt.Scanln(&a)
Zafarzhon Odilov 🪐
а зачем там к байту приводится?
Ну в go каждый элемент хранится в byte
Vladislav
'z' - так это тоже байт
Zafarzhon Odilov 🪐
'z' - так это тоже байт
Ну значит не надо было. Но суть то не меняется
Emin Zalaev
Можно сделать if string(a[i]) == “z”
Zafarzhon Odilov 🪐
Можно сделать if string(a[i]) == “z”
Читается хорошо. Спасибо
Илья
то есть if a == 'z' читается хуже?
Илья
https://go.dev/play/p/eAAhjSB7_m6
Илья
вообще не понял в чем был смысл записи в строку
Vladislav
https://go.dev/play/p/eAAhjSB7_m6
а там слайс автоматом увеличится?
Илья
да
Илья
если по указателю передать, то запишет
Vladislav
просто можно пробежатся по слайсу, наменякать и один раз все вывести
Vladislav
а то там каждый раз newPrinter(), sync.Pool
Илья
ну это уже реализации от fmt, можно и без него вывести
Zafarzhon Odilov 🪐
https://go.dev/play/p/vsfVwyM3S3u
компилятор ругается
Кіт ✙
как бы вы сделали заголовки запроса в фреймворке? На данный момент, у меня заголовки представляют из себя хэшмапу, где значением является массив структур HeaderValue. Каждая структура HeaderValue - это строка Value, строка Charset и инт Q. Всё это относится к значениям заголовка
Кіт ✙
но выглядит это в коде по итогу очень неочень - request.Headers["header"][0].Value
Кіт ✙
map[string]string нынче не в моде?)
у заголовка может быть несколько значений
Кіт ✙
Чем не устраивает http.Headers
я даже статус-коды скопипиздил из net/http. Потому что у меня одноимённый пакет лежит, коллизии получаются ну и мне ж надо где-то q-параметр значения хранить. Чарсет в любом случае. можно только для Content-Type парсить, в остальных оставить эту затею
Grigory
Зачем
Grigory
Ты под один хедер мутишь структуру для всех остальных?
Кіт ✙
text/html;q=0.9
если что-то серьезней, чем просто на экран вывести, то это всё равно придется распарсить. Ведь без этого даже и не сравнишь особо
Кіт ✙
Ты под один хедер мутишь структуру для всех остальных?
у хедера есть значение, представленное структурой HeaderValue
Кіт ✙
у него значение заголовка, q- и charset-параметры
Grigory
Ты же все равно это делать будешь из одного хедера
Grigory
Но имхо это лишний сахар
Кіт ✙
Ну оберни мапу в свой тип и сделай ей методы получения этого чарсета и q
ооо, а это годно request.Headers.Value("header-name") request.Headers.Q("header-name") request.Headers.Charset("header-name")