ทับทิมออกจากราง


114

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

ฉันแน่ใจว่านี่ไม่ใช่เรื่องจริง แต่มันก็สนุกดีที่ได้ฟังเรื่องราวเกี่ยวกับการใช้งานรูบี้ที่ไม่ใช่ Rails

คำตอบ:


51

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

ฉันขอแนะนำ Googling "ruby dsl" สำหรับการอ่านที่ยอดเยี่ยม แต่ฉันอยากจะฝากคุณไว้ในโพสต์หนึ่งโดยเฉพาะ รัสโอลเซ่นเขียนบล็อกโพสต์สองส่วนบนDSLs ฉันเห็นเขานำเสนอเกี่ยวกับ DSL และมันดีมาก ฉันขอแนะนำให้อ่านโพสต์เหล่านี้

ฉันยังพบนี้นำเสนอที่ดีในการมี DSL ทับทิมโดยเฟอร์นันเดโอบี ขอแนะนำให้อ่าน!


4
Digital Subscriber Line ใน Ruby?

5
ภาษาเฉพาะโดเมน
Sixty4Bit

18

ฉันใช้ Ruby อย่างกว้างขวางในงานของฉันและไม่มีการใช้ Rails (หรือแม้แต่เว็บ)

โดเมนของฉันมักเป็นแอปพลิเคชันWindowsฝั่งไคลเอ็นต์(wxRuby GUI) และสคริปต์การทำงานอัตโนมัติของ Excel, Internet Explorer, การสืบค้น SQL Server และการสร้างรายงาน (win32ole COM Automation) ฉันยังใช้ไลบรารี sqlite, pdf-writer และ gruff สำหรับการรวบรวมข้อมูลและงานสร้างกราฟต่างๆ

ความสำเร็จของ Rails นั้นยอดเยี่ยมสำหรับ Ruby แต่ฉันยอมรับว่า Rails ได้รับความสนใจอย่างมากจนมักจะมองข้ามคุณค่าของ Ruby ที่อยู่นอกเหนือจากเว็บ


17

เราเป็นร้านค้า C ++ เป็นหลัก แต่เราพบหลายพื้นที่ที่ Ruby พิสูจน์แล้วว่ามีประโยชน์มาก นี่คือบางส่วน:

  • การสร้างโค้ด - สร้าง DSL หลายตัวเพื่อสร้างโค้ด C ++ / Java / C # จากไฟล์อินพุตเดียว
  • สร้างการสนับสนุน
    • สคริปต์เพื่อสร้าง Makefiles สำหรับ unix จาก Visual Studio Project Files
    • สคริปต์สำหรับการสร้างโปรเจ็กต์และการจัดรูปแบบเอาต์พุตสำหรับ Cruise Control
    • สคริปต์สำหรับเรียกใช้การทดสอบหน่วยของเราและการจัดรูปแบบเอาต์พุตสำหรับ Cruise Control
    • สคริปต์สำหรับจัดการโครงการ Visual Studio และโซลูชันจากบรรทัดคำสั่ง
  • การทดสอบการรวม - เราสามารถยกเลิกการทดสอบได้เร็วและสะอาดกว่ามากโดยใช้ Ruby มากกว่า C ++
  • ชุดทดสอบทั้งหมดของ QA เขียนด้วย Ruby

Ruby เป็นเครื่องมือที่ฉันใช้ไปเพื่อที่มันสมเหตุสมผล และมันก็สมเหตุสมผลในหลาย ๆ ที่


1
คุณควรพิจารณาใช้ CMake อย่างจริงจังเพื่อสร้างไฟล์บิลด์สำหรับทั้ง Unix (Makefiles) และ Windows (Visual Studio)
JesperE

13

Google Sketchupใช้ Ruby เป็นภาษาสคริปต์แบบฝัง คุณสามารถใช้เพื่อดำเนินการสร้างแบบจำลอง 3 มิติและนำเข้า / ส่งออกได้ทุกประเภท สคริปต์ทำงานร่วมกับเวอร์ชันฟรีและยังมีเอกสารที่ดีอีกด้วย


อืมน่าสนใจ ฉันควรพยายามหาเวลาเล่น Sketchup บ้าง
JesperE

9

Ruby ที่มีส่วนขยาย homebrew ที่เขียนด้วย C ++ ทำให้พิกเซลหนักทั้งหมดผลักดันสำหรับการประมวลผลภาพถ่ายของฉัน ฉันใช้ Python + numpy แต่เมื่อทำสิ่งที่มีศิลปะ Ruby ก็สนุกกว่า นอกจากนี้การที่ไลบรารีประมวลผลภาพที่ดีขาดญาติหรือมีวุฒิภาวะน้อยลงก็ทำให้ฉันรู้สึกไม่ค่อยเหมือนกำลังสร้างล้อใหม่ ฉันไม่รู้เกี่ยวกับ Rails นอกเหนือจากที่ฉันเคยได้ยินมีความคิดที่คลุมเครือว่ามันคืออะไรและมีหนังสืออยู่บนนั้นจริงๆ (ยังไม่ได้เปิด)


8

เราใช้Watir (ไลบรารี Ruby) เพื่อทดสอบเว็บแอปพลิเคชัน. net ของเรา


Watir มีประโยชน์อย่างยิ่ง เรายังใช้ซีลีเนียมบางครั้งผ่านรูบี้
Swanand

7

ลองใช้Shoes API ง่ายๆสำหรับสร้าง GUI ใน Ruby ที่มุ่งเป้าไปที่โปรแกรมเมอร์มือใหม่


6

หรือคุณสามารถใช้ Ruby เพื่อสร้างเพลง Archeopteryx ของ Giles Bowkett นี้นำเสนอโดยไจลส์เกี่ยวกับอาร์คีออปเทอริก ซ์ เป็นหนึ่งในการนำเสนอผลงานที่ดีที่สุดเท่าที่เคย ฉันขอแนะนำอย่างยิ่ง


1
สิ่งที่น่าทึ่งอย่างไม่น่าเชื่อดนตรีกำเนิด
iono

6

RubyCocoa และ MacRuby เป็นไปได้ที่จะสร้างแอป GUI ที่ใช้โกโก้แบบเต็มโดยไม่ต้องใช้ Rails จากนั้นคุณจะได้ใช้ Interface Builder ด้วย


6

ฉันทำงานในโครงการพิพิธภัณฑ์เมื่อปีที่แล้วซึ่งใช้ทับทิมจำนวนมาก ( http: // http: //ourspace.tepapa.com/home )

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

รหัสควบคุมทั้งหมดสำหรับส่วนจัดแสดงนี้คือทับทิม ฉันเขียนอินเทอร์เฟซ C กับกระดาษห่อทับทิมเพื่อสื่อสารกับเซ็นเซอร์พื้นและตัวควบคุมแสง ระบบจะสอบถามฐานข้อมูล MYSQL สำหรับไฟล์มีเดียที่จะแสดงจากนั้นบอกให้คอมพิวเตอร์ในผนังเล่นสื่อผ่าน UDP

เป็นส่วนที่น่าเชื่อถือที่สุดของการจัดแสดงทั้งหมด

ทับทิมถูกใช้สำหรับส่วนอื่น ๆ ของการจัดแสดงกำแพงแม้ว่าฉันจะไม่ได้เกี่ยวข้องกับสิ่งนั้นมากนัก กราฟิกส่วนใหญ่ได้รับการสร้างต้นแบบด้วยทับทิมโดยใช้อินเทอร์เฟซสำหรับ OpenGL, โกโก้และไลบรารีฟิสิกส์ก่อนที่จะถูกย้ายไปยัง Obj-C ที่บริสุทธิ์


6

หุ่นและเชฟ: DevOps

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

DevOpsฟิลด์ค่อนข้างทับทิมทราบ วันนี้ Perl มีคู่แข่ง แม้ว่าสคริปต์ที่เรียบง่ายจริงๆอาจยังคงถูกเขียนโดยตรงสำหรับsh(1),งานที่ซับซ้อนตอนนี้อาจทำได้ใน Ruby แทนที่จะเป็น Perl


5

เว็บไซต์เดียวที่ฉันได้ทำกับทับทิมในที่ทำงานคือการใช้ Rails แต่ผมอยากจะลองMerb

นอกเหนือจากนั้นฉันมีโปรแกรมยูทิลิตี้เล็ก ๆ น้อย ๆ มากมายใน Ruby เช่นแอพที่อ่านฟีด RSS และนำเข้าโพสต์ใหม่ลงใน dabase

มันสนุกดีดังนั้นฉันจึงเขียนเรื่องโง่ ๆ เพราะมันเร็วมาก เมื่อวานนี้ฉันเขียนแอปเพื่อเล่นปัญหา Monty Hall 100,000 ครั้งเพื่อช่วยให้เพื่อนคนหนึ่งโน้มน้าวศาสตราจารย์ของเธอว่าการสลับเป็นกลยุทธ์ที่ถูกต้อง


1
เฮ้ศาสตราจารย์ควรจะเข้าใจตรรกะที่บริสุทธิ์เบื้องหลังเกมนี้โดยไม่จำเป็นต้องมีการจำลองที่นั่น
vava

ฉันสนใจที่จะดูอัลกอริทึมของคุณ
maček

ถ้าฉันเข้าใจถูกต้อง Merb ก็ถูกดูดซึมไปมากแล้วหรืออย่างน้อยก็ผสมข้ามสายพันธุ์หรืออะไรก็ได้ที่คุณต้องการเรียกมันว่าเป็น Rails 3
Andy

4

ฉันเกือบจะดูถูกว่าทับทิมเป็นของราง เหมือนย้อนกลับไปเมื่อ CGI เป็นเทรนด์ล่าสุดและทุกคนก็คิดว่าถ้าคุณรู้ว่า perl คุณต้องทำมันเพราะคุณตั้งโปรแกรมแอพ CGI ไว้เท่านั้น Ruby เป็นเพียงภาษาสคริปต์สำหรับฉันแม้ว่าจะไม่โตเต็มที่เท่า python ดังนั้นฉันค่อนข้างเสียใจที่ต้องกระโดดข้ามห่วงและการเปลี่ยนแปลงล่าสุด แต่ฉันก็ยังชอบและใช้มัน แม้ว่าฉันจะทำงานในร้าน java ดังนั้น groovy จึงเป็นตัวเลือกที่ดีที่สุดสำหรับภาษาสคริปต์ แต่ฉันก็ยังใช้ทับทิมที่บ้านและทิ้งสคริปต์ที่ไม่จำเป็นต้องแชร์ในที่ทำงาน

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


4

ฉันสร้างงานนำเสนอ - ชื่อ Off The Rails โดยบังเอิญ - เพื่อหารือเกี่ยวกับแอปพลิเคชันเว็บบนชั้นวาง:

https://github.com/alexch/Off-The-Rails

git repo ประกอบด้วยสไลด์ในรูปแบบ Markdown และโค้ดตัวอย่าง (ในรูปแบบของแอปพลิเคชันที่ใช้งานและมิดเดิลแวร์) นี่คือบทคัดย่อ:

Ruby on Rails เป็นเว็บแอปพลิเคชันเฟรมเวิร์กยอดนิยมสำหรับ Ruby แต่ไม่ใช่คนเดียว! หากคุณคิดว่า Rails ใหญ่เกินไปหรือมีความคิดเห็นเกินไปหรืออะไรก็ได้คุณอาจยินดีที่จะเรียนรู้เกี่ยวกับไมโครเฟรมเวิร์ครุ่นใหม่ที่สร้างขึ้นบนแร็ค และเนื่องจาก Rails 3 เป็นแอป Rack คุณจึงไม่จำเป็นต้องยอมแพ้ Rails เพื่อรับประโยชน์จากเส้นทาง Sinatra หรือ Grape API

และนี่คือข้อมูลอ้างอิงบางส่วน:

หวังว่าจะเป็นประโยชน์!


4

ฉันส่วนใหญ่เป็นนักพัฒนาเว็บและฉันเรียนรู้ Ruby เพื่อใช้ Rails แต่ฉันชอบภาษามากจนเริ่มพัฒนาแอปพลิเคชัน Swing บนเดสก์ท็อปใน Ruby โดยใช้ JRuby และ Monkeybars ฉันมีความสามารถใน Java แต่ไม่ค่อยชอบใช้งานและ Swing API ก็น่ากลัวดังนั้นการวาง Ruby ไว้ด้านบนจึงเป็นชัยชนะที่ยิ่งใหญ่


3

เราใช้รางเป็นหลัก แต่เรามีทับทิมอื่น ๆ ที่ไม่ใช่ราง - ตัวอย่างเช่นภูตการพิสูจน์ตัวตนแบบสแตนด์อโลนสำหรับการตรวจสอบผู้ใช้แบบรวมศูนย์และ 'เซิร์ฟเวอร์ประมวลผลภาพ' ซึ่งเรียกใช้กระบวนการทับทิมจำนวนมากเพื่อประมวลผลภาพแบบขนาน

โอ้และอย่าลืม Rake เก่าที่ดี :-)


3

Ruby ยังใช้สำหรับแอปพลิเคชันเดสก์ท็อป โดยเฉพาะอย่างยิ่งการใช้ JRuby เพื่อพัฒนาแอปพลิเคชัน Swing desktop


3

ฉันใช้ Ruby ในที่ทำงานสำหรับ

  • ตัวแยกข้อมูลสร้างไฟล์ csv จากเอาต์พุตไบนารี
  • ตัวสร้างไฟล์. ini เปลี่ยนไวยากรณ์ง่ายๆให้เป็นรูปแบบ. ini ซ้ำ ๆ
  • เซิร์ฟเวอร์ TCP / IP แบบธรรมดาซึ่งทำหน้าที่เป็นสแตนด์อินสำหรับระบบของลูกค้าในระหว่างการทดสอบ

3

เราใช้ Ruby เพื่อติดตั้งซอฟต์แวร์ทดสอบอัตโนมัติของเรา ซึ่งรวมถึงกรอบการทดสอบและรหัสไดรเวอร์สำหรับ Selenium RC, WATIR และ AutoIT

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

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

ลักษณะที่ยืดหยุ่นของไวยากรณ์ของ Ruby ยังช่วยให้การใช้และการสร้าง DSL ง่ายขึ้นมาก สิ่งนี้ช่วยให้ผู้ที่มีเทคนิคน้อยสามารถเรียกอ่านและอาจสร้างการทดสอบขึ้นเองได้


ไม่ใช่ทุกอัญมณีที่ทำงานได้ดีบน windows Linux เป็นสภาพแวดล้อมที่ราบรื่นกว่าในการใช้งานทับทิมจากประสบการณ์ของฉัน
Zombies

3

ฉันใช้ Ruby เพื่อสร้างโค้ดของ C # และ T-SQL โพรซีเดอร์ที่เก็บไว้ในโปรเจ็กต์ที่มีข้อกำหนดที่ไม่เสถียร โมเดลข้อมูลถูกเข้ารหัสในไฟล์ YAML และใช้เทมเพลต. erb สำหรับคลาสและโพรซีเดอร์ที่จัดเก็บ นอกจากนี้ยังอนุญาตให้ใช้โซลูชัน DRY ได้มากกว่าที่จะเป็นไปได้ด้วย C # แบบตรงเนื่องจากโค้ดซ้ำสามารถแยกออกเป็นวิธีเดียวในตัวสร้างโค้ด


3

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


3

ฉันเขียนระบบผู้เชี่ยวชาญด้านการประมวลผลคำสั่งซื้อ (ดูคำตอบ DSL เช่นกัน) แปลง perl เฉพาะลูกค้า 100k บรรทัดเป็นทับทิมประมาณ 10,000 เส้นที่รองรับลูกค้าหลายสิบราย ไม่มีส่วนประกอบของเว็บเลยไม่มี Rails


3

ฉันเป็นผู้ใช้ Webdriver webdriver ใช้ทับทิมเพื่อทำให้กระบวนการสร้างเป็นไปโดยอัตโนมัติด้วยคราด ดูรายละเอียดที่ http://code.google.com/p/webdriver/


3

เฮ้คำถามที่ดี

ฉันใช้ Ruby เพื่อแปลงข้อมูลสิ่งอำนวยความสะดวกในสนามบินสเปรดชีต Excel เป็น sqlite3 สำหรับแพลตฟอร์มโทรศัพท์ Android ในขณะที่สร้างแอปสำหรับนักบิน


3

ฉันใช้ Ruby กับ Sinatra ซึ่งง่ายกว่า Rails มาก ฉันใช้ Rails แต่เพิ่งพบว่ามันกลายเป็นสัตว์ประหลาดไปหน่อยแม้ว่า Rails จะยังคงน่าทึ่งเมื่อเทียบกับเว็บเฟรมเวิร์กสำหรับ Java

คุณลักษณะหลักของ Ruby ที่ฉันชอบคือ "eval" และ "method_missing" ซึ่ง Rails ใช้เป็นตัวอย่างใน ActiveRecord เพื่อให้คุณสามารถใช้คำค้นหา "find_by-field-name-" ที่น่าทึ่งได้


3

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

นอกจากนั้นฉันชอบวิธีการทำงานของ Sequel และ Nokogiri ฉันยังใช้ ActiveRecord มาระยะหนึ่งแยกจาก Rails



2

ฉันใช้ Ruby อย่างมืออาชีพมากสำหรับสคริปต์ด่วนสำหรับสิ่งต่างๆเช่นการสับไฟล์รอบ ๆ ฉันใช้วิธีเดียวกับที่ฉันใช้ Ruby ก่อนก่อนที่จะแตะ Rails เลย


2

ใน Boulder มีกลุ่มผู้ใช้ Ruby ที่ยอดเยี่ยมที่พบกันทุกเดือน จุดนี้ถูกสร้างขึ้น - ที่ Ruby มีอยู่ข้างการใช้งานใน Rails มีผู้ใช้ Ruby ธรรมดากำลังขอความสนใจมีสิ่งของที่ต้องแสดงและสามารถพบกันได้ในการประชุมกลุ่มผู้ใช้

พวกเขายังมีพิซซ่าที่ดีกว่ากลุ่ม Python ซึ่งพบกันในวันเดียวกันของเดือน เลือกได้เพียงหนึ่ง ...


1
ใช่ แต่กลุ่ม Python มี Python ที่ดีกว่า! (ตลกง่อยฉันรู้ฉันรู้ ... )
dguaraglia

ตลกมากลืมหัวเราะ! 8P
DarenW

2

ในขณะที่เรามีแอป Rails หลายตัวในที่ทำงานเรายังใช้ Ruby สำหรับเนื้อหาที่ไม่ใช่เว็บที่ค่อนข้างเข้มข้น

เรามีภูตการส่ง SMS ซึ่งดึงข้อความจากคิวแล้วส่งให้และภูตประมวลผลบัตรเครดิตซึ่งแอปอื่น ๆ สามารถโทรออกได้ซึ่งทำให้แน่ใจว่ามีเส้นทางการตรวจสอบส่วนกลาง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.