Pull to refresh
0
@Redlumusread⁠-⁠only

User

Send message

Дайджест  ̶л̶е̶н̶т̶я̶я̶ уставшего человека: как отдыхать без угрызений совести

Level of difficultyEasy
Reading time7 min
Views24K

Как проходят выходные? Встречаете весну на улице, чистите тающий снег у дома или гаража, гуляете с детьми, тягаете железо в зале, засели в любимой игре или работаете работу вне работы, потому что привыкли работать? Каждый из нас волен проводить свободное время так, как считает нужным. Но не факт, что нужное окажется правильным и полезным, позволяющим перезагрузить организм, дать ему отдых — физический, интеллектуальный, эмоциональный. Впрочем, нельзя сказать, что какой-то паттерн отдыха однозначно универсальный и правильный для всех: виды отдыха и их эффективность зависят от возраста, телосложения, рода занятий, привычек, склада личности, региона проживания и массы других факторов. Что не отменяет общих рекомендаций, на которые стоит обратить внимание, чтобы находиться в ладах со своим организмом.

Читать далее

XML дерево на С. Пишем подготовительный код для библиотеки targetXML

Level of difficultyHard
Reading time18 min
Views2.3K

targetXML - маленький экскурс в структуру дерева XML на примере работоспособного кода «pure C».

Здравствуй уважаемый читатель. Я пишу код на С и С++. В этой короткой статье подробно описывается мой подготовительный этап создания маленькой библиотечки на языке С, работающей с файлами xml. Рассказ об опыте такой разработки может пригодится как новичкам, любителям, так и профессионалам. К тому же в статье есть ссылка на исходный код, и вы всегда можете, при желании, заняться оптимизацией.

Читать далее

Как организовать процесс тестирования с 6 шагов

Level of difficultyEasy
Reading time6 min
Views25K

Всем привет! Меня зовут Елена Поплоухина. Я — один из авторов Youtube‑канала по тестированию «Багаж тестировщика».

На канале выходил выпуск про построение процесса ручного тестирования с нуля. Данная статья содержит основную информацию из этого выпуска — 2 общих совета и 6 первых шагов для организации процесса.

Читать далее

Качаем IT-бренд работодателя в 2023 году

Level of difficultyEasy
Reading time8 min
Views7K

Всем привет! Сегодня расскажем, какие качества работодателя делают компанию более привлекательной в глазах соискателя. Материалом для наших выводов послужило последнее исследование ЭКОПСИ и Хабра, где мы опросили 16 тысяч IT-соискателей, сотрудников 88 компаний, на тему взаимоотношений «сотрудник — работодатель», а также провели анализ 95 EVP IT-компаний и множество фокус-групп с IT-специалистами. По итогам всей этой работы получились ключевые тренды в работе с IT-кадрами в 2023–2024 гг. Если интересно — приглашаем под кат. 

Читать далее

Шпаргалка по шаблонам проектирования

Reading time2 min
Views1.5M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →

Автотесты и TMS: как мы реализовали интеграцию АФТ с Test IT

Reading time9 min
Views2.5K

В предыдущих материалах мы уже рассказывали про подход к автоматизации функционального тестирования в ДОМ.РФ и использование Test IT в качестве Системы управления тестированием (далее — TMS). После этого возникла задача интегрировать с ней наши автотесты (АТ).

Читать далее

Внутренние и вложенные классы java. Часть 2

Reading time4 min
Views26K
Внутренние и вложенные классы java. Часть 2

02.03.2017 — 2019 год

<<< Часть 1
Часть 3 >>>

Часть 2

Внутренние классы

Inner Classes — Внутренние классы

Внутренний класс связан с экземпляром его обрамляющего класса (из документации).

Пример внутреннего класса есть в документации.

Создадим класс:

/* Пример №7 */
 
class OuterClass {
    ...
    class InnerClass {
        ...
    }
}
 

Так в чем же отличие, спросите вы. Объявления классов и вложенных и внутренних
одинаковые в данных случаях. Отличие в том, что внутренний класс связан с внешним классом через экземпляр, или через объект класса.

Чтобы создать экземпляр внутреннего класса, нам нужно сначала создать экземпляр внешнего класса. Затем создать внутренний объект, в пределах внешнего объекта, таким образом:

 OuterClass.InnerClass innerObject = outerObject.new InnerClass(); 


Пример:


 /* Пример №8 файл Outer.java*/
package inner;

/**
 *
 * @author Ar20L80
 */
public class Outer {
    
   
    class InnerClass {
        
    }
    Outer(){}
    
    public static void main(String[] args) {
    Outer outerObject = new Outer();
    Outer.InnerClass innerObject = outerObject.new InnerClass(); // создание экземпляра 
 внутреннего класса
    }
}
 


По-другому мы можем написать так:
Читать дальше →

Шаблоны тест-кейсов по API, тест-кейсы по идемпотентности

Reading time4 min
Views83K

Привет всем, я, Надежда Дудник, главный инженер по тестированию в СБЕРе, а ещё ментор по тестированию ПО.

Как два года введу блог по тестированию, помогаю начинающим специалистам по тестированию развивать хард скиллы, дополнительно сочиняю тесты для закрепления знаний по основам тестирования и не только.

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

Хочу вам рассказать о важности написания тест-кейсов по API, а именно про стратегию составления тест-кейсов по бэку (backend), где результатом будет являться хорошо структурированный тест-кейс.

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

Как вы знаете, что каждый тест состоит из предусловий, шагов и ожидаемых результатов.

При выполнении каждого запроса API нам необходимо и важно проверить:

Читать далее

Как перенести в Jira практически любой процесс

Level of difficultyMedium
Reading time15 min
Views11K

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

Долгое время мы в SimbirSoft использовали самописные инструменты для управления рабочими процессами, но постепенно перешли на Jira. Доработка системы под свои нужды позволила нам обеспечить контроль над ключевыми процессами компании.

Для переноса процессов в Jira мы разработали специальный механизм, о котором пойдет речь ниже. Ранее мы рассказывали, как работать с данными Jira без плагинов и минимизировать расходы на обслуживание. А эта статья будет полезна всем, кто администрирует внутренние процессы компании и хочет перенести их в Jira для улучшения управления, сбора статистики и контроля над выполнением задач.

Дисклеймер: В марте 2022 года компания Atlassian прекратила сотрудничество с российскими юридическими лицами. Однако это не распространяется на уже купленные экземпляры Jira (не по подписке), а также на юридические лица, зарегистрированные вне РФ. Так или иначе, многие нашли выход, который позволил им дальше пользоваться привычным инструментом.  

Читать далее

8 вещей, о которых забывают разработчики при переносе приложения в Kubernetes

Reading time11 min
Views15K

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

Наш субъективный список — под катом. Пополните его своими рекомендациями в комментариях!
Читать дальше →

Kotlin-сервер без JVM — реальность?

Level of difficultyEasy
Reading time4 min
Views6K

Не секрет, что Kotlin может использоваться для создания всех компонентов FullStack-приложения - от мобильных приложения для Android/iOS и веб-сайтов на Kotlin JS до бэкэнда (например, с использованием Ktor, http4k и micronaut). Но все же многих останавливает от использования Kotlin для создания API тот факт, что код запускается в хоть и оптимизированной, но все же Java виртуальной машине. Есть ли решение у этой проблемы? Да, и в этой статье мы обсудим способы компиляции приложения на Kotlin для создания API в нативный код и подводные камни, которые нас ожидают на этом пути.

Читать далее

Лучшие библиотеки Java для тестирования в 2023 году

Level of difficultyEasy
Reading time5 min
Views9.9K

Большинство из нас стремятся быть более эффективными, действенными и содержательными в тестировании. И мы делаем все необходимое для этого. Лучший способ сделать это — проводить автоматизированное тестирование вместо ручного. И, конечно же, мы хотели бы знать все современные тенденции в мире автоматизации. Только так мы можем быть на вершине нашей профессии.

Читать далее

Инструменты для тестирования Kafka

Reading time4 min
Views36K

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

Читать далее

Перестаньте писать автотесты силами автоматизаторов

Level of difficultyMedium
Reading time7 min
Views14K

Соробан, инструмент для проверки калькулятора на счётах (на самом деле — два интерфейса, для коротких расчётов тактильный был удобнее)

У нас была классическая история: разработчики разрабатывают, автоматизаторы пишут тесты. Банковское приложение, backend, web, ios и android платформы, очень много схожих тест-кейсов. В какой-то момент сама скорость появления новых фич сильно превысила даже теоретическую возможность покрывать их автотестами. Можно было линейно масштабировать отдел (по моим расчётам, нужно было ещё 12 человек), а можно было попробовать понять, как всё это поменять.

Я знал, что автоматизаторы пишут четыре разных теста для одного и того же кейса для четырёх разных платформ, и поначалу полагал, что можно слегка уменьшить разрыв, соединив часть историй в какой-то единый проект. Но когда мы начали разбираться в деталях, что же там происходило, выяснилось, что КПД можно повысить очень и очень сильно.

Дело вот в чём: ручное тестирование — это один из способов входа в ИТ. Дальше в процессе развития навыков программирования добавляется возможность стать джуном автоматизации. Большинство этих джунов учат на курсах три фреймворка по диагонали и дальше считают себя профессионалами. Однако действительно хороший автоматизатор не ценится в достаточной мере, поэтому senior-автоматизатор — это мифическое существо, схожее с единорогом. Эти сказочные существа растворяются, уходя в разработчики ПО. Закономерный итог: слабая архитектура фреймворка (точнее, её отсутствие), почти нет переиспользования кода, каждый отдельный автотест пишется чуть ли не с нуля.

Поэтому в итоге мы отдали весь процесс автоматизации горстке единорогов. Отдельной команде.

Решение достаточно спорное и с экономической, и с логической точки зрения, но сейчас расскажу, что получилось.
Читать дальше →

В чем разница между unit и компонентным тестированием

Reading time4 min
Views12K

И почему вас это должно волновать.

При компонентном тестировании вы тестируете более ранние этапы процесса разработки, и вместо тестирования всего приложения (или его большого фрагмента) вы тестируете более мелкие части приложения. С точки зрения Shift Left это очень важно.

Читать далее

Как использовать GitLab в условиях санкций?

Level of difficultyMedium
Reading time5 min
Views75K

GitLab — известная платформа для совместной разработки ПО, которая сочетает в себе систему управления версиями (Git), баг-трекер, CI/CD и прочие фичи DevOpsSec.

Изначально Дмитрий Запорожец и Валерий Сизов создали эту систему для собственных нужд, потом выпустили под открытой лицензией — и в конце концов построили процветающий бизнес, который основан на разделении лицензий: «общественная» Community Edition и «корпоративная» Enterprise Edition с рядом дополнительных плюшек на хостинге GitLab или на своём хостинге.
Читать дальше →

Типовое использование RabbitMQ

Reading time4 min
Views43K

Алексей Барабанов, IT-директор «Хлебница» и спикер курса «RabbitMQ для админов и разработчиков», подготовил конспект о типовых архитектурных паттернах RabbitMQ. Из него вы узнаете, как настроить пайплайны обработки и реализовать очереди повторных попыток (в том числе, через механизм dead letter exchange). 

Читать далее

Сортировка слиянием — не так просто, как кажется

Reading time20 min
Views32K

В одной конторе соискателю на позицию Senior C# developer выдали тестовое задание: отсортировать файл со строками определенного формата.

Требования такие:

* Формат строки: число, точка, пробел, далее любые символы до конца строки.

* Порядок сортировки — сначала сортируем текстовой части строки, потом по числу если текстовые части совпадают.

* Кодировка — UTF-8.

* Размер файла — 100гб - гарантированно больше объема ОП.

Должно отработать за 1 час на машине проверяющего, вряд ли там будет супер-быстрый SSD и огромное количество оперативной памяти.

Как и многие другие программисты, узнав о таком тестовом задании, я возмутился. Внешнюю сортировку слиянием практически всех проходили в ВУЗе, но практически никто никогда не писал её. Задача очень непрактическая и непонятно какие навыки проверяет. Так мне казалось.

Эта задача вызвала бурные обсуждения о способах её решения. Многие программисты, причисляющие себя к рангу senior, предложили использовать базы данных, ибо не барское это дело - вручную писать алгоритмы сортировки. Некоторые даже попытались сделать решение на Apache Spark. Однако никто до конца задачу не решил, ибо мало кому удалось отсортировать в нужном порядке даже 10ГБ файл менее чем за 15 минут без SSD.

Я подумал, что стоит решить задачу до конца с помощью программирования, и тоже причислить себя к рангу senior developer.

Читать далее

Claim-based авторизация на PL/pgSQL

Reading time20 min
Views2.4K

Статья о создании супергибкой системы проверки прав к ресурсам на основе клэймов и политик. В свое время был вдохновлен реализацией Claims‑based authorization in ASP.NET Core, но нужно было на Node.js (а теоретически на любую платформу, где используется PostgreSQL). Поэтому решил написать функцию проверки прав на PL/pgSQL. Если интересно, го.

Читать далее

Пять факторов, которые влияют на выбор базы данных

Level of difficultyMedium
Reading time10 min
Views10K

При выборе баз данных для текущего проекта (или при замене тех, которые не отвечают вашим текущим потребностям) количество возможных вариантов очень велико. Это и хорошо, и плохо, ведь нужны какие-то критерии фильтрации.

Сегодня есть гораздо больше баз данных, чем когда-либо. В декабре 2012 года, когда DB-Engines.com впервые начал ранжировать базы данных, у него получился список из 73 систем (существенный рост по сравнению с самым первым списком из 18 систем). Спустя десять лет, на декабрь 2022 года в списке было уже почти четыреста систем. За последнее десятилетие произошёл настоящий кембрийский взрыв технологий баз данных. Нужно ориентироваться в обширном пространстве вариантов: SQL, NoSQL, множество «многомодельных» баз данных, которые могут быть сочетанием SQL и NoSQL, или множественные модели данных NoSQL (сочетающие две или более опций: документы, ключи-значения, широкие столбцы, графы и так далее).

Кроме того, пользователи не должны путать популярность с применимостью для них. Хотя сетевой эффект имеет свои преимущества («Все пользуются X, поэтому не ошибусь, если выберу её»), он также может привести к групповому мышлению, торможению инноваций и конкуренции.

Мы с моим коллегой Артуром Песа недавно рассмотрели пять факторов, которые пользователи должны учитывать в первую очередь при выборе и сравнении баз данных.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity