Седмичният бюлетин на GoPa Golang е част от FAUN Developer Community. Ние помагаме на разработчиците да учат и да растат, като ги държим в крак с това, което има значение.

📝 Откриване

🎉🔗 Технологични ентусиасти, сглобете! 🔗🎉

Обаждам се на всички герои на DevOps, моряци на Kubernetes, магьосници на Golang и местни облаци! 🚀
FAUN има Subreddits, които просто ви очакват. Присъединете се към общността, където споделянето е грижа, а знанието е неограничено! 🌟

  • 💻 Живеете и дишате DevOps? „Присъединете се към DevOpsLinks!“
  • ⚓ Овладявате ли K8s? „Отплавайте с KubernetesLinks!“
  • 🐹 Полудявате ли по Go? „Влезте в GolangLinks!“
  • 🔐 Имате ли сигурност вплетена във вашия код? „Осигурете си място в DevSecOpsLinks!“
  • 🐍 Pythonista по сърце? „Плъзнете се в PythonLinks!“
  • 🤖 Любопитни ли сте за безкрайните възможности на AI? „Бъдете умни с AILinks!“
  • ☁️ Навигирате в облачното пространство? „Полетете през CloudNativeLinks!“
  • 💡 Имате ли код във вените си? Споделете вашите фрагменти в ProgrammingLinks!
  • 🌩️ Овладявате лазурното небе? „Полетете високо в AzureLinks!“
  • 🌍 Проучвате хоризонта на облака на Google? „Открийте чудеса в GoogleCloudLinks!“
  • 🌦️ Плавате през огромния облак на Amazon? „Влезте в AWSLinks!“
  • ⚡ Използване на силата на Без сървър? „Енергизирайте на ServerlessLinks!“

Включете се в провокиращи мисли дискусии, споделете своите могъщи проекти, потопете се в мъдростта на гурутата в индустрията и изградете връзки с феновете на технологиите по целия свят! 🌍🔗💬

Сферите на знанието са безкрайни — нека ги изследваме заедно! 🚀🔥

🔗 От мрежата

„Колко голям трябва да бъде един език за програмиране?“

Езиците за програмиране имат тенденция да нарастват по размер с времето, което ги прави по-трудни за надеждно използване. Този растеж се движи от желанието за добавяне на нови функции и решаване на конкретни проблеми, но идва с цената на повишена сложност и когнитивно натоварване за потребителите.

python 🤝 `отлагане`

Python има библиотека, наречена магьосничество, която позволява внедряването на финализатори за обхват, подобно на командата defer на Go. Тази библиотека използва AST техники за пренаписване и компилиране на живо, за да постигне желаното поведение без необходимост от декоратори или прекомерни отстъпи.

✅ От 26 минути до 20 секунди: Използване на pprof за оптимизиране на големи GraphQL операции в Go

Механизмът GraphQL с отворен код, graphql-go-tools, използван от WunderGraph, изпита значителна разлика в производителността, когато клиент насочи мутация през техния шлюз, изграден върху graphql-go-tools. Докато мутацията отне около 1 минута, когато се изпълни директно срещу техните GraphQL сървъри, пренасочването й през шлюза доведе до приблизително 70 минути. Разследването разкри, че проблемът с производителността е причинен от обработката на голяма групова операция със 70 000 входни елемента и беше намерено решение чрез преместване на данните в променливите JSON. Чрез прилагане на оптимизации за JSON кодиране и въвеждане на входна стойност, времето за изпълнение на операцията беше драстично намалено от 26 минути на 150 милисекунди, впечатлявайки клиента с 98,71% подобрение. Освен това използването на шлюза се оказа по-бързо от изпълнението на мутацията директно срещу GraphQL сървъра поради оптимизирания парсер и нормализиращ механизъм на graphql-go-tools.

Обявяване на GoReleaser v1.19 — голямото издание

Последната версия на GoReleaser включва почти 200 ангажимента, въвеждайки функции като поддръжка на Nixpkgs, генериране на манифест на Winget и интегриране на заявка за изтегляне с Homebrew, Krew и Scoop. Той също така включва подобрения в сигурността, отхвърляне, подобрения на шаблони и корекции на грешки, което го прави цялостна актуализация за разработчиците на Go.

„Преглед на кода: Трябва ли проектът Go да спре да импортира PR-и?“

✅ Трагичната смърт на наследството

След години на застъпничество за наследяване в програмирането, авторът в крайна сметка осъзна предимствата на композицията пред наследяването, особено по отношение на дублиране на код и четливост. Те обясняват разликите между двете парадигми и дават примери в подкрепа на своя аргумент.

Тръбопровод AutoML за таблични данни на VertexAI в Go

Автоматизираното машинно обучение (AutoML) направи революция в процеса на разработване на модел за машинно обучение, като автоматизира различни етапи от конвейера, елиминира ръчния труд и го направи по-бърз и по-достъпен. С AutoML разработчиците и специалистите по данни могат да ускорят разработването на модели, да демократизират машинното обучение и да се съсредоточат върху задачи от по-високо ниво и специфични за домейна предизвикателства.

„Времето не е примитив за синхронизация“

Използването на времето като механизъм за синхронизация в програмирането може да доведе до нестабилен и ненадежден код, причинявайки случайни повреди на тестове, скриптове и приложения. Вместо това се препоръчва да се използват подходящи механизми за синхронизация като канали, за да се гарантира желаното състояние. За да се обезсърчи използването на time.Sleep в тестове, инструмент, наречен nosleep, е въведен като Go linter, който не успява да премине кода, ако открие наличието на time.Sleep. Въпреки това, ако има истинска нужда да се използва времето като метод за синхронизация, може да се добави магическа команда „//nosleep:bypass“ с валидна причина за отмяна на проверката на линтера.

„Системата на Rust Module насърчава лоши практики (в сравнение с Go)“

Дизайнът на каси и модули на Rust, с възможността да има циклични зависимости и да организира модули като дърво в рамките на кутия, насърчава растежа на големи каси, вместо да насърчава използването на множество каси с разумни размери. За разлика от това, дизайнът на пакети и файлове на Go, с ациклични зависимости и плоска структура на директория, естествено обезсърчава създаването на големи пакети и улеснява управлението на множество пакети. Тази разлика в избора на дизайн засяга организацията на кода и скоростта на компилиране, което в крайна сметка води до по-добре проектирани системи в Go в сравнение с Rust.

Абстракции на база данни за Golang

Assembled, компания, която използва Golang като свой ексклузивен бекенд език от 2018 г., разработи три абстракции, за да отговори на предизвикателствата на достъпа до бази данни в Golang. Тези абстракции включват интерфейс за споделяне на код между едно- и многоредови гетери, помощен метод за обработка на грешки и затваряне на редове при сканиране от базата данни и интерфейс за споделяне на код между транзакции и не-транзакции. Тези абстракции подобряват производителността на заявките, гарантират правилното обработване на връзките към базата данни и улесняват повторното използване на кода в различни контексти.

„Сигурност на веригата за доставки за Go: компрометирани зависимости“

Нарастването на атаките срещу софтуера във веригата за доставки направи от решаващо значение за разработчиците с отворен код, които използват Go, за да наблюдават и оценяват рисковете от техните зависимости. Go предоставя вградени защити, за да ви помогне да се доверите на целостта на пакетите, включително възможност за откриване и предотвратяване на злонамерени версии или оттегляне на зависимости.

„Използване на пакет Golang в Python с помощта на Gopy“

За статично валидиране на PromQL заявки в CLI инструмент, базиран на Python, авторът се изправи пред предизвикателството да намери подходящ пакет на Python. Вместо това те решиха да използват анализатора MetricsQL на VictoriaMetrics, TSDB с отворен код, подобен на Prometheus. За да включат кода на Go в проекта на Python, те използваха Gopy, популярна библиотека, която компилира код на Go в модул на Python, опростявайки процеса за разработчиците на Python, които не са запознати с Go и C.

⭐ Поддръжници

Изключителна 20% отстъпка за „Cloud Native Microservices с Kubernetes“ — Оферта за ограничено време!

Ние сме развълнувани да обявим специална оферта за нашата широко аплодирана книга „Облачни микроуслуги с Kubernetes — изчерпателно ръководство за изграждане, мащабиране, внедряване, наблюдение и управление на високодостъпни микроуслуги в Kubernetes“.

Започвайки от днес и продължавайки до 31 юли, ние предлагаме изключителна 20% отстъпка от редовната цена!

За да се възползвате от тази оферта, просто използвайте този купон връзка .

Не пропускайте тази възможност. Не забравяйте, че офертата е валидна само до 31 юли. Грабнете вашето копие сега и отключете пълния потенциал на родните в облак микроуслуги с Kubernetes!

Очакваме с нетърпение да дадем възможност на вашето пътуване в света на облачните изчисления!

Приятно учене!
Екип на FAUN

👉 Разпространете информацията и помогнете на разработчиците да ви намерят, като популяризирате проектите си във FAUN. Свържете се за повече информация.

🛍️ Магазин Swag

Нови постъпления на ByteVibe: Подложки за бюро

❤️ 20% изключителна отстъпка за FAUNers за всички продукти (+безплатна доставка е включена), когато използвате кода „THANKSFAUN“.

💬 Дискусии

„Какво повиши увереността ви като нов програмист?“

Начинаещите програмисти могат да придобият увереност, като започнат с малки проекти и постепенно изградят своите умения, подобно на това как начинаещите в други занаяти могат да станат квалифицирани занаятчии.

⚙️ Инструменти

TomWright/dasel

Избирайте, поставяйте и изтривайте данни от JSON, TOML, YAML, XML и CSV файлове с един инструмент. Поддържа конвертиране между формати и може да се използва като Go пакет.

frain-dev/конвой

Портал за уеб кукички с отворен код; За входящи и изходящи събития.

goravel/goravel

Рамка на Golang за уеб занаятчии. Поклон пред Laravel.

ent/ent

Рамка на обект за Go

👉 Разпространете информацията и помогнете на разработчиците да намерят и следват вашия проект с отворен код, като го популяризирате във FAUN. Свържете се за повече информация.

🤔 Знаехте ли?

Компютърът за насочване на Аполо 11, който помогна на хората да кацнат на Луната, имаше по-малко процесорна мощност от съвременен смартфон.

😂 Мем на седмицата

❤️ Благодаря за четенето

👉 Никога не пропускайте проблем
Присъединете се към общността на разработчиците на FAUN и се абонирайте за нашия бюлетин тук.

👋 Поддържайте връзка и ни следвайте в социалните медии:
- 💼LinkedIn
- 📝Medium
- 🐦Twitter
- 👥Facebook
- 📰Reddit
- 📸Instagram

👌 Беше ли полезен този бюлетин?
Ще сме ви много благодарни, ако можете да го споделите с приятелите си! Можете също да „дарите“, за да ни помогнете да поддържаме този бюлетин.

ℹ️ Имате въпрос или обратна връзка?
Чувствайте се свободни да се свържете с нас на [email protected]. Ще се радваме да чуем от вас!

🤩 Искате ли да спонсорирате нашия бюлетин?
Свържете се с нас на [email protected] и ние ще се свържем с вас възможно най-скоро.