@gogolang

Страница 591 из 1630
Aleksander
25.10.2017
09:42:00
type Peoples struct { one map[string]string two map[string]string mutexOne sync.RWMutex mutexTwo sync.RWMutex }

Alexei
25.10.2017
09:42:49
@Civiloid делай рукалицо )))

Vladimir
25.10.2017
09:42:52
People - уже множественное

@rsaoskol сделай: type SyncedMap struct { sync.RWMutex data map[string]string } type People struct { one SyncedMap two SyncedMap }

Google
Vladimir
25.10.2017
09:43:56
тогда у тебя будет семантика: People.one.Lock() People.one.data["foo"] = "bar" People.one.Unlock()

и это более логично и ожидаемо

или посмотри на sync.Map сразу

Alexei
25.10.2017
09:46:48
я встречал в коде, когда просто, без структуры идут var ( somevalue sometype mutex sync.Mutex ) интересно, а что лочится в данном случае?

забыл добавить, что видел такое в пакете main

Vladimir
25.10.2017
09:50:23
ага

Andrew
25.10.2017
09:51:09
забыл добавить, что видел такое в пакете main
Если в main(), то, думаю, там лочится вся прога, пока не поступит оплата от заказчика в полном объёме.

Alexei
25.10.2017
09:52:00
хм, странно, вроде там ничего колом не вставало, просто академический интерес, спасибо )))

Alexei
25.10.2017
09:52:35
???

Vladimir
25.10.2017
09:53:16
вызываешь Lock - смотрим взял ли уже кто-то лок, если не взял - меняем состояние, отдаем управление

Google
Vladimir
25.10.2017
09:53:43
если взял - ждем пока не отпустят

там могут быть тайматуы на ожидания, но суть та же

от платформы зависят детали имплементации

поэтому сделав: mutex1.Lock() mutex1.Lock() ты повесишь приложение

потому что вот

лок уже взяли, его никто не отпускал

точнее тредик повесишь

Alexei
25.10.2017
09:54:56
да я понимаю и в моем представлении также, просто действительных вставаний не было, шуршит в продакшине 24/7, поэтому было немного удивительно

Vladimir
25.10.2017
09:55:12
ну значит быстро отпускают локи что ты не замечаешь

попрофилируй мьютексы и увидишь

Alexei
25.10.2017
09:55:28
может быть

Vladimir
25.10.2017
09:55:30
https://rakyll.org/mutexprofile/

Alexei
25.10.2017
09:55:43
да я уже уволился оттуда, нет доступа к коду и условий его выполнения )))

Vladimir
25.10.2017
09:55:51
нууу

там могут и баги быть

и кто-нибудь где-нибудь мьютексы игнорирует просто напросто

увы частая проблема когда лок берется в одном месте, пишется в другом. Или пишется при взятом RLock'е

Alexei
25.10.2017
09:56:46
это да, согласен

Andrew
25.10.2017
09:56:58
попрофилируй мьютексы и увидишь
Достаточно заглянуть, что делается между lock и unlock мутекса ))

Oleg
25.10.2017
13:03:36
Имеет ли смысл использовать REST подход в обычном приложении используя js ?

Google
Aleksandr
25.10.2017
13:04:33
Имеет ли смысл использовать REST подход в обычном приложении используя js ?
а что, rest используют в необычных приложениях? или как понимать вопрос?

Oleg
25.10.2017
13:06:45
ну, я имел в виду хеловорлд подобные, небольшие приложения. Вопрос заключается именно в использовании PUT DELETE и тп.

Aleksandr
25.10.2017
13:08:32
разверни. не понимаю, почему тебя должны PUT/DELETE беспокоить, тем более на hello world

Alexander
25.10.2017
13:08:48
Если его никто другйо не будет разрабатывать и ты не планируешь его расширять, то делай как душе угодно

Oleg
25.10.2017
13:13:01
Я просто смещаюсь в сторону вебдева, а именно в сторону vuejs(js) и столкнулся с тем, что в HTTP формах используется только GET и POST , что несколько меня обескуражило ибо сама философия REST мне очень понравилась ибо для каждого метода своё действие, а городить /post/delete/{ID} и /post/add/{ID} ну как-то не очень ... (

Roman
25.10.2017
13:17:28
REST конечно хорош, но в больших проектах могут возникнуть сложности. Особенно с кастомными экшенами вроде поиска, фильтров, форм с мультисущьностями. Которые не очень то укладываются в концепцию. Если вам только CRUDL нужен, тогда юзайте REST. Мы изначально выбрали его, но потом он мутировал что-то иное что сложно назвать RESTом

Oleg
25.10.2017
13:22:12
подписываешься на onSubmit, асинхронно дергаешь метод апи любым http методом
понял, спасибо. В любом случае прийдёться дергать определённые скрипты .

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

Oleg
25.10.2017
13:33:47
почти всё я там читал уже, ну ок, гугл не отменяли ещё, пороюсь там, спасибо. Просто если брать конкретно книги про GO , то сторона клиента в основном рассматривается весьма поверхностно, за исключением пожалуй одной книги LvlUpYouWebAppWIthGo, там неплохая база, но хотелось-бы большего.

double
25.10.2017
17:39:47
shtein.ddns.net:8080

Aleksandr
25.10.2017
17:48:09
shtein.ddns.net:8080
че ты все спамишь своим сайтом?

double
25.10.2017
17:48:18
Slava
25.10.2017
18:16:50
за такое можно и бан схлопотать

Mush
25.10.2017
19:55:25
баньте к херам! тем более что сайт перестал работать

Maxim
25.10.2017
19:59:02
Ты наверняка себе DDos организовал, скинув сюда ссылку. Все начали заходить на сайт, делиться ссылкой с друзьями... Так сайт и лег

Google
Dmitry
25.10.2017
20:02:27
Хабраэффект

Alexander
25.10.2017
20:05:39
тут 1000 селовек всего, даже если представить что все попрели, то сайт со статьями без всяких пперсонализированных выборок вряд-ли ляжет

с условием что кеширование какое-нибудь имеется

но без кеша по-моему сейчас никто не делает

Алексей
25.10.2017
20:17:57
Без кэша вряд ли бы тоже лег)

Alexander
25.10.2017
20:22:45
Странное утверждение насчёт кеша

Alexander
25.10.2017
20:23:02
Без него вполне можно

Alexander
25.10.2017
20:23:22
а смысл ?

се

Alexander
25.10.2017
20:23:33
Базы неплохо кешируют если мощности позволяют

Зачем городить лишний слой?

Alexander
25.10.2017
20:24:30
Любые нормальные базы имеют продвинутые кеши в памяти под капотом

Alexander
25.10.2017
20:24:51
))

то есть коннекты к базе ничего не стоят теперь ?

Alexander
25.10.2017
20:25:55
До определённых масштабов об этом можно не беспокоится

Mike
25.10.2017
20:25:57
А ЧТО ТЫ ЗА КАЖДЫЙ КОННЕКТ ПЛАТИШЬ?! ТЕБЯ ОБМАНУЛИ ЕСТЬ БЕСПЛАТНЫЕ БАЗЫ

Alexander
25.10.2017
20:26:02
nginx cache, varnish, memcached...redis и пр. это лишний слой ?

Google
Alexander
25.10.2017
20:26:29
Да, если работает без них

Mike
25.10.2017
20:27:19
ты всю шутку испортил серьезно на нее ответив(

Alexander
25.10.2017
20:27:47
Alexander
25.10.2017
20:30:14
в общем мое личное мнение, на проекты такого рода (сборник статей) можно повесить nginx cache over memcached с соединением по сокету, самый быстрый способ сделать сайт более-менее непробиваемым

Valentin
25.10.2017
20:31:54
Если сайт это бложек с 200 униками в сутки можно вообще не заморачиваться

Kirill
25.10.2017
20:48:35
Учитывая что PostgreSQL/MySQL вполне себе на "среднем" железе выдают десятки тысяч запросов в секунду, прикручивание "с боку" всех этих кэшей зачастую избыточно и несет с собой кучу проблем. Тоже касаемо Редиса, часто реляционки гораздо более шустрые, если есть развесистая логика и ее можно положить в СУБД, чем несколько раз сбегать в Редис и пытаться что-то сделать на стороне приложения

то есть коннекты к базе ничего не стоят теперь ?
Ну, гошный драйвер достаточно неплохо "пулит" конекты, часто открывать не надо, да и много тоже

Kirill
25.10.2017
20:52:54
Тогда лучше просто статический ХТМЛ нагенерить

Alexander
25.10.2017
20:53:11
все-равно из memcached будет быстрее

Kirill
25.10.2017
20:53:25
быстрее чего ?

Alexander
25.10.2017
20:53:35
статических файлов

я же пишу про связку с nginx

nginx может и в статику кешировать

но c memcached это быстрее

суть в том что в memcached будет лежать тот же html но только не на диске а в оперативке

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