
Nick
30.09.2018
08:28:57

Wingman
30.09.2018
08:29:39
До компа доберусь - буду экспериментировать

Nick
30.09.2018
08:30:15

Google

Nick
30.09.2018
08:31:19

Мерлин
30.09.2018
08:31:33

snip
30.09.2018
08:31:39

Wingman
30.09.2018
08:31:49

Никита
30.09.2018
08:42:42
Стандартный гошный пакет database/sql пытается повторить запрос при ошибке БД?

Wingman
30.09.2018
08:43:13
С чего бы

Никита
30.09.2018
08:43:42
А почему нет
Cluttering the code with error-handling and retry. Letdatabase/sql handle connection pooling, reconnecting, and retry logic for you
https://www.vividcortex.com/blog/2015/09/22/common-pitfalls-go/

Wingman
30.09.2018
08:44:20
Какой смысл повторять запрос с синтаксической ошибкой например?

Никита
30.09.2018
08:44:39
Само собой твой запрос повторять нет смысла, но ведь можно понять, по какой причине отклонен

Wingman
30.09.2018
08:46:35
Можно конечно

Никита
30.09.2018
08:46:57
What if your connection to the database is dropped, killed, or has an error?
You don’t need to implement any logic to retry failed statements when this happens. As part of the connection pooling in database/sql, handling failed connections is built-in. If you execute a query or other statement and the underlying connection has a failure, Go will reopen a new connection (or just get another from the connection pool) and retry, up to 10 times.
http://go-database-sql.org/errors.html

Google

Wingman
30.09.2018
08:47:03
If err = db.xxx(); err != nil { ....
:)

Никита
30.09.2018
08:47:04
Таки повторяет

Wingman
30.09.2018
08:47:25
При дисконекте да

Nick
30.09.2018
08:49:26
А если это была транзакция?
На дисконнекте она откатится и явно повторять уже будет не нужно)

Никита
30.09.2018
08:55:57
Я думаю с транзакцией также
сначала попытается повторить, потом вернет с ошибкой

Nick
30.09.2018
08:58:10
Транзакция к конекшену привязана
Нельзя будет что-то повторить

Subbotin
30.09.2018
09:13:36
Господь мой. На js
Не взлетит

Никита
30.09.2018
09:15:35
Вполне возможно что он повторяет целую транзакциию ?

Nick
30.09.2018
09:16:42
Точно нет

Alexander
30.09.2018
09:22:25

Subbotin
30.09.2018
09:23:12
https://github.com/solid

Alexander
30.09.2018
09:23:34
Нашёл уже..

Nick
30.09.2018
09:24:36
Сервер на ноде, они обречены)))

Bohdan
30.09.2018
09:26:04
у них какой-то неправильный solid

Никита
30.09.2018
09:26:33

Google

Maksim
30.09.2018
09:27:28

Bohdan
30.09.2018
09:28:30

Senpos
30.09.2018
10:08:01
Привет!
Подскажите, а есть чат для новичков? Или свои нубовские вопросы можно тут спрашивать?

Daniel
30.09.2018
10:11:50
Можно

Senpos
30.09.2018
10:12:12
Спрошу, а вы если что меня направите куда надо :)
Уровень занний в Go: новичок
Код: https://gist.github.com/Senpos/01b02d7b2f2cf8dcecd980bf3b4af86b
Хочу заанмаршалить JSON-строку в структуру. В текущей имплементации - структурап получается почему-то пустая.
Наверное, плохо построил структуры, но очевидного ничего в глаза не бросается.
Подскажите, где косяк)

Мерлин
30.09.2018
10:23:23

Senpos
30.09.2018
10:24:37


Roman
30.09.2018
12:08:11
О, шедевр
— Влияет ли на управление сложностью то, что в программировании сейчас довольно много людей со слабой технической базой?
Конечно. Для таких людей даже специальный язык программирования придумали. Называется Go. Я не шучу. Действительно, целью создания языка Go была попытка вовлечения в написание кода студентов и стажеров Google, которые не могут освоить C++. Python им не подходил по производительности, нужно было что-то иное, и в Google придумали Go. Как оказалось, очень много людей готовы на нем писать, потому что он очень простой. Но какой ценой достигнута эта простота? Нам дают не нормальный язык программирования, а его очень урезанную версию — в нем нет практически никаких сложных концептов by design. Нет дженериков, нет такого понятия, как исключения и т.д. И поклонников такого подхода много.
Отсюда https://habr.com/company/oleg-bunin/blog/424393/
Такое впечатление будто „гуру C++“ не понимают, что одной их мизерной продуктивности не хватает для решения актуальных растущих потребностей к ПО, особенно рассматривая как сильно понижает продуктивность это вечное легаси которое C++ тянет за собой ещё со времён C)))
говорю как бывший плюсер, нынешний гофер и будущий Rust’афарианец))


Savely
30.09.2018
12:10:23

Roman
30.09.2018
12:10:44
но для systems programming Go, увы, не подходит, поэтому мне придётся некоторые будущие проблемы решать на Rust’е, поскольку в C++ возвращаться - себя не уважать)
вообще дизайн языка (Rust) весьма продвинутый, Option & Result одни чего стоят, гораздо безопаснее error интерфейса. Trait’ы очень мощный инструмент, правда то что я пишу на Go за 5 минут, на Rust’е занимает час, со временем продуктивность конечно повысится, но.. настолько же насколько и в Go? сложно поверить.

?
30.09.2018
12:14:56

Roman
30.09.2018
12:15:27

Subbotin
30.09.2018
12:17:18
типа микроконтролеров

?
30.09.2018
12:18:59
мне кажется он проще С++ и Rust, конечно не безопасно, но

Roman
30.09.2018
12:20:13
ну в какой-нибудь узкой области вполне может остаться
https://github.com/xrei/prime-numbers-benchmark/tree/master/c
на нём фаново писать только игрушки ИМХО, потому-что мало абстракций и такое ощущение при написании что ты прям по железу скребёшь.
как только начинаешь на нём писать что-то серьёзно начинается лютый гемморой багов и километровые романы для решения тривиальных задач…
C это как завершённая трилогия. Трилогия может быть феерической, но если её продолжать - она навсегда испортит все свои предыдущие достижения.
C дал миру всё что мог, ему давно пора на пенсию.

Google

Roman
30.09.2018
12:24:31
вообще самый простой язык по синтаксису это бинарный код. Там только однёрка и нолик, но легко ли на нём писать multi-threaded cross platform приложение?

Alexander
30.09.2018
12:25:10

?
30.09.2018
12:26:56

Roman
30.09.2018
12:28:30
в Go вот есть проблема что если не проверить ошибку и продолжить работать с возвратными данными, то можно жутко выстрелить себе в ногу, спасает только errcheck но и то не всегда.
в Rust функция может вернуть Result<T, T>, где первый T это тип при удаче а второй Т это тип возможной ошибки и Rust заставит тебя проверить что там вернулось и соответственно отреагировать
функция возвращает либо тот тип, либо другой, а в Go может вернуться ошибка и мусорные данные, что не очень хорошо с точки зрения безопасности

Диёр
30.09.2018
12:33:04

Admin
ERROR: S client not available

Roman
30.09.2018
12:33:33

Диёр
30.09.2018
12:33:59
Так сказал будто в хаскеле either опаснее

Vadim
30.09.2018
12:34:25

Roman
30.09.2018
12:34:59

Vadim
30.09.2018
12:35:39

Roman
30.09.2018
12:36:41
Вроде го наиболее близок к этому.
не совсем, он одновременно и близко но и очень далеко.
надо судить не только написанию и чтению (в этих аспектах Go силён), но и сложность содержания (bugs, scalability etc.)
со scalability тоже всё относительно хорошо, есть бенчмаркинг, есть профайлинг, легко работать в команде и т.д.
но вот безопасность в Go сильно храмает, а это приводит к багам, а баги жрут много времени

Диёр
30.09.2018
12:40:41

Roman
30.09.2018
12:41:06

Senpos
30.09.2018
12:42:56
Слышал, что питонисты любят переходить на Го, мол, легко дается. А я не могу. Слишком мозг не в ту сторону уже :( Испортился человек, забраковался.
Посоветуйте книжку, после Go by Example почитать :)

Никита
30.09.2018
12:43:47

Roman
30.09.2018
12:44:15

Google

Никита
30.09.2018
12:44:18
Лучше смотреть видео с конференций

Foxcool
30.09.2018
12:44:23
Флеймграфы бы красивые, вот это все

Senpos
30.09.2018
12:45:11

V
30.09.2018
12:45:20

Senpos
30.09.2018
12:45:28
??Благодарю

Roman
30.09.2018
12:45:44

Savely
30.09.2018
12:46:14

Никита
30.09.2018
12:49:29
А есть что то типа go trace только в реальном времени?

Artem
30.09.2018
12:50:44
Мб pprof раз в секунду подойдёт?

Никита
30.09.2018
12:51:56
Та вот у trace такие графики красивые
Хочется такое же

Александр
30.09.2018
12:52:40
кмх
вопрос такой, если у меня есть условно пакет dao только с интерфейсами структурами, долже ли пакет с реализации под конкретную бд использовать его
вроде у нас утиная типизация, но структуры лежат же тоже в "абстрактном пакете"

Никита
30.09.2018
12:54:02
Пример приведешь?
Вроде как понял о чём ты, но хочется убедиться