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

Анализ и проектирование систем *

Анализируй и проектируй

Сначала показывать
Порог рейтинга
Уровень сложности

Не все расписания занятий одинаково полезны

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

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

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

Новости

Ключевой навык успешной карьеры в ИТ или 8 заблуждений на проектах

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

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

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

Имя ему этому навыку — здравый смысл.

Да, вот так просто, но на самом деле все совсем не просто, и я сейчас это объясню.

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

Мой первый прототип поискового движка

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

Я реализовал первый прототип собственного механизма поиска, который сокращённо назвал PSE (Personal Search Engine). Создал я его с помощью трёх скриптов Bash, возложив всю основную работу на sqlite3, wget и PageFind.

Браузер Firefox вместе с Newsboat сохраняют полезную информацию в базах данных SQLite. В moz_places.sqlite содержатся все посещённые URL-адреса и адреса закладок (то есть moz_bookmarks.sqlite базы данных SQLite). У меня получилось около 2000 закладок. Это меньше, чем я предполагал, так как многие оказались нерабочими из-за битых ссылок.

Нерабочие URL-адреса страниц сильно замедляют процесс сбора, так как wget приходится ожидать истечения различных таймаутов (например, DNS, ответа сервера, время скачивания). URL-адреса из «истории» составили бы интересную коллекцию для сбора, но тут не обойтись без списка исключений (например, нет смысла сохранять запросы к поисковым системам, веб-почте, онлайн-магазинам). Изучение этого вопроса я отложу до следующего прототипа.
Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии26

Как я чуть не стал миллионером, продавая воздух, или почему Россия – не Америка

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

Все знают, что Россия — энергетическая сверхдержава, она же – «разорванная в клочья Обамой бензоколонка». Но не все знают, как это может отражаться в области развития математического моделирования. Расскажу одну жизненную историю. 

Начну с далекого 2007 года. Довелось мне в те времена поработать на крупном заводе, который «эффективные менеджеры» как раз делили на несколько отдельных предприятий, каждое из которых крутилось, как могло.  В том цеху, который и стал одним из таких предприятий, на токарных станках могла крутиться (и крутилась!) металлическая болванка размером с автобус. А в печку для нагрева металла можно было затолкать паровоз. Целиком.  Когда я в первый раз увидел токарный станок, на котором крутится и обтачивается деталь размером с автобус, моему восторгу не было предела. Гордость за страну переполняла до состояния «в зобу дыханье сперло». А потом старожилы показали ту часть цеха, где стояли фундаменты таких же станков и пояснили:

- А вот тут были станки для точной обработки. Их продали китайцам по цене металлолома.

- А почему вот другие не продали?

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

Схема бизнеса был гениальна: Siemiens привозил на завод многотонные болванки, их неделями и месяцами обтачивали до состояния заготовок и увозили для чистовой обработки в Германию. Где уже выполняли чистовую доводку на точных и дорогих станках. Главные затраты при черновой обработке – это износ станков и инструмента, зарплата токаря и электроэнергия, необходимая для вращения тонн металла. Поскольку электроэнергия в РФ дешевле немецкой, недели обработки болванок с лихвой окупают транспортировку, а низкая точность обработки не требует дорогого обслуживания и мало чувствительна к износу еще советского оборудования.  В итоге весь бизнес заключался в «перепродаже» дешевой электроэнергии из РФ в Германию, но в виде металлических обточенных болванок. 

Читать далее
Всего голосов 293: ↑284 и ↓9+275
Комментарии301

Истории

Проектирование аналога Google Docs

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

Google docs – это сервис для совместного редактирования документов. В целом подобные сервисы можно спроектировать двумя способами:

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

Большинство коммерческих решений ориентированы на клиент-серверный подход ввиду предоставляемого им более детального контроля. Так что и мы в этой статье разберём проектирование сервиса с использованием именно клиент-серверной архитектуры.
Читать дальше →
Всего голосов 63: ↑58 и ↓5+53
Комментарии1

Простой софт, чтобы водители не дрались в очереди на выгрузку металлолома

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

На сегодняшний момент металлолом — наше всё. Нам его надо ОЧЕНЬ много, и мы его закупаем.

Лом нам везут ломовозами с площадок сбора металлолома.

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

— Я только спросить.
— А за меня друг занимал.
— Мне срочно — я беременный.
— Вас здесь не стояло.

Всё это вносило море хаоса.

Этот откровенный бардак не устраивал никого: ни водителей, ни операторов КПП, ни приёмщиков лома. Даже в ближайшем МФЦ уже внедрили электронную очередь! А мы чем хуже?

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

На словах просто, на деле — как обычно.
Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии39

Смерть от тысячи микросервисов

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

Как мы к этому пришли? Как мы стали вместо решения наших задач, тратить кучи денег на решение проблем, которых у нас нет?

Читать далее
Всего голосов 133: ↑127 и ↓6+121
Комментарии309

Разоблачаем Эффект Даннинга-Крюгера. Статистический артефакт, пример автокорреляции

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

Слышали ли вы об «эффекте Даннинга-Крюгера»? Это (очевидная) тенденция неквалифицированных людей переоценивать свою компетентность. Обнаруженный в 1999 году психологами Джастином Крюгером и Дэвидом Даннингом эффект с тех пор стал очень знаменитым.

И вы понимаете почему.

Это слишком сочная идея, чтобы не быть правдой. Все «знают», что идиоты, как правило, не осознают своего идиотизма. Или, как выразился Джон Клиз...

Разоблачаем популярный миф
Всего голосов 118: ↑104 и ↓14+90
Комментарии82

Это мы пишем и обслуживаем банковский процессинг, нам надо серьёзно поговорить

Время на прочтение11 мин
Количество просмотров21K
В марте-22 внезапно отключились Visa и MasterCard. Это посредники передачи информации между разными банками. По сути, системы обеспечивают маршрутизацию сообщений между банками и позволяют вам использовать карту любого банка с банкоматом или платёжным терминалом другого, а заодно проверяют операции на фрод и делают ещё много чего.

Потом было 2–3 дня, когда мы не спали. Мы — это разработчики компании Мультикарты (входит в Холдинг T1) — одного из самых крупных процессингов в России, да и в мире, пожалуй.

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

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

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

Поэтому ниже — общий рассказ про принципы процессинга. Пойдёмте ковыряться под капотом.

image
Читать дальше →
Всего голосов 88: ↑81 и ↓7+74
Комментарии37

Тот самый датасет, где архитектор чуть не сошёл с ума

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

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

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

Задача понятная: берём архитектора, берём данные со всех датчиков, архитектор совершает какую-то магию — и вот у нас готовый датасет для анализа.

И вот на «берём данные с датчиков» мы споткнулись в первый раз. Архитектор, умный адекватный мужик, привыкший работать с синтетическими данными и чистой математикой, чуть не сошёл с ума на нашем реальном производстве.

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

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

  • Невозрастающей.
  • Немонотонной.

В смысле, что это в принципе физически невозможно, но часто происходит. Ещё могут быть скачки во времени и другие нарушения причинно-следственной связи.
Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Комментарии42

Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS

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

Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.

Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.

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

Задача повышенной сложности: AV для ситуационных центров

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

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

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

У «ЛАНИТ-Интеграции» большой опыт по проектированию, строительству, оснащению СЦ, который мы с коллегами бережно копим, ну и, конечно же, применяем. Поэтому хочу поделиться с вами тремя задачами, которые необходимо решить для создания и поддержания современного ситуационного центра. 

Читать далее
Всего голосов 60: ↑57 и ↓3+54
Комментарии4

Приходите к нам на завод, у нас тяжело

Время на прочтение10 мин
Количество просмотров138K
Короче, ИТ на заводе — это вам не романтика, особенно в нашем цифровом направлении.

Между «давайте этим займёмся» и «о, смотрите, какая гламурная ML-модель» лежит очень много того, про что не рассказывают. Сейчас расскажу.

Вначале у нас была банда энтузиастов из разных подразделений: несколько человек из ИТ, АСУТП, технологи со знанием статистики — чтобы смотреть с разных углов и видеть всё в целом, насколько это возможно. Начали с оценки перспектив. Они были необъятные — наше производство размером с небольшой город. Стали формироваться подразделения и направления: кто-то пошёл собирать роботов, кто-то в видеоаналитику, кто-то в лайтовый анализ данных, кто-то в самый хардкор — в дата-сатанизм. Работы у нас всегда больше, чем рук.

И на каждой из этих дорожек нас поджидали свои чудеса и сюрпризы.

Вот, к примеру, видеоаналитика:

  • Мы поняли, что ML в 50% задач не нужны. Нужна, например, камера, которая по цвету определяет, где есть железка, и смотрит её геометрию в реальности. Всё. Или другая камера, которая следит, чтобы в нужной зоне ничего не шевелилось.
  • Всё это прекрасно до первого солнечного зайчика. ML отлично показывают себя там, где вам лень строить крышу или ставить прожектор над конвейером.
  • У нас была идея, что мы можем сами в нейросети. Чуть не написали свой сервис для распознавания номеров вагонов. Казалось, делов-то на 20 минут, а у подрядчика это стоит 25 копеек за фото. Сделали свой, сферические вагоны в вакууме он определял хорошо. Потом приехало вот это:

image

А потом внезапно пошёл дождь. Знаете что? Вагоны под дождём становятся мокрыми. Это было неожиданно. Ещё они бывают после снега, битые, немытые, обновлённые криворукими малярами и ПРОЧИЕ. И в солнечных зайчиках тоже.

Мы накалывались на получении данных (кто сказал, что прошивка станка без костылей?), на роботизации, инфраструктуре, связи, на всём. Мы облазили весь завод, испачкались в солидоле, мазуте и масле. Но стали делать то, что должны, — оптимизировать мир.
Читать дальше →
Всего голосов 276: ↑272 и ↓4+268
Комментарии278

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

System Design 101

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



О сложных системах простыми словами.


В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.


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


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


System Design (сборник на английском языке).

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

Почему инфраструктура big tech обычно состоит из самописных решений

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

Привет! Предлагаю поговорить о том, почему крупные IT‑компании так любят создавать в своей инфраструктуре собственные решения. Казалось бы, напрашивается ответ: NIH‑синдром и ничего более. Но такой ответ вряд ли может считаться сколько-нибудь полным, а тем более претендующим на объективность.

Меня зовут Дмитрий, я CTO в команде Yandex Platform Engineering. Наша задача — помогать инженерам выстраивать весь цикл разработки от написания кода до эксплуатации сервисов и делать его эффективнее. Такая работа включает настройку процессов: мы не просто делаем нечто as a service, но и помогаем эти самые as a service внедрять внутри компании. И всё это работает на масштабах Яндекса: нашими сервисами пользуются тысячи разработчиков по всей компании.

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

Читать далее
Всего голосов 56: ↑55 и ↓1+54
Комментарии31

Хороший ретрай, плохой ретрай, или История одного падения

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

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

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

Этот пост — продолжение вымышленных историй о разработчике Васе, который несколько лет назад разбирался с идемпотентностью в распределённых системах. Теперь перед ним новые задачи — получится ли справиться с ними в этот раз? Давайте узнаем.

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

Капибара, Новый Старый Пикабу

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

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

Читать далее
Всего голосов 180: ↑173 и ↓7+166
Комментарии225

Прекратите превращать программирование в религию (восклицательный знак)

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

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

Не верите?

Давайте я покажу вам.
Всего голосов 239: ↑205 и ↓34+171
Комментарии302

Технический долг захватил глобальную экономику

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров44K
Технический долг стал проблемой для всей экономики

Термином «технический долг» обычно называют сокращённые или субоптимальные подходы в процессе разработки ПО. Проявляется он в виде неудачно спроектированного кода, устаревших компонентов и отсутствия документации. В то время, как правильно написанные код и документация служат бессрочно, компоненты и используемые подходы – нет. Программное обеспечение и его составляющие со временем могут становиться техническим долгом. Расцвет индустрии ПО пришёлся на далёкие 80-е годы, поэтому то, что мы сегодня начинаем сталкиваться с полностью устаревшими концепциями, процессами и системами, является относительно новым явлением.
Читать дальше →
Всего голосов 97: ↑84 и ↓13+71
Комментарии327

Диаграммы без боли и страданий: PlantUML

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

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

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

Читать далее
Всего голосов 76: ↑75 и ↓1+74
Комментарии35
1
23 ...