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

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

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

Проверка готовности приложения к работе в реальном ненадежном мире. Часть 1

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

Опытом делится Виталий Лихачёв, SRE в booking.com и спикер курса Слёрма «Golang-разработчик». Он рассказывает, о чём стоит подумать перед выкаткой сервиса в жестокий прод, где он может не справиться с нагрузкой или деградировать из-за резких всплесков при наплыве пользователей и по вечерам.

Считайте это некоторым чек-листом, но не применяйте все пункты as is, потому что каждая система уникальна и иногда вполне допустимо построить менее надежную систему с целью значительного сокращения затрат на разработку, поддержку и эксплуатацию (например, отсутствие резервирования). Однако бэкапы обязательно должны быть 🙂

Некоторые термины не будем переводить не в силу лени автора, а в силу устойчивости терминов в литературе.

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

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

Статья состоит из 5 частей, которые будут выходить по очереди:

1. Надежность.

2. Масштабируемость/отказоустойчивость.

3. Resiliency/отказоустойчивость.

4. Безопасность. Процесс разработки. Процесс выкатки.

5. Наблюдаемость. Архитектура. Антипаттерны.

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

Сдохни или умри: мой опыт создания проекта от идеи до релиза

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

За семь лет в IT я повидал многое: и большие задачи, и экстренные багфиксы ночью, и не совсем понятные требования от бизнеса, но всегда это были готовые проекты с уже выстроенной архитектурой, где знаешь, что и как работает. Год назад, в конце августа, ко мне пришел знакомый и сказал примерно следующее: у меня есть команда, мы занимаемся P2P платежами, сейчас работаем с одной известной площадкой, но хотим сделать свой продукт, можешь с этим помочь?

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

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

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

Инструмент обеспечения качества данных: от теории к практике

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.5K

 Всем привет! Меня зовут Саша Ткачев, я ведущий дата-инженер отдела управления ценностью данных в Лемана ПРО (Леруа Мерлен). Наша команда занимается разработкой self-service инструментов для пользователей платформы данных. Сегодня расскажу о новом продукте — DQ platform.  

Почему именно платформа? У нас получилась большая система, которая включает в себя самые разнообразные компоненты — планировщик заданий, REST-API интерфейс предоставления информации и приема DQ проверок на исполнение, модуль работы с секретами, множество систем: хранения, сквозного логирования, обслуживания БД, восстановления работоспособности при возникновении ошибок (сетевых, работоспособности БД), валидации входящих моделей и т.п.    

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

Методология баг-баунти: гайд для охотников за багами

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров5.7K

Ирландский full-time багхантер Monke делится советами по осознанному хакингу и подборкой инструментов, упрощающих поиск уязвимостей. Бонусом — список полезных ресурсов для тех, кто интересуется темой баг-баунти.

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

Вам не нужно готовое API чтобы начать писать фронтенд или краткий обзор готовых решений для мокинга данных

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

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

Однако, её статус был не в “Ready for development”. Также можно было увидеть что сама задача ждёт выполнения другой задачи - на разработку API с данными. Здесь у меня начались вопросы, а также желание в очередной раз разъяснить менеджерам что критичных блокеров у этой задачи нет.

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

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

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

Продакт-менеджеры бесполезны на запуске продукта

Время на прочтение6 мин
Количество просмотров4.8K
Продакт оптимизирует то, что уже работает. Он может заниматься воронками, полировать фичи и так далее, но всё его обучение вообще никак не предполагает создания продукта. Только улучшение чего-то, что уже работает.

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

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

Это идеальный компонент в системе, когда уже есть соответствие продукта рынку. Как правило, продакт получает работу, когда уже что-то есть и его надо дорабатывать системно. На запуске новых продуктов такого даже близко нет, и там нужно не применять методологию, а думать. Может показаться, что там необходимы предприниматели, но на моей практике всё оказалось банальнее: нужны разработчики.

Вы, возможно, будете смеяться, но разработчик заменяет продакта на старте продукта и показывает большую эффективность. Я проверил это численно.
Читать дальше →
Всего голосов 25: ↑21 и ↓4+24
Комментарии22

Игра: Загрузка иностранного языка в мозг

Время на прочтение9 мин
Количество просмотров139K
Бывает ли у вас такие ситуации, когда слово, идиома или грамматическая конструкция иностранного языка никак не могут удержаться в голове, несмотря на то, что вы встречали её уже много раз и даже специально учили? А сколько процентов иностранных слов вы помните спустя месяц после их изучения? А спустя полгода? Сложно ли вам мотивировать себя на занятия иностранным языком?



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

Под катом вас ждет рассказ о методе изучения иностранного языка при помощи карточек (flashcards), о технике эффективного использования метода и о принципиальных особенностях и алгоритмах одного варианта программной реализации.
Читать дальше →
Всего голосов 58: ↑48 и ↓10+38
Комментарии56

Примитивы синхронизации в Python Asyncio: Исчерпывающее руководство

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров13K

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

Что было дальше?
Всего голосов 15: ↑14 и ↓1+15
Комментарии4

Зарубежная банковская карта в 2024: где оформить онлайн, сколько стоит, как пополнять?

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

Привет, Хабр! Меня зовут Мила, когда‑то я работала аналитиком в банках, а нынче делаю авторские туры в Африку. По работе мне постоянно приходится отправлять деньги за границу, оплачивать отели, трансферы, билеты онлайн и оффлайн.

Хочу поделиться опытом оформления одной конкретной карты банка Казахстана. Данный банк, опасаясь санкций, публично отрицает возможность открытия счетов для нерезидентов ОНЛАЙН. Поэтому помогающие конторы стараются не ссылаться на реальное название банка, а заменять его на псевдонимы: «зелёный банк», «свободный банк», «банк воландеморт». Так что тссс! мы все понимаем, что король голый, но вслух ни‑ни.

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

Итак, поехали.

Читать далее
Всего голосов 63: ↑49 и ↓14+44
Комментарии122

Как мы заработали 100 000 рублей за 3 месяца, запустив простой конвертер картинок в США

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

Что мы поняли, запустив простой конвертер картинок за 1 месяц в США. И как заработали 100 000 рублей за первые 3 месяца, хотя вокруг куча бесплатных аналогов.

Читать далее
Всего голосов 121: ↑109 и ↓12+116
Комментарии219

Нейросеть для создания персонажа 2D игры

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

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

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

Руководство по проектированию реляционных баз данных (1-3 часть из 15) [перевод]

Время на прочтение7 мин
Количество просмотров437K
Перевод цикла из 15 статей о проектировании баз данных.
Информация предназначена для новичков.
Помогло мне. Возможно, что поможет еще кому-то восполнить пробелы.

Другие части: 4-6, 7-9, 10-13, 14-15.

Руководство по проектированию баз данных.



1. Вступление.

Если вы собираетесь создавать собственные базы данных, то неплохо было бы придерживаться правил проектирования баз данных, так как это обеспечит долговременную целостность и простоту обслуживания ваших данных. Данное руководство расскажет вам что представляют из себя базы данных и как спроектировать базу данных, которая подчиняется правилам проектирования реляционных баз данных.
Читать дальше →
Всего голосов 34: ↑20 и ↓14+6
Комментарии28

У меня был 6-дневный дофаминовый детокс — и вот что получилось

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

Что такое дофамин и почему в среде любителей самосовершенствования он считается гормоном, способствующим отвлечению внимания?

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

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

Проблема в том, что дофамин активно выделяется и во время пролистывания социальных сетей, и при достижении какой-либо значимой цели.

Читать далее
Всего голосов 159: ↑143 и ↓16+147
Комментарии278

Давайте сделаем крупное приложение на Flask (язык Python)

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

На Хабре я часто вижу статьи о реализации тех или иных фич на Python-фреймворках. Я объединил все эти фичи в реальный проект с открытым исходным кодом, чтобы у вас сложилась целостная картина. Мы с вами создадим UX/UI на Figma, напишем фронтенд на HTML, CSS, SASS, Bootstrap и JavaScript, создадим ER-диаграмму в MySQL Workbench, напишем бекэнд на Flask, создадим регистрацию через социальные сети OAuth 2.0 в один клик, используем брокер сообщений и асинхронную очередь Celery для отправки писем на электронную почту, сделаем WYSIWYG-редактор, реализуем полнотекстовый поиск Elasticsearch, закешируем Redis, покроем тестами pytest и запустим в Docker-контейнерах, поговорим о многопроцессности для WSGI-шлюза Gunicorn.

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

Мои взгляды на программирование на июль 2024 года

Время на прочтение5 мин
Количество просмотров7.9K
Эта статья – собрание убеждений о разработке ПО, которые выработались у меня на сегодняшний день. Всё основано на личном опыте.

Подход к задачам


Основная часть моей работы – разбираться с тикетами, и я до сих пор продолжаю совершенствоваться в этом деле. Вот несколько вещей, которые я открыл для себя в процессе.
  • Разные задачи, проекты и команды требуют разных подходов. Например, сделать пейсмейкер без автоматических тестов было бы безответственным решением – кто-то может от этого пострадать. И вместе с тем, глупо изводиться по поводу автоматических тестов на геймджеме, куда вы отправились на выходных. Содержание понятия «хороший код» меняется в зависимости от контекста, и нужно адаптировать свой подход под конкретную ситуацию.
  • Делайте марш-броски. Бывает, что я ставлю себе цель довести какую-то функциональность до готовности в кратчайшие сроки, пусть даже срезая углы где только можно, с кодом ужасного качества и TODO на каждом шагу. Когда у меня появится что-то рабочее, тогда и буду приводить всё в должный вид. Я пришел к выводу, что это хороший способ обозначить для себя проблемные зоны, а также неплохой путь к ускорению процесса разработки. На эту тему есть статья «Выбросьте первый набросок кода».
  • Если я бьюсь головой об задачу и никак не могу сдвинуться с мертвой точки, значит, необходимо оторваться от нее на какое-то время.
  • Прежде чем начать работу над сложной задачей, я задаю себе вопрос: «А что если вообще этого не делать?» Как правило, вопрос оказывается глупым и выполнять задачу все-таки приходится. Но примерно в пяти процентах случаев я осознаю, что определенную часть работы можно спокойно пропустить.

Читать дальше →
Всего голосов 15: ↑13 и ↓2+16
Комментарии26

Метод локусов или чертоги разума: краткая история знаменитой мнемотехники

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

Среди научно‑популярных книг, которые мне доводилось переводить, особняком стоит «Мастерская памяти» от издательства «Портал» (большая часть сотрудничества с этим издательством пришлась на тревожный пандемийный период, и я могу только лишний раз поблагодарить уважаемых Веру Малышкину и Любовь Родионову за то, что тогда помогли мне от него отвлечься). Автор этой книги, Лин Келли — австралийка в возрасте за 60, которая профессионально, в спортивном режиме, выступает в своей возрастной группе в соревнованиях по «мнемонической атлетике». Книга максимально актуальна в наше время, так как помогает бороться и с дефицитом внимания, и с недостаточной концентрацией и, что вообще незаменимо — с возрастным ухудшением памяти. В этой статье я хочу подробнее рассказать об одной из самых важных рассмотренных в ней мнемонических техник, которая наиболее известна в древнегреческой трактовке и называется «чертоги разума». В английских источниках встречаются формулировки «memory palace» и «mind palace» а также «brain attic» — это вариант, в котором данную технику переосмыслил Артур Конан‑Дойл.

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

17 продвинутых RAG-техник: как превратить прототип LLM-приложения в готовое решение

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

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

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

Как метко подметил Мэтт Тёрк: если в 2023 году мы боялись, что GenAI нас погубит, то в 2024-м мечтаем хоть как-то приручить его и запустить в "мелкосерийное производство".

Если вы уже успели создать свои первые LLM-приложения и готовы вывести их на новый уровень, эта статья для вас. Мы рассмотрим 17 продвинутых RAG-техник, которые помогут избежать типичных ошибок и превратить ваш прототип в мощное и стабильное решение.

Пристегните ремни, мы отправляемся в увлекательное путешествие по миру AGI! Вместе мы:

Поймем, как система отличает ценную информацию от информационного шума;

Разберемся, как правильно подготовить данные для LLM;

Выясним, можно ли строить цепочки из нескольких LLM;

Поймем, как направлять запросы через разные компоненты системы.

Приятного прочтения(:

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

Как работает Python Asyncio: воссоздаем с нуля

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров9.4K

Автор оригинала: Jacob Padilla

Сейчас asyncio — одна из самых модных тем в Python, и это справедливо — это отличный способ обработки программ, связанных с вводом-выводом! Когда я изучал asyncio, мне потребовалось некоторое время, чтобы понять, как это на самом деле работает. Но позже я узнал, что это по сути просто очень хороший слой поверх генераторов Python. В этой статье я собираюсь создать упрощенную версию asyncio, используя только генераторы Python. Затем я собираюсь реорганизовать пример, чтобы использовать ключевые слова async и await с помощью dunder-метода __await__, прежде чем замкнуть круг и заменить свою версию на настоящий asyncio. Надеюсь, создав простую версию asyncio в конце этой статьи, вы сможете лучше понять, как он творит свою магию!

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

Как создать свой стикер пак с помощью нейросети Stable Diffusion

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

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

Сегодня я поведаю историю создания своего стикерпака из 20+ стикеров с моим персонажем по имени Эвелинн с помощью нейросетей. Вам не понадобится мощная видеокарта и даже Photoshop(в большинстве случаев): я покажу, как сделать всё это прямиком в браузере. Это простой, доступный и бесплатный способ создания уникальных стикеров, справится даже чайник, надеюсь, он уже закипел, приступим!

Читать далее
Всего голосов 31: ↑30 и ↓1+36
Комментарии14

Обучение с подкреплением на основе обратной связи от человека (RLHF). История становления идеи. LLM, KL-контроль

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

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

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

Это первая статья цикла о LLM, Предобучении и KL‑контроле.

Читать далее
Всего голосов 9: ↑9 и ↓0+12
Комментарии2
1
23 ...

Информация

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