Российские инстаграмы, быдлокодеры и наш ответ западу

Предисловие.

Всем доброго времени суток!
Изложенное далее прошу не судить строго, не являюсь проф. райтером, но буду максимально объективен, то есть только факты и аргументы с легким сатирическим флером. Сам являюсь разработчиком веб и мобильных приложений, чем благополучно занимаюсь почти 6 лет. В своей деятельности, как правило, использую достаточно стандартный, устойчивый и понятный инструментарий: Linux, Git, Docker, Go, PHP, Node. js, JavaScript, ReactNative (init или expo) , Laravel, MongoDB, PostgreSQl, Redis и далее по списку, а равно могу пояснить за паттерны, структуры, алгоритмы и прочее на собесах, так чтобы не стыдно было. Таким образом, заранее условимся, что некой, такой себе экспертизой в конкретных вопросах обладаю.
Так воот, на протяжении последнего месяца веду активное наблюдение за IT рынком РФ, особенно за той частью, откуда ушли (или их ушли) зарубежные компании, проекты и платформы. В целом везде плюс-минус все устаканивается, коллеги, что не уехали в загнивающий запад, работают и все получается. Но в поле моего внимания попали отечественные поделки на запрещенную и признанную экстремистской в РФ соц. сеть Instagram, которые вызвали мое неистовое возмущение (бомбануло короч) , о чем изложено ниже.

Краткое резюме

В конце февраля — начале марта на рынок РФ выкатились (скорее вывалились, как бичи из пивнухи) две поделки на запрещенную и признанную экстремистской в РФ соц. сеть Instagram (далее — Inst.).
Один из таких приколов, чудо инженерной мысли, апогей постмодернизма, собранный на PHP турецкими разработчиками, с чьего репозитория был взят исходный код, назвался «Рустаграм» (https://rustagram. app).
Второй, создателем которого является однокурсник товарища П. Дурова, назвался "Росграм" (в целом хорошее название, для магазина запрещенных в РФ веществ) . И согласно тому, что удалось отрыть в комментах под презентацией партнер-релиза, вся эта история также была взята с гитхаба и чуток адаптирована под современные реалии (ссылочку увы не приложу, так как админы этого творения быстренько удалили соответствующим коммент пользователя, который дал инфу с пруфами, даже заскринить не успел) .

Есть у нас еще один клон Inst. , за который к слову вообще не стыдно, но о нем позже.

Рустаграм. Когда умрет?

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

Костыли и велосипеды.
Изучив исходный код, скачанный здесь, стало очевидно, что собрано все это дело под старые версии языка PHP (5.5, 5.6 согласно проверке в установочнике; актуальная на момент написания статьи 8.1), JIT, горячим кэкированием и прочими штуками тут не побаловаться. То есть, скоростью там и не пахнет, чистый монолит, который ляжетпри нагрузке в 120-250к пользователей. Про такие вещи, как вменяемое REST API, чтобы законнектить мобильное приложение и интеграции вообще говорить не приходится, более того, каким-либо ООП здорового человека там и не пахнет, не говоря уже про IoC, DI, MVC, мосты, фабрики, адаптеры и так далее. Дополнительно обратил внимание на SQL запросы, там просто земля пухом, а слово "БЕЗОПАСНОСТЬ" можно употребить только в качестве антонима. Что касается клиентской части, так обновление контента завезли только через setInterval, и таких в ленте висит 6 штук, а равно, что с одного онлайн пользователя в секунду падает 6 запросов за "здрасте", а что такое веб-сокеты разрабы видимо тоже не слышали. То есть, суммарно, это все монолитный быдлокод, который не получится нормально дорабатывать, развивать и оно все будет ставить палки в колеса, слова "Масштабирование" и "Производительность" также можно забыть.

Выводы.
1. Даже если к этому творению прикрутить мобильное приложение, то нагрузку оно держать не будет (к слову их сайт страшно долго загружает контент) то есть большую аудиторию никогда не наберет, люди сами будут уходить.
2. Масштабировать и улучшать не выйдет, проще все будет переписать с нуля, так как иначе это превратится в конкурс "Приседания на бутылочку" (только без карандаша).
3. Новый пользовательский интерфейс и хоть какую-то СОБСТВЕННУЮ бизнес логику делать будут 100 лет (на мой взгляд они край как нужны), а когда сделают будут плакать.
3. Умрет все это дело за год-другой, может раньше, смотря сколько денег туда готовы вливать создатели.
4. Инвестировать деньги и время туда смысла нет, так как авторы творения видимо сами не понимают, что делают и как с этой шляпой жить дальше.
5. Технически это не их разработка, но даже при этом реализация откровенно слабая, при масштабировании оно больше денег на оборудование сожрет чем позволит заработать.
6. Сильные вопросы к безопасности пользовательских данных. Будь другие законы в РФ, с радостью провел бы показательное выступление с вытаскиванием данных из этой шляпы.
7. Мне стыдно, что такие проекты выходят на рынок очерняя репутацию действительно талантливых и разумных коллег.

РоссГрам. Когда вывеска в офисе намного важнее продукта.

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

1. Анонс состоялся в конце февраля, залетела бодрая реклама: "Одногрупник Павла Дурова создает отечественный аналог Inst." - как буд-то факт обучения с Дуровым дает CEO +500 к скорости, +300 к знаниям и скилам. Хотя в одном надо отдать должное, свой хайп и аудиторию они взяли, маркетинг получился весьма резонансным. А вот все остальное это дичь и треш.

2. Благополучно сверстав на конструкторе лендос, "посоны" пошли делать мобильное приложение, презентация которого состоялась в конце марта. Ребята сделали новое лого перевернув логотип BeatsAudio и заказали в офис новую можную вывеску. На самой "презентации", говорил какой-то грустный дядя, после нам показали запись телефона, где нет толком ни функционала, ни дизайна. Что они делали весь март - загадка. В современных реялиях можно выкатить рабочий прототип под нагрузку 400к пользователей за пару недель, пруфы и обоснования в конце статьи.
Логотип было:

Логотип стало:

3. В объявлении, на странице ВК у CEO данного проекта было найдено объявление о поиске разработчика на PHP, JS, HTML,CSS. Из чего следует, что нам выкатят очередную недоделанную веб-пародию на Inst., с нулевым функционалом и закосом под онлифанс.

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

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

Выводы.
1. На активной волне хайпа оно может и доедет до AppStore и GooglePlay, но сильно сомневаюсь, что это будет на 100% своя разработка, в следствие чего получится сутулая собака воющая в канаве во время чумы, то есть проще тупо завести новую.
2. Для блогеров и бизнеса оно вообще не заслуживает внимания, не стоит инвестировать в это свое время. Упс, забыл что инвестировать то пока некуда, только рассказы, непонятные видосы и обещания.

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

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

Кто реально хорош и делает вещи?

Тут вообще писать нечего. Есть выходцы из Яндекса, которые сделали аналог Inst. здорового человека

Да функционала пока не вау много, да есть мелкие недочеты, НО это уже можно скачать на телефон, как на андройд, так и на яблочко, оно нормально работает, не украдено (таких признаков не нашел, хотя очень старался).
Выводы.
1. В двух словах: мое уважение.
2. Также очень несправедливо, что им перепало меньше всего хайпа, в отличии от вышеуказанных проектов, которые даже не поленились себе страничку в википедии сделать, тем самым показав, как можно превозвыситься без нормального продукта, путем чужих стараний и липко-сладких историй.
3. В этот продукт стоит инвестировать и время, и деньги.

Чё, самый умный? Сам бы попробовал что-то подобное сделать! ЭТА ЖИ БАЛЬШООЙ ТРУД!!!

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

Интереса ради, решил провести небольшой марафон по данной теме, чтобы понять, действительно ли создание инсты такая непостижимая задача. На работе потерялся на неделю, а-ля заболел.

Итак, выберем инструменты, которые нам понадобятся, чтобы решить задачку:
1. Сервер на Linux Debian/Ubuntu (подойдет рабочая файлопомойка).
2. Веб-сервер - Nginx.
Преимущества: скорость, простота, отказоустойчивость.
3. Главная БД - MongoDB, для хранения основных данных.
Преимущества: скорость, встроенное шифрование, возможность горизонтально распределения нагрузки, в меру быстрая репликация, отсутствие строгой типизации (что актуально для загружаемого контента).
4. Основной бэк язык Go.
Преимущества: высокая скорость работы, асинхронное выполнение, гибкость.
5. Дополнительный бэк язык PHP v8.1.
Преимущества: простота, высокая скорость за счет JIT (ходят легенды, что иногда догоняет Python) гибкость.
6. Фронт - фреймворк Expo под React Native.
Преимущества: сам Inst. был разработан на React Native, высокая скорость разработки, хорошая документация, куча пакетов для решения любых задач, гибкий в плане реализации визуала.

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

Что самое интересное, когда посадил бэк на рабочую файлопомойку, которая имеет под капотом: Intel Core 2 Duo, 6GB RAM, 2x1TB ssd, Linux Ubuntu (еще пердит, но работает), накидал на Go простой запросник, который проводит авторизацию и по списку, асинхронно, проходит все команды пользователя в API, в т.ч. загрузка фото/видео, и... файлопомойка упала, когда единовременно залетело 800 с небольшим запросов в секунду, в то время как исходник для Рустаграма упал на 90 с копейками. При этом наращивание количества запросов было с шагом 100-150 раз в 20 секунд, параллельно сидел с телефона и делал плюс-минус те же действия, и медленнная отдача контента, скажем, некомфортная для пользователя, начинается в диапозоне 600-800.
Теперь интересно протестить на нормальном железе, а вам?
После этого попробуйте расскажите, как все сложно делается, какие космические технологии для этого нужны, а еще про штат разработчиков в 500 человек с зп 300к в микросекунду, 300 скрам мастеров, дизайнеров, психологов и так далее.

На словах ты Лев Толстой, а на деле...

На деле есть предложение, если был хоть где-то необъективен, или не прав - го в комменты обсудим, конструктивная критика это здорово.

Хочет уважаемый чиатель исходники, гайды, посмотреть или потрогать - не вопрос, с удовольствием изложу в следующей статье, ток накидайте плюсов за старания - mod.poproshajka('likes').

Вопросы к вам!

1. Как бы вы назвали аналог Inst.
2. Стоит ли попробовать довести этот проект до ума и запустить его в массы?
3. Что понравилось/непонравилось в статье?
4. Стоит ли освещать все движения по этому проекту, если продолжу его развивать?
5. Что уважаемому читателю интересно, о чем я мог бы рассказать в пределах своих компетенций?

0
119 комментариев
Написать комментарий...
Peckenka

Вы не обижайтесь, но мне кажется, вы просто выпендриваетесь.

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

Не понятна ваша претензия — "мол как так, взяли за основу исходники готового решения". А как еще поступить в текущих условиях?

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

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

Ответить
Развернуть ветку
Илья Глазунов
Автор

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

Ответить
Развернуть ветку
116 комментариев
Раскрывать всегда