Visual Studio Code (VSCode) เป็นตัวแก้ไขโค้ดฟรีที่ทำงานบนระบบปฏิบัติการ macOS, Linux และ Windows มีการรองรับเครื่องมือที่หรูหราซึ่งสนับสนุนการพัฒนา Python และ C++, การดีบักด้วยภาพ, การรวมเข้ากับ git และคุณสมบัติที่น่าสนใจอื่น ๆ อีกมากมาย เนื่องจากใช้งานง่ายและการจัดการส่วนขยาย จึงเป็นตัวแก้ไขที่ยอดเยี่ยมสำหรับการพัฒนา TensorFlow IO อย่างไรก็ตาม จำเป็นต้องใช้ความพยายามในการกำหนดค่าให้เหมาะสม เนื่องจากการกำหนดค่า VSCode มีความยืดหยุ่นสูง จึงทำให้นักพัฒนาสามารถคอมไพล์โปรเจ็กต์โดยใช้ Bazel และรันโค้ดภายใต้โปรแกรมดีบักเกอร์ Python และ C++ การตั้งค่าเครื่องมือพื้นฐานอาจแตกต่างกันไปตามระบบปฏิบัติการ แต่วิธีการกำหนดค่าควรคล้ายกัน
ส่วนขยาย
หากต้องการติดตั้งส่วนขยาย ให้คลิกไอคอนมุมมองส่วนขยาย (ส่วนขยาย) บนแถบด้านข้าง หรือใช้ทางลัด Ctrl+Shift+X จากนั้นค้นหาคำสำคัญด้านล่าง
- C/C++ - ส่วนขยาย C++ อย่างเป็นทางการจาก Microsoft
- Python - ส่วนขยาย Python อย่างเป็นทางการจาก Microsoft
- Python Extension Pack - อีกหนึ่งส่วนขยายที่มีประโยชน์สำหรับการพัฒนา Python
การรวบรวมโครงการ
TensorFlow IO ถูกคอมไพล์โดยใช้คำสั่ง bazel build:
bazel build -s --verbose_failures --compilation_mode dbg //tensorflow_io/...
ดูไฟล์โปรเจ็กต์ README สำหรับรายละเอียดเกี่ยวกับวิธีตั้งค่าสภาพแวดล้อมการพัฒนาใน Ubuntu --compilation_mode dbg flag ที่นี่บ่งชี้ว่าไบนารีที่สร้างขึ้นควรมีสัญลักษณ์การดีบัก เมื่อคุณสามารถคอมไพล์โปรเจ็กต์จากบรรทัดคำสั่งแล้ว คุณยังสามารถกำหนดค่า VSCode เพื่อให้สามารถเรียกใช้คำสั่งเดียวกันได้
เปิด View->Command Palette ( Ctrl+Shift+P ) และเริ่มพิมพ์: "งาน: กำหนดค่างาน Build" หากคุณกำลังทำเช่นนี้เป็นครั้งแรก ตัวแก้ไขจะแนะนำให้สร้างไฟล์ Tasks.json เมื่อคุณมีแล้ว ให้วาง json ต่อไปนี้:
{
"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": []
}
]
}
ตอนนี้คุณสามารถกด Ctrl+Shift+B และ VSCode จะใช้คำสั่งด้านบนเพื่อสร้างโปรเจ็กต์ มันใช้หน้าต่างเทอร์มินัลของตัวเอง ซึ่งสามารถคลิกลิงก์ทั้งหมดได้ ดังนั้นเมื่อเกิดข้อผิดพลาดในการคอมไพล์ คุณจะเปิดไฟล์ที่เกี่ยวข้องและไปที่บรรทัดโดยคลิกลิงก์ในหน้าต่างเทอร์มินัล
การดีบักโปรเจ็กต์
การดีบักโค้ด Python นั้นไม่สำคัญ ปฏิบัติตามเอกสารอย่างเป็นทางการเพื่อหาวิธีกำหนดค่า VSCode เพื่อเปิดใช้งาน: https://code.visualstudio.com/docs/python/debugging
อย่างไรก็ตาม การดีบักโค้ด C++ จำเป็นต้องติดตั้ง GDB บนระบบของคุณ หากคุณมีสคริปต์ bq_sample_read.py
python ที่ใช้ไลบรารี tensorflow-io
และโดยปกติแล้วจะดำเนินการในลักษณะต่อไปนี้:
python3 bq_sample_read.py --gcp_project_id=...
คุณสามารถดำเนินการได้ภายใต้ GDB โดยใช้สิ่งต่อไปนี้:
gdb -ex r --args python3 bq_sample_read.py --gcp_project_id=...
หากแอปพลิเคชันขัดข้องในระยะโค้ด C++ คุณสามารถเรียกใช้ backtrace
ในคอนโซล GDB เพื่อรับสแต็กเทรซของข้อผิดพลาด
VSCode ยังมีการสนับสนุนดีบักเกอร์ GDB อนุญาตให้เพิ่มเบรกพอยต์ สังเกตค่าของตัวแปร และอ่านโค้ดทีละขั้นตอน หากต้องการเพิ่มการกำหนดค่าการแก้ไขข้อบกพร่อง ให้กดไอคอน Debug View (Debug) บนแถบด้านข้าง หรือใช้ทางลัด Ctrl+Shift+D ที่นี่ กดลูกศรลงเล็กๆ ถัดจากปุ่มเล่น และเลือก "เพิ่มการกำหนดค่า..." ตอนนี้จะสร้างไฟล์ launch.json
ซึ่งโปรดเพิ่มการกำหนดค่าต่อไปนี้:
{
"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
}
]
}
หากทุกอย่างได้รับการกำหนดค่าอย่างถูกต้อง คุณควรจะสามารถทำได้ Run -> Start Debugging ( F5 ) หรือ Run -> Run Without Debugging ( Ctrl + F5 ) สิ่งนี้จะเรียกใช้โค้ดของคุณภายใต้ดีบักเกอร์:
เพื่อให้ประสบการณ์การดีบักง่ายขึ้น คุณสามารถกำหนดค่า GDB ให้ข้ามไลบรารี C++ มาตรฐานได้ สิ่งนี้ทำให้คุณสามารถเพิกเฉยต่อโค้ดที่คุณไม่สนใจได้ เมื่อต้องการทำเช่นนี้ ให้สร้างไฟล์ ~/.gdbinit
โดยมีเนื้อหาดังต่อไปนี้:
skip -gfi /usr/include/c++/*/*/*
skip -gfi /usr/include/c++/*/*
skip -gfi /usr/include/c++/*
การจัดรูปแบบไฟล์
คุณสามารถฟอร์แมตไฟล์ C++ หรือ Python ได้ทุกเมื่อโดย คลิกขวา -> จัดรูปแบบเอกสาร ( Ctrl + Shift + I ) แต่ VSCode ใช้รูปแบบที่แตกต่างกัน โชคดีที่มันง่ายที่จะเปลี่ยนแปลง
สำหรับการจัดรูปแบบ Python โปรดดู https://donjayamanne.github.io/pythonVSCodeDocs/docs/formatting/
สำหรับการจัดรูปแบบ C++ ให้ทำดังต่อไปนี้:
- ไปที่ การตั้งค่า -> การตั้งค่า
- ค้นหา "C_Cpp.clang_format_fallbackStyle"
- แก้ไข
file:setting.json
โดยตรงโดยเพิ่มเนื้อหาต่อไปนี้
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google}"