«Раскрывать API, принимающий SQL, — это безумие» — скажете вы. Особенно, если API общедоступен. Это небезопасно и приведет к атакам и к привязке внутренней реализации к определенной технологии. Можно долго рассуждать, но так ли это на самом деле?
Что, если вам необходимо обрабатывать запросы, слишком сложные для простых CRUD API, но не настолько сложные, чтобы оправдать использование GraphQL?
Наткнувшись на пример с языком Scala, автор статьи решил переписать то же самое на Go. Несмотря на то, что Scala обладает расширенными языковыми возможностями, код на Go оказался так же прост в написании, как и Scala.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Applied Go
SQL as API in Go
Non-trivial queries can make REST APIs complicated. Valentin Willscher suggests accepting SQL where clauses, with the necessary security checks. Here is how to do it in Go.
🌚5👏3🤔3👍1
Embedded Go является альтернативой TinyGo для запуска Go-кода на микроконтроллерах.
С момента своего первого выпуска Go был тесно связан с сетевым программированием. К сожалению, до сих пор Embedded Go не имел сетевых возможностей, в основном из-за сильной зависимости пакета net от сетевых возможностей базовой операционной системы, но это изменилось👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍5❤1😁1🥱1
This media is not supported in your browser
VIEW IN TELEGRAM
huh
. 👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥55
What are your Go dependencies capable of.pdf
1.1 MB
🤔 На что способны ваши зависимости Go?
govulncheck может обнаруживать известные уязвимости, но как можно принять обоснованные решения о поверхности атаки пакета, прежде чем проект будет от него зависеть?
Использовать подходы современной безопасной разработки: от DAST/SAST до анализа возможностей пакетов Go в вашем проекте. О последнем и идет речь в статье на примере использования CLI-инструмента capslock.
👉 Читайте на Medium или в PDF
govulncheck может обнаруживать известные уязвимости, но как можно принять обоснованные решения о поверхности атаки пакета, прежде чем проект будет от него зависеть?
Использовать подходы современной безопасной разработки: от DAST/SAST до анализа возможностей пакетов Go в вашем проекте. О последнем и идет речь в статье на примере использования CLI-инструмента capslock.
👉 Читайте на Medium или в PDF
👍11❤4🔥3
Как вы внедряете обучение в свою жизнь? Поделитесь опытом
Anonymous Poll
43%
Еле втискиваю обучение в расписание
11%
Кроме учёбы у меня нет других занятий
15%
Приходится отказываться от хобби
17%
Никак, пока не получается
9%
Я не хочу больше учиться(
5%
Свой вариант (напишу в комментариях)
Подборка лучших статей «Библиотеки программиста» за декабрь: сохраняй в заметки, чтобы не пропустить #самыйсок
🏃 Самоучитель по Go для начинающих:
👉 Часть 3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
👉 Часть 4. Переменные. Типы данных и их преобразования. Основные операторы.
📁💡Где программисту взять идеи для портфолио
📈 Обзор рынка труда в ИТ: III квартал 2023 года
✍️ Почему отсутствие технической документации убьёт ваш проект?
🎄🎁 10 абсурдных подарков программисту на Новый год
🏃 Самоучитель по Go для начинающих:
👉 Часть 3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
👉 Часть 4. Переменные. Типы данных и их преобразования. Основные операторы.
📁💡Где программисту взять идеи для портфолио
📈 Обзор рынка труда в ИТ: III квартал 2023 года
✍️ Почему отсутствие технической документации убьёт ваш проект?
🎄🎁 10 абсурдных подарков программисту на Новый год
🔥5🥱3🤔1🌚1
Подводные камни цикла
☑️ Основы
☑️ Распространённые ошибки при использовании цикла range
☑️ Понимание и оптимизация
☑️ Изменения в Go 1.22
☑️ Адаптация к новым изменениям
👉 Читать
range
, как с ними бороться и что ждёт в версии 1.22: гайд для Go-разработчика☑️ Основы
☑️ Распространённые ошибки при использовании цикла range
☑️ Понимание и оптимизация
☑️ Изменения в Go 1.22
☑️ Адаптация к новым изменениям
👉 Читать
❤13🥱7👍4🤔2
Сон — это важно. А какими лайфхаками для глубокого сна вы пользуетесь?
Anonymous Poll
19%
Ложусь спать и просыпаюсь в одно и то же время
8%
Убираю телефон подальше, чтобы не достать
20%
Засыпаю в проветренной, прохладной и темной комнате
18%
Час-два смотрю мемы перед сном
8%
Ложусь рано и встаю рано
32%
Просто сплю 7-8 часов
4%
Гуляю на свежем воздухе перед сном
22%
А что вообще такое глубокий сон?
32%
Никакие, у меня проблемы со сном
3%
Свой вариант (напишу в комментариях)
🥱13
🏃 Самоучитель по Go для начинающих. Часть 5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
В этой части самоучителя мы узнаем про составные части любой программы — условные конструкции и циклы, рассмотрим особенности их реализации в Go, а также решим несколько занимательных задач для закрепления теоретического материала.
👉 Читать статью
👉 Часть 1
👉 Часть 2
👉 Часть 3
👉 Часть 4
В этой части самоучителя мы узнаем про составные части любой программы — условные конструкции и циклы, рассмотрим особенности их реализации в Go, а также решим несколько занимательных задач для закрепления теоретического материала.
👉 Читать статью
👉 Часть 1
👉 Часть 2
👉 Часть 3
👉 Часть 4
👍18❤1
Одним словом, это было откровенное размышление о 14-летнем пути Go как проекта с открытым исходным кодом.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
⚾️ Arkanoid на Go: пример простой игры, разработанной с помощью Ebitengine и архитектурного паттерна Entity-Component-System.
👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24❤3👍1
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
❤4👍3⚡1
Запись открытого занятия, цель которого — раскрыть подводные камни улучшения производительности проектов на Go, научиться писать бенчмарки и использовать их для оптимизации кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🎉3🥱1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💡Шпаргалка по REST API для начинающих
📌 Шесть фундаментальных принципов, которые служат строительными блоками архитектуры REST API:
1️⃣ Клиент-серверная архитектура
2️⃣ Взаимодействие без сохранения состояния
3️⃣ Возможность кэширования
4️⃣ Многоуровневая система
5️⃣ Поддержка кода по требованию
6️⃣ Унифицированный интерфейс
👉 Читайте подробнее на Medium или в PDF (файл в комментариях)
📌 Шесть фундаментальных принципов, которые служат строительными блоками архитектуры REST API:
1️⃣ Клиент-серверная архитектура
2️⃣ Взаимодействие без сохранения состояния
3️⃣ Возможность кэширования
4️⃣ Многоуровневая система
5️⃣ Поддержка кода по требованию
6️⃣ Унифицированный интерфейс
👉 Читайте подробнее на Medium или в PDF (файл в комментариях)
👍7❤2😁1
🤔
Стандартный пакет Go
Но! Не все архитектуры предлагают инструкции CAS, на которую можно было бы полагаться при реализации
🔗 Читать
CompareAndSwap
в Go не всегда является Compare and swapСтандартный пакет Go
sync/atomics
предоставляет функции для использования базовых атомарных операций на уровне ЦП, таких как сравнение с обменом (compare and swap, CAS), через atomic.CompareAndSwapT
(где T— целочисленный тип).Но! Не все архитектуры предлагают инструкции CAS, на которую можно было бы полагаться при реализации
atomic.CompareAndSwapT
в Go. Тем не менее, Go должен компилировать эту функцию в нечто семантически эквивалентное. Разбираемся, во что именно👇🔗 Читать
👍11
func Map[T any, R any](collection []T,
iter func(item T, index int) R) []R {
result := make([]R, len(collection))
var wg sync.WaitGroup
wg.Add(len(collection))
for i, item := range collection {
go func(item T, i int) {
res := iter(item, i)
result[i] = res
wg.Done()
}(item, i)
}
wg.Wait()
return result
}
По сути, код перебирает срез элементов типа
T
и запускает горутину для каждого элемента. Все горутины записывают свой результат в один и тот же срез result
одновременно, без использования мьютексов.📌 Является ли срез
result
разделяемой памятью? В конце концов, это единая, непрерывная структура данных.С другой стороны, каждая горутина пишет только в индекс, который ей был назначен, поэтому одновременная запись в одно и то же место не произойдет. И срез
result
не читается до тех пор, пока все пишущие горутины не закончат работу.Таким образом, даже несмотря на то, что горутины пишут в один и тот же срез, они, кажется, придерживаются одного из постулатов:
Don't communicate by sharing memory, share memory by communicating
💬 Что думаете?
Please open Telegram to view this post
VIEW IN TELEGRAM
Reddit
From the golang community on Reddit
Explore this post and more from the golang community
🥱10👍7❤6🤔2🌚2
Please open Telegram to view this post
VIEW IN TELEGRAM
WunderGraph
Introducing astjson: Transform and Merge JSON Objects with Unmatched Speed in Go
🤔4🥱3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏖️ Синдром упущенного отпуска: почему так опасно игнорировать заслуженный отдых
Представьте: вы выиграли путевку на пляж с золотым песком и изумрудным океаном. Но радость быстро сменяется разочарованием — вместо коктейля в руках по-прежнему клавиатура и мышка. И вы понимаете — это всего лишь галлюцинации изможденного мозга, который умоляет вас остановиться и, наконец, сделать перерыв. Но мы ведь трудоголики, правда?
🔗 Читать статью
🔗 Зеркало
Представьте: вы выиграли путевку на пляж с золотым песком и изумрудным океаном. Но радость быстро сменяется разочарованием — вместо коктейля в руках по-прежнему клавиатура и мышка. И вы понимаете — это всего лишь галлюцинации изможденного мозга, который умоляет вас остановиться и, наконец, сделать перерыв. Но мы ведь трудоголики, правда?
🔗 Читать статью
🔗 Зеркало
👏8🥱6