Pull to refresh
-13
0
Send message

Git. Руководство по оформлению веток и коммитов

Level of difficultyEasy
Reading time8 min
Views20K

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

Познать истину
Total votes 17: ↑15 and ↓2+13
Comments16

Разбираем осьминога

Reading time17 min
Views60K
Осьминоги странные.

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

В общем, у вас 4 года. За это время можно с нуля развить разум — и как только вы что-то поймёте, уже пора будет размножаться.

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

Никакого наследия вы не оставите.



Если вам этого мало, ещё стоит знать, что в этой роли вы нюхаете ногами, видите кожей (но до мозга всё равно это не доходит), позволяете щупальцам самим решать некоторые вопросы, развили лучшую в галактике маскировку, научились светиться и оставлять объёмный след тела, можете редактировать свой собственный РНК-код (до 60%). Вместо цветного зрения — поляризованное (дико полезное на глубине), поэтому квадрат раскрывается в своём величии только при наклоне. Ну и ещё осьминоги едят задницей, какают головой (транзитом через мозг), у них синяя кровь и вообще немного нетрадиционная архитектура.

Сейчас объясню, почему осьминоги прекрасны.
Читать дальше →
Total votes 467: ↑462 and ↓5+541
Comments162

Вы неправильно пишете животных

Reading time5 min
Views368K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4+434
Comments352

Регистрация компании в Албании

Reading time23 min
Views506

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

Благодаря своему стратегическому географическому положению, Албания служит важным связующим звеном, соединяющим западное Средиземноморье с Балканами и Азией. Этот географический фактор делает Албанию не просто территорией для транзита, но и важным пунктом для развития торговли и бизнеса. К слову, в последнем рейтинге Doing Business в категории «Международная торговля» Албания заняла 25 позицию из 189 стран мира, а в категории «Регистрация предприятий» — 53 место. 

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

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

Преимущества регистрации компании в Албании

Как мы уже сказали, открытие компании в Албании позволяет предприятиям получить доступ к рынкам Европейского Союза и Балканского региона. Следовательно, предприниматели могут охватить потребительскую базу с более чем 500 млн человек. Помимо выгодного положения, эта страна предлагает конкурентоспособные эксплуатационные расходы. 

Читать далее
Total votes 4: ↑1 and ↓30
Comments0

C# Тренажер

Reading time2 min
Views13K

Хочу представить вашему вниманию бесплатный курс C# Тренажер, который недавно опубликовал на платформе Stepik.

Курс включает в себя множество практических задач по программированию на языке C#, которые способствуют повышению вашего уровня навыков в этой области. В ходе обучения вы столкнетесь с разнообразными заданиями, включая как классические, так и те, которые часто встречаются на собеседованиях в ведущих компаниях, таких как Microsoft, EA, Intel, Amazon, Uber и Unity. Это обеспечит разностороннее развитие ваших навыков работы с переменными, типами данных, операторами, циклами, функциями и алгоритмами. 

Читать далее
Total votes 9: ↑7 and ↓2+6
Comments10

Миграция с MSSQL Server на PostgreSQL. Предпосылки

Level of difficultyEasy
Reading time8 min
Views5.1K

Сегодня обсудим общие вопросы, связанные с миграцией баз данных на новую платформу. Как обычно, акцент сделан на системах 1С:Предприятие, как самых популярных на российском рынке. Но многие рекомендации универсальны и годятся для всех ИТ-систем.

Читать далее
Total votes 6: ↑6 and ↓0+7
Comments20

CI/CD в каждый дом: сборочный цех базовых docker-образов

Level of difficultyMedium
Reading time11 min
Views15K

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

Последнее время DevOps и CI/CD де-факто стали повсеместным стандартом независимо от размера команды, в интернетах хватает статей, почему это важно, в чём собственно идея, полезных практик и других материалов. Я же решил подойти с несколько другой стороны и максимально доступным языком на практических примерах рассмотреть отдельные задачи и их решения в рамках концепции.

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

Кому, собственно, это может пригодиться? Я бы сказал, что почти кому угодно, кто хочет организовать ту компоненту CI/CD, которая отвечает за построение и релизный цикл базовых образов внутри инфраструктуры вашей компании или даже персональных проектов (зародился он именно в процессе приведения в порядок моих пет-проектов).

Какой практический пример может быть без публичного репозитория с MIT-лицензией? Если вам не интересно читать статью, то можно прямо из превью перейти по ссылке и напитаться кодом. Репозиторий же можно копировать как целиком, так и кусками, буду только рад, если он кому-нибудь пригодится. На любые вопросы — готов ответить в комментариях или issues.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments12

Стратегические паттерны DDD

Level of difficultyMedium
Reading time8 min
Views12K

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

Читать далее
Total votes 15: ↑12 and ↓3+9
Comments1

Личный прокси для чайников: универсальный обход цензуры с помощью VPS, 3X-UI, Reality/CDN и Warp

Level of difficultyMedium
Reading time27 min
Views131K

> С 10 апреля 2024, 3 месяца спустя,
> данная статья заблокирована РКН на территории РФ,
> но доступна с IP других стран, а также через веб-архив.

На фоне прошлогоднего обострения цензуры в РФ, статьи автора MiraclePTR стали глотком свободы для многих русскоязычных айтишников. Я же хочу приоткрыть дверь к свободной информации чуть шире и пригласить «не‑технарей» («чайников»), желающих поднять личный прокси‑сервер для обхода цензуры, но дезориентированных обилием информации или остановленных непонятной технической ошибкой.

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

Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).

Если у вас ещё нет личного прокси для обхода цензуры — это знак.

Читать далее
Total votes 102: ↑100 and ↓2+109
Comments292

SQL HowTo: TOP-N на субинтервалах

Level of difficultyEasy
Reading time3 min
Views4.7K

Периодически сталкиваюсь с однотипными задачами вида "показать TOP-N позиций на каждом из вложенных интервалов некоторого периода".

Это может быть "5 лучших по успеваемости студентов в каждом семестре за последний учебный год", или "помесячная динамика позиции 10 наиболее продающихся товаров", или, как у нас в сервисе визуализации PostgreSQL-планов explain.tensor.ru, "3 наиболее активных страны за каждый день":

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments14

Это база: нюансы работы с Redis. Часть 1

Level of difficultyMedium
Reading time15 min
Views39K

Привет! Меня зовут Петр и мы в компании Nixys очень любим Redis. Эта база используется, если не на каждом нашем проекте, то на подавляющем большинстве. Мы работали как с разными инсталляциями Redis, так и с разными версиями, вплоть до самых дремучих, вроде 2.2. Несмотря на то, что в Интернете очень много статей и докладов по этой БД, мы в своей практике достаточно часто встречаемся с непониманием некоторых основных концепций Redis и со стороны разработчиков, и со стороны системных администраторов.

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

Читать далее
Total votes 79: ↑79 and ↓0+79
Comments5

Как сделать поиск в интернет-магазине

Level of difficultyMedium
Reading time17 min
Views4.3K

Привет, Хабр! Меня зовут Степан Родионов, я из Х5 Digital. Сегодня расскажу о поиске в интернет-магазине — типовой задаче для e-commerce, которая в теории имеет типовое решение, но на практике оказывается сложнее.

Я запускал около десятка e-commerce проектов, и в каждом из них делал поиск. Этот опыт постарался обобщить в инструкцию по созданию подобного рода систем.

Рассказывать буду на примере проекта Vprok.ru — это мой текущий, самый крупный проект. Он входит в Х5 Digital и занимает на российском рынке третье место: 10 регионов присутствия, более 72 тысяч товаров, примерно 300 RPS на товарные запросы и около 700 тысяч комбинаций товар+склад.

Найдется все
Total votes 9: ↑7 and ↓2+9
Comments8

Код-ревью и советы по повышению его качества: на что обратить внимание в первую очередь?

Reading time4 min
Views5.7K

Привет, Хабр! Сегодня поговорим о код-ревью, т. е. проверке и оценке качества кода выполненной разработчиком задачи перед её релизом. У код-ревью несколько положительных моментов:

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

Но на что обращать внимание в процессе код-ревью? Об этом сегодня и поговорим.

Читать далее
Total votes 6: ↑5 and ↓1+10
Comments8

Совершенствуем развертывание приложений в Kubernetes с помощью Blue-Green Deployment

Level of difficultyEasy
Reading time4 min
Views3K


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

Blue-Green Deployment (сине-зеленое развертывание) - это стратегия, которая позволяет разработчикам и операторам эффективно справляться с этими вызовами. Она предоставляет возможность переключаться между двумя параллельными окружениями для приложения - активным (синим) и новым (зеленым), обеспечивая бесперебойное обновление приложения без ущерба для доступности.

Читать далее
Total votes 11: ↑8 and ↓3+7
Comments7

Единый формат тестовых данных. Или как ускорить разработку интеграционных тестов

Level of difficultyMedium
Reading time18 min
Views1.9K

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

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

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments0

Организация миграции схем баз данных на основе Nasgrate

Level of difficultyHard
Reading time5 min
Views2K

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

В этой статье я бы хотел подробнее остановиться на Nasgrate

Основные преимущества Nasgrate

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

возможность автоматического создания миграции на основе анализа изменений в двух базах данных (пока поддерживается только MySQL, но в планах другие базы данных) или между двумя состояниями миграций одной базы данных

наличие визуального интерфейса (а не только консольного клиента) позволяющего организовать просмотр изменений в наглядном виде

Читать далее
Total votes 3: ↑2 and ↓1+3
Comments1

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

Reading time4 min
Views9.6K

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

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

Читать далее
Total votes 4: ↑3 and ↓1+3
Comments2

Компонентные тесты на .NET 7

Level of difficultyMedium
Reading time12 min
Views4.8K

Всем привет! Меня зовут Александр Кулик, я .NET-разработчик из команды checkout в Тинькофф. Занимаюсь бэкенд-разработкой по интеграции платежных решений, внешних сервисов и созданию собственных разработок для B2B-сферы.

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

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

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments10

Как писать полезные тесты для микросервисов

Level of difficultyMedium
Reading time29 min
Views11K

Привет! Меня зовут Гриша и я бэкенд разработчик на .net 

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

При этом я строю весь процесс разработки микросервиса на тестах. Я бы хотел поделиться своим взглядом на то, как писать компонентные тесты и в чём они могут быть полезны помимо проверки работы сервиса.

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

Читать далее
Total votes 17: ↑16 and ↓1+21
Comments13

Моки и мокизмы, программистский идеализм, правильная изоляция в тестировании

Level of difficultyMedium
Reading time6 min
Views3.5K


Не так давно у меня появился интерес узнать, какие вообще нынче есть подходы и отношения к Юнит тестированию. Сделано это было скорее в познавательных целях. Сравнив труды по популярности, я решил ознакомиться с книгой "Unit Testing: Principles, Practices, and Patterns (Vladimir Khorikov)". Я не ставлю своей задачей полностью рецензировать данный труд, но не могу не обратить внимание на некоторые тезисы данной книги, которые часто вижу и слышу и о которых хотелось бы поговорить.

Читать дальше →
Total votes 4: ↑2 and ↓20
Comments10

Information

Rating
Does not participate
Registered
Activity