Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

เหตุใด Pry จึงเป็นหนึ่งในเครื่องมือที่สำคัญที่สุดที่ Rubyist รุ่นเยาว์สามารถเรียนรู้ได้

คุณเคยลองดีบักโค้ดของคุณโดยพิมพ์คำสั่ง put และหวังว่าในที่สุดโค้ดเหล่านั้นจะโผล่มาที่ที่ควร? คุณรู้ว่าฉันหมายถึงอะไร - คุณพิมพ์:

puts “This worked!"

ลงในรหัสแล้วเรียกใช้ในเทอร์มินัลเท่านั้นเพื่อให้ไม่มีอะไรปรากฏขึ้น หรือบางทีคุณอาจเคยได้ยินเกี่ยวกับเครื่องมือดีบักแฟนซีที่มีให้สำหรับ Rubyists แต่ไม่กล้าลองใช้ ดังนั้นแทนที่จะใช้วิธีแก้จุดบกพร่องของสปาเก็ตตี้:โยนโค้ดไปที่โปรแกรมแก้ไขข้อความของคุณและดูว่ามีอะไรอยู่บ้าง ปัญหาคือ วิธีนี้ไม่รับประกันวิธีแก้ปัญหา

การดีบักคือสิ่งที่คุณจะทำไปตลอดชีวิตการเขียนโค้ดของคุณ ไม่ใช่แค่สำหรับนักพัฒนารุ่นเยาว์เท่านั้น! ยิ่งคุณเรียนรู้เครื่องมือที่ช่วยคุณค้นหาจุดบกพร่องในโค้ดได้เร็วเท่าไร คุณก็จะอยู่ในระยะยาวได้ดียิ่งขึ้น

แล้วมีเครื่องมืออะไรบ้าง? แม้ว่าจะมีตัวเลือกมากมาย แต่วันนี้เราจะมาเจาะลึกหนึ่งในเครื่องมือที่ยอดเยี่ยมที่ Rubyist ทุกคนควรรู้วิธีใช้งาน - Pry เราจะเรียนรู้ว่ามันทำงานอย่างไรและเหตุใดจึงสำคัญ

Pry คืออะไร

Pry หยุดโปรแกรมของคุณเพื่อให้คุณเข้าไปข้างในโค้ดของคุณและค้นหาว่าเกิดอะไรขึ้นและต้องแก้ไขอะไร Pry อาจดูสับสนในตอนแรก แต่ลองเอามาจาก Ruby Dev รุ่นน้อง - ยิ่งคุณใช้งานมากเท่าไหร่ก็ยิ่งง่ายขึ้นเท่านั้น และอีกไม่นานคุณจะไม่ต้องการตั้งโปรแกรมโดยปราศจากมัน

การแงะเหมือน IRB กับสเตียรอยด์

เป็นไปได้ว่าคุณเริ่มคุ้นเคยกับการใช้ IRB (Interactive Ruby Shell) ซึ่งคุณสามารถใช้รหัสของคุณและเรียกใช้ในสนามเด็กเล่นเพื่อดูว่าสิ่งใดใช้ได้ผลและไม่ได้ผล นอกจากนี้ยังสามารถเป็นเครื่องมือที่มีประโยชน์สำหรับการดีบัก ส่วนหนึ่งของ Pry ทำงานในลักษณะเดียวกัน แต่มีคุณสมบัติเพิ่มเติม ทั้ง IRB และ Pry ใช้คำสั่ง REPL:อ่าน ประเมิน พิมพ์ และวนซ้ำ แต่ Pry ช่วยให้คุณไปต่อเมื่อทำการดีบั๊ก ตัวอย่างเช่น Pry ให้ไวยากรณ์รหัสสีแก่คุณ ซึ่งจะช่วยคุณได้เมื่อคุณพยายามคิดว่าจะเกิดอะไรขึ้นเมื่อมีการเรียกใช้โค้ด ทำให้มองเห็นข้อผิดพลาดได้ง่ายขึ้น ซึ่งทำให้โค้ดของคุณแก้ไขได้ง่ายขึ้น

โค้ดตัวอย่าง

เหตุใด Pry จึงเป็นหนึ่งในเครื่องมือที่สำคัญที่สุดที่ Rubyist รุ่นเยาว์สามารถเรียนรู้ได้

หมายเหตุเกี่ยวกับการดีบัก

มีคนพูดไปแล้ว แต่ก็คุ้มค่าที่จะพูดอีกครั้ง - การดีบักเป็นสิ่งที่โปรแกรมเมอร์ทุกคนทำตลอดอาชีพการงานของพวกเขา การเรียนรู้เครื่องมือเหล่านี้ไม่มีอะไรเป็นรุ่นน้องเลย! ยิ่งคุณเรียนรู้ได้เร็วเท่าไร คุณก็จะเป็นโปรแกรมเมอร์ได้ดีเท่านั้น

การตั้งค่าเบรกพอยต์ด้วย Pry

ตอนนี้ได้เวลาดูหนึ่งในคุณสมบัติที่ดีที่สุดของ Pry - การตั้งค่าเบรกพอยต์ในโค้ดของคุณ สมมติว่าคุณมีช่วงเวลาที่ยากลำบากมากในการทำให้โค้ดของคุณทำงานได้อย่างที่คุณคาดไว้ (พวกเราเคยไปมาแล้วใช่มั้ย)

สิ่งที่คุณทำได้คือตั้งค่าเบรกพอยต์ในส่วนของโค้ดที่ไม่ทำงานตามที่คาดไว้ จากนั้นคุณจะลงเอยในเวอร์ชันของ Pry แต่อยู่ในจุดที่หยุดนิ่ง วิธีที่ดีที่สุดในการอธิบายสิ่งนี้คือตัวอย่าง

สมมติว่าเรากำลังพยายามค้นหาว่าผู้ใช้ที่เราต้องการดูได้รับการตั้งค่าอย่างถูกต้องหรือไม่ ขั้นแรก เราสามารถเพิ่ม bind.pry ลงในโค้ดได้ ตั้งค่า bind.pry ให้อยู่เหนือบรรทัดโค้ดที่ทำให้เกิดปัญหา จากนั้นรันโค้ด

เหตุใด Pry จึงเป็นหนึ่งในเครื่องมือที่สำคัญที่สุดที่ Rubyist รุ่นเยาว์สามารถเรียนรู้ได้

ต่อไป เราลองกดที่หน้าที่จะเรียกรหัสนี้ เนื่องจากเราใช้งานเซิร์ฟเวอร์ rails ในเครื่อง เราจะลองไปที่:localhost:3000/users/1

คุณจะพบว่าคุณเข้าสู่คอนโซลแบบ IRB ซึ่งคุณสามารถทดสอบโค้ดของคุณและดูว่าเกิดอะไรขึ้น

เหตุใด Pry จึงเป็นหนึ่งในเครื่องมือที่สำคัญที่สุดที่ Rubyist รุ่นเยาว์สามารถเรียนรู้ได้

ณ จุดนี้ เราสามารถตรวจสอบว่า '@user' ถูกตั้งค่าเป็น ID ผู้ใช้ที่ถูกต้องหรือไม่

เหตุใด Pry จึงเป็นหนึ่งในเครื่องมือที่สำคัญที่สุดที่ Rubyist รุ่นเยาว์สามารถเรียนรู้ได้

นอกจากนี้เรายังสามารถตรวจสอบว่าผู้ใช้ของเราเข้าสู่ระบบ:

เหตุใด Pry จึงเป็นหนึ่งในเครื่องมือที่สำคัญที่สุดที่ Rubyist รุ่นเยาว์สามารถเรียนรู้ได้

จะเกิดอะไรขึ้นถ้าไม่มีอะไรเกิดขึ้น

บางครั้งคุณจะวางเบรกพอยต์ รันโค้ด และแทนที่จะเข้าไปอยู่ใน Pry ดูเหมือนว่าจะไม่มีอะไรเกิดขึ้น แม้ว่าสิ่งนี้อาจน่าผิดหวัง แต่ก็ให้เบาะแส หมายความว่ารหัสของคุณไม่เคยเรียกใช้ Pry เพราะมันไม่เคยไปไกลขนาดนั้น แล้วคุณจะทำอย่างไร? คุณตั้งค่าเบรกพอยต์ใหม่ก่อนหน้านี้ในโค้ดและดูว่าใช้งานได้หรือไม่ แม้ว่าสิ่งนี้อาจดูน่าเบื่อ แต่ก็เป็นการให้ข้อมูลที่สำคัญแก่คุณ!

เมื่อใดควรขอความช่วยเหลือ

ในฐานะที่เป็น Rubyist รุ่นน้อง บางครั้งคุณจะต้องขอความช่วยเหลือจากนักพัฒนาที่อาวุโสกว่า ปัญหาอยู่ที่การตัดสินใจว่าจะแก้ไขจุดบกพร่องต่อไปเมื่อใดและเมื่อใดควรขอความช่วยเหลือ เมื่อทำการดีบัก คุณควรลองจำลองปัญหา ตั้งค่าเบรกพอยต์ของคุณด้วย Pry และเจาะลึกลงไปในโค้ด หากผ่านไป 20-30 นาทีแล้วคุณยังหาวิธีแก้ปัญหาไม่ได้ อาจถึงเวลาขอความช่วยเหลือ

ลองดูสิ

เมื่อคุณพร้อมที่จะเพิ่ม Pry ลงในคลังเครื่องมือแก้ไขข้อบกพร่อง คุณจะต้องทำสองสิ่ง ขั้นแรก คุณจะต้องติดตั้งอัญมณี คุณสามารถทำได้โดยเพิ่มลงใน gemfile ของคุณและรันการติดตั้งบันเดิล:gem 'pry'

หรือคุณสามารถติดตั้งได้ด้วยตนเอง:gem install pry

คุณจะต้องตรวจสอบให้แน่ใจว่ารหัสของคุณคาดว่าจะเป็น Pry ดังนั้นให้วางบรรทัดนี้ในไฟล์ของคุณ:

require 'pry'

และนั่นแหล่ะ! คุณพร้อมแล้วกับ Pry!