@gogolang

Страница 126 из 1630
Slava
17.02.2017
10:45:42
всё уже сказано

Alexander
17.02.2017
10:45:59
Обязательно надо! И тут два варианта: или тебе объяснят что-то недопонятое, или, может быть, и правда ничего идеального в мире не существует и надо уметь правиьно выбирать инструменты...

Slava
17.02.2017
10:46:04
http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/

Alexander
17.02.2017
10:47:10
Слава, я читал. И, кажется, твой перевод был на хабре? Как-то не вполне сторго и убедительно.

Google
Slava
17.02.2017
10:47:46
нет, не мой =)

Alexander
17.02.2017
10:48:19
Тут вот вчера запостили: https://github.com/Konstantin8105/Effective_Go_RU

Переводчику, конечно, респект, но редактура нужна явно! Не такой хороший текст получился, как в оригинале

Vladimir
17.02.2017
11:02:02
Необходимость перевода технической литературы вообще весьма сомнительна.

Alexander
17.02.2017
11:03:19
И вобще, с языком как-то чем даьше, тем больше косноязычия. Самый печальный вариант - публичные выступления на наших конференциях. Люди не только говорить не умеют, но даже, зная, что придется лезть перед камеру/микрофон, даже и учиться не хотят :(

Andrey
17.02.2017
11:04:12
Необходимость перевода технической литературы вообще весьма сомнительна.
ну можно попереводить для совершенствования в языке + подучить сам материал книги ну и как бы показываешь, что чтение тех литературы присутствует :)

Slava
17.02.2017
11:04:20
ну хоть что-то говорят - это уже здорово, всё приходит с опытом

Alexander
17.02.2017
11:04:45
Да и пока сам переводишь, хоть поймешь, наконец, что там написано=то хотя бы :)

Andrey
17.02.2017
11:05:10
в общем переводить полезно, читать чужой перевод сомнительно

Alexander
17.02.2017
11:05:39
Слава, надо как-то все равно на это внимание обращать. Если выступающий сподобился выступить, то пусть хотя бы нескоько вещей учтет:

Alexander
17.02.2017
11:10:52
1. Надо иметь что сказать. 2. Надо заранее снать план выступления, какие темы будут, в каком объеме, а каких не будет. 3. Заранее продумать, как ты преподнесешь то, о чем речь таки будет. 4. Научи ться слышать свое следующее слово до того, как ты его скажешь. Если следующее слово - это междометие "как бы" и ему подобные - лучше просто его не сказать, а набычась поглядеть в зал четверть секунды 5. Научиться не сидеть на шее у зала. Все вопросы типа "а кто знает, в какой версии ядра Linux появились CGroup" - это просто до свидания. Вышел выступать - выступай, а не еби людям моск

Ну, и куча других косяков... Все приходит с опытом. Жаль, что не у всех такого опыта пубичных выступлений достаточно

Google
Slava
17.02.2017
11:23:52
москва не сразу строилась =) надо же и интернам практиковаться на ком-то

Alexander
17.02.2017
11:26:22
Ну, пипл хавает пока что, так что никаких проблем. :) И есть прекрасные ораторы, не побоюсь этого слова. :) Это, в первую очередь те, кому есть таки что сказать, у кого глаза горят это донести. А полно и такого убожетва - мама не горюй. Хоть и специалист, вроде, и дело знает... Его что туда пистолетом загоняли выступать, блин???

Я это не про конференции Go, а вобще. Те же курсы лекций от Mail.RU или Яндекса. Бывает слушаешь минут 15-20 для начала что-то и просто физически страдаешь, как человеку плохо, так не надо было и лезть в это! А бывают просто суперские лекторы! Но сильно реже :(

Daniel
17.02.2017
11:29:41
вообще-то, все 5 пунктов - чистое капитанство

Alexander
17.02.2017
11:29:54
Да!

Daniel
17.02.2017
11:30:12
то есть, если человек не умеет этого - не надо бы ему - пока? - выступать

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

Alexander
17.02.2017
11:30:35
Почитаешь курсы по UNIX по две пары до обеда и две после хотя бы пару недель, еще и не так задембелюешь :)

Daniel
17.02.2017
11:30:38
наших западных коллег этому учат прямо в школе

а кого не в школе - того в универе

Alexander
17.02.2017
11:31:27
Меня никто не учил. Просто у меня был учебный план и было что сказать на каждой лекции. И я парился просто, чтобы это донести. А если этого нет, то, как бы, кому это вобще надо?

Daniel
17.02.2017
11:32:17
ну вот у нас нет специально риторики ни в школе, ни в вузе.

Alexander
17.02.2017
11:32:41
И к лекциям готовился, особенно поначалу! Но то, что я вижу на ютюбе - это просто модой об забор, даже если то под вывеской Яндекса или MRU идет

Daniel
17.02.2017
11:32:43
то есть, ежели кто из наших это умеет - это просто талант, а талантов мало, как известно

Alexander
17.02.2017
11:34:21
Талант талантом, но если нет элеметарных речевых навыков - лучше, наверное, не надо. Хотя опять же, кто хочет выступить и есть о чем - почему нет? Если хочешь, то обычно и можешь, а опыт - дело наживное.

Anton
17.02.2017
11:36:18
это от отношения к аудитории зависит - имхо достаточно прогнать раз перед зеркалом (дабы посмотреть как это выглядит со стороны)

если криво выглядит, то повторять пока не понравится, простой же алгоритм

Alexander
17.02.2017
11:37:01
А потом достаточно посмотреть запись на ютюбе и просто умолять их удалить это унылое гавно :(

Daniel
17.02.2017
11:38:09
Талант талантом, но если нет элеметарных речевых навыков - лучше, наверное, не надо. Хотя опять же, кто хочет выступить и есть о чем - почему нет? Если хочешь, то обычно и можешь, а опыт - дело наживное.
талант не так работает. талант делает твое обучение эффективным. талант может помочь за одно выступление стать из никакого неплохим оратором.

но, повторюсь, это редкость

Google
Alexander
17.02.2017
11:39:02
Перед зеркалом ничего не надо. Просто если есть план выступления, то уже заранее думаешь, что вот это я расскажу так... Потом думаешь, нет... половина поймет неправильно. Лучше так расскажу... В общем, муки творчества непостаредтвенно в голове. А потом видишь аудиторию и уже как-то само начинает идти, потому что ты уже о разных методиках подачи дал себе труд подумать.

Daniel
17.02.2017
11:39:12
если криво выглядит, то повторять пока не понравится, простой же алгоритм
вообще-то, есть спец. литература и коучи. и полезнее не свои плохие выступления смотреть, а чужие хорошие

Alexander
17.02.2017
11:40:16
И свои выступления - тоже! Обычно когда свои - то ты и есть самый строгий зритель :)

Anton
17.02.2017
11:40:19
это подразумевается (что глядя в зеркало ты сравниваешь себя с хорошими выступлениями)

Alexander
17.02.2017
11:41:33
Мы тут не о конкурсе мужской красоты еще? Я про косноязычие на наших конпутерных конференциях и курсах тут разоряюсь. Хотя, я может быть, что-то пропустил?

Ivan
17.02.2017
11:41:35
А вообще , что посоветует, я б научился вытупать

Alexander
17.02.2017
11:41:58
Слава! Не упускай парня! Он выступить хочет!

Ivan
17.02.2017
11:42:44
ну вот что пишут, выступать то сё. Да не, я не в том смысле что есть доклад и хочу его точить, а в том что сатсо приходится даже вот перед коллегами, и чуствуешь что слабо доносишь

Alexander
17.02.2017
11:43:49
Ваня, вот, послушай хорошего лектора: https://www.youtube.com/watch?v=LcQXXhNT__I

Ж)))

Это вырезки, полностью лкция про Кложуру тоже там есть. Но это - просто чудо природы! :)))

Ivan
17.02.2017
11:50:48
спасибо

Alexander
17.02.2017
11:51:21
обращайся :)

Kanybek
17.02.2017
12:20:40
Приветствую товарищи, есть такой вопрос про база данных: Работаю sqlx + postres, использую не http server, а grpc методы, но не суть. Например в 1 секунду одновременно может прийти 50 запросов, но у меня база глобальная, в main я его открыл, и держу в memory: var db *sqlx.DB func AccountFor(db *sqlx.DB) и просто в каждый запрос передаю его в параметрах, так вот у меня крашит на транзакциях, как работать многопоточно с базой? Сильно гуглю, пока стоящее не нашел?

Alexander
17.02.2017
12:23:12
Делай одну транзакцию, если у тебя атомарные запросы и все такие запросы просто делай в ней . Эта транзакция будет идти через один connect. И, разумеется, счетчик времени, или количества атомарных запросов (по ситуации). Периодически ты должен говорить COMMIT

Alexander
17.02.2017
12:26:32
К сожалению, в библиотеке Go сделано все так, что подразумеваются только транзакции, на каждую он будет открывать новое подключение к базе. Поправьте, если не прав, но я в это утыкался :(

Slava
17.02.2017
12:27:08
в го есть пул коннектов

Alexander
17.02.2017
12:27:18
Пример кода - звучит слишком по-индийски

Google
Alexander
17.02.2017
12:28:32
Слава, есть пул коннектов и размером даже можно рулить. Но библиотека думает, что любой запрос - это транзакция, а для нее надо открыть соединение с базой :(

Kanybek
17.02.2017
12:28:58
Например как эту задачу я решил бы в Swift или Object-C, просто создаю global queue очередь только для database, и все операций по базе, кидаю в block в эту очередь: queue.async{}

Alexander
17.02.2017
12:30:21
Да! И я о том же. Кидаешь все атомарные запросы в функцию, которая умеет их слать, но при этом еще и делает это в одной транзакции с периодическим коммитом.

И эта функция, как можно понять. держит один коннект с базой.

Или я не понял, и ты о чем-то другом?

Alexander
17.02.2017
12:32:06
У меня нет готового примера

Andrew
17.02.2017
12:33:40
У sqlx вроде есть connection pool: http://jmoiron.github.io/sqlx/#connectionPool

не оно?

Alexander
17.02.2017
12:33:47
По сути, я предлагаю тебе сделать на Go функцию, которая обрабатывает очередь запросов, как ты привык. Но она должна периодически говорить Commit

в общем, SQL-библиотека - это не ORM, а довольно низкоуровневое средство, на надо думать, что она все сделает за тебя и даже думать, что сделает правильно :(

Kanybek
17.02.2017
12:35:13
И эта функция, как можно понять. держит один коннект с базой.
суть: многопоточно работать с базой, база одна в memory, тоесть там может 5 goroutine но база одна, и чтобы на transactions(update, create) не panic был

Alexander
17.02.2017
12:36:51
А у тебя panic? Тогда я точно не понял вопроса. Сначал свой код покажи, как ты хотел это сделать?

Kanybek
17.02.2017
12:41:17
func (s *server) CreatePayment(ctx context.Context, paymentReq *pb.PaymentRequest) (*pb.PaymentRequest, error) { unique_key, storeError := model.StorePayment(db, paymentReq) if storeError != nil { return nil, storeError } return paymentReq, nil } func StorePayment(db *sqlx.DB, payment *pb.PaymentRequest) (uint64, error) { tx := db.MustBegin() var lastInsertId uint64 err := tx.QueryRow("INSERT INTO payments " + "(total_order_price, discount, total_price_with_discount) " + "VALUES($1, $2, $3) returning payment_id;", payment.TotalOrderPrice, payment.Discount, payment.TotalPriceWithDiscount).Scan(&lastInsertId) CheckErr(err) commitError := tx.Commit() CheckErr(commitError) return lastInsertId, nil } сейчас все в одном потоке

17.02.2017
12:42:04
а можно в тройных бэктиках?

Sergey
17.02.2017
12:42:21
А лучше на pastebin хотя бы ;D

Daniel
17.02.2017
12:42:44
содомия какая-то

коллеги, вы бы спросили для начала, что такое "крашит на транзакциях"

Kanybek
17.02.2017
12:44:08
http://pastebin.com/W6Maddm4

17.02.2017
12:44:21
А лучше на pastebin хотя бы ;D
в печатном виде, и нужное подчеркнуть

Google
Sergey
17.02.2017
12:44:46
http://pastebin.com/W6Maddm4
Во, тут хоть как-то что-то прочитать можно

Daniel
17.02.2017
12:45:03
так это

что с транзакциями не так?

Alexander
17.02.2017
12:46:34
да, кажется тут с ТЦП/ИП и вобще этой проблематикой что-то не так. До баз данных дело еще даже не у всех доходит.

Kanybek
17.02.2017
12:47:09
что с транзакциями не так?
Суть в том что таких мест много, тоесть одновременно StorePayment, StoreCustomer, StoreSupplier может вызвать, а db *sqlx.DB только одно, и все, лови panic, тоесть crash

Slava
17.02.2017
12:50:03
а можно стектрейс?

Alexander
17.02.2017
12:51:08
только не в канал!

Daniel
17.02.2017
12:51:24
Alexander
17.02.2017
12:51:59
ну... как-то... даже не знаю... если тут так принято, то почему нет? :)

Daniel
17.02.2017
12:52:05
не принято

Kanybek
17.02.2017
12:57:01
сейчас восоздам данную проблему, stacktrace

Alexander
17.02.2017
12:57:44
для начала хоть воссоздай, что за паника такая :)

Kanybek
17.02.2017
13:11:13
Че то не получается пока, работает, ни одной ошибки, продолжаю поиски...

Slava
17.02.2017
13:12:19
в стек трейсе (или в ошибке) обычно есть ответ на все вопросы, лучше их не игнорировать

Alexander
17.02.2017
13:24:16
Слава, что можешь сказать про mutex? Они правда так глобально все замедляют?

Олдовые Сишники говорят, что mutex - это дико роняет производительность при каждом разе использования. А вот юзал и не чувствовал. Или и правда это так плохо?

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