Всем привет, я Бай Хуанчэн (@bestony), разработчик, который несколько дней назад написал ремейк ClubHouse в прямом эфире на станции B. Конечно, в дополнение к этой идентичности, в реальной жизни я также являюсь техническим лидером сообщества открытого исходного кода Linux China, отвечая за разработку наших собственных инструментов и платформ.
Как инди-хакер (самопровозглашенный), я хотел бы вместе со всеми вами обсудить это событие в прямом эфире и неожиданный взрыв.
Почему NEHouse
На самом деле я думал, что время для воссоздания ClubHouse было очень ранним.Я получил код приглашения ClubHouse 1 февраля.Поиграв некоторое время, я почувствовал, что это программное обеспечение неплохое, концепция очень интересная, но не слишком много заботы. , отложите в сторону. Но ночью, потому что я знаю, что Илон Маск собирается поделиться, как человек, который ценит его, я не могу пропустить это, но, к сожалению, когда я открыл ClubHouse, в приложение уже вливалось слишком много людей, почти не способных использовать , всегда застреваю.
Это вызвало у меня подозрение:Сколько работы у этой штуки? Почему так легко упасть в производительности?
В сочетании с фактическим использованием я обнаружил, что иногда я могу нормально общаться, но он сообщит об ошибке, вы можете найтиПроблема не в голосовой службе, но в бизнес-возможностях самого клуба не хватает, чтобы поддержать больше, чем ожидалось..
Моя последняя работа была в компании, занимающейся облачными вычислениями, так что, условно говоря, у меня есть определенное понимание продуктов облачных вычислений. На мой взгляд, такой инкремент продукта трудно проникнуть в сервисные возможности существующих продуктов облачных вычислений.Можете ли вы представить, что ClubHouse проникнет в AWS, GCP, Azure и других поставщиков облачных услуг?
На мой взгляд, либо разработчики неопытны в архитектуре масштабных сервисов, и хотя облако используется, но они плохо спроектированы и не могут полностью адаптироваться к эластичности, либо разработчики не сделали достаточно планов на превышение трафика прогноз.
Это заставило меня задуматься,Могу ли я раскошелиться на ClubHouse? С более эластичными сервисами? Дать всем образец?Облачные вычисления — это хорошо, но их нужно использовать правильно, чтобы избежать проблем.
Какова концепция воспроизведения ClubHouse за 72 часа?
Поскольку мы хотим воспроизвести проект, мы, естественно, не можем сделать то же, что и Pengci (здесь я презираю несколько приложений Pengci, беру давно написанное приложение с голосовым чатом и прихожу в Pengci ClubHouse).
Но я не хочу тратить на это дело слишком много, у меня есть много более важных дел, поэтому я выбираю 72 часа. 48 или 24 часа — это типичная продолжительность хактона, но я действительно не знаком с проектом, поэтому 72 часа — это безопасная ставка.
Итак, был установлен флаг, говорящийЯ хочу воспроизвести ClubHouse в течение 72 часов. Установите флаг и делайте, что говорите. Что касается этих 72 часов, я хотел бы подчеркнуть два момента, и я надеюсь, что эти два пункта помогут вам.
1. Четко определите, что вы делаете и чего не делаете
У меня ограниченное время, энергия и ресурсы, поэтому не все, что я могу пожелать. Например, при выполнении форка, учитывая, что если я разрабатываю нативное приложение или апплет, мне нужно отправить его на проверку. Тогда я не могу выбрать сделать приложение, иначе 72 часа истекли, а проверка не прошла, и я нарушу свое обещание. Также в целях аудитаВ конце концов я решил использовать веб-способ разработки NESHhouse..
На уровне конкретных функциональных характеристик, из-за разных механизмов Веба и Приложения, мне сложно спрашивать пользователей, какие операции должны быть выполнены, и трудно гарантировать, на какие функции отвечает Приложение, поэтому я выполнили функцию ClubHouse.Некоторые удаления, приглашения на сцену и другие функции, я предпочитаю не делать их в первую очередь, а сосредоточусь на более важных функциях.
При разработке проекта хакатона вы должны сначала подумать о том, чего вы хотите и чего вы не хотите, чтобы вы могли быть уверены, что сможете выполнить свою работу в отведенное время. В противном случае велика вероятность, что время скоро закончится, а основные функции еще не разработаны.
2. Выберите новую технологию, которая может быть использована в будущем.
Во время разработки этого проекта я выбрал в качестве внешнего стека технологий не React и Vue, которые я использовал в прошлом, а Alpine.js, относительно нишевый JS-фреймворк.
Причина выбора Alpine.js очень проста: мне нужно использовать этот фреймворк в других проектах в будущем, но я действительно не знаком с ним на данный момент.Если я воспользуюсь этим инструментом один раз за эти 72 часа, и если оценка будет хорошей, я смогу использовать его в последующих проектах.Если я не буду использовать его хорошо в этот раз, я потеряю только 72 часа, что больше, чем в Loss затраты, используемые в официальных проектах, намного ниже.
В двух других сервисах выбор намного проще:
- Я использовал облачные сервисы LeanCloud в течение многих лет, и опыт также очень хороший, и их бессерверные облачные сервисы могут избавить меня от написания сложного развертывания и базовой логики при разработке NESHouse, и больше сосредоточиться на превосходной бизнес-логике.
- Для аудиосервисов я выбрал SoundNet, который имеет много домашних пользователей и относительно хорошо развит, API SoundNet относительно прост, а доступ к аудио SoundNet в NESHouse реализован всего 4 строками кода.
Кроме того, используются CSS-фреймворки, такие как NES.css, чтобы сделать этот проект более интересным и забавным.
Разрабатывая проект хакатона, вы можете подумать о том, сможете ли вы смириться со своей неудачей на этот раз. просто потеря определенного количества времени. Но если у вас проблемы с рабочим проектом, потери могут быть огромными.
Суммировать
72 часа повторной гравировки для меня несложно, на самом деле мне потребовалось всего 55 часов, чтобы успешно выполнить повторную гравировку. Но что еще сложнее, так это то, как поддерживать рост проекта с открытым исходным кодом, привлечение пользователей и внимания.
Наконец, в статье о Наггетс не так уж много просить звезду за свой проект (
Проект просит Звезду:GitHub.com/be Tony/NES…