Рубрика «проектирование» - 7

image

Вашему вниманию предлагается перевод поста Гергелия Ороса, занимающего должность Engineering Manager в Uber. В нем он делится своим взглядом на проектирование крупномасштабных систем, основанном на собственном практическом опыте работы в Uber и Microsoft. В сочетании с комментариями на Hacker News, которые добавляют весомые контр-аргументы и дополняют точку зрения автора, его статья стала одним из самых интересных постов недели. В статье используется термин «дизайн кода» для сравнения с традиционной «архитектурой» — о нем подробнее можно прочитать здесь.

На мою долю выпало достаточно опыта в проектировании и создании крупномасштабных систем. Я принимал участие в переписывании распределенной системы платежей в Uber, проектировании и релизе Skype на Xbox One и выпуске в открытый доступ RIBs — мобильного архитектурного фреймворка, созданного в Uber. Все эти системы имели тщательно продуманный дизайн, прошли через несколько итераций, с ними связано множество совещаний, проведенных у маркерной доски, и других обсуждений. Затем придуманный дизайн сводился к дизайн-документу, который распространялся среди других разработчиков для сбора дополнительной обратной связи, который продолжался до тех пор, пока мы не переходили к разработке.

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

Чему я научился у ведущего программиста - 1

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

Это одна из причин, по которой я начал вести дневник. Каждый день, попадая в интересные ситуации, я описывал их. И всё благодаря тому, что я сидел рядом с ведущим программистом. Я мог вблизи наблюдать за его работой, и видел, насколько она отличается от того, что сделал бы я. Мы много программировали вместе, что ещё больше облегчало мои наблюдения. Более того, в нашей команде не осуждается «подглядывание» за людьми, пишущими код. Когда мне казалось, что происходит что-то интересное, я поворачивался и смотрел. Благодаря постоянным вставаниям я всегда был в курсе происходящего.

Я год просидел рядом с ведущим программистом. Вот чему я научился.
Читать полностью »

Содержание

Часть 1 — Задача двух тел

Часть 2 — Полу-решение задачи двух тел

Движение в плоскости

Осталось сделать последний штрих. Решить это уравнение:

$ ddot{vec{r}}=-mu dfrac{vec{r}}{r^{3}}, $

где $ mu=G(m_{1} + m_{2}) > 0, $ $ vec{r} $ — относительное расстояние между телами.

В прошлом выпуске было показано, что при значительном различии масс (например $ m_{1} >> m_{2} $) вектор $ vec{r} $ можно считать радиусом вектором в новой системе координат связанной с неподвижным массивным телом. Неподвижное оно потому, что центр масс совпадает с ним, а центр масс движется равномерно прямолинейно (тоже в прошлом выпуске доказали).
Читать полностью »

Привет всем! Сегодня я начну серию статей-лекций посвященных теме проектирования беспилотных летательных аппаратов космического назначения (ракет) =). Да-да, — вы не ослышались, самых настоящих ракет, будем их учиться проектировать по настоящему, как это (наверное) делают в каком нибудь КБ . Сам я заканчивал универ именно по этой специальности, потому некоторые знания имеются. Но сам еще ни дня в КБ (к сожалению) не проработал. По причине соответственного расположения звезд на небосводе. В общем звезды так сошлись, судьба такая у меня. Хотя мог бы уже пол года работать в КБ Южном, зимой почти устроился, осталось лишь медкомиссию пройти и сдать документы на проверку в СБУ для получения допуска секретности. Но пошло опять что то не так. До этого уже шло очень много раз, потому наверное что то накопленное выстрелило, и я решил: в пе*ду да ну его.

А, кстати, месяц назад послал резюме в SpaceX на mechanical engineer, но мне через два дня вежливо отказали, потому что закон ITAR. Ну попытка не пытка, а я действительно просто хотел поехать чем нибудь помочь, и никакой я не спецагент. Ну да ладно, начну пожалуй по теме, а то развел тут историю своей жизни излагать. (просто чем то нужно было заполнить начало, думал-думал — написал как есть).
Читать полностью »

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

Статья разбита на две части.
Теория: о том, что в принципе можно учесть в SEO интернет-магазина и как это работает.
Чек-лист: 80 пунктов, по которым легко проверить, насколько удобно будет продвигать ваш сайт после разработки

По этому чек-листу мы проверяем все прототипы в студии, что сильно упрощает дальнейшую работу с сайтом для пользователей, администратора и для команды поддержки/продвижения.
Читать полностью »

В предыдущей статье про модельно ориентированное проектирование было показано, что не все методики одинаково полезны. И объясняется как делать правильно, что бы не было потом мучительно больно. Но в конце статье был поставлен вопрос, провокационный как Шарон Стоун на допросе у следователей:
Модельно ориентированное проектирование это конечно хорошо, но как доказать, что модель соответствует объекту? Какие ваши доказательства?
Модельно ориентированное проектирование. Электропривод с бесколлекторным двигателем постоянного тока - 1
Общий ответ на данный вопрос еще готовится, но про частный зато реальный и свежий пример могу привести прямо сейчас. Оказался тут у меня в руках, как всегда случайно, текст от ведущего специалиста нашей страны по электроприводу Калачева Юрия Николаевича, вместе с его любезным согласием на публикацию. Данный текст еще готовится к публикации в специализированных издания, но читатели хабра увидят его первые.
Далее под катом
Калачев Ю. Н., Ланцев В.Ю., Окулов Е.В.
Электропривод с бесколлекторным двигателем постоянного тока
(практика применения моделирования и кодогенерации в АО «Аэроэлектромаш»)

Читать полностью »

Happyr Doctrine Specification

Кратко о спецификациях:

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

На сегодня существует два (если знаете другие проекты, напишите пожалуйста в комментариях) успешных и популярных проекта на PHP, позволяющих описывать бизнес-правила в спецификациях и фильтровать наборы данных. Это RulerZ и Happyr Doctrine Specification. Оба проекта являются мощными инструментами со своими преимуществами и недостатками. Сравнение этих проектов потянет на целую статью. Здесь же я хочу рассказать, что нам привнес новый релиз в Doctrine Specification.

Читать полностью »

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

Зачем нам UML? Или как сохранить себе нервы и время - 1

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

Программисты, не использующие UML, делятся на несколько групп:

  • начну писать код, а в процессе пойму, что да как;
  • почитаю форумы, хабр, medium, stack overflow, книгу, записи на стенах, знаки свыше…;
  • поспрашиваю у коллег, может, кто-то знает, как решить подобную задачу;
  • начну рисовать квадратики и схематично покажу, какое видение задачи сформировалось у меня в сознании.

Читать полностью »

Привет всем! Наконец то доделали и установили вчера артобъект с солнечными панелями для форума «Инженеры будущего 2019». В первой части я уже описывал всю идею с расчетами, сметой с чертежами.
Началось, как ни странно, не со сварки каркаса, а с получения и сборки светотехнической составляющей — солнечные панели получили раньше, чем успели купить металл — почта России радует.
Сделал большую полушестерню на солнечных панелях за 250 000 рублей (2 часть) - 1

Распаковка посылки с Владивостока, дошедшая за 3 дня через EMS.Всё было запаковано аккуратно.
Читать полностью »

Элемент нулевого размера - 1

Графы — схематическое обозначение во многих сферах.
Модель реальных объектов.
Круги — вершины, линии — дуги графа (соединения).
Если рядом с дугой цифра — это расстояние между точками на карте или стоимость на диаграмме Ганта.

В электрике и электронике вершины — это детали и модули, линии — проводники.
В гидравлике котлы, бойлеры, арматура, радиаторы и трубы.
На карте — города и дороги.

Из школьной задачи по математике:

Из пункта А в пункт Б выехал автобус. Расстояние между пунктами 30 км.

А что если расстояние 0?
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js