Кіт ✙
во
Кіт ✙
Кто дизлайкает тот гомофоб(негофер)
Кіт ✙
Веду пересчёт гомофобов(негоферов) кто хочет в список ставьте диз
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-часов, ютуб туториалов и прочих примеров для новичков
Dmitry
Всем привет!
Хочу понять как примерно выглядит продакшн код на go.
Может кто-то натыкался на соотвествующие репозитории с микросервисами, монолит итд (REST, RPC не важно, любой CRUD подойдёт)? Чтобы там семантически go стайл, со слоями, с тестами, трейсерами, нормалтным логированием, красиво, кошерно и прочее.
ПС: Понимаю, что одного правильного решения нет, просто хочется увидеть что-то более зрелое, а не аля с крашкурсов по Go за n-часов, ютуб туториалов и прочих примеров для новичков
я это увидел только устроившись на работу
Emin Zalaev
Всем привет!
Хочу понять как примерно выглядит продакшн код на go.
Может кто-то натыкался на соотвествующие репозитории с микросервисами, монолит итд (REST, RPC не важно, любой CRUD подойдёт)? Чтобы там семантически go стайл, со слоями, с тестами, трейсерами, нормалтным логированием, красиво, кошерно и прочее.
ПС: Понимаю, что одного правильного решения нет, просто хочется увидеть что-то более зрелое, а не аля с крашкурсов по Go за n-часов, ютуб туториалов и прочих примеров для новичков
у всех по разному, т.к программисты любят менять конторы каждые 3-6 мес, то приходят со своим кодстайлом и уходят также. В большинстве это смешанная дичь. В идеале конечно все с тестами и тд, но это если конкретно команду сделали для конкретного сервиса, а не наоборот для сервиса набирают команду
MDWIT
Всем привет!
Хочу понять как примерно выглядит продакшн код на go.
Может кто-то натыкался на соотвествующие репозитории с микросервисами, монолит итд (REST, RPC не важно, любой CRUD подойдёт)? Чтобы там семантически go стайл, со слоями, с тестами, трейсерами, нормалтным логированием, красиво, кошерно и прочее.
ПС: Понимаю, что одного правильного решения нет, просто хочется увидеть что-то более зрелое, а не аля с крашкурсов по Go за n-часов, ютуб туториалов и прочих примеров для новичков
Это к сожалению приходит не с первой итерацией приложения. Мы пришли к реализации монорепы с микросервисами внутри. Это позволяет шарить нам между сервисами модули, сущности и репозитории.
Вне монорепы мы храним контракты и gateaway.
Из того что хоть как-то похоже на нашу реализацию я найти не смогу скорее всего.
Но вот что-то из адекватного:
https://github.com/dipeshdulal/clean-gin
https://github.com/bxcodec/go-clean-arch/tree/v2
daniel
у всех по разному, т.к программисты любят менять конторы каждые 3-6 мес, то приходят со своим кодстайлом и уходят также. В большинстве это смешанная дичь. В идеале конечно все с тестами и тд, но это если конкретно команду сделали для конкретного сервиса, а не наоборот для сервиса набирают команду
Та это понятно, я и не собирался копировать чей-то конкретный стиль, это для кругозора так сказать, посмотреть как можно, как можно хорошо и лучше, на мой взгляд, чем я могу сделать сейчас
daniel
Темирлан
Здравствуйте, можете пожалуйста подсказать хороший курсы по 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
Бузург
как через 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)
Vladislav
Zafarzhon Odilov 🪐
Vladislav
'z' - так это тоже байт
Emin Zalaev
Emin Zalaev
Можно сделать
if string(a[i]) == “z”
Zafarzhon Odilov 🪐
Илья
то есть if a == 'z' читается хуже?
Vladislav
Илья
https://go.dev/play/p/eAAhjSB7_m6
Илья
вообще не понял в чем был смысл записи в строку
Илья
да
Илья
если по указателю передать, то запишет
Vladislav
просто можно пробежатся по слайсу, наменякать и один раз все вывести
Илья
Vladislav
а то там каждый раз newPrinter(), sync.Pool
Илья
ну это уже реализации от fmt, можно и без него вывести
Илья
Zafarzhon Odilov 🪐
Zafarzhon Odilov 🪐
Кіт ✙
как бы вы сделали заголовки запроса в фреймворке?
На данный момент, у меня заголовки представляют из себя хэшмапу, где значением является массив структур HeaderValue. Каждая структура HeaderValue - это строка Value, строка Charset и инт Q. Всё это относится к значениям заголовка
Кіт ✙
но выглядит это в коде по итогу очень неочень - request.Headers["header"][0].Value
MDWIT
Grigory
Кіт ✙
Чем не устраивает http.Headers
я даже статус-коды скопипиздил из net/http. Потому что у меня одноимённый пакет лежит, коллизии получаются
ну и мне ж надо где-то q-параметр значения хранить. Чарсет в любом случае. можно только для Content-Type парсить, в остальных оставить эту затею
Grigory
Кіт ✙
Grigory
Grigory
Зачем
Grigory
Ты под один хедер мутишь структуру для всех остальных?
Кіт ✙
text/html;q=0.9
если что-то серьезней, чем просто на экран вывести, то это всё равно придется распарсить. Ведь без этого даже и не сравнишь особо
Кіт ✙
у него значение заголовка, q- и charset-параметры
Grigory
Grigory
Ты же все равно это делать будешь из одного хедера
Grigory
Но имхо это лишний сахар
Кіт ✙