На курсе, где я учился frontend-разработке, нас познакомили только с unit тестированием. Но уже на первом месте работы, я столкнулся и с регрессионным тестированием, и с автотестами, и с E2E-тестами. Мне было сложно понять, чем они отличаются, какие еще есть виды тестирования и кто их должен писать. Эта статья для начинающих разработчиков, которые задаются подобными вопросами.
Пользователь
Докеризация сборки проекта на всех уровнях
Всем привет, на связи Вадим Макеров, бэкенд‑разработчик iSpring. Успешная воспроизводимая сборка проекта является критическим фактором в поддержке и развитии проекта. При большом количестве проектов и технологических стеков гарантировать воспроизводимость сборки — «собралось однажды, соберется всегда» — сложнее.
О том, как реализовать идемпотентность сборки, я рассказывал в рамках митапа в офисе iSpring в 2023 году. Эта статья — текстовая версия моего доклада.
Оптимизация запросов к БД на django
Стоит ли использовать django в 2024? Я думаю — да. DRF очень удобен, скорость разработки очень высока (особенно, если использовать generic views, django‑filters), огромное количество готовых батареек сильно облегчает жизнь и встроенная админка хорошо подходит для большинства сайтов. Полностью асинхронные фреймворки (или переход на другой язык) не дадут большого выиграша, если ваш сервис много работает в БД — вы упретесь в её производительность и ограничения количества соединений с пулом бд. Далее я вкратце пробегусь по основным моментам и дам ссылки на документацию и готовые батарейки.
Архитектура боевого корпоративного frontend-приложения
О неприступные стены удобной архитектуры растущего приложения сломано много копий. Это, в принципе, довольно предсказуемо. У всех нас свой бэкграунд, опыт разработки и способ работы с абстракциями. Что для одного чисто и понятно, для другого может быть сумбурно и перемешано. Я хочу рассказать о том выборе, который был сделан год назад и который за эти месяцы себя прекрасно показал.
Python. Внутреннее устройство множеств set и словарей dict. Часть 1 из 2
Типы dict
и set
в Python построены на основе хэш-таблиц. В этой статье объясняется как использование хэш-таблиц определяет сильные и слабые стороны этих типов контейнеров.
Вот некоторые вопросы, на которые отвечает эта статья:
• Насколько эффективны dict
и set
в Python?
• Почему элементы множества неупорядоченны?
• Почему мы не можем использовать любой объект Python в качестве ключа dict
или элемента set
?
• Почему порядок ключей dict
зависит от порядка вставки?
Как я использую плагины VSCode для обработки Json-файлов в работе системным аналитиком
Всем привет! На Хабре много статей про настройку VSCode, но большинство написали разработчики и для разработчиков. Это достаточно крутой и универсальный инструмент, который можно использовать не только для программирования. В этой статье я на своем примере покажу, как его можно настроить и расширить для работы с данными.
Меня зовут Юлия Васильева, и я системный аналитик в МТС Диджитал. Работаю с B2C-продуктом и анализирую много-много разных Json-файлов. В этой статье я расскажу, как облегчила себе работу с ними благодаря VSCode и почему я в восторге от этого инструмента.
PostgreSQL — один за всех? Как работать с нетипичными данными в реляционной системе
Смотрим, как вездесущий PostgreSQL справляется с нестандартными для реляционной системы управления базами данных (СУБД) ролями: хранением и поиском временных рядов, пар «ключ — значение», эмбеддингов для больших языковых моделей и многомерных кубов. Отвечаем на вопрос: действительно ли так нужно строить сложные архитектуры со множеством разнородных систем хранения данных — MongoDB, Redis, InfluxDB, Pinecone, ClickHouse, Apache Cassandra — или можно обойтись одним PostgreSQL?
Привет, Хабр! Меня зовут Александр Брейман, я доцент департамента программной инженерии факультета компьютерных наук НИУ ВШЭ и по совместительству эксперт Учебного центра IBS по управлению данными и архитектуре ПО. В прошлой статье я рассказывал о миграции с Oracle на PostgreSQL, а сегодня разберу, как последний работает с нетипичными видами данных.
Чистый код: Данные
Чистый код не набор внешних признаков, таких как наименование переменных и наличие или отсутствие комментариев, хотя они тоже важны. Чистый код — это архитектура программного продукта, которая позволяет легко читать и модифицировать программный код. Написание такого кода опирается на множество типовых шаблонов (SOLID, паттрерны проектирования и др.), выработанных в ходе практики программирования. Описание еще одного такого шаблона приведено в этой статье.
Неизменяемым называется объект (англ. immutable object), состояние которого не может быть изменено после создания(1). Это понятие не так широко используется в различной литературе, поэтому начну с более подробного разбора этого понятия и обоснования, почему стоит применять этот шаблон.
Классическое определение гласит - Объектно ориентированное программирование (ООП), парадигма программирования, в рамках которой программа представляется в виде совокупности объектов, а её выполнение состоит во взаимодействии между объектами. Объектом называется набор из данных и операций, которые можно выполнить над этими данными(2).
Практика программирования показывает, что не все операции которые можно выполнить над данными стоит помещать в один объект. Например, формулу расчет угла в прямоугольном треугольнике можно представить как константное выражение. Вероятность её изменения приближается к нулю, поэтому ее можно смело применять как часть объекта с данными. Другой пример, формирование цены на товар в магазине, тоже формула, но она может меняться в соответствии с требованиями маркетинга. Такую формулу не следует помещать в метод принадлежащий объекту с данными.
Быстрый запуск PostgreSQL через Docker Compose
Доброго времени суток! Сегодня я продемонстрирую вам, как быстро и эффективно настроить PostgreSQL с помощью Docker Compose. Этот процесс займет всего несколько минут, но в результате вы получите полноценную базу данных PostgreSQL, работающую в изолированном Docker контейнере. Важные компоненты, такие как базы данных, таблицы и индексы, будут сохранены на вашей локальной машине благодаря использованию томов (volumes), что обеспечит надежность и доступность данных.
На чем разработать свой стартап или с чего начать хакатон в 2024? (часть 1)
Попробуем собрать свой идеальный boilerplate для full-stack разработки в 2024 году. В этой статье мы будем постепенно собирать свой шаблон для быстрого запуска стартапов.
Сразу предупреждаю, что статья будет холиварной, всех хейтеров прошу в комменты, предлагайте решения со ссылкой на публичные кейсы.
Звони первым, если проблема неизбежна. Снижаем contact rate проактивной коммуникацией
Привет, Хабр! Меня зовут Даша Кряжева, я продакт-менеджер, сейчас занимаюсь исходящим голосовым роботом в СберМаркете. С его помощью нам удалось автоматизировать 30% клиентских и партнерских обращений в контактный центр, но это не только про цифры. Проактивная коммуникация — это всегда про повышение лояльности и открытый диалог с пользователями.
Перед нами стоит большая задача: выдерживать нагрузку на службу заботы с сохранением качества обслуживания при стремительном росте бизнеса. В статье расскажу, как этого достичь, а в конце предложу план, чтобы вы могли стартовать проактивные коммуникации в своей компани :)
Почти все, что вы хотели бы знать про Docker
В этой статье мы расскажем про базовые техники работы с Docker, а также погрузим читателя в основы докеризации приложений.
Предполагается, что читатель что-то слышал про Docker и хотел бы начать знакомство с технологией. Мы постараемся упростить этот процесс.
Как маскировка данных спасает вашу приватность
Сколько личной информации о вас хранится в мире онлайна? От финансовых операций и медицинских досье до социальных сетей и корпоративных баз данных – данные каждого из нас оказываются в цифровом пространстве, привлекая внимание злоумышленников и вызывая беспокойство как у нас, так и у служб безопасности.
Одним из распространенных методов защиты является маскировка данных. Для более ясного понимания этого процесса давайте рассмотрим различные техники маскировки и попробуем разобраться, с чем это едят.
Данная статья нацелена на джунов и специалистов, которые только начинают погружаться в тематику.
Эволюция подсчета в Python
У одной задачи может быть несколько способов решения. Возьмем классическую задачу программирования — задачу подсчета, в которой мы считаем, сколько раз каждый элемент списка встречается в нем. Способ решения этой задачи на Python менялся по мере развития языка. Именно об этом мы будем говорить в этой статье.
Большинство из нас присоединилось к программированию на Python с его третьей версии. Однако мы начнем с Python 1.4. Пристегните ремни, отправляемся в далекое прошлое — в 1997 год!
Моделирование оргструктур и бизнес-процессов при имплементации ERP-систем
Одной из важных задач при имплементации корпоративных информационных систем является проектирование бизнес-процессов. Следуя [1], в ERP-проектах выделяется отдельный уровень внедрения: уровень процессов. Здесь ведется моделирование бизнес-процессов на основе общеизвестных графических нотаций, строятся модели As-Is и To-Be. Все разнообразие нотаций моделирования объединено термином CASE-средства, суть которых изначально заключалась как в проектировании, так и последующей автоматизации настроек и разработок ERP-систем [2].
На сегодняшний деть имеется множество всевозможных нотаций моделирования бизнес-процессов, каждая из которых обладает своим набором уникальных графических элементов, особенностями и областью применения. Не все нотации изначально создавались под нужны ERP-проектов, поэтому их использование при проектировании корпоративных информационных систем не всегда разумно. Имплементация информационных систем – задача весьма специфичная и трудоемкая, поэтому выбор нотации должен вестись весьма осознанно.
В принципе, применение неподходящего CASE-средства не так критично, однако это приводит к излишним трудозатратам, так как построенные схемы процессов будут содержать излишние или наоборот недостающие графические элементы, важные для конечных пользователей. Исходя из этого, необходимо разбираться в тонкостях нотаций моделирования и четко разграничивать область применения каждой. Именно это задачей мы с вами и займемся в рамках данной работы.
Цель работы заключается в анализе методов проектирования бизнес-процессов, применимых к проектам внедрения ERP-систем. Использование подходящих графических моделей позволит строить наглядные процессные диаграммы, удобные для конечных пользователей, что облегчит им работу с разрабатываемой программной системой. Достижение цели потребует решения таких задач, как:
Как использовать GitHub Copilot в IDE: советы, приёмы и лучшие практики
В этой статье поговорим о практических стратегиях, повышающих эффективность использования GitHub Copilot при написании кода.
6 главных типов веб-уязвимостей, о которых должен знать каждый бэкендер
Привет, Хабр! На связи Виталий Киреев, руководитель R&D SpaceWeb. Это первая часть статьи про веб-безопасность — здесь я расскажу про главные уязвимости Server Side, покажу примеры и объясню, как защищать данные.
Основы CQRS
Системы управления предприятиями, проектами, сотрудниками давно вошли в нашу жизнь. И пользователи таких enterprise приложений все более требовательны: возрастают требования к масштабируемости, сложность бизнес-логики, требования к системам меняются быстро, да и отчетность требуется в реальном времени.
Поэтому при разработке зачастую можно наблюдать одни и те же проблемы в организации кода и архитектуры, а также в их усложнении. При неправильном подходе к проектированию рано или поздно может наступить момент, когда код становится настолько сложным и запутанным, что каждое внесение изменений требует все больше времени и ресурсов.
15+ небанальных ресурсов для начинающего/продолжающего Python-разработчика
Привет Хабрчанам! Меня зовут Дима Туркин, я — код-ревьюер на курсе «Python-разработчик» Яндекс Практикума и Python-тимлид.
Тема материалов по Python для начинающих и продолжающих свой путь разработчиков уже заезженная, поэтому в этой статье я постарался собрать ссылки на менее известные бесплатные ресурсы, но не менее полезные. Есть чем дополнить — пишите в комментариях!
Python service layer: основы оформления бизнес-логики на примере Django-приложений
Django - отличный фреймворк, но он, на самом деле, толком не дает, да и не должен давать, ответ на вопрос, каким образом лучше всего хранить вашу бизнес-логику. Хранение бизнес-логики в моделях или views имеет множество недостатков, которые обычно начинают проявляться при росте кодовой базы проекта. Чтобы решить эти проблемы, разработчики часто начинают искать способы выделения бизнес-логики в своем приложении.
В этой статье я хотел бы попробовать дать стартовую точку на пути выделения слоя бизнес-логики у себя в приложениях и навести на новые мысли тех разработчиков, которые считают выделение этого слоя в своих приложениях чем-то излишним.
Так же хочу обратить внимание, что цель данной статьи не в том, чтобы дать правила, которым требуется слепо следовать, но в том, чтобы указать направление. Сервисный слой и в принципе его наличие, это такая вещь, которую нужно адаптировать под нужды вашей команды, компании и бизнеса.
На самом деле, изложенный далее текст относится не только к Django-проектам. Разрабатывая веб-приложения, используя другие инструменты, вроде Flask, люди используют те же концепции веб-разработки, причём часто именно в таком же виде, как они реализованы, в Django - views, request-response объекты, middlewares, модели, формы.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность