Maks
Maks
В го не привычно юзать публичные поля)
Billy ᛭
Maks
нет
Maks
Я на шарпе работал, на пыхе всегда писал так, что поля класса приватные, а получение через геттеры, установка через сеттеры.
Maks
В шарпе можно было это сделать на уровне описания поля
Billy ᛭
В литературе, которую я читал, поля просто параметрами или атрибутами обозваны
Billy ᛭
В го ничего не мешает точно также геттеры и сеттеры крафтить, в effective go об этом есть заметка
George
Billy ᛭
Maks
Да и в пыхе полно классов без геттеров, зато с публичными атрибутами
Ну в пыхе публичные делать не удобно. Потому что например через геттер ты можешь сказать что геттер обязательно вернет инт, а поле может быть нулл на самом деле, чего ты не ждешь, потому что его кто то где сделал нулл, так как для задания значения использовал не сеттер а так же публичный доступ.
Maks
Геттер же и сеттер выдадут ошибку своевременно и именно там где это произойдет.
Billy ᛭
Billy ᛭
Пока без них обхожусь
Maks
Не мешает, не спорю. Я просто интересуюсь, нормально ли это
Maks
просто в го например проблем таких не будет
Maks
потому что строготиипизирован
Maks
Я привык вырабатывать какой то единый подход, что бы мне всегда было понятно как с этим работать. И что бы если нужно будет работать с командой у меня был какой то гайдлайн для них
Maks
Тем более в сущностях
Emil
Я в доменном юзаю сущности
George
Но да, если кроме враппер функций никакой логики нет - то нафиг скрывать?
Maks
В целом я понял примерно идею. Поля которые могут устанавливаться глобально - делаем экспортируемые. Если делаем например просто модель как в MVC - то модель это не изменяемая сущность. Соответственно поля не экспортируемые но с геттерами.
George
Опять таки, если это модуль, которым другие будут пользоваться - может и имеет смысл заморочиться и скрыть всё за интерфейсом
George
Ну или хотя бы для тех же юнит тестов. Короче как всегда - there is no silver bullet
Maks
Блин, это голанд новый так сделать что когда я например открываю окно rename через рефакторинг (shift + F6), то при нажатии стрелочек влево вправо при зажатых ctrl+shift у меня меняется размер окна
Maks
не удобно, как я должен выделать часть названия сразу теперь))))))))))
Maks
Так же когда ты в окне проджект находишься
Maks
или так всегда было(вроде нет)
Maks
у меня просто самый свежий, и вот так происходит в этом окне)
Maks
Блин, не удобно)))
Maks
Придется зажимать шифт что бы слово выделить)) Хорошо что это редкость)
Emil
Можно все равно все сразу выделить и не дописывать расширение,оно автоматом(я так вроде делал)
Maks
так не, мне например нужно выделить только слово нью))) Раньше я мог, теперь нет)
Maks
точнее теперь сложнее делать) А го я не дописываю, это при ренейм так видно)
Maks
Ну в окне редактирования кода очень часто пользуюсь, удобно.
Maks
Хорошо что там работает
whois
Ребят, подскажите пожалуйста кошерную либу для того, чтобы:
1. для эндпоинтов в тегах openapi-3 описать эти эндпоинты.
2. выполнить что-то вроде swag init и получить готоый yml с описанием этих эндпоинтов в openapi-3.
Я пробовал парочку либ, они, к сожалению, генерят openapi v2
Billy ᛭
Если здесь есть люди, которые на гулаге кодят дольше меня хотя бы на день (то есть два дня) - кому из вас можно периодически свои поделки на ревью скидывать?
🔥
🔥
Там сразу к стене ведут)
Billy ᛭
Кто-нибудь юзает библиотеки дженериков? В пыхе очень удобно было просто array_diff сделать без плясок с бубном, а тут так не получится. Стоит ли вообще библиотеки для этого тянуть и кто какие юзает для этого?
🔥
Billy ᛭
whois
Ребят, такой вопрос.
Допустим у меня есть структура. Я ее заполняю и в:
- первом случае создаю объект на основе этой структуры
- во втором случае создаю указатель на структуру
Смотрю по памяти:
- указатель весит 8 байт
- объект по значению весит 48 байт
Как экономичней делать? Через указатель или через значение?
Ведь в первом(указатель) случае у нас получается 2 значения:
- сам указатель весит 8байт
- плюс еще где-то в памяти размещается 48 байт структура
По-идее, по значению - эффективнее)
Но, если куда-то передавать структуру по значению, то она будет дублироваться, а это лишние выделения памяти.
Что думаете?
George
whois
George
Разницу знаю, ибо писал когда-то на более низком уровне.
Круто! Выделение в хипе нагружает GC и в целом медленнее. Работа с выделенной в стеке памятью лучше оптимизируется компилятором (но компилятор все равно может решить отправить это дело в кучу). Но в целом там много нюансов. Поэтому канонично не париться и использовать поинтеры только когда это необходимо, а не когда это спасает от пары аллокаций.
whois
xasai.denet
Создавай на стеке, передавай по указателю
xasai.denet
А вот это уже интересненько)
@Thermophoto
Для rest API какой лучше фреймворк использовать?
Emil
Gin, как мне кажется
Есть тут любители гориллы?
𝕌ℕ𝔼𝕏ℙ𝔼ℂ𝕋𝔼𝔻
Emil
Echo
Хм... На гитхабе тесты на его стороне, но не критично... Есть смысл переходить?
🔥
Null
Какие возможности делают Golang таким востребованным?
⌛️Об этом 17 августа расскажет Алексей Бакин, эксперт, занимавшийся разработкой бэкенда на Go для ведущих российских IT-компаний.
На встрече Алексей разберет подводные камни, возникающие при освоении этого языка, и представит программу онлайн-курса «Golang Developer. Professional». Вы познакомитесь с преподавательским составом и форматом обучения в OTUS. В конце встречи у вас будет возможность занять место в группе по спец.цене.
👉🏻Регистрируйтесь на вебинар и задайте свои вопросы эксперту: https://otus.pw/q5kB/
@Thermophoto
Maks
Таршиш
Можно вкратце резюмировать?
А представляете, если бы магазины так продавали свои товары: для того чтобы УЗНАТЬ про наш супер-пупер товар необходимо зарегистрироваться и пройти семинар....
Как-то очень на секту смахивает
Maks
Вся обучающая хрень очень специфична и как правило не нужна тем кто уже прогает
Maks
Был я на паре встреч от вк. Были интересные темы. как у них организованны например стримы, декодинг и раздача контента в прямом эфири на многих юзеров
Maks
Но были темы которые в реальности почти никогда не пригодятся
Maks
это например их базы данных. как они устроены и как с ними работают
Maks
Ну ты смотришь видео и повторяешь.
Maks
Но да
Maks
Программирование это можно сказать фундаментальная хрень.
Maks
Где без фундаментальных знаний ты вряд ли поймешь что ты делаешь и почему это работает
Maks
При этом фундаментальных знаний нужно очень мало, но они даются не всем)))
Maks
Многие не понимают отличие типов данных, понятия объектов и методов(функций)
Maks
Ну а дальше уже просто нужно понять основные операции над этими данными которые позволяет делать язык. Разобрать это на 3-4 языках и после этого я бы сказал можно отправляться в плавание.