Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Обзорная статья о видах тестирования IT-продуктов

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров22K

На курсе, где я учился frontend-разработке, нас познакомили только с unit тестированием. Но уже на первом месте работы, я столкнулся и с регрессионным тестированием, и с автотестами, и с E2E-тестами. Мне было сложно понять, чем они отличаются, какие еще есть виды тестирования и кто их должен писать. Эта статья для начинающих разработчиков, которые задаются подобными вопросами.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Докеризация сборки проекта на всех уровнях

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4.4K

Всем привет, на связи Вадим Макеров, бэкенд‑разработчик iSpring. Успешная воспроизводимая сборка проекта является критическим фактором в поддержке и развитии проекта. При большом количестве проектов и технологических стеков гарантировать воспроизводимость сборки — «собралось однажды, соберется всегда» — сложнее.

О том, как реализовать идемпотентность сборки, я рассказывал в рамках митапа в офисе iSpring в 2023 году. Эта статья — текстовая версия моего доклада.

Читать про контейнеризацию сборки
Всего голосов 8: ↑8 и ↓0+10
Комментарии7

Оптимизация запросов к БД на django

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров5.1K

Стоит ли использовать django в 2024? Я думаю — да. DRF очень удобен, скорость разработки очень высока (особенно, если использовать generic views, django‑filters), огромное количество готовых батареек сильно облегчает жизнь и встроенная админка хорошо подходит для большинства сайтов. Полностью асинхронные фреймворки (или переход на другой язык) не дадут большого выиграша, если ваш сервис много работает в БД — вы упретесь в её производительность и ограничения количества соединений с пулом бд. Далее я вкратце пробегусь по основным моментам и дам ссылки на документацию и готовые батарейки.

Читать далее
Всего голосов 10: ↑9 и ↓1+10
Комментарии12

Архитектура боевого корпоративного frontend-приложения

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров8.9K

О неприступные стены удобной архитектуры растущего приложения сломано много копий. Это, в принципе, довольно предсказуемо. У всех нас свой бэкграунд, опыт разработки и способ работы с абстракциями. Что для одного чисто и понятно, для другого может быть сумбурно и перемешано. Я хочу рассказать о том выборе, который был сделан год назад и который за эти месяцы себя прекрасно показал.

Читать далее
Всего голосов 9: ↑8 и ↓1+11
Комментарии35

Python. Внутреннее устройство множеств set и словарей dict. Часть 1 из 2

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров8.1K

Типы dict и set в Python построены на основе хэш-таблиц. В этой статье объясняется как использование хэш-таблиц определяет сильные и слабые стороны этих типов контейнеров.

Вот некоторые вопросы, на которые отвечает эта статья:

• Насколько эффективны dict и set в Python?
• Почему элементы множества неупорядоченны?
• Почему мы не можем использовать любой объект Python в качестве ключа dict или элемента set?
• Почему порядок ключей dict зависит от порядка вставки?

Читать далее
Всего голосов 12: ↑11 и ↓1+13
Комментарии4

Как я использую плагины VSCode для обработки Json-файлов в работе системным аналитиком

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров8.1K

Всем привет! На Хабре много статей про настройку VSCode, но большинство написали разработчики и для разработчиков. Это достаточно крутой и универсальный инструмент, который можно использовать не только для программирования. В этой статье я на своем примере покажу, как его можно настроить и расширить для работы с данными.

Меня зовут Юлия Васильева, и я системный аналитик в МТС Диджитал. Работаю с B2C-продуктом и анализирую много-много разных Json-файлов. В этой статье я расскажу, как облегчила себе работу с ними благодаря VSCode и почему я в восторге от этого инструмента.

Читать далее
Всего голосов 26: ↑24 и ↓2+28
Комментарии15

PostgreSQL — один за всех? Как работать с нетипичными данными в реляционной системе

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров7.4K

Смотрим, как вездесущий PostgreSQL справляется с нестандартными для реляционной системы управления базами данных (СУБД) ролями: хранением и поиском временных рядов, пар «ключ — значение», эмбеддингов для больших языковых моделей и многомерных кубов. Отвечаем на вопрос: действительно ли так нужно строить сложные архитектуры со множеством разнородных систем хранения данных — MongoDB, Redis, InfluxDB, Pinecone, ClickHouse, Apache Cassandra — или можно обойтись одним PostgreSQL?

Привет, Хабр! Меня зовут Александр Брейман, я доцент департамента программной инженерии факультета компьютерных наук НИУ ВШЭ и по совместительству эксперт Учебного центра IBS по управлению данными и архитектуре ПО. В прошлой статье я рассказывал о миграции с Oracle на PostgreSQL, а сегодня разберу, как последний работает с нетипичными видами данных.

Читать далее
Всего голосов 14: ↑12 и ↓2+13
Комментарии35

Чистый код: Данные

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров6.5K

Чистый код не набор внешних признаков, таких как наименование переменных и наличие или отсутствие комментариев, хотя они тоже важны. Чистый код — это архитектура программного продукта, которая позволяет легко читать и модифицировать программный код. Написание такого кода опирается на множество типовых шаблонов (SOLID, паттрерны проектирования и др.), выработанных в ходе практики программирования. Описание еще одного такого шаблона приведено в этой статье.

Неизменяемым называется объект (англ. immutable object), состояние которого не может быть изменено после создания(1). Это понятие не так широко используется в различной литературе, поэтому начну с более подробного разбора этого понятия и обоснования, почему стоит применять этот шаблон.

Классическое определение гласит - Объектно ориентированное программирование (ООП), парадигма программирования, в рамках которой программа представляется в виде совокупности объектов, а её выполнение состоит во взаимодействии между объектами. Объектом называется набор из данных и операций, которые можно выполнить над этими данными(2).

Практика программирования показывает, что не все операции которые можно выполнить над данными стоит помещать в один объект. Например, формулу расчет угла в прямоугольном треугольнике можно представить как константное выражение. Вероятность её изменения приближается к нулю, поэтому ее можно смело применять как часть объекта с данными. Другой пример, формирование цены на товар в магазине, тоже формула, но она может меняться в соответствии с требованиями маркетинга. Такую формулу не следует помещать в метод принадлежащий объекту с данными.

Читать далее
Всего голосов 8: ↑7 и ↓1+8
Комментарии5

Быстрый запуск PostgreSQL через Docker Compose

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров7.4K

Доброго времени суток! Сегодня я продемонстрирую вам, как быстро и эффективно настроить PostgreSQL с помощью Docker Compose. Этот процесс займет всего несколько минут, но в результате вы получите полноценную базу данных PostgreSQL, работающую в изолированном Docker контейнере. Важные компоненты, такие как базы данных, таблицы и индексы, будут сохранены на вашей локальной машине благодаря использованию томов (volumes), что обеспечит надежность и доступность данных.

Читать далее
Всего голосов 17: ↑9 и ↓8+4
Комментарии16

На чем разработать свой стартап или с чего начать хакатон в 2024? (часть 1)

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров5.1K

Попробуем собрать свой идеальный boilerplate для full-stack разработки в 2024 году. В этой статье мы будем постепенно собирать свой шаблон для быстрого запуска стартапов.

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

Читать далее
Всего голосов 8: ↑6 и ↓2+7
Комментарии13

Звони первым, если проблема неизбежна. Снижаем contact rate проактивной коммуникацией

Время на прочтение7 мин
Количество просмотров1.6K

Привет, Хабр! Меня зовут Даша Кряжева, я продакт-менеджер, сейчас занимаюсь исходящим голосовым роботом в СберМаркете. С его помощью нам удалось автоматизировать 30% клиентских и партнерских обращений в контактный центр, но это не только про цифры. Проактивная коммуникация — это всегда про повышение лояльности и открытый диалог с пользователями.

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

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Почти все, что вы хотели бы знать про Docker

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров58K

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

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

Читать далее
Всего голосов 65: ↑60 и ↓5+65
Комментарии57

Как маскировка данных спасает вашу приватность

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров3.6K

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

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

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

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии0

Эволюция подсчета в Python

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров10K

У одной задачи может быть несколько способов решения. Возьмем классическую задачу программирования — задачу подсчета, в которой мы считаем, сколько раз каждый элемент списка встречается в нем. Способ решения этой задачи на Python менялся по мере развития языка. Именно об этом мы будем говорить в этой статье.

Большинство из нас присоединилось к программированию на Python с его третьей версии. Однако мы начнем с Python 1.4. Пристегните ремни, отправляемся в далекое прошлое — в 1997 год!

Читать далее
Всего голосов 55: ↑53 и ↓2+62
Комментарии14

Моделирование оргструктур и бизнес-процессов при имплементации ERP-систем

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.8K

Одной из важных задач при имплементации корпоративных информационных систем является проектирование бизнес-процессов. Следуя [1], в ERP-проектах выделяется отдельный уровень внедрения: уровень процессов. Здесь ведется моделирование бизнес-процессов на основе общеизвестных графических нотаций, строятся модели As-Is и To-Be. Все разнообразие нотаций моделирования объединено термином CASE-средства, суть которых изначально заключалась как в проектировании, так и последующей автоматизации настроек и разработок ERP-систем [2].

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

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

Цель работы заключается в анализе методов проектирования бизнес-процессов, применимых к проектам внедрения ERP-систем. Использование подходящих графических моделей позволит строить наглядные процессные диаграммы, удобные для конечных пользователей, что облегчит им работу с разрабатываемой программной системой. Достижение цели потребует решения таких задач, как:

Читать далее
Всего голосов 4: ↑2 и ↓2+2
Комментарии0

Как использовать GitHub Copilot в IDE: советы, приёмы и лучшие практики

Время на прочтение9 мин
Количество просмотров14K

В этой статье поговорим о практических стратегиях, повышающих эффективность использования GitHub Copilot при написании кода.

Читать далее
Всего голосов 26: ↑25 и ↓1+30
Комментарии8

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

Время на прочтение6 мин
Количество просмотров8.2K

Привет, Хабр! На связи Виталий Киреев, руководитель R&D SpaceWeb. Это первая часть статьи про веб-безопасность — здесь я расскажу про главные уязвимости Server Side, покажу примеры и объясню, как защищать данные. 

Читать далее
Всего голосов 18: ↑9 и ↓9+4
Комментарии14

Основы CQRS

Время на прочтение14 мин
Количество просмотров102K
Данная статья основана на материале из различных статей по CQRS, а также проектов, где применялся такой подход.

Системы управления предприятиями, проектами, сотрудниками давно вошли в нашу жизнь. И пользователи таких enterprise приложений все более требовательны: возрастают требования к масштабируемости, сложность бизнес-логики, требования к системам меняются быстро, да и отчетность требуется в реальном времени.

Поэтому при разработке зачастую можно наблюдать одни и те же проблемы в организации кода и архитектуры, а также в их усложнении. При неправильном подходе к проектированию рано или поздно может наступить момент, когда код становится настолько сложным и запутанным, что каждое внесение изменений требует все больше времени и ресурсов.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии88

15+ небанальных ресурсов для начинающего/продолжающего Python-разработчика

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров59K

Привет Хабрчанам! Меня зовут Дима Туркин, я — код-ревьюер на курсе «Python-разработчик» Яндекс Практикума и Python-тимлид.

Тема материалов по Python для начинающих и продолжающих свой путь разработчиков уже заезженная, поэтому в этой статье я постарался собрать ссылки на менее известные бесплатные ресурсы, но не менее полезные. Есть чем дополнить — пишите в комментариях!

Читать далее
Всего голосов 13: ↑12 и ↓1+12
Комментарии11

Python service layer: основы оформления бизнес-логики на примере Django-приложений

Время на прочтение18 мин
Количество просмотров37K

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

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

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

На самом деле, изложенный далее текст относится не только к Django-проектам. Разрабатывая веб-приложения, используя другие инструменты, вроде Flask, люди используют те же концепции веб-разработки, причём часто именно в таком же виде, как они реализованы, в Django - views, request-response объекты, middlewares, модели, формы.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии15

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность