Search
Write a publication
Pull to refresh
223
0.3
Алексей @NeverWalkAloner

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

Send message

Основные инструменты Kubernetes в 2021 году

Reading time21 min
Views27K

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

В основе этого списка — мой личный опыт, и чтобы избежать предвзятости, я расскажу и об альтернативных инструментах, чтобы вы могли всё сравнить и принять решение, исходя из своих потребностей. Постараюсь дать информацию сжато и привести источники, чтобы при желании вы могли изучить всё самостоятельно. Описывая инструменты для различных задач разработки ПО, я хотел ответить на вопрос: «Как я могу сделать X в Kubernetes?»

Читать далее

Как устроен Domain-Driven Design

Reading time13 min
Views57K

Многие проекты на Django начинаются просто: есть база данных и к приложению, которое крутится на сервере, идут обращения. Например, так начиналась Dodo IS (информационная система компании Додо Пицца, где работал автор сегодняшней статьи). Но если использовать Django из коробки, можно натворить много бед и встретить пачку антипаттернов. Возможно, вы встречали такое на старых legacy-проектах.

Евгений Пешков развивает сообщество DDD-практиков, рассказывая, какие проблемы решает Domain-Driven Design (предметно-ориентированное проектирование) в современном мире. На конференции Russian Python Week 2020 он выступил с рассказом об этом. Кстати, 19 августа пройдет встреча DDDevotion-сообщества, присоединяйтесь, будем о чем поговорить.

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

Читать далее

Частично рассекречено методическое пособие АНБ по взлому неизвестных шифров

Reading time7 min
Views23K

Скульптура Kryptos у штаб-квартиры ЦРУ

Агентство национальной безопасности США наконец-то рассекретило третью часть известного учебника «Военная криптоаналитика» (MILCRYP), написанного для обучения специалистов АНБ и военных криптоаналитиков во время Холодной войны. Последняя часть трёхтомника опубликована с некоторыми купюрами, но всё равно представляет огромную ценность, ведь у нас не так много практических пособий по взлому шифров. Речь идёт о неизвестных, сложных кодах, которые составлены по непонятным правилам. Как к ним подступиться? Как найти зацепки? Книга отвечает на эти вопросы.

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

SQLAlchemy: а ведь раньше я презирал ORM

Reading time10 min
Views39K

Так вышло, что на заре моей карьеры в IT меня покусал Oracle -- тогда я ещё не знал ни одной ORM, но уже шпарил SQL и знал, насколько огромны возможности БД.

Знакомство с DjangoORM ввело меня в глубокую фрустрацию. Вместо возможностей -- хрена с два, а не составной первичный ключ или оконные функции. Специфические фичи БД проще забыть. Добивало то, что по цене нулевой гибкости мне продавали падение же производительности -- сборка ORM-запроса не бесплатная. Ну и вишенка на торте -- в дополнение к синтаксису SQL надо знать ещё и синтаксис ORM, который этот SQL сгенерирует. Недостатки, которые я купил за дополнительную когнитивную нагрузку -- вот уж где достижение индустрии. Поэтому я всерьёз считал, что без ORM проще, гибче и в разы производительнее -- ведь у вас в руках все возможности БД.

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

SELECT article FROM habr

Разработка REST-серверов на Go. Часть 1: стандартная библиотека

Reading time9 min
Views96K
Это — первый материал из серии статей, посвящённой разработке REST-серверов на Go. В этих статьях я планирую описать реализацию простого REST-сервера с использованием нескольких различных подходов. В результате эти подходы можно будет сравнить друг с другом, можно будет понять их относительные преимущества друг перед другом.

Первый вопрос разработчиков, которые только начинают применять Go, часто выглядит так: «Какой фреймворк стоит использовать для решения задачи X». И хотя это — совершенно нормальный вопрос, если задавать его, имея в виду веб-приложения и серверы, написанные на многих других языках, в случае с Go при ответе на этот вопрос нужно принять во внимание множество тонкостей. Существуют серьёзные аргументы как «за», так и «против» использования фреймворков в Go-проектах. Я, работая над статьями из этой серии, вижу своей целью объективное разностороннее исследование этого вопроса.


Читать дальше →

Все английские времена в одной простой схеме

Reading time3 min
Views223K

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

Как это часто бывает, по-настоящему понимаешь какую-то тему, только когда начинаешь рассказывать о ней другим («метод Фейнмана»). Несколько друзей, позавидовав моим «успехам», попросили помочь разобраться с английским. Тут и обнаружилось, что хотя я уже успешно использую английский в повседневной работе, обучать ему кого-то ещё — это совершенно отдельный навык.

Первоначальная идея. Сначала разъяснить все английские времена за один присест удавалось, надёргав различных идей из интернета: обрывки чьих-то схем, начинали склеиваться в свою схему и обрастать собственными легендами, а применение времён почти всегда было проще пояснить, используя хрестоматийную «систему английских времен с точки зрения употребления глагола “to vodka”». С каждой новой импровизированной лекцией, схема и нарратив продолжали меняться. «Ученики» попадались с различным базовым уровнем, что позволило понять, откуда нужно начинать плясать, чтобы урок был понятен всем, кто хоть раз слышал что-то про глаголы have и be. Когда счёт обученных уже пошёл на десятки, я решил оформить идею в более стройную лекцию. От первых попыток преподавания английских времён, до этого момента прошло пять лет. За это время было обучено ещё пару сотен человек. Обучено — по приколу. Денег за эти уроки я не брал.

Читать далее

Мой топ книг о Python

Reading time8 min
Views141K
Привет, Хабр! Я Слава, руководитель команды «Профессиональные инструменты» в Циане, член ПК Moscow Python Conf и член core-команды авторов в Яндекс.Практикуме.

Вместе с ребятами мы развиваем курс «Мидл python-разработчик», и сегодня я хочу поделиться моим личным списком книг, которые помогут вам структурировать и углубить свои знания о разработке на языке Python.


Читать дальше →

Всё, о чём должен знать разработчик Телеграм-ботов

Reading time15 min
Views706K

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?

Подробный гайд о том, как работать с ботами — под катом.

Читать далее

Как выучить иностранный язык: алгоритм

Reading time13 min
Views168K

Если вы хоть немного пересекались с Machine Learning, то понимаете, что человеческий мозг — это, по сути, большая нейросеть. А раз так, то и работу с ним можно строить по известным в ML алгоритмам. Так я нашел универсальный способ выучить любой иностранный язык до нормального уровня в разумные сроки. И на себе проверил его эффективность.

Читать далее

Что почитать (НаучПоп / Научная Фантастика)

Reading time6 min
Views66K

Некоторые время назад сильно увлёкся потреблением информации с научно-популярным уклоном. Но как не заблудиться в миллионах книг? Ресурс то ограничен. А значит придётся выбирать.

Удалось собрать библиотеку по 4 разделам:


Раздел 1. Законы науки и мышление
(Математика, Рациональность, Научный метод, Когнитивные искажения, Нейрофизиология, Ошибки мышления, Доказательная медицина)

Раздел 2. Законы природы
(Физика, Математика, Теория относительности, Квантовая механика, Астрофизика, Астрономия, Изобретения и открытия)

Раздел 3. Законы жизни
(Абиогенез, Теория эволюции, Молекулярная биология, Биоинформатика, Биология клетки, Антропогенез)

Раздел 4. Художественный научпоп / Научная фантастика

Обменяться рекомендациями

Фантастические книги, которые вы могли пропустить в 2020 году

Reading time7 min
Views66K

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

Буду рад, если в комментариях поделитесь своими фантастическими находками.

Читать далее

Как работают квантовые компьютеры. Собираем паззл

Reading time33 min
Views276K


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


А недавно ко мне подошли коллеги и спросили “Ты понимаешь как работает квантовый компьютер? Можешь нам рассказать?” И тут я понял, что проблема со складыванием в голове целостной картинки есть не только у меня.


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

Получилось или нет - решать, как обычно, вам.

Лучшие практики при написании безопасного Dockerfile

Reading time9 min
Views32K

В данной статье мы рассмотрим небезопасные варианты написания собственного Dockerfile, а также лучшие практики, включая работу с секретами и встраивание инструментов статического анализа. Тем не менее для написания безопасного Dockerfile наличия документа с лучшими практиками мало. В первую очередь требуется организовать культуру написания кода. К ней, например, относятся формализация и контроль процесса использования сторонних компонентов, организация собственных Software Bill-of-Materials (SBOM), выстраивание принципов при написании собственных базовых образов, согласованное использование безопасных функций, и так далее. В данном случае отправной точкой для организации процессов может служить модель оценки зрелости BSIMM. Однако в этой статьей пойдет речь именно о технических аспектах.

Читать далее

Анонимный Дед Мороз 2020-2021: пост хвастовства новогодними подарками

Reading time1 min
Views20K
АДМ 2020 на Хабре

Что мы делаем после каждого запуска Хабра-АДМ? Правильно! Публикуем пост Хвастовства.
И особенно приятно, что некоторые участники уже получили свои первые подарки. Так поторопимся и мы.

Пост Хвастовства объявляется открытым!

С НАСТУПАЮЩИМ НОВЫМ 2021 ГОДОМ!

Ваши iCTPEJlOK и kafeman

PS: А если вам кажется, что комментариев пока слишком мало, можете посмотреть, как это было в прошлых сезонах: 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019.

57 отборных репозиториев для всех разработчиков Python

Reading time8 min
Views27K
Специально к старту нового потока курса «Python для веб-разработки» представляем подборку из 57 репозиториев, которые будут полезны как начинающему, так и опытному разработчику: это репозитории с ответами на вопросы собеседований, репозитории с книгами, небольшие, но полезные консольные инструменты и проекты, которые вдохновят вас написать красивый, работающий и полезный код.


Приятного чтения!

Что почитать менеджеру продукта или проекта: от исследований Канемана до мотивации Брэдбери

Reading time9 min
Views9.5K


Всем привет! В нашем совместном с МФТИ учебном проекте Технотрек есть семестровый курс по Product Management. Меня зовут Станислав, и я ведущий преподаватель этого курса, а также менеджер продукта в проекте DonationAlerts. Готовясь к курсу, я собрал внушительный список полезных материалов. Сделал для вас из этого списка подборку книг и блогов, которые будут полезны менеджерам продуктов или проектов.

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

Читаем QR код

Reading time5 min
Views1.1M
Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.
Читать дальше →

Трюки с SQL от DBA. Небанальные советы для разработчиков БД

Reading time22 min
Views34K

Когда я начинал свою карьеру разработчика, моей первой работой стала DBA (администратор базы данных, АБД). В те годы, ещё до AWS RDS, Azure, Google Cloud и других облачных сервисов, существовало два типа АБД:

  • АБД инфраструктуры отвечали за настройку базы данных, конфигурирование хранилища и заботу о резервных копиях и репликации. После настройки БД инфраструктурный администратор время от времени «настраивал экземпляры», например, уточнял размеры кэшей.
  • АБД приложения получал от АБД инфраструктуры чистую базу и отвечал за её архитектуру: создание таблиц, индексов, ограничений и настройку SQL. АБД приложения также реализовывал ETL-процессы и миграцию данных. Если команды использовали хранимые процедуры, то АБД приложения поддерживал и их.

АБД приложений обычно были частью команд разработки. Они обладали глубокими познаниями по конкретной теме, поэтому обычно работали только над одним-двумя проектами. Инфраструктурные администраторы баз данных обычно входили в ИТ-команду и могли одновременно работать над несколькими проектами.
Читать дальше →

Экзамены TOEFL/IELTS как ориентир для развития. Фундаментальные апгрейды языка и их польза для разработчика

Reading time13 min
Views19K


Экзамены английского языка вызывают у большинства разработчиков негативную реакцию. В сети или в курилке часто можно услышать утверждения о том, что TOEFL/IELTS проверяют не уровень владения языком, а умение соответствовать шаблонам. Разработчики цепляются за свой B1 или даже B2/C1, который им дали на внутреннем ассессменте в компании или при прохождении 10-минутного онлайн-теста. Далее, у нас есть 2 пути. Вы можете принять ваш уровень и не развиваться, думая что вам «не нужно», «не моё» и так далее. Можете найти 100 причин отрицать международные общепринятые тесты и даже обойти их при миграции. А можете согласиться с тем, что ваш уровень не достаточно хорош при объективной оценке по критериям, и подумать над развитием и пользе для карьеры разработчика. Статья будет именно про второй путь, а конкретно:

  1. Развитие скорости чтения и использование правого полушария мозга вместо левого
  2. Накрутка навыка письма через независимые эссе внутри Grammarly
  3. Турбонакрутка разговорной речи через комментирование своих действий в играх (RPG/RTS)
  4. Ускорение с помощью слепой печати
  5. Контроль промежуточных результатов через TOEFL GO
Читать дальше →

Больше разработчиков должны знать это о базах данных

Reading time19 min
Views44K
Прим. перев.: Jaana Dogan — опытный инженер из Google, которая в данный момент занимается вопросами наблюдаемости production-сервисов компании, написанных на Go. В этой статье, снискавшей большую популярность у англоязычной аудитории, она в 17 пунктах собрала важные технические детали, касающиеся СУБД (а иногда — распределённых систем в целом), которые полезно учитывать разработчикам крупных/требовательных приложений.



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

Information

Rating
4,035-th
Registered
Activity

Specialization

Backend Developer
Senior
Python
Docker
PostgreSQL
Git
OOP
English
Django
RabbitMQ
Fastapi
asyncio