MatveySuvorov
18 subscribers
35 photos
1 video
4 files
9 links
Программирование, компы, в общем все, что нам нравится
Download Telegram
Лучше длинные, понятные названия, чем короткие и непонятные.

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

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

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

Поэтому не поленись потратить пару секунд и подумать над именем своей новой переменной, функции или объекта. Лично я иногда даже захожу в переводчик, чтобы правильно назвать объект на английском (я надеюсь ты не называешь переменные на русском).
Что выступает в качестве сервера для Teamup?

Для создания голосовой связи в приложении мне понадобился свой сервер. Он должен был быть тихим и небольшим, так как работать должен был дома. Raspberry PI идеально подошла для таких задач.

Raspberry PI 4 - это маленькая зеленая палата, которая, представляет собой полноценный компьютер. На ней можно запустить любую операционную систему, например, специально для нее созданную Raspberry Pi OS на базе Debian.

Она поддерживает любое ПО, которое есть на линуксах. Я без проблем смог поставить на нее Docker и запустить в нем Livekit для обеспечения голосовой связи в Teamup.

Вообще, портативный домашний сервер - это лишь один из примеров использования данной штуковины. Из Raspberry pi можно сделать и ретро консоль, и умный дом, и даже свою Яндекс Алису. Как говорится, все ограничивается лишь вашим воображением.

Более подробно про то, как я делал сервер, можно посмотреть в новом видео на канале.

СМОТРЕТЬ
👍1
Сандейфактс №9

Что нового в Teamup (все еще для 1.2):
- Наконец, я исправил проблему с функционалом реального времени (см. Сандейфактс №8).
- Нововведения на экране описания обновления смотрятся более аккуратно.
- Исправлены баги с входом и выходом из публичных команд.
- Экран настроек профиля теперь отображается корректно
Обновление Teamup 1.2

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

Скачать:
-
из Rustore
-
c сайта
👍1
Создавай проекты для души

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

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

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

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

Но и не забывай, что отдохнуть также можно, гуляя по улице, читая книжку или занимаясь спортом. Из компьютера тоже нужно вылезать!
2
Сандейфактс №10

Юбилей! Десять недель как я каждое воскресенье выпускаю краткую сводку по нововведениям в своих проектах.

Что нового в Teamup (для 1.3):
- Исправлен баг, связанный с тем, что кнопка микрофона становилась красной при перезаходе в команду, при том что сам микрофон оставался включенным
- Добавлен статус бар войса над чатом
1
Сандейфактс №11

Что нового в Teamup (для 1.3):
- Немного подправил отображение статистики на своем аккаунте.
- Исправил восстановление статуса подключения после перезахода на экран команды.
👍1
Что такое Supabase

В одном из своих прошлых постов я написал, что в качестве сервера для Teamup использую Raspberry PI 4. Но сейчас она используется только для обеспечения голосовой связи в приложении. Весь остальной бэкенд работает на сервисе Supabase.

Supabase - это облачный сервис, который предоставляет готовый бэкенд для твоих приложений. А то есть:
- систему авторизации (в том числе через сторонние сервисы: Google, Discord и тд)
- базу данных
- файловое хранилище
- облачные функции
- обмен сообщениями в реальном времени
- и много что еще

Весь этот функционал ты можешь написать самостоятельно на Python или Java и запустить в качестве отдельного бэкенда. Но на это потребуется намного больше времени, нежели если ты воспользуешься готовым функционалом. Той же базой данных ты можешь управлять прямо из своего приложения с помощью официальной библиотеки. А она есть на множестве платформ, в том числе на Flutter и Javascript.

Конечно у такого подхода разработки приложений есть свои минусы. Прежде всего это зависимость от самого Supabase. Не работает Supabase - не работает и твое приложение. Также разработка будет менее гибкая. Если какого-то функционала нет у Supabase, ты не сможешь использовать его в приложении. Например, у меня не получается добавить в Teamup авторизацию через ВК или Яндекс, так как в Supabase нет такого провайдера.

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

В следующем посте расскажу, почему планирую уйти с Supabase и разработать свой бэкенд для Teamup.
👍1
Сандейфактс №12

Что нового в Teamup (для 1.3):
- Продолжается миграция базы данных с облачного сервера Supabase на свой сервер (в будущем посте расскажу, зачем я это делаю)
- Начата разработка поддержки горячих клавиш (для включения/выключения микрофона и звука)
Почему я решил перейти с облачного Supabase на свой сервер

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

При разработке Teamup я активно использовал возможности Supabase. Мне нравилась гибкость его функционала: все, что мне нужно было реализовать, я смог сделать вместе с Supabase. Но, как показало время, недостатки также имеются.

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

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

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

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

Могу предположить, что дело в бесплатном тарифе, который у меня на аккаунте. Но платить ежемесячно ~2100 рублей я как-то пока не готов. Поэтому я решил перейти на свой собственный сервер, в качестве которого у меня выступает Raspberry Pi 4, о чем рассказал здесь.

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

Пока что я только в процессе этой миграции. Чуть позже расскажу, что получилось.