Comments 12
Привет! Я долго тружусь над статьями, но некоторыми мыслями или наблюдениями хочется делиться в более быстром и доступном формате, что-то хочется обсудить или узнать у более опытных людей)
Я решил, что хочу начать вести свой ТГ-канал и делиться мыслями там: https://t.me/siliconchannel. Надеюсь никого не смущает такая самореклама в комментариях к своей статье, кому-то может быть это интересно
Привет! Я долго тружусь над статьями, но некоторыми мыслями или наблюдениями хочется делиться в более быстром и доступном формате, что-то хочется обсудить или узнать у более опытных людей)
Я решил, что хочу начать вести свой ТГ-канал и делиться мыслями там: https://t.me/siliconchannel. Надеюсь никого не смущает такая самореклама в комментариях к своей статье, кому-то может быть это интересно
Вот здесь
// newBlob выделяет Blob заданного размера (в KB)
func newBlob(kb int) Blob {
return &Blob{data: make([]byte, kb
1024)}
}
строкаreturn &Blob{data: make([]byte, kb1024)}
это какой то "сахар"? Не могу понять синтаксис...
А почему не плашки "перевод"? А то эти ошибки вида "объект acts как прокси" и прочие "друзья переводчика" так и сквозят по тексту
Потому что переводом это не является. Если такое вкидываете - кидайте оригинал. Некоторые части могли быть взяты из разных англоязычных источников.
Конечно не является. Вы понадергали кусков, даже не проверив их. Уже первый пример кода не будет компилироваться, потому что нет определения getHeapSize() (оно не сложно, но в самом деле, зачем?).
Кстати, если добавить отсутствующие части, то результат работы будет несколько неожиданным, распечатывать 1000kb нулей такое себе.
Так и что плохого в том, что я взял инфу из множества англоязычных источников и собрал в понятный русскоязычный материал?) Инфа проверенная, слабые указатели именно так и работают
Статья про Weak pointers, расписывать каждую функцию - для чего? Сделать код более сложным к пониманию?) Если вы хотите, чтобы я вас научил писать код, можете постучаться в личку, я могу проработать с вами вопросы написания кода и функций
Использование текста без указания первоисточника называется плагиатом.
Я ни слова не говорил о "расписывании каждой функции", только обратил внимание на то, что вы копировали нерабочий код.
Если вдруг предположить, что кто-то купится на ваше предложение "обучения", замечания о плагиате и самом качестве материала должны быть достаточными аргументами для того, чтобы избежать потерь времени.
Вывод: вы понятия не имеете о репутации.
Обращение к документации является плагиатом?) Хотите читать не плагиат - go.dev, там первоисточник, все остальное - плагиат
То что не расписана функция и у вас не завёлся код - очевидно. Реализация функции опущена, статья не про неё.
Никто вам услуги не навязывал, а по-дружески предложил научить программированию, если с этим есть проблемы
Как будет критика по существу, что конкретно в теме слабых указателей разобрано плохо или что-то вам не понятно в статье - смело пишите, с радостью отвечу. С моей точки зрения в статье очень понятно объяснена основная тема.
нн за мою репутацию переживать не стоит, займитесь своей)
Спасибо за статью, помогла наконец разобраться что это за зверь такой)
По примеру с кешом не очень понятно, получается что если кеш хранит только weakptr, то после того как в него положили значение оно почти сразу удалится оттуда GC, так как указателей то больше нет. Получается это такой кеш, который живет до следующего GC?
Уж очень специфические кейсы такого кеша - вместо того, чтобы хранить N-ное время в кеше и очищать в горутине - мы получаем кеш с TTL до второго GC. Т.е можно положить что-то в кеш из базы, и мы не успеем им воспользоваться - кеш будет просто самоочищаться и постоянно дергать базу.
Если честно - пока для себя применения на нашел
разработчики Go отмечают, что для поддержки слабых указателей «очень мало чего в GC пришлось менять».
По измененному алгоритму работы gc не совсем понятно, как обрабатывается случай получения сильного указателя во время сборки мусора. То есть, что произойдет, если вызвать Pointer.Value в промежутке между пометкой объекта как недостижимого и обнулением указателя промежуточного блока?
Глубокий разбор новых указателей в Go 1.24: слабые указатели и их реализация