Pull to refresh
12
Karma
0
Rating
Андрей Глазков @Glazz87

Quality Assurance

  • Followers 7
  • Following 1
  • Posts
  • Comments

Холиварный рассказ про линтеры 

Конференции Олега Бунина (Онтико) corporate blog Open source *Python *Programming *Perfect code *
Все мы пишем код. Много кода. Само собой, бывают ошибки. Иногда это просто кривой код, а иногда цена ошибки — взорванный космический корабль. Конечно, никто не делает намеренных косяков, все в меру возможностей стараются следить за качеством, но без инструментов статического анализа вряд ли можно быть уверенным, что всё идеально.

Линтеры помогают приводить код к единому стилю и избегать ошибок. Правда, только в том случае, если вы готовы к страданиям, а не отмахиваетесь в конце концов «pylint: disable», только чтобы оно отстало. Какой должен быть линтер, и почему таки не обойтись Pylint, знает Никита Соболев (sobolevn), который понимает и любит линтеры настолько, что даже свою компанию назвал так, чтобы их не расстраивать — wemake.services.

image

Ниже текстовая версия доклада на Moscow Python Conf++ про линтеры, как их делать правильно и как не нужно. В выступлении было много интерактива, онлайна и общения с аудиторией. Спикер по ходу дела проводил опросы и старался переубедить слушателей: смотрел на тренд, и как в дебатах, пытался выровнять соотношение и поменять общественное мнение. Какая-то часть с опросами попала в расшифровку, но не вся, поэтому для полноты картины прилагается видео.
Total votes 30: ↑26 and ↓4 +22
Views 30K
Comments 16

Звёздная карта или как балансировать знания в команде при влиянии Soft Skill-ов

Agile *Personnel Management *
Sandbox
Многие команды разработчиков сталкиваются с проблемой «бутылочного горлышка», когда слишком много вопросов, связанных с разными аспектами разработки упираются в одного, наиболее квалифицированного специалиста. Менее опытные участники команды при этом не знают, куда им расти, и в какие технологии или специфичные для команды отрасли им нужно углубляться, чтобы быть полезнее для команды. И само собой, когда незаменимый сотрудник всё-таки берёт отпуск или больничный, продуктивность команды существенно падает, а в худших случаях и вовсе будет почти парализована из-за нехватки экспертизы в каких-либо областях.

Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Views 12K
Comments 5

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Sport programming *Python *Perfect code *Regular expressions *Reading room
Tutorial

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Total votes 99: ↑98 and ↓1 +97
Views 606K
Comments 62
Привет, Хабр! Меня зовут Александр Дружков, сейчас я работаю заместителем технического директора ivi, но помню наш сервис маленьким сайтом, который бесплатно показывал интересные фильмы в промежутках между рекламой. Я расскажу, как нам удалось проделать путь до сервиса на 50 миллионов пользователей, какие технологии и решения нам помогли, с какими трудностями сталкивалась наша команда и как менялись наши задачи.
Подробности – под катом
Total votes 33: ↑29 and ↓4 +25
Views 17K
Comments 6

Я в одиночку отрефакторил 15 тысяч строк легаси. Это были худшие две недели в жизни

Perfect code *Designing and refactoring *IT career


Несколько месяцев назад я работал в аутстафе. Это не то место, где нужен энтузиазм и вера в великую цель проекта. Меня вместе с командой просто продавали заказчикам, а на митингах было важно, сколько тикетов я закрыл. Приступы перфекционизма — скорее вредная штука для такого места, но я ничего не мог с ними сделать. За один из них я знатно поплатился, попал в адский кранч и провел худшие две недели в моей жизни.
Читать дальше →
Total votes 427: ↑369 and ↓58 +311
Views 95K
Comments 401

Обзор способов и протоколов аутентификации в веб-приложениях

DataArt corporate blog Information Security *Website development *Programming *


Я расскажу о применении различных способов аутентификации для веб-приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign-On), рассмотрю различные стандарты и протоколы аутентификации.

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

  • Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
  • Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
  • Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.


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

Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу.

Однако в современных системах существуют и более сложные схемы аутентификации и авторизации, о которых я расскажу далее. Но начнем с простого и понятного.
Читать дальше →
Total votes 48: ↑48 and ↓0 +48
Views 439K
Comments 19

Пара слов в защиту монолита

SimbirSoft corporate blog System Analysis and Design *Designing and refactoring *Microservices *
Сравниваем особенности микросервисной и монолитной архитектуры, их преимущества и недостатки. Статья подготовлена для Хабра по материалам нашего митапа Hot Backend, который прошел в Самаре 9 февраля 2019 года. Мы рассматриваем факторы выбора архитектуры в зависимости от конкретной задачи.
Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Views 11K
Comments 10

Blameless environment: никто не должен писать качественный код

Конференции Олега Бунина (Онтико) corporate blog IT systems testing *System Analysis and Design *Perfect code *Development Management *
На РИТ++ Никита Соболев (sobolevn) выступил, как он сам назвал это, с проповедью на тему качества кода и процессов в компании. Особо впечатлительных просим налить себе ромашкового чаю, но отойти от экранов не предлагаем. Вы можете не соглашаться ни с одним из тезисов, настаивать, что трёп о сериалах — залог здоровой атмосферы в коллективе, и утверждать, что вам не нужны строгие рамки линтера и CI, чтобы писать хороший код. Но если вы хоть раз винили окружающих в неудачах на работе, вам стоит прочитать или посмотреть рассказ Никиты.

Работали ли вы когда-нибудь на плохой работе?

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



Когда я говорю, все плохо, я имею в виду, что у нас был:

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

Да, это была аутсорс-разработка, но не это делало её плохой. Люди сделали ее такой.
Читать дальше →
Total votes 53: ↑44 and ↓9 +35
Views 17K
Comments 51

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

Maxilect corporate blog Personnel Management *IT career
Недавно мы писали о том, какие вопросы задаем на собеседовании кандидатам на вакансии в “Максилекте”. Теперь я хочу взглянуть на проблему с другой стороны “баррикад” – с позиции наемного работника. Хотя сегодня я руковожу компанией, за свою жизнь мне пришлось поучаствовать не в одном десятке собеседований на работу. Я даже когда-то описывал свой опыт в статьях, рекомендуя не только отвечать на вопросы, но и задавать их самостоятельно. И опыт показывает, что некоторые вопросы дадут вам даже больше информации, чем вы ожидаете. О них и поговорим.

image
Читать дальше →
Total votes 27: ↑25 and ↓2 +23
Views 19K
Comments 19

На пенсию в 22

IT career Reading room Health
Привет, я Катя, я не работаю уже год.



Я много работала и выгорела. Уволилась и не стала искать новую работу. Толстая финансовая подушка обеспечила мне бессрочный отпуск. Я отлично провела время, а еще утратила часть знаний и психологически постарела. Какая она, жизнь без работы, и чего не стоит от нее ждать, читайте под катом.
Читать дальше →
Total votes 359: ↑259 and ↓100 +159
Views 177K
Comments 956

«Сгоревшие» сотрудники: есть ли выход?

Badoo corporate blog Development Management *Personnel Management *IT career Health
Ты работаешь в хорошей компании. Вокруг тебя крутые профессионалы, получаешь достойную зарплату, каждый день делаешь важные и нужные вещи. Илон Маск запускает спутники, Сергей Семёнович улучшает и без того лучший город Земли. Погода отличная, солнце светит, деревья цветут — живи да радуйся!

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

Что же делать? Как работать с Игнатом? Добро пожаловать под кат!


Total votes 224: ↑210 and ↓14 +196
Views 139K
Comments 400

Нормализация отношений. Шесть нормальных форм

MySQL *SQL *
Sandbox
В данной теме я затрону 6 нормальных форм и методы приведения таблиц в эти формы.

Процесс проектирования БД с использование метода НФ является итерационным и заключается в последовательном переводе отношения из 1НФ в НФ более высокого порядка по определенным правилам. Каждая следующая НФ ограничивается определенным типом функциональных зависимостей и устранением соответствующих аномалий при выполнении операций над отношениями БД, а также сохранении свойств предшествующих НФ.
Читать дальше →
Total votes 37: ↑22 and ↓15 +7
Views 807K
Comments 11

Пишем действительно тестируемый код

JUG Ru Group corporate blog IT systems testing *Web services testing *Mobile applications testing *Game testing *
Что такое тестируемый код? Каких правил стоит придерживаться для его написания? Как начать писать такой код, если кодовая база к этому не готова?

Статья с большим количеством примеров кода и иллюстраций, в основе которой – выступление Антона на конференции Mobius 2017 в Питере. Антон является разработчиком Android-приложений в Juno, и в своей работе затрагивает множество смежных технологий. Этот доклад не об Android и не о Kotlin, он о тестировании в целом, об идеях, которые лежат над платформой и над языком и которые могут быть адаптированы к любому контексту.


Total votes 22: ↑21 and ↓1 +20
Views 16K
Comments 4

Введение в многомерный анализ

SQL *

Некоторое время назад мне довелось организовывать новую группу разработки, которая должна была заняться развитием OLAP и BI продуктов в дружеской софтверной компании. А так как группа была собрана из свежих выпускников ВУЗов, то мне пришлось написать «краткий курс молодого бойца» для того чтобы максимально доступно дать начальные понятия об OLAP людям, которые ни разу с ним не сталкивались, но уже имели опыт программирования и работы с БД.



Выкладываю теперь это Введение в Общественное Достояние.



В статье несколько смешиваются понятия OLAP, Business Intelligence, и Data Warehouse, но и в жизни часто сложно понять, где проходит граница. А уж в реальных проектах, так и подавно, все они ходят рядом. Поэтому прошу не судить строго.



Итак, что же такое OLAP.
Total votes 63: ↑61 and ↓2 +59
Views 119K
Comments 11

Два в одном: как пользоваться Vim и Nano?

System administration **nix *
Sandbox
Upd. 9.7.2017: обновлён раздел про vim. Спасибо вимерам за ценные дополнения.

Вступительное слово


Зачем нужна ещё одна, 1001я публикация на эту тему? Статей про vim и nano написано огромное количество, но как правило они касаются только одного из редакторов, либо представляют из себя общий обзор. Чтобы в одной были сжато описаны оба редактора, но при этом без углубления в дебри приведены все основные клавиши управления для полноценной работы, я не не нашёл. Поэтому, почитав найденные материалы, я начал их конспектировать, так и родилась эта статья.


Любой текстовый редактор можно освоить «методом тыка». Но только не vim.
Чем nano лучше vim?
Из nano можно выйти без reset'а! (с) Интернет


Изначально я не планировал писать об обоих редакторах, а хотел сделать краткую справку только по nano, но в процессе сбора информации накопились данные и по vim тоже. Тут я обнаружил, что Vim не так уж и страшен, если знать команды и концепцию его использования.

Читать дальше →
Total votes 46: ↑41 and ↓5 +36
Views 68K
Comments 199

Профессиональное выгорание в ИТ (результаты исследования «Моего круга»)

Хабр Карьера corporate blog Research and forecasts in IT Personnel Management *IT career


В октябре прошлого года «Мой круг» пригласили на РИФ Воронеж сделать доклад про профессиональное выгорание среди ИТ-специалистов. Как всегда, мы подошли основательно, провели по этой теме соцопрос среди пользователей «Моего круга» и «Хабра» и сегодня рады поделиться своим исследованием. Посмотрим, насколько ИТ-специалисты подвержены выгоранию, какие его признаки выделяют, на какие причины указывают, как выходят из него.

Большинство вопросов анкеты строилось на материалах мастер-класса Наталии Дзеружинской, доктора медицинских наук, профессора, врача-психиатра высшей квалификационной категории, проведённого ею в рамках «Школы менеджеров «Стратоплан»» (видеозаписи 5 мастер-классов школы).

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

Как мы узнали, более 50% ИТ-специалистов имеют опыт профессионального выгорания, причём половина из них прошли через этот опыт 2 и более раза. Для работодателя подобное выгорание сотрудников имеет довольно серьёзные последствия: до 20% сотрудников находятся регулярно в подобном состоянии, только 25% выгорающих остаётся на прежнем месте работы. А значит, довольно большая часть сотрудников работает крайне неэффективно и мешает другим, плюс постоянно нужно вкладывать средства в рекрутинг и адаптацию новых сотрудников взамен выгоревших. Если работодатель научится управлять процессом выгорания, то сможет экономить много материальных и моральных сил для своей компании.
Читать дальше →
Total votes 55: ↑54 and ↓1 +53
Views 50K
Comments 115

Для тех, кто познаёт ушами: подкасты для разработчиков

Mail.ru Group corporate blog IT systems testing *Programming *Development of mobile applications *


Кто сказал, что разработчики могут учиться новому только через книги, видео и анализ чужого кода? Ведь у нас и другие каналы получения информации из окружающего мира. Конечно, речь не о том, чтобы попробовать знания на вкус, пощупать их или понюхать. А вот послушать — самое оно. Мы собрали для вас коллекцию действующих русскоязычных подкастов для разработчиков. Хороший способ дать глазам отдых или занять себя в пробках.
Читать дальше →
Total votes 83: ↑80 and ↓3 +77
Views 47K
Comments 57

Микросервисы: размер имеет значение, даже если у вас Kubernetes

Флант corporate blog Programming *System Analysis and Design *DevOps *
19 сентября в Москве состоялся первый тематический митап HUG (Highload++ User Group), который был посвящён микросервисам. На нём прозвучал доклад «Эксплуатация микросервисов: размер имеет значение, даже если у вас Kubernetes», в котором мы поделились обширным опытом компании «Флант» в области эксплуатации проектов с микросервисной архитектурой. В первую очередь он будет полезен всем разработчикам, задумывающимся о применении этого подхода в своём настоящем или будущем проекте.



Представляем видео с докладом (50 минут, гораздо информативнее статьи), а также основную выжимку из него в текстовом виде.

NB: Видео и презентация доступны также в конце этой публикации.
Total votes 40: ↑39 and ↓1 +38
Views 25K
Comments 23

Devops, JUnit5 и тестирование микросервисов: субъективный взгляд на московский “Гейзенбаг”

IT systems testing *Java *Conferences


6-7 декабря в Москве состоялась пятая по счёту конференция «Гейзенбаг».
Её слоган — «Тестирование. Не только для тестировщиков!», и за два года регулярного посещения «Гейзенбагов» мне (прежде Java-разработчику, ныне — техническому лиду в маленькой компании, никогда не работавшему в QA) удалось многому научиться в области тестирования и многое внедрить в нашей команде. Я хочу поделиться субъективным обзором запомнившихся мне на этот раз докладов.
Читать дальше →
Total votes 27: ↑26 and ↓1 +25
Views 4.3K
Comments 9

HeisenBug глазами сотрудника СберТеха

Сбер corporate blog IT systems testing *Java *Conferences
В этом посте я хочу поделиться обзором 15 докладов с конференции Heisenbug, рассказать, что интересного было на стендах у компаний, а также поделиться видеоматериалом из доклада Артема Ерошенко о создании actions плагинов для IntelliJ IDEA, которые помогут быстро изменять код тестового проекта.


Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 4.1K
Comments 0

Information

Rating
Does not participate
Location
Зеленоград, Москва и Московская обл., Россия
Registered
Activity