SWE notes
385 subscribers
15 photos
1 video
284 links
Канал про разработку ПО и все что с этим связано.

В нем я делюсь как авторскими материалами из своего блога https://www.swe-notes.ru так и полезными ссылки на другие ресурсы

По вопросам сотрудничества обращаться @kuznetsovin
Download Telegram
Недавно наткнулся на простенький Mqtt брокер написанный на Go, единственный минус который бросился в глаза это отсутствие масштабирования, но думаю это скоро поправят..

#mqtt #go

https://github.com/DrmagicE/gmqtt
Howto по использованию новую директиву go:embed, с помощью которой можно упаковывать файлы ресурсов в бинарник Go и появится она в Go 1.16.


#go #goembed

https://blog.carlmjohnson.net/post/2021/how-to-use-go-embed/
Статья о том как происходит выполнение HTTP запроса при работе со стандартной библиотекой в Go

#go #http #web #std

https://eli.thegreenplace.net/2021/life-of-an-http-request-in-a-go-server/
Ну и еще одно self-hosted решение Focalboard (https://www.focalboard.com/), которое является альтернативой для таких продуктов как Trello и Asana

#go #trello #selfhosted
В последнее время я увлёкся изучение вопроса ИБ и чтобы лучше разобраться в теме инжекта кода написал статью о том как это сделать в Linux.

#go #c #security #ld_preload

https://www.swe-notes.ru/post/ld-preload-golang/
Обзорная статья патернов для конкуренции в Go, подойдёт для новичков

#go #concurrent #pattern

https://marksalpeter.com/concurrent-api-patterns-in-go-52fcb5a9c681
Интересная библиотека для формирования Web страниц на основе html компонентов, без написания собственно html...

#go #componetns
https://www.gomponents.com/
Большая статья о подводных камнях в "простом" языке Go.

#golang #go

https://rytisbiel.com/2021/03/06/darker-corners-of-go/
Интересная статья о сравнении Go и С для встраиваемого приложения.

Если в кратце команда выбирала язык для создания приложения под кастомый образ Linux. В кандидатах были Go, C, C++ и в итоге ребята остановились на Go

#Go #C #embeded
Forwarded from Блог*
#prog #go #article

Understanding Real-World Concurrency Bugs in Go (PDF)

In this paper, we perform the first systematic study on concurrency bugs in real Go programs. We studied six popular Go software including Docker, Kubernetes, and gRPC. We analyzed 171 concurrency bugs in total, with more than half of them caused by non-traditional, Go-specific problems. Apart from root causes of these bugs, we also studied their fixes, performed experiments to reproduce them, and evaluated them with two publicly-available Go bug detectors.

<...>

Our study found that message passing does not necessarily make multithreaded programs less error-prone than shared memory. In fact, message passing is the main cause of blocking bugs.

<...>

We believe that message passing offers a clean form of inter-thread communication and can be useful in passing data and signals. But they are only useful if used correctly, which requires programmers to not only understand message passing mechanisms well but also other synchronization mechanisms of Go.

Надо отметить, что результаты могут быть искажены тем, что:
а) выборка только из шести проектов (Docker, Kubernetes, etcd, CockroachDB, BoltDB, gRPC-go);
б) рассматриваются только баги, которые были исправлены.
👍1
A 10x Faster TypeScript

MS решили переписать компилятор TypeScript переписали с TypeScript на Go и это дало уже дало ускорение в прототипе ~10 раз. По словам авторов Go выбран за оптимальное размещение структур в памяти, GC и удобный подход к concurrency.

#Go #js