Путь Fullstack
16 subscribers
114 photos
3 videos
6 files
50 links
Download Telegram
Все. Залил. Жду оценок в комментариях (если они вообще будут). Пофиксил кучу багов. Доделал, улучшил пулл круток. Добавил импорт ОРУЖЕЙКИ (первый в сообществе, и я этим горжусь😁). Очень сильно улучшил визуал. Вообще соска получилась

https://endfieldpass.site/
🔥1
Хз. Мб из архива историй обновлений превратить этот канал в чуть-чуть большее. Попробую новую рубрику. Гайды
🧨 Почему dict.get() иногда хуже, чем KeyError
user.get("name") как тихий убийца логики

Многие пишут так:

name = user.get("name")


И думают: *«кайф, код не упадёт»*.
Ага. Не упадёт. Он тихо сломает смысл, и ты узнаешь об этом уже в проде, по крикам пользователей.

---

🤔 Что делает get()?

dict.get(key) возвращает:

- значение, если ключ есть
- None, если ключа нет (или твой default)

То есть вместо нормального сигнала “данных нет” ты получаешь валидное значение (None), которое дальше спокойно течёт по коду.

---

🐞 Пример скрытого бага

def greet(user):
name = user.get("name")
return f"Привет, {name}!"


Если "name" отсутствует, получаем:

> Привет, None!

И это даже не ошибка. Это просто позор.

А если дальше ожидается строка:

name = user.get("name")
print(name.strip().title())


Получишь:

> AttributeError: 'NoneType' object has no attribute 'strip'

И самое мерзкое: упадёт не там, где причина, а там, где уже поздно и больно.

---

❗️Почему это опасно

1️⃣ Логика ломается молча
2️⃣ Тесты могут не поймать, потому что None иногда “прокатывает”
3️⃣ Появляются фантомные состояния (“пользователь без имени”, хотя такого быть не должно)
4️⃣ Баг превращается в лотерею: то работает, то нет

---

Как правильно?

🔹 Если ключ обязателен, пусть падает сразу

name = user["name"]  # KeyError = быстро и честно


🔹 Если ключ необязателен, укажи осознанный default

name = user.get("name", "Unknown")


🔹 Если `None` может быть реальным значением, `get()` подставит тебя
Нужно различать “нет ключа” и “значение None”:

_sentinel = object()

name = user.get("name", _sentinel)
if name is _sentinel:
raise KeyError("Missing 'name'")


---

📌 Итог
get() это не “безопасность”. Это отложенная ошибка.

- обязательное поле → user["key"]
- необязательное → get(..., default)
- важно отличать “нет ключа” от None → sentinel
Блять ну че за уебки сидят в яндекс. Просто конченные твари.

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

Я пишу в поддержку. А они мне "Ситуация сложная, подожди 3 часа". И конечно же всем похуй прошло уже 14 часов, всем похуй.

И вот как бл тут нормально с диском коннектиться. Я уже и у gpt спросил и что только не делал. Ничего не получается, а мне даже не говорят почему.

Крч мораль такова: Яндекс - контора пидорасов, минус реп
Ладно. А теперь к хорошим новостям. Сейчас я заливаю новое обновление. И чтобы никто не воспользовался "побитой" версией я добавил вот такую плашку. Круто да? (кто этим вообще пользуется..)
1👍1🔥1
Все крч залито по красоте. Таймер истечет ровно в 4 утра, тогда все само откроется. А я спать пошел
В общем сейчас я буду занят полноценно CyberDeck, сдача уже скоро так что нужно поторопиться.

Что касаемо EndfieldPass. Скорее всего он закроется, т.к времени на разработку нет, есть достаточно много сильных конкурентов, и нет рекламы. Он до конца оплаты хостинга просуществует, но дико сомневаюсь что буду продлевать. Оплачен до 09.03.2026, так что пока есть можете пользоваться если кому то нужен (очень сомневаюсь)
🔥1
Ура. Я сделал новый проект. И это статистика репозиториев на гитхабе. Ранее я уже делал гайд на статистику профиля и другую херню, но они к сожалению оба закрылись. Но сейчас я написал оригинальную проверку репозиториев.

https://github.com/Overl1te/Repo-Inspector
Что он делает? Сканирует репозиторий и проверяет соотвествует ли он стандартам качества github, и на основании этого выносит обьективную оценку. Помимо этого он так же выдает простую статистику языков, звезд, форков и тд. Я приложил скрины, можете с ними ознакомиться.

И самое главное, конечно же это динамичные svg доступные по api. Я повзаимствовал технологию у github-readme-stats.
Кстати, я добавил к нему генератор этих svg, они получились очень гибкими.

Описывать весь его функционал можно очень долго, лучше сами ознакомьтесь https://github.com/Overl1te/Repo-Inspector.

Немного о технической части. Сайт хостится на github pages и имеет встроенную проверку и генератор: https://overl1te.github.io/Repo-Inspector/
А api я повесил на vercel (кстати очень просто, удобно и быстро): https://repo-inspector.vercel.app/ (выдает 404, т.к это чисто бэк)
Все это грамотно связал и добавил github actions.

Сейчас буду форсить эту шнягу на хабре (ну пытаться). И жду ваших оценок)

Фоточки:
5🔥1
Обновы CyberDeck пока что не будет
Все. залил обновление. улучшений очень, очень много. Перечислять не буду. Но зато работает)

https://github.com/Overl1te/CyberDeck
https://github.com/Overl1te/CyberDeck-Mobile