Меню Закрити

Цікаві та корисні GitHub-проекти #5

Джерело зображення: icons8

Сьогодні в добірці:

  • PySnooper — вам більше не потрібно буде використовувати print() для дебагу.
  • GB Studio — безкоштовний і простий у використанні інтерфейс розробника олдскульних ігор для Game Boy.
  • Svelte — компілятор, який бере ваші декларативні компоненти та перетворює їх у ефективний JavaScript, який миттєво оновлює DOM.
  • sshcode — CLI, який автоматично встановлює та запускає code-server через SSH.

PySnooper

Намагаєтеся зрозуміти, чому ваш код Python не робить те, на що ви сподіваетес? Ви хочете знати, які рядки виконуються, а які — ні, і які при цьому значення локальних змінних. Більшість людей буде використовувати print() в необхідних місцях (так, хоча це й не правильно).

PySnooper дозволяє зробити те ж саме, але вам не потрібно розставляти print(), ви просто додаєте один декоратор до будь-якої функції.

Приклад

import pysnooper

@pysnooper.snoop()
def number_to_bits(number):
    if number:
        bits = []
        while number:
            number, remainder = divmod(number, 2)
            bits.insert(0, remainder)
        return bits
    else:
        return [0]

number_to_bits(6)

Результат

Starting var:.. number = 6
15:29:11.327032 call         4 def number_to_bits(number):
15:29:11.327032 line         5     if number:
15:29:11.327032 line         6         bits = []
New var:....... bits = []
15:29:11.327032 line         7         while number:
15:29:11.327032 line         8             number, remainder = divmod(number, 2)
New var:....... remainder = 0
Modified var:.. number = 3
15:29:11.327032 line         9             bits.insert(0, remainder)
Modified var:.. bits = [0]
15:29:11.327032 line         7         while number:
15:29:11.327032 line         8             number, remainder = divmod(number, 2)
Modified var:.. number = 1
Modified var:.. remainder = 1
15:29:11.327032 line         9             bits.insert(0, remainder)
Modified var:.. bits = [1, 0]
15:29:11.327032 line         7         while number:
15:29:11.327032 line         8             number, remainder = divmod(number, 2)
Modified var:.. number = 0
15:29:11.327032 line         9             bits.insert(0, remainder)
Modified var:.. bits = [1, 1, 0]
15:29:11.327032 line         7         while number:
15:29:11.327032 line        10         return bits
15:29:11.327032 return      10         return bits
Return value:.. [1, 1, 0]

Репозиторій

GB Studio

GB Studio — це безкоштовний і простий у використанні інтерфейс розробника олдскульних ігор для Game Boy для Mac, Linux і Windows.

Сайт

Репозиторій

Svelte

Svelte — новий спосіб створення веб-додатків. Це компілятор, який бере ваші декларативні компоненти та перетворює їх у ефективний JavaScript, який миттєво оновлює DOM.

Він подібний до таких фреймворків, як React і Vue, які мають спільну мету — полегшувати створення інтерактивного інтерфейсу. Але існує принципова різниця: Svelte перетворює ваш додаток у ідеальний JavaScript під час створення, а не інтерпретує код програми під час виконання. Це означає, що ви не несете витрати на вилучення абстракцій фреймворку, і не будете чекати, доки ваша програма завантажується. Ви можете побудувати всю програму за допомогою Svelte або додати її поступово до існуючої кодової бази. Ви також можете розробляти компоненти, як окремі незалежні пакети.

<script>
  let name = 'world';
</script>

<h1>Hello {name}!</h1>

Сайт

Репозиторій

sshcode

sshcode — це CLI, який автоматично встановлює та запускає code-server (про нього ми писали в одній із минулих добірок) через SSH.

Він автоматично завантажує ваші розширення та налаштування, так що ви можете легко використовувати віддалені сервери як хости для VS Code. Якщо у Вас встановлений Chrome, він відкриває браузер у режимі додатку. Це означає, що немає конфліктів клавіш, адресного рядка або інших ознак, що ви працюєте у браузері. Відчуття — наче ви працюєте в нативному VS Code.

Репозиторій

Див. також: Цікаві та корисні GitHub-проекти #4

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

0

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: