Как стать автором
Обновить
11
0
Александр Рахмаев @rahmaevao

Инженер-конструктор-тематик

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

Используйте всё богатство HTTP-кодов состояний

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

Если вы не специалист по REST, то, вероятно, в своих ответах постоянно используете одни и те же HTTP-коды, в основном 200, 404 и 500. Если применяется аутентификация, то, возможно, добавляются 401 и 403; если есть переадресации, то 301 и 302, но на этом, скорее всего, список заканчивается. Но спектр возможных кодов состояний гораздо шире и он может сильно улучшить семантику. Хотя во многих обсуждениях REST упор делается на сущностях и методах, применение подходящих кодов ответов о состояниях может повысить удобство вашего API.

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 29

Python package registry в GitLab

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

О чем статья: при разработке проектов, и, особенно, распределенных приложений, возникает необходимость использования некоторых частей приложения в качестве отдельных модулей. Например скомпилированные классы для gRPC, модули для работы с БД, и многое другое, могут применяться в неизменном виде в кодовой базе десятка микросервисов. Оставив за скобками копипасту, как "хорошую" плохую практику. Можно рассмотреть git submodules, однако, такое решение не очень удобно тем, что, во-первых, нужно предоставлять разработчикам доступ к конкретным репозиториям с кодовой базой, во-вторых, нужно понимать, какой коммит надо забрать себе, и в-третьих установка зависимостей для кода, включенного в проект как субмодуль, остается на совести разработчика. Менеджеры пакетов (pip, или, лучше, poetry), умеют разрешать зависимости из коробки, без лишних действий, и, в целом, использование менеджера пакетов значительно проще, чем работа с субмодулем. В статье рассмотрим, как организовать реестр пакетов в GitLab, а также различные подводные камни, поджидающие на пути к удобной работе с ним.

Для кого: статья будет полезна разработчикам, столкнувшимся с необходимостью организации приватного реестра пакетов, в качестве руководства по организации такого реестра в GitLab.

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

[По полочкам] Кэширование

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

Всем привет! Меня зовут Илья Денисов, я занимаюсь backend разработкой уже более пяти лет и сейчас пишу на языке go. Сегодня я предлагаю вам поговорить о кэшировании. Постараюсь рассказать о базовых концепциях, а также затронуть ряд особенностей, неочевидных на первый взгляд.

Читать далее
Всего голосов 45: ↑41 и ↓4 +37
Комментарии 16

Радиосвязь в открытом море и “мёртвая специальность”. Судовая электроника — часть I

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

Доброго времени суток, уважаемые хабровчане.

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

 А пост, собственно, пойдёт о средствах радиосвязи и навигации и вообще электронике на современных морских судах, об использующихся технологиях, стандартах и даже о преждевременно “похороненной” специальности.

 Я планирую сделать несколько выпусков, чтоб в каждом последующем учесть вопросы в комментариях (надеюсь, они будут, и не очень сложные). А эту – вступительную – статью я разбил на два подпункта: социальный и технический. Те, кому интересна только техника - воспользуйтесь великолепным спойлером. Под ним – вводное, и пока не очень глубокое описание техники, устанавливающейся на морские суда с оригинальными фотографиями.

 Остальным советую ознакомиться со всей статьёй полностью: это не только дополнит повествование, но и, надеюсь, станет кому-то хорошим примером одной давно известной истины.

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

Что лучше: UIKit или SwiftUI?

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

Hello, World! Меня зовут Денис. Я IOS разработчик, пишу приложения для App Store. Хочу поделиться своим небольшим опытом на UIKit и SwiftUI.

Первый запуск

На WWDC19 Apple предоставила декларативный фреймворк SwiftUI. Новый фреймворк позволяет уменьшать время на написание UI-составляющей своих приложений.

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

Электронный конструктор, не бьющий током

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

Дайте угадаю: вы в детстве заворожённо рассматривали печатные платы? Вам было любопытно узнать, как работает этот мини-город из разноцветных деталек? Возможно, у вас был опыт сборки электронных схем по книгам Борисова и Свореня? Советский сорокаваттный паяльник, кусочек канифоли в спичечном коробке? А ещё штаны с намертво влипшей в ткань каплей припоя?

Современные программные средства иллюстрируют процессы, происходящие в электрических цепях, с недосягаемыми для радиолюбителей недавнего прошлого наглядностью и интерактивностью. Они визуализируют протекающие по схеме токи и показывают напряжения в её различных частях. Это снижает порог понимания для людей, которым сложно даются абстрактные знания и язык формул.
Читать и смотреть картинки
Всего голосов 163: ↑163 и ↓0 +163
Комментарии 153

Как работать с ошибками бизнес-логики через HTTP

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

Почти все разработчики так или иначе постоянно работают с api по http, клиентские разработчики работают с api backend своего сайта или приложения, а бэкендеры "дергают" бэкенды других сервисов, как внутренних, так и внешних. И мне кажется, одна из самых главных вещей в хорошем API это формат передачи ошибок. Ведь если это сделано плохо/неудобно, то разработчик, использующий это API, скорее всего не обработает ошибки, а клиенты будут пользоваться молчаливо ломающимся продуктом.

За 7 лет я как поддерживал множество legacy API, так и разрабатывал c нуля. И я поработал, наверное, с большинством стратегий по возвращению ошибок, но каждая из них создавала дискомфорт в той или иной мере. В последнее время я нащупал оптимальный вариант, о котором и хочу рассказать, но с начала расскажу о двух наиболее популярных вариантах.

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

Что Должно Быть в Каждом FirmWare Pепозитории

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

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

То есть перечислить самые универсальные и переносимые программные компоненты (кирпичики), которые могут пригодиться в практически любой сборке.

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

Scrum и Kanban: как джунам не запутаться в процессах и терминах

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

Привет! 

Эта статья по большей части будет полезна людям, которые только начинают погружаться в процессы работы команд, применяющих Agile. После общения со стажерами и джунами в компании сразу становится понятно, что помимо погружения человека в технические инструменты работы конечно важно объяснять и основные методы работы проектных и продуктовых команд, большая часть которых работает по Kanban или Scrum.  

Не забываем, чтобы работать по Agile, в первую очередь важно придерживаться Agile-манифеста и его ценностей. Не достаточно просто работать в таск-трекерах и применять Kanban и Scrum.

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

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

В первую очередь нужно сказать пару слов про Agile. 

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

Есть разные методики управления проектом: Kanban и Scrum. 

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

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

Версионная миграция структуры базы данных: основные подходы

Время на прочтение 15 мин
Количество просмотров 134K
Проблемы контроля версий баз данных и миграций между версиями уже не раз поднимались как на Хабре (1, 2, 3 и др.), так и в Интернете (преимущественно, англоязычном).

В первом разделе этой статьи я рассматриваю основные проблемы, которые возникают в командах программистов при внесении любых изменений в структуру базы данных. Во втором разделе я попытался выделить основные общие подходы к тому, в каком виде изменения структуры базы данных можно хранить и поддерживать в процессе разработки.
Читать дальше →
Всего голосов 89: ↑87 и ↓2 +85
Комментарии 83

Чем заменить телевизор

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

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

Читать далее
Всего голосов 28: ↑24 и ↓4 +20
Комментарии 79

Вы неправильно используете docker-compose

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

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

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

4 греха
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 16

Настройка docker для django на mysql

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

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


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

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

Как писать bash-скрипты надежно и безопасно: минимальный шаблон

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

Скрипты на Bash. Как много в этом слове. Любому разработчику рано или поздно приходится их писать. Почти никто не скажет "да, я люблю писать bash-скрипты", и поэтому этой теме уделяют мало внимания.

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

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

Практические рекомендации по работе с Docker для Python-разработчиков

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

Прим. Wunder Fund: в этой длииинной статье вы найдете ряд полезных советов по работе с Docker, как общего характера, так и Python-специфичных. Хоть мы и давно используем Docker в работе, про некоторые советы мы подумали "а что, так можно было?". Советуем вначале пролистать статью, и отметить штуки, которые покажутся актуальными для вашей текущей ситуации.

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

Практическое руководство по методу максимального правдоподобия

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

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

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

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

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

Как стать web-разработчиком на Python за полгода: конкретный план действий

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

Всем привет! Меня зовут Евгений Степанов, и я Python Full Stack-Developer в компании PVS-Studio. В этой статье вы узнаете, что нужно сделать, чтобы за полгода стать Python backend-разработчиком. После прочтения данной публикации у вас будет чёткий план, который останется только реализовать. Поехали!

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

Разница между ОМС, ДМС и наличными в стоматологии

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

Из каждой своей зарплаты вы отчисляете 5,1% на ОМС. Это довольно много. Если у вас зарплата в 100 000 рублей, то каждый год вы отчисляете 61 200 рублей. На этом моменте все начинают нервничать, понимая, что полис ДМС с куда более качественным лечением обойдётся как бы не дешевле. На самом деле надо просто понимать, что задачи у этих видов страхования кардинально разные. На свои отчисления ОМС вы в том числе платите зарплату хирургам и содержите больницы, куда вас могут привезти, если не повезёт и с крыши на голову упадёт кирпич. На эти же деньги получают медпомощь пенсионеры, люди с зарплатой в районе МРОТ и дети. Отсюда и кардинальная разница в качестве и задачах. По ДМС могут вытащить гвоздь, а по ОМС только загнуть, чтобы было удобно и не снижало качество жизни.

А ещё можно просто прийти и заплатить самому. Это тоже имеет смысл, когда мы говорим о процедурах, которые не покрываются в ОМС и ДМС. Например, лечение ожирения почти никогда не покрывается страховками, хотя это играет важную роль в здоровье пациента.

Стоматологию тоже можно оплачивать из трёх источников:

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

2. Сходить по ОМС. Не всё так плохо, можно получить базовую медицинскую помощь, но в целом всё сводится к самой дешёвой вставной челюсти, чтобы хоть как-то жевалось. Для простых вещей может подойти.

3. Сходить по ДМС. Покрытие зависит от полиса и чаще всего не даёт возможности качественно протезироваться или применять дорогое оборудование и материалы. Но этот вариант хорошо покроет профилактику и лечение начальных форм кариеса.

Что именно стоит лечить по какой страховке, я сейчас расскажу. 

Читать далее
Всего голосов 43: ↑40 и ↓3 +37
Комментарии 41

Алгоритм ранжирования ошибок

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

Возможно Вам доводилось слышать про протокол журнала событий syslog, в котором можно насчитать аж 8 уровней важности: emergency, alert, critical, error, warning, notice, info, debug. Наверняка Вы, как и я какое-то время назад, думаете, “зачем столько”? А что если я скажу, что количество уровней там просто идеально? И использовать можно все - даже debug - для продакшн. Во всяком случае, каждому из них можно придать формальный критерий. Это особенно иронично для меня самого, так как всего пару месяцев назад я написал статью в духе “зачем так сложно!”. Так что если Вам интересно посмотреть на пример технического “переобувания” или оценить строгий алгоритм ранжирования уровней важности событий в системе - прошу.

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

Практическое руководство по именованию классов, функций и переменных

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

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

Читать далее
Всего голосов 37: ↑32 и ↓5 +27
Комментарии 41

Информация

В рейтинге
5 073-й
Откуда
Йошкар-Ола, Марий Эл, Россия
Дата рождения
Зарегистрирован
Активность