คำถามและคำตอบสัมภาษณ์ Ruby on Rails 53 อันดับแรก (2025)

ต่อไปนี้เป็นคำถามและคำตอบในการสัมภาษณ์ Ruby on Rails สำหรับนักศึกษาใหม่รวมถึงผู้สมัครนักพัฒนา Ruby ที่มีประสบการณ์เพื่อรับงานในฝัน

1) อธิบายว่า Ruby on Rails คืออะไร

  • ทับทิม: เป็นภาษาโปรแกรมเชิงวัตถุที่ได้รับแรงบันดาลใจจาก PERL, Smalltalk, Eiffel, Ada, Basic และ Lisp
  • ราง: เป็นเฟรมเวิร์กที่ใช้สำหรับสร้างเว็บแอปพลิเคชัน

2) อธิบายว่าไลบรารีคลาสใน Ruby คืออะไร

ไลบรารีคลาสใน Ruby ประกอบด้วยโดเมนที่หลากหลาย เช่น ประเภทข้อมูล การเขียนโปรแกรมเธรด โดเมนต่างๆ เป็นต้น

ดาวน์โหลดไฟล์ PDF ฟรี: คำถามและคำตอบสัมภาษณ์ Ruby on Rails


3) พูดถึงแบบแผนการตั้งชื่อใน Rails คืออะไร?

  • ตัวแปร: สำหรับการประกาศตัวแปร ตัวอักษรทั้งหมดเป็นตัวพิมพ์เล็ก และคำต่างๆ จะถูกคั่นด้วยเครื่องหมายขีดล่าง
  • คลาสและโมดูล: โมดูลและคลาสใช้ MixedCase และไม่มีขีดล่าง แต่ละคำเริ่มต้นด้วยอักษรตัวพิมพ์ใหญ่
  • ตารางฐานข้อมูล: ชื่อตารางฐานข้อมูลควรมีตัวอักษรพิมพ์เล็กและขีดล่างระหว่างคำ และชื่อตารางทั้งหมดควรอยู่ในรูปแบบพหูพจน์ เช่น Invoice_items
  • รุ่น: มันถูกแสดงโดย MixedCase ที่ไม่ขาดตอนและมีชื่อตารางเป็นเอกพจน์เสมอ
  • ควบคุม: ชื่อคลาสคอนโทรลเลอร์จะแสดงในรูปแบบพหูพจน์ โดยที่ OrderController จะเป็นตัวควบคุมสำหรับตารางคำสั่งซื้อ

4) อธิบายว่า “Yield” ใน Ruby on Rails คืออะไร

วิธีการ Ruby ที่ได้รับบล็อคโค้ดจะเรียกใช้โดยการเรียกมันด้วย "Yield"


5) อธิบายว่า ORM (Object-Relationship-Model) ใน Rails คืออะไร

ORM หรือ Object Relation Model ใน Rails ระบุว่าคลาสของคุณถูกแมปกับตารางในฐานข้อมูล และออบเจ็กต์ถูกแมปโดยตรงกับแถวในตาราง


6) พูดถึงความแตกต่างระหว่าง false และ nil ใน Ruby?

ใน Ruby นั้น false เป็นวัตถุของ FalseClass เพื่อแสดงค่าบูลีน ในขณะที่ Nil เป็นวัตถุของ NilClass ซึ่งบ่งชี้ว่าไม่มีค่า มันมี object_id 4

คำถามสัมภาษณ์ Ruby on Rails
คำถามสัมภาษณ์ Ruby on Rails


7) พูดถึงข้อดีของ Rails มีอะไรบ้าง

Rails มีคุณสมบัติมากมายเช่น

  • การเขียนโปรแกรมเมตา: Rails ใช้การสร้างโค้ด แต่สำหรับการยกของหนักนั้นต้องอาศัยการเขียนโปรแกรมเมตาดาต้า Ruby ถือเป็นหนึ่งในภาษาที่ดีที่สุดสำหรับการเขียนโปรแกรม Meta
  • บันทึกที่ใช้งานอยู่: จะบันทึกวัตถุลงในฐานข้อมูลผ่าน Active Record Framework Active Record เวอร์ชัน Rails ระบุคอลัมน์ในสคีมาและผูกเข้ากับออบเจ็กต์โดเมนของคุณโดยอัตโนมัติโดยใช้โปรแกรมเมตา
  • นั่งร้าน: Rails มีความสามารถในการสร้างนั่งร้านหรือโค้ดชั่วคราวได้โดยอัตโนมัติ
  • ข้อตกลงเกี่ยวกับการกำหนดค่า: ไม่เหมือนกับกรอบการพัฒนาอื่นๆ Rails ไม่ต้องการการกำหนดค่ามากนัก หากคุณปฏิบัติตามหลักการตั้งชื่ออย่างระมัดระวัง
  • สามสภาพแวดล้อม: Rails มาพร้อมกับการทดสอบ การพัฒนา และการใช้งานสภาพแวดล้อมเริ่มต้นสามรายการ
  • การทดสอบในตัว: รองรับโค้ดที่เรียกว่าสายรัดและฟิกซ์เจอร์ที่ทำให้กรณีทดสอบเขียนและดำเนินการได้

8) อธิบายว่าอะไรคือบทบาทของแอป/ตัวควบคุมไดเรกทอรีย่อย และแอป/ตัวช่วย?

  • แอพ/คอนโทรลเลอร์: คำขอเว็บจากผู้ใช้ได้รับการจัดการโดยคอนโทรลเลอร์ ไดเร็กทอรีย่อยของคอนโทรลเลอร์คือตำแหน่งที่ Rails ค้นหาคลาสคอนโทรลเลอร์
  • แอพ/ตัวช่วย: ไดเร็กทอรีย่อยของตัวช่วยเก็บคลาสตัวช่วยที่ใช้เพื่อช่วยเหลือคลาสมุมมอง โมเดล และตัวควบคุม

9) พูดถึงความแตกต่างระหว่าง String และ Symbol คืออะไร?

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


10) อธิบายว่า Symbol แตกต่างจากตัวแปรอย่างไร?

สัญลักษณ์จะแตกต่างจากตัวแปรในด้านต่างๆ ดังต่อไปนี้

  • มันเหมือนกับสตริงมากกว่าตัวแปร
  • ในสตริง Ruby นั้นไม่แน่นอน แต่สัญลักษณ์นั้นไม่เปลี่ยนรูป
  • จำเป็นต้องสร้างสำเนาสัญลักษณ์เพียงชุดเดียวเท่านั้น
  • สัญลักษณ์มักใช้สอดคล้องกับการแจงนับใน Ruby

11) อธิบายว่า Rails Active Record ใน Ruby on Rails คืออะไร

บันทึกที่ใช้งาน Rails คือเลเยอร์ Object/Relational Mapping (ORM) ที่มาพร้อมกับ Rails มันเป็นไปตามโมเดล ORM มาตรฐานดังนี้

  • แผนที่ตารางไปยังชั้นเรียน
  • แมปแถวกับวัตถุ
  • คอลัมน์แมปกับแอตทริบิวต์ของวัตถุ

12) อธิบายว่า Rails นำไปใช้อย่างไร อาแจ็กซ์?

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

Rails ทริกเกอร์การดำเนินการ Ajax ด้วยวิธีต่อไปนี้

  • ทริกเกอร์บางตัวยิง: ทริกเกอร์อาจเป็นผู้ใช้คลิกลิงก์หรือปุ่ม ผู้ใช้ทำให้เกิดการเปลี่ยนแปลงข้อมูลในฟิลด์หรือในแบบฟอร์ม
  • เว็บไคลเอ็นต์เรียกเซิร์ฟเวอร์: วิธีการ Java-script, XMLHttpRequest ส่งข้อมูลที่เชื่อมโยงกับทริกเกอร์ไปยังตัวจัดการการกระทำบนเซิร์ฟเวอร์ ข้อมูลอาจเป็นรหัสของช่องทำเครื่องหมาย ทั้งแบบฟอร์ม หรือข้อความในช่องป้อนข้อมูล
  • เซิร์ฟเวอร์ดำเนินการ: ตัวจัดการการดำเนินการฝั่งเซิร์ฟเวอร์ทำอะไรบางอย่างกับข้อมูลและดึงข้อมูล HTML ส่วนย่อยไปยังเว็บไคลเอ็นต์
  • ลูกค้าได้รับการตอบกลับ: JavaScript ฝั่งไคลเอ็นต์ซึ่ง Rails สร้างขึ้นโดยอัตโนมัติ รับส่วน HTML และใช้เพื่ออัปเดตส่วนใดส่วนหนึ่งของปัจจุบัน

13) พูดถึงว่าคุณสามารถสร้างตัวควบคุมสำหรับหัวเรื่องได้อย่างไร?

ในการสร้างตัวควบคุมสำหรับหัวเรื่อง คุณสามารถใช้คำสั่งต่อไปนี้

C:\ruby\library> สคริปต์ ruby/สร้างหัวเรื่องคอนโทรลเลอร์


14) พูดถึง Rails Migration คืออะไร

Rails Migration ช่วยให้ Ruby ทำการเปลี่ยนแปลงสคีมาฐานข้อมูล ทำให้สามารถใช้ระบบควบคุมเวอร์ชันเพื่อปล่อยให้สิ่งต่าง ๆ ซิงโครไนซ์กับโค้ดจริงได้


15) แสดงรายการ Rails Migration ทำอะไรได้บ้าง

Rails Migration สามารถทำสิ่งต่อไปนี้ได้

  • สร้างตาราง
  • วางตาราง
  • เปลี่ยนชื่อตาราง
  • เพิ่มคอลัมน์
  • เปลี่ยนชื่อคอลัมน์
  • เปลี่ยนคอลัมน์
  • ลบคอลัมน์และอื่นๆ

16) พูดถึงคำสั่งในการสร้างการโยกย้ายคืออะไร?

ในการสร้างคำสั่งการโยกย้ายประกอบด้วย

C:\ruby\application>สคริปต์ ruby/สร้างการโยกย้าย table_name


17) อธิบายว่าเมื่อใดที่ใช้วิธี self.up และ self.down?

เมื่อเปลี่ยนไปใช้เวอร์ชันใหม่ ตนเองขึ้น มีการใช้วิธีในขณะที่ ตัวเองลง วิธีการใช้เพื่อย้อนกลับการเปลี่ยนแปลงของฉันหากจำเป็น


18) พูดถึงบทบาทของ Rails Controller คืออะไร?

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

  • สามารถกำหนดเส้นทางคำขอภายนอกไปยังการดำเนินการภายในได้ มันจัดการ URL ได้เป็นอย่างดี
  • ควบคุมโมดูลตัวช่วยซึ่งขยายขีดความสามารถของเทมเพลตมุมมองโดยไม่ต้องเพิ่มโค้ดจำนวนมาก
  • มันควบคุมเซสชัน ที่ทำให้ผู้ใช้รู้สึกว่ามีการโต้ตอบอย่างต่อเนื่องกับแอปพลิเคชันของเรา

19) พูดถึงความแตกต่างระหว่าง “HashWithIndifferent” ของ Active support และ “Hash” ของ Ruby อย่างไร

เค้ก กัญชา คลาสในไลบรารีหลักของ Ruby ส่งกลับค่าโดยใช้มาตรฐาน - เปรียบเทียบคีย์ หมายความว่าค่าที่เก็บไว้สำหรับ เครื่องหมาย ไม่สามารถดึงข้อมูลคีย์ได้โดยใช้สตริงที่เทียบเท่ากัน ในขณะที่ HashWithIndifferentAccess ถือว่าคีย์สัญลักษณ์และคีย์สตริงเทียบเท่ากัน


20) อธิบายว่า Cross-Site Request Forgery (CSRF) คืออะไร และ Rails มีการป้องกันอย่างไร

CSRF คือรูปแบบการโจมตีที่แฮ็กเกอร์ส่งคำขอเพจในนามของคุณไปยังเว็บไซต์อื่น ก่อให้เกิดความเสียหายหรือเปิดเผยข้อมูลที่ละเอียดอ่อนของคุณ เพื่อป้องกันการโจมตี CSRF คุณต้องเพิ่ม “ปกป้อง_จาก_การปลอมแปลง” เพื่อคุณ ApplicationController- สิ่งนี้จะทำให้ Rails ต้องใช้โทเค็น CSRF เพื่อดำเนินการตามคำขอ โทเค็น CSRF ถูกกำหนดเป็นฟิลด์ที่ซ่อนอยู่ในทุกรูปแบบที่สร้างขึ้นโดยใช้ตัวสร้างแบบฟอร์ม Rails


21) อธิบายว่า Mixin in Rails คืออะไร

Mixin ใน Ruby เสนอทางเลือกแทนการสืบทอดหลายรายการ โดยใช้โมดูลมิกซ์อินสามารถนำเข้าภายในคลาสอื่นได้


22) อธิบายว่าคุณกำหนดตัวแปรอินสแตนซ์, ตัวแปรโกลบอล และตัวแปรคลาสใน Ruby ได้อย่างไร

  • ตัวแปร Ruby Instance ขึ้นต้นด้วย — @
  • ตัวแปร Ruby Class ขึ้นต้นด้วย — @@
  • ตัวแปร Ruby Global ขึ้นต้นด้วย — $

23) อธิบายว่าคุณสามารถรันแอปพลิเคชั่น Rails โดยไม่ต้องสร้างฐานข้อมูลได้อย่างไร

คุณสามารถรันแอปพลิเคชันของคุณได้โดยยกเลิกการใส่เครื่องหมายบรรทัดใน environment.rb

เส้นทาง => rootpath conf/environment.rb

config.frameworks = [ action_web_service, :action_mailer, :active_record]

24) พูดถึงความแตกต่างระหว่าง Observers และ Callbacks ใน Ruby on Rails คืออะไร?

  • ผู้สังเกตการณ์ Rails: ผู้สังเกตการณ์เหมือนกับการโทรกลับ แต่จะใช้เมื่อวิธีการไม่เกี่ยวข้องโดยตรงกับวงจรชีวิตของอ็อบเจ็กต์ นอกจากนี้ผู้สังเกตการณ์ยังมีชีวิตยืนยาวขึ้น และสามารถถอดออกหรือติดได้ตลอดเวลา ตัวอย่างเช่น การแสดงค่าจากโมเดลใน UI และการอัปเดตโมเดลจากการป้อนข้อมูลของผู้ใช้
  • Rails โทรกลับ: การโทรกลับเป็นวิธีการ ซึ่งสามารถเรียกได้ในช่วงเวลาหนึ่งของวงจรชีวิตของออบเจ็กต์ ตัวอย่างเช่น สามารถเรียกได้เมื่อออบเจ็กต์ได้รับการตรวจสอบ สร้าง อัปเดต ลบ การโทรกลับมีอายุสั้น ตัวอย่างเช่น การรันเธรดและให้การโทรกลับที่ถูกเรียกเมื่อเธรดยุติ

25) อธิบายว่าเรคใน Rails คืออะไร?

Rake เป็น Ruby Make; เป็นยูทิลิตี้ Ruby ที่ใช้แทนยูทิลิตี้ Unix 'make' และใช้ไฟล์ 'Rakefile' และ '.rake' เพื่อสร้างรายการงาน ใน Rails นั้น Rake ใช้สำหรับงานการดูแลระบบตามปกติ เช่น การย้ายฐานข้อมูลผ่านสคริปต์ การโหลดสคีมาลงในฐานข้อมูล เป็นต้น


26) อธิบายว่าคุณสามารถแสดงรายการเส้นทางทั้งหมดสำหรับแอปพลิเคชันได้อย่างไร

หากต้องการแสดงรายการเส้นทางทั้งหมดสำหรับแอปพลิเคชัน คุณสามารถเขียนเส้นทางเรคในเทอร์มินัลได้


27) อธิบายว่า Sweeper ใน Rails คืออะไร?

ผู้กวาดมีหน้าที่รับผิดชอบในการหมดอายุหรือยุติแคชเมื่อออบเจ็กต์โมเดลเปลี่ยนแปลง


28) พูดถึงบันทึกที่ต้องเห็นเพื่อรายงานข้อผิดพลาดใน Ruby Rails หรือไม่

Rails จะรายงานข้อผิดพลาดจาก Apache ใน log/Apache.log และข้อผิดพลาดจากโค้ด Ruby ใน log/development.log


29) อธิบายว่าอะไรคือความแตกต่างระหว่าง Dynamic และ Static Scaffolding?

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

30) พูดถึงฟังก์ชั่นการเก็บขยะใน Ruby on Rails คืออะไร?

ฟังก์ชั่นการรวบรวมขยะใน Ruby on Rails ประกอบด้วย

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

31) พูดถึงความแตกต่างระหว่างการเปลี่ยนเส้นทางและการเรนเดอร์ใน Ruby on Rails คืออะไร?

  • การเปลี่ยนเส้นทางเป็นวิธีการที่ใช้ในการแสดงข้อความแสดงข้อผิดพลาดในกรณีที่ไม่มีการออกหรือพบหน้าดังกล่าวในเบราว์เซอร์ มันบอกให้เบราว์เซอร์ดำเนินการและออกคำขอใหม่
  • Render เป็นวิธีการที่ใช้สร้างเนื้อหา การเรนเดอร์จะทำงานเฉพาะเมื่อมีการตั้งค่าคอนโทรลเลอร์อย่างเหมาะสมกับตัวแปรที่จำเป็นต้องเรนเดอร์

32) พูดถึงจุดประสงค์ของ RJs ใน Rails คืออะไร?

RJs เป็นเทมเพลตที่สร้าง JavaScript ซึ่งทำงานในบล็อก eval โดยเบราว์เซอร์เพื่อตอบสนองต่อคำขอ AJAX บางครั้งใช้เพื่อกำหนด JavaScript, Prototype และตัวช่วยที่ Rails จัดเตรียมไว้ให้


33) อธิบายว่า Polymorphic Association ใน Ruby on Rails คืออะไร

Polymorphic Association อนุญาตให้วัตถุ ActiveRecord เชื่อมต่อกับวัตถุ ActiveRecord หลายรายการ ตัวอย่างที่สมบูรณ์แบบของ Polymorphic Association คือไซต์โซเชียลที่ผู้ใช้สามารถแสดงความคิดเห็นได้ทุกที่ ไม่ว่าจะเป็นวิดีโอ รูปภาพ ลิงก์ การอัปเดตสถานะ ฯลฯ มันจะเป็นไปไม่ได้หากคุณต้องสร้างความคิดเห็นส่วนบุคคล เช่น photos_comments, videos_comment และอื่นๆ .


34) พูดถึงข้อจำกัดของ Ruby on Rails คืออะไร?

Ruby on Rails ได้รับการออกแบบมาเพื่อสร้างเว็บแอปพลิเคชัน CRUD โดยใช้ MVC นี่อาจทำให้ Rails ไม่มีประโยชน์สำหรับโปรแกรมเมอร์คนอื่น คุณสมบัติบางอย่างที่ Rails ไม่รองรับได้แก่

  • คีย์ต่างประเทศในฐานข้อมูล
  • การเชื่อมโยงไปยังฐานข้อมูลหลาย ๆ ฐานข้อมูลพร้อมกัน
  • บริการเว็บสบู่
  • การเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูลหลายเครื่องพร้อมกัน

35) พูดถึงความแตกต่างระหว่างการโทร super() และ super call คืออะไร?

  • ซุปเปอร์ (): การเรียก super() เรียกใช้เมธอดพาเรนต์โดยไม่มีข้อโต้แย้งใดๆ ตามที่คาดไว้ เช่นเคย ความชัดเจนในโค้ดของคุณเป็นสิ่งที่ดี
  • โทรสุดยอด: การเรียก super จะเรียกใช้เมธอดพาเรนต์ด้วยอาร์กิวเมนต์เดียวกันกับที่ส่งผ่านไปยังเมธอดลูก ข้อผิดพลาดจึงจะเกิดขึ้นหากอาร์กิวเมนต์ที่ส่งไปยังเมธอดลูกไม่ตรงกับสิ่งที่ผู้ปกครองคาดหวัง

36) อธิบายเกี่ยวกับ Dig, Float และ Max?

  • คลาสโฟลตจะใช้ทุกครั้งที่ฟังก์ชันเปลี่ยนแปลงตลอดเวลา
  • Dig ใช้เมื่อใดก็ตามที่คุณต้องการแสดงทศนิยมเป็นเลขทศนิยม
  • Max จะใช้เมื่อใดก็ตามที่มีความต้องการ Float อย่างมาก

37) อธิบายว่าเราจะนิยามนิพจน์ทั่วไปของ Ruby ได้อย่างไร

นิพจน์ทั่วไปของ Ruby คือลำดับอักขระพิเศษที่ช่วยให้คุณจับคู่หรือค้นหาสตริงอื่นๆ สัญพจน์นิพจน์ทั่วไปคือรูปแบบระหว่างตัวคั่นหรือเครื่องหมายทับที่กำหนดเอง ตามด้วย %r


38) อธิบายว่าตัวดำเนินการที่กำหนดคืออะไร?

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


39) แสดงรายการคุณสมบัติบางอย่างของ Ruby?

  • รูปแบบฟรี – คุณสามารถเริ่มเขียนจากโปรแกรมจากบรรทัดและคอลัมน์ใดก็ได้
  • คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ – ตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กมีความแตกต่างกัน
  • ความคิดเห็น – สิ่งใดก็ตามที่ตามด้วยสิ่งที่ไม่มีเครื่องหมายคำพูด #ล่ามจะละเว้นที่จุดสิ้นสุดของบรรทัดที่ปรากฏ
  • ตัวคั่นคำสั่ง - คำสั่งหลายรายการในหนึ่งบรรทัดจะต้องคั่นด้วยเครื่องหมายอัฒภาค แต่ไม่จำเป็นที่ท้ายบรรทัด

40) พูดถึงประเภทของตัวแปรที่มีอยู่ใน Ruby Class หรือไม่?

ประเภทของตัวแปรที่มีอยู่ใน Ruby Class ได้แก่

  • ตัวแปรท้องถิ่น
  • ตัวแปรส่วนกลาง
  • ตัวแปรคลาส
  • ตัวแปรอินสแตนซ์

41) อธิบายว่าคุณจะประกาศบล็อกใน Ruby ได้อย่างไร?

ใน Ruby โค้ดในบล็อกจะอยู่ในเครื่องหมายปีกกา ({}) เสมอ คุณสามารถเรียกใช้บล็อกได้โดยใช้ "คำสั่งผลตอบแทน"


42) อธิบายว่าอะไรคือความแตกต่างระหว่างคำสั่ง put และ putc?

ต่างจากคำสั่ง put ซึ่งส่งออกสตริงทั้งหมดไปยังหน้าจอ คำสั่ง Putc สามารถใช้เพื่อส่งออกอักขระได้ครั้งละหนึ่งตัว


43) อธิบายว่าไลบรารีคลาสใน Ruby คืออะไร?

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

  • การเขียนโปรแกรม GUI
  • การเขียนโปรแกรมเครือข่าย
  • การเขียนโปรแกรมซีจีไอ
  • การประมวลผลข้อความ

44) ใน Ruby มันอธิบายเกี่ยวกับตัวดำเนินการที่กำหนดหรือไม่

ตัวดำเนินการที่กำหนดจะบอกว่านิพจน์ที่ส่งผ่านถูกกำหนดไว้หรือไม่ หากไม่ได้กำหนดนิพจน์ ก็จะให้ค่าว่าง และหากกำหนดนิพจน์ก็จะส่งกลับสตริงคำอธิบาย


45) พูดถึงความแตกต่างในขอบเขตของตัวแปรทั้งสองนี้: @@name และ @name?

ความแตกต่างในขอบเขตของตัวแปรทั้งสองนี้คือ:

  • @@name เป็นตัวแปรคลาส
  • @name เป็นตัวแปรอินสแตนซ์

46) พูดถึงไวยากรณ์ของ Ruby collect Iterator คืออะไร?

ไวยากรณ์สำหรับ Ruby collect Iterator collection = collection.collect


47) ในโค้ด Ruby มักสังเกตได้ว่า coder ใช้รูปมือสั้นเพื่อใช้นิพจน์ เช่น แถว.map(&:method_name) แทน array.map { |element| องค์ประกอบ.method_name } เคล็ดลับนี้ใช้งานได้จริงอย่างไร?

เมื่อพารามิเตอร์ถูกส่งผ่านโดยมี “&” อยู่ข้างหน้า Ruby จะเรียก to_proc เพื่อพยายามทำให้สามารถใช้เป็นบล็อกได้ ดังนั้นสัญลักษณ์ to_Proc จะเรียกใช้เมธอดของชื่อที่สอดคล้องกับอะไรก็ตามที่ถูกส่งผ่านไป จึงช่วยให้เคล็ดลับชวเลขของเราทำงาน


48) อธิบายว่า Interpolation ใน Ruby คืออะไร?

Ruby Interpolation เป็นกระบวนการแทรกสตริงลงในตัวอักษร ด้วยการวางแฮช (#) ภายใน {} วงเล็บเปิดและปิด เราสามารถแทรกสตริงลงในตัวอักษรได้


49) พูดถึงสิ่งที่เป็นสัญลักษณ์ที่ใช้ในการแสดงถึงตัวแปรคลาสใน Ruby?

ในรูบี้

  • ค่าคงที่ควรขึ้นต้นด้วยอักษรตัวพิมพ์ใหญ่ และไม่ควรกำหนดไว้ภายในเมธอด
  • ท้องถิ่นต้องขึ้นต้นด้วยเครื่องหมายขีดล่าง _ หรืออักษรตัวพิมพ์เล็ก
  • ตัวแปรโกลบอลควรเริ่มต้นด้วยเครื่องหมาย $ โกลบอลที่ไม่ได้กำหนดค่าเริ่มต้นมีค่าเป็น "ศูนย์" และควรเป็นเช่นนั้น ยก คำเตือน. สามารถอ้างอิงได้ทุกที่ในโปรแกรม
  • ตัวแปรคลาสควรขึ้นต้นด้วย @@ สองเท่าและต้องเริ่มต้นก่อนจึงจะถูกนำมาใช้ในการกำหนดเมธอด

50) พูดถึงความแตกต่างระหว่าง Procs และ Blocks คืออะไร?

ความแตกต่างระหว่าง Procs และ Blocks

  • Block เป็นเพียงส่วนหนึ่งของไวยากรณ์ของเมธอด ในขณะที่ proc มีลักษณะเฉพาะของบล็อก
  • Procs เป็นวัตถุ บล็อกไม่ใช่
  • สามารถปรากฏได้มากที่สุดหนึ่งบล็อกในรายการอาร์กิวเมนต์
  • มีเพียงบล็อกเท่านั้นที่ไม่สามารถจัดเก็บไว้ในตัวแปรได้ในขณะที่ Proc สามารถทำได้

51) พูดถึงความแตกต่างระหว่างคำพูดเดี่ยวและคำพูดคู่คืออะไร?

สตริงที่มีเครื่องหมายคำพูดเดี่ยวไม่ประมวลผลโค้ด Escape ASCII และไม่ทำการประมาณค่าสตริง


52) พูดถึงความแตกต่างระหว่างอัญมณีและปลั๊กอินใน Ruby คืออะไร?

  • อัญมณี: อัญมณีเป็นเพียงรหัสทับทิม มีการติดตั้งบนเครื่อง และพร้อมใช้งานสำหรับแอปพลิเคชัน Ruby ทั้งหมดที่ทำงานบนเครื่องนั้น
  • ปลั๊กอิน: ปลั๊กอินก็เป็นรหัส Ruby เช่นกัน แต่มีการติดตั้งไว้ในโฟลเดอร์แอปพลิเคชันและใช้ได้เฉพาะกับแอปพลิเคชันนั้นเท่านั้น

53) กล่าวถึงความแตกต่างที่ขยายและรวมคืออะไร?

“include” ทำให้เมธอดของโมดูลพร้อมใช้งานสำหรับอินสแตนซ์ของคลาส ในขณะที่ “extend” ทำให้เมธอดเหล่านี้ใช้ได้กับคลาสนั้นเอง

คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)

Share

14 คอมเมนต์

  1. รูปโพรไฟล์ ฮะซันนุสซามัน สุมอน พูดว่า:

    อัตราผลตอบแทนไม่ใช่ฟังก์ชัน เป็นคีย์เวิร์ด Ruby ที่ใช้สำหรับการรันบล็อก

    1. รูปโพรไฟล์ เทอร์รี่ เรย์ พูดว่า:

      อัตราผลตอบแทนโดยเฉพาะจะผ่านการควบคุมของเธรด (Main.thread เป็นไปได้มากที่สุด) ไปยังบล็อกที่ถูกส่งผ่านอย่างชัดเจนเป็นพารามิเตอร์เช่น def my_method(&my_block) หรืออีกวิธีหนึ่งบล็อกสามารถถูกส่งผ่านโดยปริยายเช่น

      my_class.my_method ทำ
      # รหัสในบล็อกนี้จะถูกส่งไปยังวิธีการโทร
      ปลาย

  2. รูปโพรไฟล์ sonu พูดว่า:

    ดีมาก…ติดตามต่อไป

  3. รูปโพรไฟล์ แรซ พูดว่า:

    เนื้อหาเยี่ยม!

  4. จอร์จ อาร์มันโด พูดว่า:

    ในคำถาม #6 ใน Ruby ไม่มีคลาส "บูลีน" ดังนั้นจึงไม่มี "ประเภทบูลีน" มีเพียง TrueClass และ FalseClass เท่านั้น

    1. อเล็กซ์ ซิลเวอร์แมน อเล็กซ์ ซิลเวอร์แมน พูดว่า:

      มีการปรับปรุง

  5. รูปโพรไฟล์ เทอร์รี่ เรย์ พูดว่า:

    จริง ๆ แล้ว Thread.main … แย่จัง :)

  6. รูปโพรไฟล์ ทดสอบ พูดว่า:

    Ruby ไม่ได้รับแรงบันดาลใจจาก Python แต่ได้รับแรงบันดาลใจจากสิ่งต่อไปนี้ (Perl, Smalltalk, Eiffel, Ada, BASIC และ Lisp)

    1. อเล็กซ์ ซิลเวอร์แมน อเล็กซ์ ซิลเวอร์แมน พูดว่า:

      มีการปรับปรุง

      1. รูปโพรไฟล์ ชาวอินเดีย พูดว่า:

        ใช่…

  7. รูปโพรไฟล์ มูนิค พูดว่า:

    เหลือบสวยของทับทิมและราง

  8. รูปโพรไฟล์ จิด พูดว่า:

    6) nil.object_id เท่ากับ 8

เขียนความเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมาย *