ถ้าเป็นไปได้ .. คุณเว้นวงเล็บเข้าหรือออกใน Ruby?
ถ้าเป็นไปได้ .. คุณเว้นวงเล็บเข้าหรือออกใน Ruby?
คำตอบ:
Ruby ช่วยให้คุณไม่ต้องใส่วงเล็บโดยทั่วไปต่อต้านการล่อลวงนี้
วงเล็บช่วยให้ติดตามโค้ดได้ง่ายขึ้น สไตล์รูบี้ทั่วไปคือการใช้งานยกเว้นในกรณีต่อไปนี้
- เว้นวงเล็บว่างไว้เสมอ
- วงเล็บสามารถละเว้นจากคำสั่งเดียวที่ล้อมรอบด้วยตัวคั่น ERb - เครื่องหมาย ERb ตรวจสอบให้แน่ใจว่ารหัสยังคงอ่านได้
- บรรทัดที่เป็นคำสั่งเดียวและอาร์กิวเมนต์แบบง่ายเดียวสามารถเขียนได้โดยไม่ต้องใส่วงเล็บ โดยส่วนตัวฉันพบว่าฉันทำสิ่งนี้น้อยลงเรื่อย ๆ แต่ก็ยังอ่านได้อย่างสมบูรณ์ ฉันมักจะไม่ชอบบรรทัดเดียวในรหัสทับทิมปกติที่มีหลายอาร์กิวเมนต์และไม่มีวงเล็บ
- ภาษาเฉพาะโดเมนที่ใช้ Ruby จำนวนมาก (เช่น Rake) ไม่ได้ใช้วงเล็บเพื่อรักษาความรู้สึกของภาษาที่เป็นธรรมชาติมากขึ้นในข้อความของพวกเขา
ฉันใช้ parens เป็นความคิดเห็นเพื่อช่วยในอนาคตฉัน ... ซึ่งมีแนวโน้มว่าจะมีเซลล์สมองน้อยกว่าฉันในปัจจุบัน :-)
ไม่มีอะไรจะแย่ไปกว่าการดูโค้ดที่คุณเขียนเมื่อ 2 ปีที่แล้วและเข้าใจผิดทำให้คุณทำบางอย่างผิดพลาดขณะแก้ไข
ถ้า parens จะช่วยฉันในอนาคตไม่กี่นาที (หรือหลายชั่วโมง) ในอนาคตฉันจะใส่ให้มากที่สุดเท่าที่จำเป็นเพื่อให้คำพูดชัดเจน
ฉันปล่อยมันออกมาเมื่อฉันทำของ DSL-ish เช่น t.column หรือ has_many ในราง เวลาที่เหลือโดยทั่วไปจะมีความชัดเจนและอาจเป็นช่วง
ฉันเดาว่าฉันทำทั้งสองอย่าง แต่ฉันเก็บไว้อย่างแน่นอนหากมันเพิ่มความสามารถในการอ่านและหลีกเลี่ยงข้อความที่ดูคลุมเครือ
ถ้าคุณหมายถึงการเรียกใช้ฟังก์ชันฉันจะใส่วงเล็บเสมอเพราะอ่านง่ายกว่าเสมอ หากคุณหมายถึงเงื่อนไข (ถ้าในขณะที่) ฉันใส่วงเล็บเมื่อจำเป็นเท่านั้น
ฉันพยายามที่จะปล่อยให้พวกเขาออกไปถ้าเป็นไปได้ ฉันคิดว่ามันทำให้โค้ดอ่านง่ายขึ้น (พูดโดยทั่วไป)
โดยปกติแล้วจะอ่านค่าใดได้มากกว่า
แต่ฉันมักจะใช้วงเล็บเสมอเมื่อฉันเรียกฟังก์ชันซ้อนภายในพารามิเตอร์อื่น ๆ
ฉันมักจะทิ้งมันไว้เมื่อทำการยืนยันเช่น assert_equal อาจเป็นการทำให้โดเมนเป็นภาษาที่เฉพาะเจาะจงเหมือน
หากคุณเคยเขียนโปรแกรมมาเป็นเวลานานคุณอาจมี "คัน" ในการเพิ่มวงเล็บและในหลาย ๆ กรณีก็มีเหตุผลที่ดีสำหรับสิ่งนี้
รหัสนั้นง่ายกว่าในสายตาแม้ว่าในความคิดของฉันและฉันยังไม่พบปัญหา - หากคุณต้องการวงเล็บคุณจะรู้ล่วงหน้าก่อนที่คุณจะต้องเข้าสู่สคริปต์การดีบัก
if owner.is_a? thing //worked fine
if owner.is_a? thing && x > 1 //not fine
ฉันเพิ่งเรียนรู้ทับทิมมาสองสามสัปดาห์แล้วและที่ทำงานใช้อักขระจำนวนน้อยที่สุดเท่าที่จะเป็นไปได้และถ้าคุณมาจากภาษาอื่นก็มีการเรียนรู้ เส้นโค้งที่จะรู้เมื่อคุณส่งแฮชโดยนัยอาร์เรย์ของสัญลักษณ์ส่งผ่านไปยังสัญลักษณ์ไปยังฟังก์ชัน ... ฉันไม่ใช่แฟน
if owner.is_a? thing and x > 1
and
ไม่มีตัวดำเนินการแบบเดียวกับที่&&
มี