Petty little joy # 7: three untuk harga satu konsol animasi, algoritma dan debugging

Minggu ini, tidak ada sukacita kecil yang cukup besar yang ditemukan, tetapi ada 3 sukacita kecil yang sangat kecil.


termtosvg


Sekarang merupakan kebiasaan untuk melengkapi perpustakaan dan repo Anda di github dengan animasi indah yang menunjukkan konsol dengan demo langsung kreasi Anda.


gambar


Tradisi tidak diragukan lagi baik dan benar. Hanya merekam animasi seperti itu yang bisa sulit / malas / sekali. Penulis termtosvg menembak semua burung dengan satu batu dan memberi para programmer hal yang hebat untuk merekam demo konsol.


Tidak seperti banyak solusi lain, termtosvg tidak menulis video atau gif. Hal ini menangkap semua yang terjadi di konsol dan membuat animasi SVG berdasarkan apa yang muncul di terminal. Pada output, Anda tidak hanya mendapatkan animasi layar, tetapi juga membuat operasi konsol yang cantik dan bergaya. SVG memiliki bobot yang jauh lebih sedikit daripada format lain, namun dapat diedit dengan mudah.


Untuk orang-orang yang cerdas, beberapa solusi warna yang telah ditentukan disertakan sehingga Anda dapat menyesuaikan demo langsung Anda.


Anda dapat membuat output dalam topik ringan:



Anda dapat merender dalam tema yang gelap, dengan tombol kontrol jendela dan bilah progres di bawah ini:



Dan Anda bisa dalam selusin skema warna lainnya.


Semuanya diatur seperti biasa,


pip install termtosvg 

makro juga dapat dikirimkan melalui minuman (versi yang diperlukan dari Python dan banyak dependensi akan ditarik dengan sendirinya)


 brew install termtosvg 

Manual ada di sini , daftar lengkap tema yang telah ditentukan untuk rendering ada di sini . Semua ini menggunakan Python, jadi Anda setidaknya dapat membaca sumber yang menarik jika Anda tidak memerlukan animasi konsol.


Koleksi Algoritma


Algoritma dengan Python. Repo ini telah dilihat oleh banyak orang dan terkenal - hampir 50.000 bintang di github. Implementasi bundel algoritma klasik dalam Python murni - grafik, matematika, enkripsi, protokol, routing jaringan dan banyak hal yang berbeda.


Beberapa orang akan membutuhkan ini untuk pekerjaan sehari-hari, tetapi akan sangat berguna untuk pengembangan umum atau untuk mempersiapkan wawancara dengan perusahaan yang dapat menawarkan Anda untuk bekerja dengan pohon biner untuk wawancara.


Tidak hanya implementasi hewan peliharaan yang tersedia, tetapi juga bahasa lain .


icecream



Tampaknya alat debugging dan pemantauan untuk kode yang kuat sudah lengkap dan mereka memenuhi semua kebutuhan pengembang - pengadu, pengumpul log, pemantauan kesalahan, pengumpul metrik.


Tetapi kadang-kadang terjadi bahwa insinyur harus memukul print() lama yang baik print() dalam kode untuk memahami apa yang terjadi.


 if something: print(1) operation_one() else: print(2) operation_two() 

Metode debugging kontroversial, kotor, efektif dan tidak untuk semua orang. Untuk pecinta seperti itu, ada perpustakaan icecream python-powered (serta implementasi untuk C ++, Node.JS, Rust, Dart, dan PHP).


Sekarang kamu bisa menulis


 from icecream import ic def foo(): ic() first() if expression: ic() second() else: ic() third() 

dan dapatkan kode debug seperti


 ic| example.py:4 in foo() ic| example.py:11 in foo() 

Untuk debugging murni dengan metode ini, saya pribadi akan menekannya di leher, tetapi dengan modifikasi tertentu dapat digunakan. Ada hal lain dalam lib ini yang mungkin berguna:


  • Kemampuan untuk dengan cepat dan mudah menyimpan argumen input dan hasil dari fungsinya.
  • Kustomisasi output dengan berbagai awalan dan data.
  • Gantung fungsi khusus Anda untuk menangani output dari pesan debugging.

Jika semua ini dengan rapi dikombinasikan dengan flag-switch yang berbeda dari mode debug ke mode produksi, maka ternyata hal yang cukup waras, yang akan memberi tahu Anda tentang semua yang terjadi dalam kode Anda.

Source: https://habr.com/ru/post/id459074/


All Articles