Mengonfigurasi Kode Visual Studio

Visual Studio Code (VSCode) adalah editor kode gratis, yang berjalan pada sistem operasi macOS, Linux, dan Windows. Ini memiliki dukungan perkakas elegan yang mendukung pengembangan Python & C++, debugging visual, integrasi dengan git dan banyak lagi fitur menarik lainnya. Karena kemudahan penggunaan dan pengelolaan ekstensi, ini adalah editor yang bagus untuk pengembangan TensorFlow IO. Namun, diperlukan upaya untuk mengkonfigurasinya dengan benar. Karena konfigurasi VSCode sangat fleksibel, memungkinkan pengembang untuk mengkompilasi proyek menggunakan bazel dan menjalankan kode di bawah debugger Python dan C++. Penyiapan alat dasar mungkin berbeda berdasarkan sistem operasi, namun pendekatan konfigurasinya harus serupa.

Ekstensi

Untuk memasang ekstensi, klik ikon tampilan ekstensi (Ekstensi) di Sidebar, atau gunakan pintasan Ctrl+Shift+X. Kemudian cari kata kunci di bawah ini.

  • C/C++ - Ekstensi C++ resmi dari Microsoft
  • Python - Ekstensi Python resmi dari Microsoft
  • Paket Ekstensi Python - ekstensi lain yang berguna untuk pengembangan Python

Menyusun proyek

TensorFlow IO dikompilasi menggunakan perintah bazel build:

bazel build -s --verbose_failures --compilation_mode dbg //tensorflow_io/...

Lihat file README proyek untuk detail tentang cara mengatur lingkungan pengembangan di Ubuntu. --compilation_mode dbg flag di sini menunjukkan bahwa biner yang dihasilkan harus memiliki simbol debug. Setelah Anda dapat mengkompilasi proyek dari baris perintah, Anda juga dapat mengkonfigurasi VSCode agar dapat menjalankan perintah yang sama.

Buka View->Command Pallete ( Ctrl+Shift+P ) dan mulailah mengetik: "Tugas: Konfigurasikan Tugas Pembuatan". Jika Anda melakukan ini untuk pertama kalinya, editor akan menyarankan pembuatan file task.json. Setelah Anda memilikinya, rekatkan json berikut:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build TF.IO (Debug)",
            "type": "shell",
            "command": "bazel build -s --verbose_failures --compilation_mode dbg //tensorflow_io/...",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": []
        }
    ]
}

Sekarang, Anda dapat menekan Ctrl+Shift+B , dan VSCode akan menggunakan perintah di atas untuk membangun proyek. Ia menggunakan jendela terminalnya sendiri, di mana semua tautan dapat diklik. Jadi ketika terjadi kesalahan kompilasi, Anda membuka file yang sesuai dan menavigasi ke baris hanya dengan mengklik link di jendela terminal.

Men-debug proyek

Men-debug kode Python itu sepele, ikuti dokumentasi resmi untuk mengetahui cara mengonfigurasi VSCode untuk mengaktifkannya: https://code.visualstudio.com/docs/python/debugging

Namun, men-debug kode C++ mengharuskan GDB diinstal di sistem Anda. Jika Anda memiliki skrip python bq_sample_read.py yang menggunakan pustaka tensorflow-io dan biasanya dijalankan dengan cara berikut:

python3 bq_sample_read.py --gcp_project_id=...

Anda dapat menjalankannya di bawah GDB menggunakan yang berikut:

gdb -ex r --args python3 bq_sample_read.py --gcp_project_id=...

Jika aplikasi mengalami error pada fase kode C++, Anda dapat menjalankan backtrace di konsol GDB untuk mendapatkan stacktrace kesalahan tersebut.

VSCode juga memiliki dukungan debugger GDB. Ini memungkinkan penambahan breakpoint, mengamati nilai variabel, dan menelusuri kode selangkah demi selangkah. Untuk menambahkan konfigurasi debug tekan ikon Debug View (Debug) di Sidebar, atau gunakan pintasan Ctrl+Shift+D . Di sini, tekan panah kecil ke bawah di sebelah tombol putar dan pilih "Tambahkan Konfigurasi...". Sekarang akan membuat file launch.json , yang mana, silakan tambahkan konfigurasi berikut:

{
    "name": "(gdb) Launch",
    "type": "cppdbg",
    "request": "launch",
    "program": "/usr/bin/python3",
    "args": ["bq_sample_read.py", "--gcp_project_id=..."],
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [
        {
            /* path to your bazel-bin folder */
            "name": "TFIO_DATAPATH",
            "value": "/usr/local/google/home/io/bazel-bin"
        },
        {
            /* other env variables to use */
            "name": "GOOGLE_APPLICATION_CREDENTIALS",
            "value": "..."
        }
    ],
    "externalConsole": false,
    "MIMode": "gdb",
    "setupCommands": [
        {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
        }
    ]
}

Jika semuanya sudah dikonfigurasi dengan benar, Anda seharusnya dapat melakukan Run -> Start Debugging ( F5 ) atau Run -> Run Without Debugging ( Ctrl + F5 ). Ini akan menjalankan kode Anda di bawah debugger:

Debugger VSCode

Untuk lebih menyederhanakan pengalaman proses debug, Anda dapat mengonfigurasi GDB untuk melewati pustaka C++ standar. Ini memungkinkan Anda mengabaikan kode yang tidak Anda pedulikan. Untuk melakukannya, buat file ~/.gdbinit dengan konten berikut:

skip -gfi /usr/include/c++/*/*/*
skip -gfi /usr/include/c++/*/*
skip -gfi /usr/include/c++/*

Memformat file

Anda selalu dapat memformat ulang file C++ atau Python dengan Klik Kanan -> Format Dokumen ( Ctrl + Shift + I ), tetapi VSCode menggunakan konvensi gaya yang berbeda. Untungnya, perubahannya mudah.

Untuk pemformatan Python, lihat https://donjayamanne.github.io/pythonVSCodeDocs/docs/formatting/

Untuk pemformatan C++, lakukan hal berikut:

  • Buka Preferensi -> Pengaturan
  • Cari "C_Cpp.clang_format_fallbackStyle"
  • Ubah file:setting.json secara langsung dengan menambahkan konten berikut
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google}"