Рубрика развивается при поддержке

Telegram объявил конкурс для JavaScript-разработчиков с призовым фондом от $200 тысяч Материал редакции

Участники должны написать упрощённую версию веб-приложения.

В закладки

Telegram запустил конкурс для разработчиков, пишущих на JavaScript. Он пройдёт в три этапа с 3 по 17 ноября.

Задача конкурса — разработать упрощённую веб-версию Telegram без использования сторонних UI-фреймворков. Готовое веб-приложение должно состоять из интерфейса авторизации и регистрации, а также позволять просматривать список чатов и сообщения.

Архив с макетами доступен в официальном канале, через который Telegram объявляет конкурсы. Документация по API и исходный код существующих клиентов Telegram опубликованы на сайте мессенджера.

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

Использовать UI-фреймворков вроде React и Angular нельзя. Использование библиотеки данных TDLib теоретически возможно, но, скорее всего, может привести к увеличению времени загрузки по сравнению с простыми JavaScript-решениями.

из описания конкурса

Призовой фонд первого этапа составит $80 тысяч. В описании не написано, сколько победителей Telegram планирует отобрать. Призовой бюджет для всех трёх этапов составит от $200 тысяч.

{ "author_name": "Альберт Хабибрахимов", "author_type": "editor", "tags": ["\u043d\u043e\u0432\u043e\u0441\u0442\u044c","\u043d\u043e\u0432\u043e\u0441\u0442\u0438","telegram"], "comments": 41, "likes": 24, "favorites": 17, "is_advertisement": false, "subsite_label": "dev", "id": 91016, "is_wide": true, "is_ugc": false, "date": "Mon, 04 Nov 2019 10:38:39 +0300", "is_special": false }
Облачная платформа
Основа для цифровизации бизнеса
0
{ "id": 91016, "author_id": 53259, "diff_limit": 1000, "urls": {"diff":"\/comments\/91016\/get","add":"\/comments\/91016\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/91016"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 235819, "last_count_and_date": null }
41 комментарий
Популярные
По порядку
Написать комментарий...
15

А ВК объявляет конкурсы по 100 000 руб.

Ответить
8

Бедняга :( Именно это тебя останавливает в них участвовать?

Ответить
1

Я не специалист, но у меня вопрос. А что так сложно написать приложение на javeS

Ответить
14

 Сложно.
1 - Сейчас 80%+ JavaScript разрабов это исключительно ребята, научившиеся пользоваться  фреймворком А, B, C.
2 - Если делаешь продукт на фреймворках, то это жутко не эффективное рассходование средств фирмы и переписывание продукта раз в 5 лет, но так делают все. Плюс весит все это много. Работает по факту медленно, чтобы Вам там не говорили.
3 - Приложение без фреймворков может написать от силы 1-3% JS разрабов. Реально написать, а не сказать что смогут.
Без фреймворков все работает мега быстро, но сделать не гавнокод на выброс, а продукт 
нереально сложно. Уровень таких спецов, это не Senior разрабы, а архитекторы.

P.S.:
 Не скромно скажу, что я бы смог такое сделать. 12.5 лет с JavaScript. Кучу Enterprise софта написал без фреймворков.
Но 
1 - За чем мне это надо.
2 - Хорошие продукты делаются либо быстро, либо хорошо.
"с 3 по 17 ноября." - гавнокодинг на скорость с 14-18 часовым рабочим днем в лучших традициях экстремального программирования.
3 - Все эти конкурсы, это чисто наша тема. Не уважения к труду людей.

Ответить
27

 2 - Если делаешь продукт на фреймворках, то это жутко не эффективное рассходование средств фирмы и переписывание продукта раз в 5 лет, но так делают все. Плюс весит все это много. Работает по факту медленно, чтобы Вам там не говорили.

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

Ответить
0

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

Абсолютно разные цели и средства.

Ответить
0

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

Ответить
7

Ну давайте не будем скатываться до "ой все"

Еще в бородатом 2008 писал энтерпрайз без фреймворков и без jQuery на 40-50 экранов с XML на бекенде.
Потом дорабатывал англичанам их внутреннее решение, тоже без фреймворков.

И за время карьеры писал на Ext.js Backbone, Knockout, Amber, Angular, React, Vue, сейчас ковыряю Svelte и смотрю в сторону Kotlin

Так что имею представление о чем говорю.

Есть куча критериев по которым нужно сравнивать любое решение в разработке. И сорян, но "продукт на фреймворках, то это жутко не эффективное рассходование средств фирмы и переписывание продукта раз в 5 лет" это аналитика уровня /b/

Ответить
–7

 Мне не хочется ругаться с Вами на 100 комментов.
Считайте что Вы правы.

Ответить
0

Бред. Кастомизированное решение под задачу всегда лучше универсального,  а то, что единого универсального на все случаи жизни и времена фреймворка так и не создано - только подтверждают этот тезис.

Ответить
0

"всегда лучше" - популизм
По каким критериям?

Ответить
0

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

Ответить
3

"По-любым" это только "по скорости работы" и то сильно зависит от разработчиков.
Итого из 

- стоимости разработки /скорости разработки
- стоимости поддержки и сопровождения
- скорости работы 

Имеем только последний пункт и то не на 100%

"всегда лучше" ага :)

Ответить
0

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

Ответить
4

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

Ответить
2

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

Ответить
2

100 килобайт кода - это не 100 килобайт текста. Это все
- парсится
- раскладывается на AST
- пытается оптимизироваться
- переводится в байткод/подстраивается под конкретный машинный процессор

посмотрите, кажется, на Хабре были об этом статьи. Для десктопа это особой роли не играет, но вот для телефонов - играет. У мобилок пауза ожидания, пока все скрипты переварятся, может до 10 секунд и больше составлять.

PS: вот
https://habr.com/ru/company/mailru/blog/321748/

Ответить
2

100кб кода роли не играет? Хорошо, да. Только потом не удивляйтесь, что это «роли не играет» отжирает всю вашу оперативку, забивает проц и вообще загружается через раз

Ответить
3

Дада, жутко не эффективно:) А переписывать спагетти говнокод за очередным мамкиныным архитектором это выгодно и эффективно? Фреймворки стандартизировали написание фронта и принесли порядок в хаос фронтенд разработки, когда как раньше любая макака писала отсебятину:)

Ответить
0

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

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

Ответить
0

Тредик дичи. любой фреймворк, в более менее крупном проекте, обрастет "кастомным кодом". Ибо не всемогущ. А в небольшом проекте фреймворк тем более нафиг не нужен. В итоге итог.

Ответить
3

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

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

Я думаю, что так в любом деле. Всё зависит от того, как заморочиться и сделал максимально качественно.

Ответить
4

Как будто фреймворки это что-то плохое, в эпоху, когда 5g на пороге, вы волнуетесь о нескольких лишних мегабайт?

Ответить
5

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

Отправка сообщений для мессенджера это дополнительная функция?

Ответить
2

Цель — лёгкий и быстрый интерфейс в первую очередь без фреймворков. Отправка сообщений в твоём проекте это уже опционально и будет типо бонусом/плюсом в принятии решения проверяющими. 

Ответить
0

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

Ответить
2

Запилите уже преобразовывание ссылок на телегу на открытие телеги, лень впн подрубать каждый раз

Ответить
2

потратить 200 тысяч на конкурс на  лайт телеграмм и списать 230 млн за год на эко систему (развитие и поддержку) что то есть в этом... но что? понять не могу

Ответить
1

Тот случай, когда заработать 80 тысяч проще, чем выиграть.

Ответить
1

Нужно понимать, что эти деньги просто раскидают на всех призёров. В прошлом конкурсе их было овердохера. Но свои 1-2к долларов, может и получишь, если повезет.

Ответить
0

Тем более

Ответить
1

А никого не смущает, что дизайны в виде JPG файлов приложены? Линейкой отступы замерять и пипеткой цвет определять не удобно.

Ответить
1

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

Ответить
1

Результаты конкурса будут в открытом доступе? Хочется посмотреть исходники

Ответить
1

Телеграм постоянно какие-то конкурсы пилит. Жаль что я не разработчик. Думаю очень интересно создать что-то упрощенное так еще и получить кучу денег за это...

Ответить
0

У них и для дизайнеров конкурсы есть

Ответить
0

TS можно?

Ответить
0

Тоже интересно можно ли использовать typescript.

Ответить
0

У них говянное жюри, потому пошли они в жопу со своим конкурсом, ахахаха 🖕

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }