XZTVC.ru | Еще один блог разработчика
Опубликовано: 27 февраля 2023 г. 14:36 | Автор: echodiv | Категория: Разработка | 👁 786
Создание временного файла и временной директории в Golang
Go в своей стандартной библиотеке предоставляет инструменты для создания временного файла и временной директории. Для этого можно использовать пакет "os", в котором есть функции MkdirTemp и CreateTemp. Но для удаления временного файла и директории нужно явно указать их удаление для этого можно использовать os.RemoveAll и os.Remove соответственно.
Опубликовано: 5 декабря 2022 г. 7:21 | Автор: echodiv | Категория: Разработка | 👁 699
Организация SQL кода с использованием шаблонов Go
Как организовать хранение SQL кода внутри проекта? В интрнете можно найти несколько вариантов:
- Использовать файлы
- Использовать константы
- Использовать хранимые процедуры и представления
- Использовать порождающие шаблоны
- Использовать ORM
Мне больше всего нравится второй вариант - хранить запросы в константах внутри кода. Но, честно говоря, необходимости в другом подходе у меня не было. А с использованием шаблонов Go хранение запросов в константах становится крайне удобным. Да, шаблоны можно хранить и в файлах. Но поставлять продукт вместе с файлами, достуаными для редактирования не лучшая идея. Шаблон может сильно отличаться от финального варианта запроса и редактирование его без полного понимания, как он будет обработан не лучшая идея.
Опубликовано: 25 ноября 2022 г. 17:01 | Автор: echodiv | Категория: Администрирование | 👁 663
Создание загрузочного диска стандартынми средствами Ubuntu
Небольшая шпаргалка по тому, как самым простым способом создать установочный диск на Ubuntu. Для того, чтобы сделать из обычной карты памяти установочный диск воспользуемся стандартными средствами. А именно df и dd.
- df (disc free) - утилита для отображения всех файловых систем по имени устройств. Так как будет нужно имя устройства, чтобы передать его в параметр утилиты dd, то это отличный вариант.
- dd (dataset definition) - утилита для копирования блочных данных, она переносит по одному блоку указанного размера с одного места в другое. Можно сказать что это блочный cp.
Опубликовано: 5 ноября 2022 г. 21:51 | Автор: echodiv | Категория: Администрирование | 👁 607
Поиск по содержимому файлов в Linux
Бывают ситуации, когда нужно найти какой-то текст внутри файла, но нет понимания в каком файле он находится. Это может быть поиск по логам, либо какая-то часть исходного кода. Не всегда можно открыть проект любимой IDE, чтобы найти и отредактировать нужные строки.
Для этого в Linux есть достаточно большой набор инструментов. Посмотрим на них.
Опубликовано: 20 октября 2022 г. 22:52 | Автор: echodiv | Категория: Разработка | 👁 1825
Метки golang
Опубликовано: 25 сентября 2022 г. 21:30 | Автор: echodiv | Категория: Разработка | 👁 1505
Структурные теги в golang
type S struct { Field int `tagname:"uno,dos"` }
Опубликовано: 24 июля 2022 г. 1:39 | Автор: echodiv | Категория: Разработка | 👁 658
Пишем middleware для стандартных net/http хэндлеров
Middleware или промежуточное ПО - распространенный шаблон, помогающий вынести во внешний слой общую логику для разных реализаций одного интерфейса. Думаю такое определение имеет право на жизнь.
Представим, что нам нужно написать веб-сервер на стандартном Go пакете net/http. Как же можно реализовать middleware?
Опубликовано: 23 июля 2022 г. 23:10 | Автор: echodiv | Категория: Разработка | 👁 3437
Тестирование в GO с использованием "моков"
Важной частью создания програмного обеспечения является покрытие кодовой базы тестами.
В основании всем известной пирамиды тестрования лежат юнит тесты. Не будем с ней спорить, а будем писать юниты, много юнит тестов. Не всегда можно просто взять и написать тест, иногда для тестирования нам нужно заглушить какие-то зависимости, будь то доступ в базу данных, сетевое взаимодействие или какая-нибудь магия.
Естественно, для этого придумали "моки". Придумали не только их, но в данной статье речь пойдет только про моки и немного про кодогенерацию, не писать же их руками.
Опубликовано: 12 июля 2022 г. 21:30 | Автор: echodiv | Категория: Разработка | 👁 949
Удалить __pycache__, pyc, pyo файлы после исполнения python программы
После исполнения python программы исходный код компилируется в байт-код для ускорения выполнения программы при повторном вызове.
Иногда это может стать проблемой. Преположим, при деплое какого-нибудь сервиса руками, после выполнения тестов на локальной машине. Без гита, без CD. Иногда так проще.
Как лучше всего удалить все папки __pycache__ и файлы .pyc/.pyo?
Опубликовано: 30 июня 2022 г. 19:20 | Автор: echodiv | Категория: Разработка | 👁 787
Типы данных в Go
Любые данные на компьютере хранятся в виде битов. Это те самые нули и единицы. И именно от типа данных будет зависеть как программа будет интерпретировать эти данные.
Например: один символ в Go представляет собой набор битов с типом rune. Если мы выполним следующий код
package main import "fmt" func main() { var a rune = 'A' fmt.Println(a) }
То увидим не "А", а 65, потому что Go так решил, собственно если мы поменяем rune на int ничего не поменяется. Мы отдали символ, а получили число.
Важно хранить наши биты в нужных типах данных, либо понимать как работает компилятор языка, чтобы не было неожиданностей, но сейчас не об этом.
Так какие же типы данных есть в Go?