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

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

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

Избавляемся от паролей в репе с кодом с помощью HashiCorp Vault Dynamic Secrets

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

Привет, Хабр! Меня зовут Сергей, я работаю IT Head в компании Quadcode. Сегодня хотел бы рассказать о том, как я решил проблему с хранением паролей в открытом виде в коде одного из моих pet-проектов. Думаю, это знакомая для многих ситуация. Знакомая — и неприятная.

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

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

Как я познавал ci/cd, Гитхаб экшены

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

Гитхаб экшены, как я познавал ci/cd

   Всем Алоха. Все слышали про ci/cd, про то что он должен быть в каждой компании и то что он упрощает нам жизнь. У всех свой ci/cd. 

   Кто-то предпочитает Jenkins. Особенно если у вас куча микросервисов, команд и процессов, то при помощи Дженкинса можно достаточно гибко настроить ci/cd в компании. Кто-то использует GitLab actions и для каждого репозитория настраивает свои пайплайны и процессы. Достаточно удобно и просто настраиваемый механизм сборки и доставки артефактов на стенды. Не чуть не хуже GitHub actions. Это было открытием для меня что в GitHub появился такой функционал, о котором мы поговорим позже. Ну и конечно всеми «любимый» скриптовый ci/cd. Пачка скриптов, которые нужно выполнить в определенной последовательности чтобы собрать и задеплоить артефакты. Есть ещё так сказать хэнд мэнуал ci/cd. Но это особый вид извращения, с которым не пожелаю столкнуться никому. В котором нужно собрать артефакты у себя на машине и по какому нить ридми выполнять команды в терминале, лазить по ssh смотреть, что все копировалось, перезапускать сервисы и другие развлечения. 

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

Read more about GitHub Actions
Всего голосов 12: ↑12 и ↓0+12
Комментарии55

Полное визуальное руководство/шпаргалка по CSS Grid

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

Сегодня мы с вами рассмотрим свойства CSS Grid (далее также — Грид), позволяющие создавать адаптивные или отзывчивые макеты веб-страниц. Я постараюсь кратко, но полно объяснить, как работает каждое свойство.


Что такое CSS Grid?



Грид — это макет для сайта (его схема, проект).


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


Вот простой пример макета сайта, созданного с помощью Грида.

Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии4

Такая разная колонизация Африки

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


Африка. Континент контрастов, с которыми многие из нас сталкиваются ещё в детстве. С одной стороны Николай Дроздов, Иван Затевахин и канал Animal Planet рассказывают нам про всяких интересных зверушек, а Discovery показывает прекрасные виды на всякие вулканы Килиманджаро и водопады Виктория. С другой стороны – «Не ходите в Африку гулять» вперемешку с ужасами от мам и бабушек, мотивирующих поедание невкусной каши упоминанием голодающих африканских детей. И чем старше мы становимся, тем больше на первый план выходят не реки вот такой ширины и горы вот такой вышины, а разного рода Бармалеи. Причём чаще всего представляющие собой лютую смесь из обрывков новостных репортажей, остатков слабой тройки по географии в школе и каких-то диких баек из жёлтых газет и того же цвета сайтов. В итоге, весь континент воспринимается как сплошное месиво из гражданских войн, голодающих детей, военных переворотов, эпидемий и каннибализма. Очень похоже, кстати, на распространённое восприятие средних веков. Просто одно было давно, а другое сейчас, но далеко. Не сказать, чтобы всех перечисленных прелестей был особый дефицит, но всё-таки оно творится не везде и не всегда, а местами и время от времени. Причём где-то чаще, а где-то практически никогда. Вот о том, почему так происходит, речь и пойдёт.
Читать дальше →
Всего голосов 91: ↑62 и ↓29+33
Комментарии75

Гайд начинающего тимлида

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

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

Всё это я проговаривал на вебинаре в Хекслете тут https://www.youtube.com/watch?v=y_HkXvFovAc

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

Общий стаж моей работы в ИТ - около 14 лет. Я начинал с системного администрирования, потом перешел в разработку, поработав как в аутсорсе, так и в продукте. Не один раз проходил путь от рядового разработчика до тимлида.

Читать далее
Всего голосов 51: ↑49 и ↓2+47
Комментарии16

Введение в непрерывную поставку (CD) при помощи GitLab

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

Введение в непрерывную поставку (CD) при помощи GitLab


Введение в непрерывную поставку (CD) при помощи GitLab


Данный туториал позволит вам быстро прочувствовать как происходит командная работа с использованием GitLab. В целом, начать практиковать DevOps/CD с GitLab проще чем с использованием других продуктов потому что GitLab — это решение "всё в одном".


В процессе этого туториала мы


  • настроим базовое управления проектом на GitLab.com;
  • создадим конвейер непрерывной поставки
  • проведём несколько циклов работы с GitLab Flow
  • изучим метрики CI/CD в GitLab

Желательны но необязательны базовые знания


  • Git;
  • Node.js;
  • React;
  • Docker;
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии2

CORS для чайников: история возникновения, как устроен и оптимальные методы работы

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


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

Если вы давно хотели разобраться в CORS и вас достали постоянные ошибки, добро пожаловать под кат.

Ошибка в консоли вашего браузера


No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com/

Access to fetch at ‘https://example.com’ from origin ‘http://localhost:3000’ has been blocked by CORS policy.


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

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

Но давайте-ка пойдем к истокам…
Читать дальше →
Всего голосов 59: ↑58 и ↓1+57
Комментарии14

Cоздание переиспользуемых Linq фильтров (построителей предикатов для Where), которые можно применять для разных типов

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

Способ создания переиспользуемых Linq фильтров (построителе предикатов для условия Where), которые можно применять для разных типов объектов. Поля объектов для фильтрации указываются с помощью MemberExpression.

Способ подходит для Entity Framework, включая Async операции.

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

Интеграция PostgreSQL с MS SQL Server для тех, кто желает побыстрее и поглубже

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

Недавно на хабре уже было опубликовано описание интеграции PostgreSQL и MSSQL. Но, деталей там категорически не хватало. Посему, цели сей публикации следующие:

  • расширить и углубить общедоступную информацию о FDW для MSSQL называемом tds_fdw: рассказать о разнице в мажорных версиях и описать базовые проблемы совместимости;
  • рассказать о возможностях оптимизации запросов, использующих внешние таблицы;
  • затронуть тему кэширования внешних данных в материализованных представлениях;
  • сказать пару слов об экзотических подходах к интеграции PostgreSQL и MSSQL.

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

Пошаговая инструкция по настройке и использованию Gitlab CI + Visual Studio для сборки приложения .NET Framework

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

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


Как только кто-либо из нашей команды вносит изменения в код (читай «мерджит feature-ветку в develop»), наш билд-сервер:


  • Собирает исходный код и установщик приложения
    • проставляет номер сборки, каждый раз увеличивая последнюю цифру. Например, текущая версия нашего ПО 3.3.0.202 – часть 3.3.0 когда-то ввёл разработчик (привет, SemVer), а «202» проставляется в процессе сборки.
    • В процессе анализирует качество кода (с использованием SonarQube) – и отправляет отчёт во внутренний SonarQube,
  • Сразу после сборки запускает автотесты (xUnit) и анализирует покрытие тестами (OpenCover),

Также, в зависимости от ветки, в которую были внесены изменения, могут быть выполнены:


  • отправка сборки (вместе с changelog-ом) в один или несколько телеграм-каналов (иногда удобнее брать сборки оттуда).
  • публикация файлов в систему автообновления ПО.

Под катом о том, как мы научили Gitlab CI делать за нас бОльшую часть этой муторной работы.

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

10 подкастов для изучения/продолжения изучения английского языка

Время на прочтение5 мин
Количество просмотров185K
image

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

Подкасты – это звуковые аудиофайлы в стиле радиопередач в интернете Как правило, подкасты имеют определенную тематику и периодичность издания. Каждый человек, у которого есть смартфон, может прослушивать подкасты. Для прослушивания подкастов у владельцев Apple есть родное приложение, называется «podcasts». Android пользователи могут использовать приложение «Podcast Addict».
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии42

Снова про WebDAV и Облако Mail.Ru

Время на прочтение2 мин
Количество просмотров100K
В каждой теме, касающейся Облака Mail.Ru, имеются комментарии — «когда будет WebDAV?» и родственное «Как подключить Облако Mail.ru как сетевой диск?». Судя по тому, что обещают уже несколько лет (хотя в облаке для бизнеса webdav имеется), бесплатные пользователи его не дождутся.

В общем, гора к Магомету не идёт, но и Магомет как-то не торопился, хотя, казалось бы, все для этого есть — и реализации API, и реализации webdav-серверов. Вполне логично было бы взять и то, и другое и объединить.
Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии94

DIY порошок для посудомойки: как не растворить посуду и не повторить моих ошибок. Год экспериментов

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


Предыдущие публикации:

Пудра для мозга или как сделать порошок для посудомойки в 9,7 раз дешевле
DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт

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

Ученые уточняют, насколько быстро расширяется Вселенная

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

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

Ученые Клемсона Марко Аджелло, Абхишек Десаи, Леа Маркотулли и Дитер Хартманн совместно с шестью другими учеными по всему миру разработали новое измерение постоянной Хаббла — единицы измерения, используемой для описания скорости расширения Вселенной.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии44

Если вы используете моки, то вы хоть что-то тестируете?

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

Было ли у вас ощущение, что ради тестирования вы делаете код труднее для чтения? Допустим, у вас есть код, который ещё не тестировался. У него есть ряд побочных эффектов, и вас просят сначала прогнать тесты. Вы начинаете следовать советам вроде передачи глобальных переменных в виде параметров или извлечения проблемных побочных эффектов, чтобы сделать вместо них заглушки в тестах.

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

Вы останавливаетесь и задумываетесь: «Допустимо ли менять сигнатуры кода ради тестирования? Тестирую ли я реальный код или совершенно другой класс, в котором не происходит то, что нужно?» Перед вами может возникнуть дилемма. Вы уверены, что стоит и дальше придерживаться этого подхода? Или это потеря времени?

Вопрос на миллион: для устаревшего кода нужно писать модульные тесты или интеграционные?
Читать дальше →
Всего голосов 55: ↑53 и ↓2+51
Комментарии19

Предвзятый и субъективный взгляд на резюме разработчика

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

Привет! Недавно мои коллеги из hh.ru провели вебинар, где разбирали резюме разработчика. Я решил поделиться своей точкой зрения на этот счет.


image


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

Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Комментарии30

Стратегии выплаты технического долга

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

Технический долг: он есть у всех, и каждый достойный своего звания разработчик хочет его выплатить, но как же организовать этот процесс?

Реализуем севооборот


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

Эта метафора остаётся подходящей и для разработки ПО; кроме того, она содержит в себе намёки на возможные стратегии, которые можно использовать для выплаты технического долга.

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

В рамках этой статьи мы будем предполагать, что вы работаете в методологии agile-разработки, однако многие принципы при условии творческой переработки применимы и к другим методологиям.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии1

Код ревью: как быть хорошим автором

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

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

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

Что тимлиду спросить о компании на собеседовании

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

По мотивам своих собеседований, а также собеседований коллег и mentee, составил список вопросов от тимлида к компании, что стоит прояснить на собеседовании — что спросить собеседующего.

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

Каковы финансовые показатели компании?

Является ли компания прибыльной или тратит деньги инвесторов? Или даже до инвесторов ещё не дошло, и основатели пока платят из своего кармана? Как выглядит бизнесовый план развития?

Если компания имеет представительство в РФ, официальное ли (по ТК РФ) трудоустройство и полностью ли "белая" зарплата?

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

Расскажите про ваше понимание «хорошего тимлида»

У собеседника должно быть четкое и непротиворечивое понимание, что он вкладывает в понятие «тимлид» и какие критерии используются для оценки работы тимлида.

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

Где-то тимлид должен быть разработчиком (то есть, писать код) с минимальной общественной нагрузкой, где-то руководителем, где-то пытаться совместить.

Читать далее
Всего голосов 44: ↑40 и ↓4+36
Комментарии87

Чек-лист тестирования WEB приложений

Время на прочтение5 мин
Количество просмотров208K
Привет! После публикации статьи «Чек-лист тестирования мобильных приложений», поступило большое количество сообщений про такой же чек-лист, только для WEB приложений. Чтобы ответить на этот вопрос была подготовлена универсальная шпаргалка, которую можно использовать при тестировании практически любого WEB приложения.


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

Информация

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