.Net ผู้พัฒนาพยายามเรียนรู้ทับทิมบนราง


11

ฉันเป็นนักพัฒนา. NET และฉันมีโอกาสได้เล่นกับ Ruby on Rails ในสุดสัปดาห์นี้

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


1
+1 ฉันสามารถค้นหาบทเรียนการเขียนโค้ดได้มากมาย แต่ไม่มีอะไรที่ "ฉันจะจัดการโครงร่างของโครงการกึ่งซับซ้อนนี้ได้อย่างไร" ซึ่งฉันสามารถค้นหาได้สำหรับภาษาส่วนใหญ่
ไวแอตต์บาร์เน็ตต์

ฉันไม่ได้อ่านหนังสือทับทิมของ Pragmatic Press แต่ถ้ามันเป็นเช่น Erlang พวกเขาทำงานได้ดีในการสอนคุณไม่เพียง แต่ไวยากรณ์ของภาษา แต่ยังเป็นสำนวน บางทีคนอื่นสามารถแสดงความคิดเห็นในที่
Michael Brown

คำตอบ:


3

คุณจะพบว่าแอพ Rails เริ่มต้นเป็น repos เดียว คนที่ประสบความสำเร็จมากขึ้น (Twitter, Square, และอื่น ๆ อีกมากมาย) แบ่งออกเป็นหลายรหัสฐานตามที่พวกเขาเติบโตเป็นความต้องการที่ โค้ดเพิ่มเติมเหล่านั้นอาจเป็นdaemons , บริการ , พลอย, Rails Enginesหรืออย่างอื่น

refactoring ลงในหลายโครงการนี้ไม่ได้ทำจนกว่าจะพิสูจน์สิ่งจำเป็นเพราะYAGNI การแยกโครงการของคุณในวันที่ 1 ทำให้เวลาต้นแบบช้าลงและความเร็วในการทำต้นแบบเป็นจุดแข็งของ Ruby และ Rails คุณจะต้องจำไว้ว่าการสร้างหรือเรียนใน Ruby ไม่มีค่าใช้จ่ายเช่นเดียวกับการแยกคลาสที่ได้รับการออกแบบมาอย่างดี รหัสทับทิมบริสุทธิ์ของคุณจะมีชีวิตอยู่ส่วนใหญ่ภายใต้/app/( app/models, app/views app/controllers, app/helpers) /lib/และ สินทรัพย์คงที่ของคุณรวมถึง JS / Coffee แบบเลเยอร์และ CSS / Sass / etc รวมอยู่ใน/app/assetsนั้น

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

นี่คือลิงค์ที่คุณอาจจะสนใจ:

ขอให้โชคดีกับโครงการของคุณ!


0

ในไลบรารี Ruby เรียกว่า gems ดูที่http://www.ruby-lang.org/en/lไลบรารี/และใช้วิธีเดียวกับไลบรารีคลาส. NET


1
ใช่. แต่คำถามของฉันคือ; ในแง่ของรูปแบบการออกแบบที่ดีและการเขียนโปรแกรมที่ดีเราจะแยกโมเดลและกฎเกณฑ์ทางธุรกิจออกจากโครงการรางหลักหรือไม่? ขออภัยถ้าคำถามของฉันสับสน ฉันเพิ่งเข้าไปในรางรถไฟและฉันไม่รู้จะอธิบายได้อย่างไร มันต่างออกไป ..
Ryan Adriano
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.