Search
Write a publication
Pull to refresh
2
0.1
Сергей @Chelyuk

User

Send message

Приложение на Go шаг за шагом. Часть 3: форматирование и обёртывание ответов JSON

Level of difficultyMedium
Reading time7 min
Views2.9K

Привет! Я Владислав Попов, автор курса «Go-разработчик с нуля» в Яндекс Практикуме. В серии статей я хочу помочь начинающим разработчикам упорядочить знания и написать приложение на Go с нуля: мы вместе пройдём каждый шаг и создадим API для получения информации о книгах и управления ими. 

В прошлых частях мы создали сервер с тремя эндпоинтами, добавили базовую конфигурацию, логгер и обновили обработчики для возврата ответов в формате JSON. В этой статье будем продолжать развивать наш сервис и узнаем про более продвинутые способы работы с JSON.

Читать далее

Почему Python стал языком нейросетей и как это работает на практике

Level of difficultyEasy
Reading time8 min
Views17K

Python давно перестал быть просто «языком скриптов» и уверенно вышел в лидеры среди инструментов для нейросетей. Его синтаксис понятен «с первого взгляда», а мощные библиотеки позволяют сосредоточиться на идее, а не на рутине. Сегодня, от первых численных расчётов в NumPy до сложных моделей в TensorFlow и PyTorch, всё строится вокруг привычного Python-кода. 

В этой статье мы пройдём путь от базовых скриптов до «ручных» нейросетей и ноукод-решений, чтобы понять, почему именно Python стал стандартом в мире ИИ и как с его помощью оживить ваши первые нейросети.

Читать далее

Автоматизация рутины в Postman (часть 2): 10 Post-response скриптов, которые упростили мне жизнь

Level of difficultyMedium
Reading time19 min
Views4.9K

Как понять, что API отработало корректно? Как убедиться, что в ответе пришли нужные данные? И как использовать эти данные в следующих шагах, выстраивая сложные тестовые цепочки?

Именно здесь на сцену выходят post-response скрипты. Это код, который выполняется после получения ответа от сервера. Его основная задача – анализ, валидация и обработка полученных данных. Эти скрипты – ваши глаза и уши в мире API-тестирования, позволяющие автоматически проверять всё: от статус-кода до мельчайших деталей в теле JSON.

В этой статье мы рассмотрим 10 самых полезных post-response скриптов, которые превратят ручную проверку ответов в быстрый и надежный автоматизированный процесс. Давайте завершим наш путь к эффективному тестированию API!

Читать далее

Как грамотно организовать тесты в Playwright

Level of difficultyMedium
Reading time8 min
Views4.1K

При работе со сквозным тестированием (E2E, end-to-end) в Playwright критическое значение имеет поддержание упорядоченной и масштабируемой тестовой базы. Хорошо организованная структура не только улучшает поддерживаемость, но и облегчает адаптацию новых коллег. В этой статье мы рассмотрим, как организовать тесты в Playwright наилучшим образом, начиная со структуры папок и заканчивая использованием хуков, аннотаций и тегов.

Читать далее

Красивый GitLab CI: extends, якоря, include, trigger

Level of difficultyMedium
Reading time9 min
Views11K
image

В последнее время мне довелось столкнуться с огромным количеством CI в GitLab. Я каждый день писал свои и читал чужие конфиги. Мой день буквально выглядел как:
Читать дальше →

Ansible, bash и я: три мушкетёра в мире автоматизации управления компьютерами на Linux

Level of difficultyEasy
Reading time10 min
Views7.8K

В мире, где биты и байты движутся в такт машинного кода, где каждый файл — как драгоценный камень, а каждая команда — словно заклинание, живут три героя: Ansible, Bash и их друг-администратор. Здесь каждый день приносит новые задачи, а каждая задача — захватывающее приключение.

Не стойте на пороге - читайте дальше!

Как кофе с собой делает нас нищими?

Level of difficultyEasy
Reading time4 min
Views91K

Дисклеймер: речь пойдёт не только о кофе — да и вовсе не о кофе. Суть статьи — попытаться ответить на вопрос: почему при нормальном доходе мы ничего не откладываем, не покупаем квартиры и прочие дорогостоящие вещи?

В любой истории нужен герой. Нашим героем будет Петя. Ему 27 лет, он живёт в Екатеринбурге, работает программистом на позиции Senior Backend Developer в крупной московской компании и получает пресловутые 300к/наносек — 300 000 рублей в месяц.

Как проходит обычный рабочий день Пети? Он едет на работу на такси (сегодня по акции — всего 500 рублей), по пути заходит в свою любимую кофейню, берёт раф без кофеина на безлактозном молоке. 400 рублей — копейки, он за 15 минут работы столько зарабатывает.

Доходит до своего рабочего места и начинает работать. Время обеда подходит — он открывает приложение доставки, заказывает себе еду из сервиса с обещанной доставкой от 15 минут. Тратит, ну, максимум 1000. Он же заслужил — ничего такого здесь нет. Попутно смотрит, куда бы сходить на выходных или вечером.

Наступает вечер, конец рабочего дня. Он выходит из офиса: на улице лето, солнце ярко светит, ни необходимости, ни желания ехать домой сразу нет — хочется прогуляться. По пути он снова заходит в свою любимую кофейню, берёт на этот раз бабл-ти. 300 рублей — копейки.

Гуляет по городу, наслаждается видами, но чувствует, что проголодался. Заходит в кафешку — хорошую, проверенную, он тут частенько бывает. Заказывает себе пасту, чайник пуэра. Рабочий день был тяжёлый — надо бы и кальянчик заказать. Сидит, пыхтит. Спустя часик выходит, закрывает счёт, даже не глядя, сколько там вышло. Вызывает такси — рублей за 700 на этот раз — и счастливый едет домой, в съёмную квартиру.

Читать далее

Сложно о простом. Как работает интернет. Часть 5. Будущее (ли?) сетей: IPv6, SDN и Overlay сети

Level of difficultyEasy
Reading time18 min
Views7.7K

Приветствую, коллеги! Меня зовут @ProstoKirReal. Мне бы хотелось обсудить, как работает интернет. Начнем с кабелей витой пары, соединяющих простые локальные сети, и закончим подводными коммуникационными кабелями, которые соединяют между собой континенты и основные операторские сети.

В предыдущей статье я рассказывал о различиях LAN, MAN, WAN, что такое сети Clos и иерархию операторов.

В этом цикле я не стану учить вас настраивать оборудование и проектировать сети. Я расскажу об основных (и не только) принципах построения сети, а также о функционировании сети и сетевых протоколов в стеке TCP/IP.

Я буду часто ссылаться к предыдущим статьям, где уже описывал сетевые протоколы. Это позволит мне сократить объемный текст. 

Читать далее

Неработающие принципы Agile. Когда Agile не принесет ожидаемого эффекта

Reading time6 min
Views5.6K

Цель этой статьи  — показать, в каких случаях Agile не принесет ожидаемого эффекта, рассмотреть наиболее распространенные случаи его некорректного применения и обозначить ключевые моменты, на которые важно обратить внимание перед началом Agile-трансформации.

Читать далее

Круговой импорт в Python: как он ломает проекты и как его победить

Level of difficultyEasy
Reading time5 min
Views4.9K

Привет, Хабр!

Сегодня говорим о том, что в какой‑то момент словит почти каждый разработчик, особенно если вы не просто пишете скрипты, а строите проекты — будь то Django, Flask или кастомная архитектура с бизнес‑логикой в отдельных слоях. Речь про круговые импорты: они не объявляют о себе заранее, не фейлят весь проект громко и сразу, но подкрадываются исподтишка. И вот вы уже сидите с ошибкой ImportError: cannot import name ... или AttributeError, гуглите часами, тасуете импорты туда‑сюда и ловите дежавю — кажется, это уже было, но где?

Читать далее

Обработка ошибок в Go

Reading time14 min
Views4K

Обработка ошибок — это один из самых важных аспектов написания надёжного кода. В Go к этому вопросу подошли нестандартно: вместо традиционного механизма try/catch, как в Java или Python, ошибки просто возвращаются как значения. Изначально это может показаться странным, но на практике этот подход делает обработку ошибок более явной и честной.

В этой статье мы разберёмся с тем, когда стоит использовать panic , какие есть распространённые ошибки при его использовании и как правильно обрабатывать исключительные ситуации в Go.

Читать далее

Нашел, проверил, убедил: как мы организовали генерацию SQL-запросов, проверку сложных данных и при чем здесь Allure

Reading time22 min
Views3.1K

Привет, Хабр!

Я, Михаил Герасимов, инженер РСХБ-Интех. Уже два года занимаюсь автоматизацией тестирования, и за это время успел написать (и переписать) немало SQL-запросов. Вместе с моим коллегой Михаилом Палыгой мы развиваем инструменты для автоматизированного тестирования, и сегодня расскажем вам о том как мы справляемся с построением сложных SQL-запросов и проверкой объектов в базе данных, на примере нашей библиотеки CheckMateDB для автоматизации тестирования банковской системы ЦФТ-Банк.

В статье опишем проблемы, с которыми сталкивались при ручном написании SQL-запросов и проверке данных: дублирование кода, сложность поддержки, отсутствие единого стиля и низкая информативность тестов. Для решения этих проблем мы разработали инструмент QueryBuilder, который позволяет динамически генерировать SQL-запросы с помощью Java-кода.

Мы создали иерархию классов CriteriaBasic и Table для удобного описания критериев поиска данных в базе, используя паттерн fluent interface. Также мы разработали кастомные классы проверок на базе AssertJ с поддержкой Allure-шагов, которые позволяют проверять сложные многоуровневые объекты с возможностью погружения во вложенные структуры. Для облегчения рутинной работы создали плагин, автоматически генерирующий классы DTO и Table на основе структуры базы данных. Библиотека интегрирована с Hibernate через DaoCommon, что обеспечивает удобное выполнение SQL-запросов и управление сессиями. Результатом стало существенное улучшение читаемости тестов, повышение переиспользуемости кода, стандартизация подхода к тестированию и создание информативных Allure-отчетов.

Читать далее

Go-тесты: путь к надежному коду

Level of difficultyMedium
Reading time9 min
Views3K

Очень часто автотесты воспринимаются как обременение: что-то скучное, унылое и совершенно не нужное. С уверенностью,  что вместо тестов лучше заняться «настоящим»  кодом, некоторые разработчики решают не тратить на них время… и тратят его в два раза больше, когда впоследствии приходится ковырять неожиданно возникшие ошибки. Факт: в долгосрочной перспективе именно тесты становятся фундаментом стабильности, а любое изменение без них превращается в настоящую игру с огнём — особенно в активно развивающемся проекте, когда каждый новый релиз может полностью сломать старую логику.

Хорошо организованные тесты позволяют двигаться быстрее и рефакторить код не боясь, что ошибки останутся незамеченными. Это не просто проверка — это защита, с которой можно развивать его системно, а не в хаосе исправлений после каждого нового бага.

Для создания такой защиты отлично подходит Go. Минимализм его языка и встроенные инструменты делают написание тестов лёгким и естественным процессом. В нём совершенно нет лишней обвязки — только вы, функция и проверка её поведения.

Читать далее

Как устроены новые мапы в Go 1.24

Reading time9 min
Views8K

Привет, Хабр! Меня зовут Владимир Марунин, я ведущий разработчик в команде Clatch. Сегодня расскажу о новых мапах в Go 1.24: разберем изменения, посмотрим, что было и что стало. О мапах часто спрашивают на собеседованиях, а еще без них нельзя просто так взять и написать программу на Go — так что, надеюсь, тема будет полезной и интересной.

Этот текст — расширенная версия моего доклада с митапа МТС True Tech Go. Если больше нравится слушать, а не читать, можно сразу переходить по ссылке. Поехали!

Читать далее

Десктопное кросс-платформенное приложение на Wails (Golang + Vue.js). Как мы делали Tuna Desktop

Level of difficultyEasy
Reading time9 min
Views4.9K

Wails - это легковесный фреймворк, предназначенный для создания кросс-платформенных GUI приложений рабочего стола на golang и стандартных веб технологиях (Svelte, React, Preact, Vue, Lit, Vanilla JS). Ближайшие аналоги это естественно Electron (JS), Tauri (Rust), хочется добавить Qt (С++), но это уже другой уровень. Сразу скажу, что Wails не идеален, имеет множество ограничений и в целом не подойдёт для чего-то крупного, Tauri к примеру более зрелый проект, больше функций, быстрее развивается, больше и живее сообщество, но это уже на rust, а это не наш стэк.

Читать далее

Безопасная сборка Docker-образов в CI: пошаговая инструкция

Reading time7 min
Views6.2K

Привет, Хабр! Я Саша Лысенко, ведущий эксперт по безопасной разработке в К2 Кибербезопасность. Сейчас появилась куча инструментов для автоматизации рутинных задачи и все активно идут в эту сторону для оптимизации ресурсов и быстрых результатов. Так в DevOps внедрение CI/CD пайплайнов ускоряет разработку, деплой приложений, сокращает time to market. Автоматизация — незаменимый сегодня процесс, который при этом открывает отличные лазейки и для киберугроз. Далеко не все задумываются, кому и какие доступы раздают и к каким последствиям это может привести. Поэтому без учета кибербезопасности здесь появляются дополнительные риски инцидентов. В этой статье я поэтапно разобрал пример сборки Docker-образов в GitLab CI пайплайнах с учетом баланса между безопасностью автоматизированной разработки и скоростью процесса.

Читать далее

Функции и методы в Go

Level of difficultyMedium
Reading time4 min
Views3.7K

Go — язык, который ценится за простоту и чёткость. Однако даже при минимальном синтаксисе здесь есть нюансы. Особенно это касается работы с функциями и методами. В этой статье хочу поделиться личными наблюдениями и выводами по нескольким ключевым темам: выбор типа получателя, использование именованных параметров результата, распространённые ошибки при возврате nil, проблемы с файлами в качестве входных данных и поведение defer.
ps. Обложку нейронка сгенерировала. Очень странно, но мне понравилось.

Читать далее

Две недели кодинга без ноутбука: AR очки и Linux-on-Android

Level of difficultyEasy
Reading time9 min
Views30K

Всем привет! Представляю вашему вниманию перевод статьи «Coding without a laptop — Two weeks with AR glasses and Linux‑On‑Android». Перевод сделал человек с помощью мозга, а не LLM.

Под катом будет личный опыт программиста, который отправился в поездку но не хотел брать с собой ноутбук, а вместо этого взял Android и AR‑очки. Из него вы узнаете с какими трудностями он столкнулся выбрав такое решение, и какие плюсы он почерпнул. И самое главное, повторит ли он свой опыт, если выпадет случай?

Приятного чтения

Тайна списка шумерских царей. Часть 3. Зодиак

Reading time33 min
Views16K

Это продолжение цикла статей о разгадке шумерского царского списка. В первой части было объяснение важности этой загадки для понимания всей древней истории и описание тех астрономических инструментов, что были созданы по ходу исследования. Во второй рассказ о вавилонском звездном каталоге MUL.APIN и предположение, что названиями звезд и созвездий в нем была зашифрована вечная, циклически повторяющаяся история борьбы смысла и закона. Но цепочка переводов аккадских имен, хотя она и создает стройный рассказ, не может быть доказательством сама по себе. Нужны дополнительные, более строгие подтверждения. В этой части мы их и рассмотрим.

Что вы знаете об астрологии? Название “астрология” происходит от древнегреческого ἀστήρ «звезда» и λόγος «мысль, причина». Сама астрология — это некая древняя практика, которая позволяет гадать по звездам. Дескать, звезды влияют на судьбы людей и по положению звезд можно предсказывать будущее.

Как вы относитесь к астрологии? Здравомыслящий человек понимает, что астрология — это, как и всякое гадание, шарлатанство. Положение Солнца, планет и созвездий выступает генератором случайных сочетаний, которым астрологи дают свои толкования. Люди, склонные к мистицизму, готовы платить за это деньги. Спрос рождает предложение.  Все так?

Что такое знаки зодиака? Есть двенадцать созвездий, лежащих на годичном пути Солнца. То, в каком знаке родился человек, по мнению астрологов определяет его характер и судьбу. Зодиак придумали греки, поместив на небо героев своих мифов.

Читать далее

Как развернуть свой GitLab с CI/CD, используя IaC

Reading time11 min
Views11K

Всем привет! Меня зовут Александр, я обучаюсь в магистратуре СПбПУ. А заодно являюсь младшим разработчиком на C++ и стараюсь использовать и внедрять практики DevOps в мою ежедневную разработку. Недавно я получил зачет за то, что развернул собственный GitLab (именно GitLab, а не аналог) на серверах Selectel с CI/CD и Container Registry. Собственно, об этом и расскажу и в статье.
Читать дальше →
1
23 ...

Information

Rating
3,896-th
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity