All streams
Search
Write a publication
Pull to refresh
-4
0
Роман @pfihr

Пользователь

Send message

Не против, если я включу эту наработку в свое решение? https://github.com/covrom/gonec

"Компания без менеджеров". Без менеджеров — не бывает. Да и чем менеджеры так плохи, что это был повод? Когда нет менеджеров, значит это тупая перепродажа, с стиле 90-х. Но молодежь тех годов не застала, поэтому на лохотрон все еще попадается.

Уроки для школтников, которые не учились в школе:


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


  2. Не надо думать, что если кто-то сделал публичное API, то он сделал это для кого-то постороннего, кто будет на этом зарабатывать, не делясь с владельцем API. Исключение составляет стратегия захвата рынка своим API.

про роутеры есть интересное решение в книге "Go на практике"

а с сервера события как получать? push?

а, все, я понял, вы про websocket. а я думал просто про бинарный tcp

я что-то пропустил в этой жизни… http идет поверх tcp, и в Go разница с простым бинарным сокетом с передачей структур только в том, что для http есть заголовки и парсер form values.

хм, а разве http идет не поверх сокетов? там же тот же транспорт, нет?

у программистов украсть/перепродать нечего (ну или очень мало, по сравнению с ископаемыми и воздухом), а завидовать их сытой творческой жизни всем остальным неприятно. и от кого вы в таких условиях что то ожидаете?

Согласен, использовал некорректный термин. Внес правки.

все верно, цель заметки была в том, чтобы показать, что изменение мапы в функции не равно изменению слайса

Maps, like channels, but unlike slices, are just pointers to runtime types. As you saw above, a map is just a pointer to a runtime.hmap structure.


Maps have the same pointer semantics as any other pointer value in a Go program. There is no magic save the rewriting of map syntax by the compiler into calls to functions in runtime/hmap.go.

при этом, значения в этой структуре не меняются при изменении содержания и его реаллокации в памяти. В Вашем примере вы переопределяете переменную в рамках области видимости, это не связано со свойствами мапы.

В первой лекции в конце ошибка, при передаче слайса и сложных типов, они НЕ передаются по ссылке, а передается копия структуры с указателем (копия дескриптора переменной). Если внутри фугкции произойдет изменение этого аргумента такое, что потребует реаллокации массива в памяти, то внутри функции создастся копия слайса с массивом, и снаружи функции дальнейшие изменения уже не будут видны. Поэтому и рекомендуют передавать указатели на сложные типы, а не сами переменные типа.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity