Введение в модульное тестирование на Python

Вы только что написали фрагмент кода и не знаете, что делать дальше. Отправлять ли pull request, чтобы коллеги провели ревизию кода или же протестировать его вручную? Конечно же, следует сделать и то, и другое, но с небольшой оговоркой: сначала нужно провести модульное тестирование и убедиться, что код работает, как надо. ПОДРОБНЕЕ

Альтернатива switch в Python

Во многих языках программирования (например, JavaScript) есть операторы switch. Это блок кода, в котором значение сравнивается с цепочкой переключателей case. При обнаружении соответствия выполняется код внутри нужного блока и после него. Кроме того, в части default прописывается значение case по умолчанию. Оператор switch в Python отсутствует. Однако его поведение можно ПОДРОБНЕЕ

Рабочая очередь в Go с RabbitMQ

Мы создадим систему рабочих очередей, в которой будут появляться новые задания. Обработчики (workers) будут следить за очередью и выполнять работу по мере поступления. Система рабочих очередей идеально подходит для фоновых заданий, которые длятся дольше, чем обычный http-запрос. Один из примеров рабочих очередей: приложение обрабатывает загруженные пользователем фото, создает несколько версий ПОДРОБНЕЕ

Знакомство с классами в Python

Всё, что нужно знать о классах Python! Python — это высокоуровневый язык объектно-ориентированного программирования, созданный специально для того, чтобы помочь программистам в написании ясного логичного кода для проектов любого размера. Чёткость, лёгкость в понимании и в то же время мощь — нигде больше не проявляются эти принципы так, как в классах Python. Класс Python Почти ПОДРОБНЕЕ

Эффективное использование словаря (C#) как альтернатива оператору If

Всё больше наших коллег на практике предпочитают избегать применения операторов if. Эти условия, по их мнению, усложняют и прибавляют багов в наши приложения. Но условия лежат в основе программирования, и мы не можем полностью избавиться от операторов if — мы можем лишь сократить их использование. Что такое словарь? Словарь — это структура данных, предназначенная для ПОДРОБНЕЕ

Как реализовать древовидную сортировку в стандартной библиотеке Go

Двоичная куча Итак, двоичная куча — это: Контейнер, предоставляющий свой максимальный элемент за время O(1), добавляющий элемент за O(log n) и удаляющий максимальный элемент за O(log n). Неполное бинарное дерево, каждый узел которого больше или равен своим дочерним элементам. На это свойство кучи я буду ссылаться на протяжении всей статьи. Эти свойства ПОДРОБНЕЕ

Выбираем базу данных

Опытный ли вы инженер-программист или студент, пишущий университетский проект, в какой-то момент вам нужно будет выбрать базу данных для ваших целей. Если вы ранее уже использовали какую-то БД, вы можете просто сказать: “Я выберу эту базу, потому что знаком с ней”. Это вполне подходящее решение, когда производительность не критична для ПОДРОБНЕЕ

Проблема и решение: присвоение имени файлу

Проблема: стандартный изменяемый объект Но сначала разберёмся: что такое изменяемый объект в Python? Изменяемые объекты — это такие объекты, которые можно поменять. Список, множество и словарь — всё это изменяемые объекты. Для примера опишем простенькую функцию: def add(x, y=[]): y.append(x) return y В данной функции add зададим в список (то есть в изменяемый объект) ПОДРОБНЕЕ

Разбираемся с компилятором Go

В статье речь идёт о Go 1.13 Компилятор Go занимает важное место в экосистеме Go. Компиляция — необходимый этап создания исполняемого двоичного кода. Компилятор проходит долгий путь: его пишут на C, переносят на Go и постоянно оптимизируют. Фазы компиляции Компилирование Go состоит из четырёх фаз, которые можно объединить в два этапа: На ПОДРОБНЕЕ

Топ-10 самых распространенных ошибок в проектах Go. Часть 2

Предыдущая часть: Часть 1, Часть 2 Инициализация среза Иногда конечная длина среза бывает известна. Допустим, нужно преобразовать срез Foo в срез Bar, что означает, что они среза будут иметь одинаковую длину. Часто встречаются срезы, инициализированные следующим образом: var bars []Bar bars := make([]Bar, 0) Срез не является магической структурой. Он ПОДРОБНЕЕ