Главная Веб-разработка GitHub digest #14: и посчитать, и в шахматы сыграть

GitHub digest #14: и посчитать, и в шахматы сыграть

от admin

Выясняем, чем пахнет код, и печатаем реактивные компоненты.

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

Скриншоты из терминала

Termshot

Простой скриншот можно сделать с помощью команды termshot –show-cmd — lolcat -f <(figlet -f big foobar). Выглядеть он будет так:

GitHub digest #14: и посчитать, и в шахматы сыграть

Скриншот: homeport / GitHub

Проект доступен для Linux и macOS. Установить его можно с помощью пакетного менеджера Homebrew или собрать самому.

Открыть репозиторий

Коллекция запахов плохого кода

Bad Code Smells

Запахи кода (code smells) — термин, который популяризировали Мартин Фаулер и Кент Бек в книге Refactoring: Improving the Design of Existing Code. Он обозначает признаки потенциальных проблем в коде. Так же как неприятный запах может сигнализировать, например, о том, что еда испортилась, так и «запахи кода» указывают на возможные недостатки или проблемы в программе.

Ниже пример кода «с запашком», который возвращает словарь с кодом статуса и данными, проводя при этом дополнительную проверку статуса при каждом вызове. Это нагружает проект и заставляет компьютер выполнять лишние действия.

def create_foo() -> dict: response = requests.get(‘https://api.github.com/events’) if response.status_code != requests.codes.ok: return {‘status_code’: response.status_code, ‘foo’: None} return { ‘status_code’: response.status_code, ‘foo’: Foo(**response.json()) } foo_response: dict = create_foo() if foo[‘status_code’] != requests.codes.ok: foo: Foo = foo_response[‘foo’] …

Лучше было бы использовать исключение для сигнализации об ошибке и сразу выбрасывать ошибку, если что-то пошло не так. Это упростит код и сделает его более читаемым.

def create_foo() -> Foo: response = requests.get(‘https://api.github.com/events’) if response.status_code != requests.codes.ok: raise Exception(‘Что-то пошло не так’) return Foo(**response.json()) foo: Foo = create_foo()

Проект пригодится как начинающим, так и опытным программистам. Новички могут изучить примеры плохого кода и стараться не делать так в своих проектах. Матёрые разработчики часто ссылаются на «запахи кода» во время код-ревью.

Открыть репозиторий

Управление музыкой из терминала

Retro

Примеры команд Retro:

  • retro play «https://www.youtube.com/….» — воспроизводит трек по ссылке.
  • retro play queue_music — запускает плейлист.
  • retro play ~/Music/ — воспроизводит все файлы в папке по очереди.
  • retro play ~/Music/Despacito.mp3 — включает конкретный файл.
Читать также:
Гипертекст: что это такое и как он связан с интернетом

GitHub digest #14: и посчитать, и в шахматы сыграть

Так работает Retro
Изображение: Malwarize / GitHubОткрыть репозиторий

Библиотека для работы с SVG

SVG.js

Главный плюс библиотеке в небольшом размере, а это значит, что её можно использовать в проектах и не нагружать систему. Кроме того, она работает быстрее конкурентов, например Snap.svg.

Открыть репозиторий

Бесплатный учитель шахмат

Chessli2

Приложение можно запустить локально по инструкции в репозитории. Для интеграции с Lichess понадобится токен API.

Открыть репозиторий

UI для лендингов

Page UI

GitHub digest #14: и посчитать, и в шахматы сыграть

Лендинг, сделанный с помощью Page UI
Скриншот: Shipixen / Page UIОткрыть репозиторий

Распечатываем React

ReactToPrint

GitHub digest #14: и посчитать, и в шахматы сыграть

Скриншот: ReactToPrint / Skillbox Media

У проекта есть демо, в котором можно попробовать разные варианты печати компонентов.

Открыть репозиторий

Универсальный перетаскиватель

Swapy

GitHub digest #14: и посчитать, и в шахматы сыграть

Перетаскивание элемента с помощью Swapy
Скриншот: Swapy / Skillbox Media

Библиотеку можно использовать со всеми популярными фреймворками для фронтенда. Swapy доступен в пакетном менеджере PNPM.

Открыть репозиторий

Рисуем графики

Recharts

GitHub digest #14: и посчитать, и в шахматы сыграть

Скриншот: RechartsОткрыть репозиторий

Калькулятор

Numara

GitHub digest #14: и посчитать, и в шахматы сыграть

Изображение: bornova / GitHub

Помимо обычных функций калькулятора, Numara поддерживает переменные. Это значит, что можно посчитать промежуточный результат, сохранить его и после использовать для других подсчётов. Также приложение строит графики функций, конвертирует валюты и считает выражения с датами, например, «сегодня + 3 недели».

Numara доступен для Windows, macOS и Linux. Есть веб-версия, которую можно открыть даже в мобильном браузере.

Открыть репозиторий

Умный навигатор по папкам

Zoxide

Открыть репозиторий

Конвертер в Markdown и JSON

Docling

Готовые файлы в JSON и Markdown нужны для нейросетей. Всё дело в том, что они не очень хорошо понимают привычные для человека форматы, поэтому документы надо чётко структурировать. Разработчики интегрировали LlamaIndex и LangChain, чтобы полученные файлы сразу отправлялись к языковой модели.

Открыть репозиторий

Редактор видео

MoviePy

Если вы не занимаетесь монтажом, но хорошо пишете код на Python, то можете стать участником проекта. Сейчас команда MoviePy ищет разработчиков.

Открыть репозиторий

Консольный файловый менеджер

Yazi

Также в файловом менеджере есть продвинутый поиск, предпросмотр файлов, можно выбрать сразу несколько файлов и отображение папок в отдельных вкладках. Yazi доступен для Windows, Linux и macOS.

Открыть репозиторий

Похожие статьи