@gogolang

Страница 773 из 1630
Michael
24.01.2018
16:11:51
метод это функция с ресивером в Гоу

Aleksandr
24.01.2018
16:14:58
Это функция, а не метод
да, согласен. ошибся

Vladislav
24.01.2018
16:30:12
по ссылке фабричный метод называют конструктором. это не брехня, а неграмотность
Насколько мне известно фабрики это паттерн из ООП. И переносить это просто в Go ненужно. Называть неграмотными авторов официального сайта также сомнительная инициатива. Так уж случилось, что в go принято уже называть функцию NewType конструктором.

Google
tsov
24.01.2018
16:32:42
Hello, 中国! - The Go Blog https://blog.golang.org/hello-china

у китайцев появился официальный Го

Michael
24.01.2018
16:33:35
можно начинать учить язык Чайны

tsov
24.01.2018
16:35:37
и ставить gogs

Aleksander
24.01.2018
16:36:44
Подскажите чем вы пользуетесь в компании для документирования функций и api?

Aleksander
24.01.2018
16:39:24
swagger
Это видели . А аналоги есть ? Неплохие

А confluence используете ?

Michael
24.01.2018
16:40:44
Это видели . А аналоги есть ? Неплохие
гугл подсказывает тысячи их, но на практике вполне им довольны

Aleksander
24.01.2018
16:49:51
гугл подсказывает тысячи их, но на практике вполне им довольны
А на своем сервере можно поднять или это только облачное решение с подпиской?

Google
Vladislav
24.01.2018
16:50:37
фабричная функция (не ооп)
Ну это на самом деле неважно. Т.к. в коммьюнити принято определенные функции называть конструкторами. И нет никакого смысла это оспаривать и прививать другим. (Учитывайте, что я имею именно функции вида NewType. Из этого имени следует, что назначение этой функции примерно соответсвует конструкторам.)

Aleksander
24.01.2018
16:51:29
Michael
24.01.2018
16:52:02
Платно ?
я не в курсе, вероятно, да

Aleksander
24.01.2018
16:52:19
Aleksandr
24.01.2018
16:53:43
Ну это на самом деле неважно. Т.к. в коммьюнити принято определенные функции называть конструкторами. И нет никакого смысла это оспаривать и прививать другим. (Учитывайте, что я имею именно функции вида NewType. Из этого имени следует, что назначение этой функции примерно соответсвует конструкторам.)
да, назначение фабричной функции аналогично конструкторам - только место применения разное. то, что в го традиционно а называют б, не мешает а называть а, как традщиционно принято в программированнии в общем.

Aleksandr
24.01.2018
16:57:28
meehalkoff✪
24.01.2018
16:59:50
фабрика - это то, где производят новое, а не возвращают со склада старое
и как же называют тогда собственно метод\функцию, которая возвращает старую сущность со склада?

gc?))

Michael
24.01.2018
17:01:33
gc?))
та вроде Банда Четырёх говорит, что an existing object might be reused

meehalkoff✪
24.01.2018
17:02:58
object pool
это склад так называется

Vladislav
24.01.2018
17:06:35
фабрика - это то, где производят новое, а не возвращают со склада старое
Сейчас уже не припомню в каких, но в книжках по джаве указывали сценарий, когда коннекты к базе переиспользуются, но если свободных нет, они создаются пока не достигнут максимума. Собственно там это тоже называлось вабричными методами.

И так то она производит новое.

Только не всегда.

Aleksandr
24.01.2018
17:08:17
ничего страшного

Google
andrew
24.01.2018
17:08:20
фабрика и пул - разные паттерны

https://ru.wikipedia.org/wiki/Порождающие_шаблоны_проектирования

Michael
24.01.2018
17:24:57
в описании fabric method банда 4 часто употребляет понятие и слово interface, по хорошему что обозвать гошную NewTypename() *Typename вот этими словами fabric method, она должна возвращать интерфейс, т.к. в ориг книге примеры на С++ , то там используется абстрактный класс

ещё сами они fabric method называют так virtual constructor

Если оно крякает как утка, плавает как утка и выглядит как утка - то можно это обозвать конструктором

tsov
24.01.2018
17:41:53
конструктор, т.к. конструирует новый объект. а фабрика - это кому то моча ударила в свое время, совсем не нужная абстракция. Массив создаваемых объектов с методом добавления нового - типа вот фабрика

Alexander
24.01.2018
17:45:21
Фабрикой обычно называют что-то, что может создавать _разные_ объекты в зависимости от параметров. Эти разные объекты обычно реализуют какой-то общий интерфейс. Например функция СделайГеометрическуюФигуру(тип) может вернуть Квадрат или Прямоугольник. Конструктор же всегда возвращает один строго определенный тип объекта (если возвращает вообще).

Alexander
24.01.2018
17:49:23
Это абстрактная фабрика
Ну я бы не стал уже углубляться в различия между фабрикой, фабричным методом и еще какими-то вариациями. Фабрика может быть не абстрактной и возвращать разные типы объектов.

Michael
24.01.2018
18:04:36
Это абстрактная фабрика
На 121 странице авторы с тобой не согласны

Aleksandr
24.01.2018
18:06:53
gof?

Shreyner
24.01.2018
18:25:58
Всем привет. Задался вопросом, как правильно организовать свой код web приложения или просто программы на Go. Можете посоветовать какую-нибудь литературу, статьи, каналы? Репозитории на Github с примерами Спасибо.

Shreyner
24.01.2018
18:35:19
Max
24.01.2018
18:52:23
Загугли effective go
Там мало что написано с точки зрения организации проекта. Пример более общего layouta - https://github.com/golang-standards/project-layout Но и он не решает всех проблем

Google
Max
24.01.2018
18:57:30
Я так и не смог придумать красивое решение для организации проекта. В большинстве фреймворков (на других языках) примернотакая: ├── controllers | └── controller_a.go | └── test_controller_a.go ├── cmd | └── server | └── main.go └── templates Если запускать сервис - всё ок. Шаблоны загружаются. А вот если запускать тесты - "go test ./...", то корневой становится папка с файлом тестов, и тест контроллера не видит шаблонов.

Gleb
24.01.2018
22:57:52
Привет, народ) Только начал копать Go, есть какие-нибудь проекты по транспилированию какого-нибудь расширенного синтаксиса в Go? Нашёл только всякие поделки по типу Go -> JS, не более. Хочется хотя бы классы и прочее OOP плюшки иметь. Не надо мне рассказывать, что и так нормально жить можно. Жить можно как угодно, но DX от такого языка будет достаточно уныл. Сам раньше писал много лет на C++, а потом перескочил в JS и вот как-то не получается из JS-а вырваться. Основной бум скорости развития JS получил с появлением нормального транспайлера в виде Babel и возможности быстро и просто налепить плагин для твоего пропосала в стандарт языка. Что-то мне слабо вериться, что в Go комьюнити такого не напилили. Киданите в меня ссылочкой)

Vladislav
24.01.2018
23:06:11
А вообще странно полагать, что сообщество пошло по пути js. Как будто других путей нет.

Gleb
24.01.2018
23:17:05
Спасибо, изучу) Понятно, что путей много, просто я не видел ни в одном языке за много лет такого бурного развития и выработки самых лучших решений всем миром. У нас вон огромный кусок в виде статической типизации тем же Flow привнесли, а почти тут жа запилили babel plugin, который транспайлит ваши инструкции "статической" типизации в runtime проверки и ещё и в runtime'е начинает проверять. Если бы такое было в Go комьюнити, то как мне кажется, об отсутвии OOP в Go я бы даже и не услышал.

Admin
ERROR: S client not available

Zaur
24.01.2018
23:20:40
js сообществу js приходится воспринимать как данность, от него никуда не уйти

golang изначально осознанно создавался под конкретные задачи. Зачем же его как-то расширять, если всё, что сочли нужным, уже в него добавили

есть конечно некоторые вещи, которые в этой группе нельзя называть ? , но это надо на уровне компилятора добавлять

Gleb
24.01.2018
23:29:16
Самые лучшие решения, ага. Тысячи либ для одной функции.
Я говорю не про либы, я говорю про фичи самого синтаксиса языка. Тот же pipeline operator из Erlang/Elexir/etc " |> " можно внести путём тупого и прямоленейного преобразования в обычный синтаксис вложенного вызова функций. Синтаксический сахар - очень важная штука, которая сильно улучшает читаемость кода. Взгляни на тот же async/await в C#.

Gleb
24.01.2018
23:32:46
Но либы вообще тоже, просто их надо в свой проект с умом тянуть, а не закидывать вёдрами всё, что попало. Я у себя в компании постоянно бью по рукам за не нужные либы, равно как и за велосипеды.



Vladislav
24.01.2018
23:34:54
А делает то он что?

Отправляет поочередно?

Ух достижение.

Google
Gleb
24.01.2018
23:39:59
С добавлением каррирования и частичного применения это очень мощная штука, серьёзно

Ну или те же полноценные классы в JS были сначала полностью реализованны путём транспайлинга, а потом уже запиленны в движок.

Или те же интерфейсы (First-Class Protocols), пока на этапе рассмотрения, но мы можем это уже использовать, просто транспилируя код в обычный JS.

Понимаешь, это примерно как проверка бизнес модели на маленьком кривеньком прототипе, а потом уже запуск нормальной разработки VS долгое и муторное запилинивание того, что не взлетит.

Alexander
24.01.2018
23:46:44
Не надо сравнивать JS и Go, т.к. в JS приходится работать с огромным количеством легаси, да еще и зоопарком браузеров. Так что там без транспайлера новые фичи просто не выживут. Их никто не сможет использовать и, соответственно, никто не будет знать.

Сама по себе идея транспайлеров, по-моему, нигде кроме JS так активно не используется. Go, кстати, в ранних версиях тоже сначала конвертировался в С++, а потом компилировался обычным gcc. Но, думаю, это как минимум сильно медленее

Alexander
24.01.2018
23:51:00
Читаемость кода. Вместо лесенки коллбэков безумной глубины - более-менее удобоваримая структура получается

Vladimir
24.01.2018
23:51:24
А что именно улучшает async/await?
очевидно ж - асинхронный код (сарказм)

Gleb
24.01.2018
23:53:22
А что именно улучшает async/await?
Ну представь, что ты можешь запустить горутину и тут же на месте дождаться результата её выполнения. При этом у тебя в горутине происходит, допустим, обращение к БД или нечто в этом роде, а стоимость запуска такой вот спецаильной горутины равна нулю.

Alexander
24.01.2018
23:53:40
Вот в гошечке этого нет и читаемость кода ок :)
Не могу не согласиться. Поэтому я предпочитаю писать на го, а не js

Gleb
24.01.2018
23:55:44


Каналы. Горутина будет просто писать в канал результат
Ага, только будет обвязка кокруг канала с selec'ом и т.д.

Slava
24.01.2018
23:56:40
зачем это всё если можно синхронно в корутине? )

Roman
24.01.2018
23:57:05
Можно начать с расчета хешей в awaitable functions

Alexander
24.01.2018
23:57:17
В данном случае это вынужденно, т.к. js однопоточный. В Го этого просто в принципе не нужно

Кто в Java многопоточку писал, тот в го поёт и пляшет при виде каналов и горутин

Страница 773 из 1630