คำถามติดแท็ก ruby

คำถามเกี่ยวกับภาษาทับทิม, ไดนามิก, ไตร่ตรอง, ภาษาการเขียนโปรแกรมเชิงวัตถุที่มุ่งเน้นทั่วไปที่รวมไวยากรณ์ที่ได้รับแรงบันดาลใจจาก Perl กับคุณสมบัติคล้าย Smalltalk

10
ทำไม Python จึงใช้กับการคำนวณประสิทธิภาพสูง / วิทยาศาสตร์ (แต่ไม่ใช่ Ruby)
มีการอ้างอิงจากการพูดคุย PyCon 2011ที่ไป: อย่างน้อยในร้านค้าของเรา (Argonne National Laboratory) เรามีสามภาษาที่ได้รับการยอมรับสำหรับการคำนวณทางวิทยาศาสตร์ ตามลำดับนี้พวกเขาคือ C / C ++, Fortran ในทุกภาษาและ Python คุณจะสังเกตเห็นว่าการขาด Ruby, Perl, Java มันอยู่ในบริบททั่วไปของการคำนวณประสิทธิภาพสูง การได้รับใบเสนอราคานั้นมาจากร้านค้าเพียงแห่งเดียว แต่มีอีกคำถามเกี่ยวกับภาษาสำหรับ HPCและระบุว่า Python เป็นหนึ่งในการเรียนรู้ (และไม่ใช่ Ruby) ตอนนี้ฉันสามารถเข้าใจ C / C ++ และ Fortran ที่ใช้ในปัญหาพื้นที่ (และ Perl / Java ไม่ได้ใช้) แต่ฉันประหลาดใจที่จะมีความแตกต่างที่สำคัญใน Python และ Ruby ที่ใช้กับ HPC เนื่องจากพวกเขามีความคล้ายคลึงกัน (หมายเหตุ - …

5
รับรายการแบบสุ่มถ่วงน้ำหนัก
ยกตัวอย่างเช่นฉันมีตารางนี้ + ----------------- + | ผลไม้ | น้ำหนัก + ----------------- + | แอปเปิ้ล 4 | | ส้ม 2 | | มะนาว 1 | + ----------------- + ฉันต้องการคืนผลไม้แบบสุ่ม แต่แอปเปิ้ลควรจะเลือก 4 ครั้งบ่อยเท่ามะนาวและ 2 ครั้งบ่อยเท่าส้ม ในกรณีทั่วไปมากขึ้นควรเป็นf(weight)บ่อยครั้ง อัลกอริทึมทั่วไปที่ดีในการใช้พฤติกรรมนี้คืออะไร หรืออาจจะมีอัญมณีบางอย่างที่พร้อมใน Ruby? :) PS ฉันใช้อัลกอริทึมปัจจุบันใน Ruby https://github.com/fl00r/pickup
51 algorithms  ruby  math  random 

9
คำอธิบายเกี่ยวกับวิธี“ บอกอย่าถาม” ถือว่าเป็น OO ที่ดี
บล็อกโพสต์นี้ถูกโพสต์ใน Hacker News พร้อมอัปโหลดหลายรายการ มาจาก C ++ ตัวอย่างเหล่านี้ส่วนใหญ่ดูเหมือนจะขัดแย้งกับสิ่งที่ฉันได้รับการสอน เช่นตัวอย่าง # 2: แย่: def check_for_overheating(system_monitor) if system_monitor.temperature > 100 system_monitor.sound_alarms end end เมื่อเทียบกับดี: system_monitor.check_for_overheating class SystemMonitor def check_for_overheating if temperature > 100 sound_alarms end end end คำแนะนำใน C ++ คือคุณควรชอบฟังก์ชั่นฟรีแทนฟังก์ชั่นสมาชิกที่เพิ่มการห่อหุ้ม ทั้งสองอย่างนี้มีความหมายเหมือนกันดังนั้นเหตุใดจึงเลือกตัวเลือกที่มีการเข้าถึงสถานะเพิ่มเติม ตัวอย่างที่ 4: แย่: def street_name(user) if user.address user.address.street_name else 'No …

3
สัญลักษณ์ในทับทิมคืออะไร
ฉันยังใหม่กับโลกทับทิมและฉันก็สับสนกับแนวคิดของ Symbols สัญลักษณ์และตัวแปรต่างกันอย่างไร ทำไมไม่ใช้แค่ตัวแปร? ขอบคุณ
45 ruby 

2
ภาษาสมัยใหม่ยังใช้เครื่องแยกวิเคราะห์หรือไม่?
ฉันกำลังค้นคว้าเกี่ยวกับชุดคอมไพเลอร์ gcc ในวิกิพีเดียที่นี่เมื่อสิ่งนี้เกิดขึ้น: GCC เริ่มต้นใช้ตัวแยกวิเคราะห์ LALR ที่สร้างด้วย Bison แต่ค่อย ๆ เปลี่ยนเป็นตัวแยกวิเคราะห์แบบสืบเชื้อสายแบบเขียนด้วยมือซ้ำ; สำหรับ C ++ ในปี 2004 และสำหรับ C และ Objective-C ในปี 2549 ปัจจุบันส่วนหน้าทั้งหมดใช้ตัวแยกวิเคราะห์ที่เขียนด้วยมือแบบเรียกซ้ำ ดังนั้นด้วยประโยคสุดท้ายนั้น (และสำหรับที่ฉันไว้ใจ wikipedia) ฉันสามารถพูดได้อย่างแน่นอนว่า "C (gcc), C ++ (g ++), Objective-C, Objective-C ++, Fortran (gfortran), Java (gcj), Ada (GNAT), Go (gccgo), Pascal (gpc), ... Mercury, Modula-2, Modula-3, …

11
การเปลี่ยนสไตล์การเขียนโค้ดในโครงการโอเพ่นซอร์สนั้นไม่เป็นไปตามที่ควรหรือไม่
เมื่อเร็ว ๆ นี้ผมมาในจำนวนของโอเพนซอร์สทับทิม (หรือส่วนใหญ่ของมันเป็นทับทิม) โครงการบน GitHubว่าเมื่อตรวจสอบด้วยเครื่องมือวิเคราะห์รหัสเช่นRubocopสร้างจำนวนมากของการกระทำผิด ตอนนี้ความผิดส่วนใหญ่เหล่านี้รวมถึงการใช้เครื่องหมายอัญประกาศคู่แทนการอ้างอิงเดี่ยว (เมื่อไม่มีการแก้ไข) ไม่ปฏิบัติตามกฎ 2 ช่องว่างต่อกฎระดับมากกว่ากฎความยาวบรรทัด 80 อักขระหรือใช้{และ}สำหรับบล็อกหลายบรรทัด [คู่มือ] Ruby style แนะนำวิธีปฏิบัติที่ดีที่สุดเพื่อให้โปรแกรมเมอร์ Ruby ในโลกแห่งความจริงสามารถเขียนโค้ดที่สามารถดูแลได้โดยโปรแกรมเมอร์ Ruby จากโลกแห่งความเป็นจริง ~ ที่มา: คู่มือสไตล์ทับทิม แม้ว่าจะมีขนาดเล็กและง่ายต่อการแก้ไขมันเหมาะสมหรือไม่ที่จะเปลี่ยนรูปแบบการเข้ารหัสของโครงการโอเพ่นซอร์สโดยการแก้ไขความผิดและทำการร้องขอแบบดึง ฉันยอมรับว่าบางโครงการเช่น Rails ไม่ยอมรับการเปลี่ยนแปลงเครื่องสำอางและบางอันก็ใหญ่เกินกว่าที่จะ "แก้ไข" ทั้งหมดในครั้งเดียว (ตัวอย่างเช่น Rails สร้างความผิดมากกว่า 80,000 ครั้งเมื่อ Rubocop ทำงาน - ไม่ว่าพวกเขาจะมีการเข้ารหัสขนาดเล็กอนุสัญญาที่ควรปฏิบัติตามเมื่อมีส่วนร่วม) ท้ายที่สุดแล้วRuby Style Guideมีเหตุผลร่วมกับเครื่องมือเช่น Rubocop ผู้คนชื่นชมความสอดคล้องดังนั้นการเปลี่ยนแปลงประเภทนี้เป็นการทำสิ่งที่ดีสำหรับชุมชน Ruby โดยทั่วไปใช่ไหม [ผู้แต่งคู่มือ Ruby Style] ไม่ได้เกิดขึ้นกับกฎทั้งหมด …

3
การทดสอบการรวมหมายถึงการทดสอบหน่วยทั้งหมดซ้ำหรือไม่?
สมมติว่าฉันมีฟังก์ชั่น (เขียนใน Ruby แต่ทุกคนควรเข้าใจได้): def am_I_old_enough?(name = 'filip') person = Person::API.new(name) if person.male? return person.age > 21 else return person.age > 18 end end ในการทดสอบหน่วยฉันจะสร้างการทดสอบสี่แบบเพื่อให้ครอบคลุมทุกสถานการณ์ แต่ละคนจะใช้ล้อเลียนPerson::APIวัตถุที่มีวิธีการที่ค้างอยู่และmale?age ตอนนี้มันมาถึงการเขียนการทดสอบการรวม ฉันถือว่า Person :: API ไม่ควรถูกเยาะเย้ยอีกต่อไป ดังนั้นฉันจะสร้างกรณีทดสอบสี่ชุดให้เหมือนกัน แต่ไม่มีการจำลองวัตถุ Person :: API ถูกต้องไหม ถ้าใช่แล้วประเด็นของการเขียนการทดสอบหน่วยคืออะไรถ้าฉันสามารถเขียนการทดสอบการรวมซึ่งทำให้ฉันมีความมั่นใจมากขึ้น (ขณะที่ฉันทำงานกับวัตถุจริงไม่ใช่ stubs หรือ mocks)

4
ตัวอย่างที่เป็นรูปธรรมของ Python“ วิธีเดียวที่จะทำได้” maxim [ปิด]
ฉันกำลังเรียนรู้ Python และรู้สึกทึ่งกับประเด็นต่อไปนี้ใน PEP 20 The Zen of Python : ควรมีอย่างน้อยหนึ่งวิธีที่ชัดเจนกว่าที่จะทำ แม้ว่าวิธีนี้อาจไม่ชัดเจนในตอนแรกเว้นแต่ว่าคุณเป็นชาวดัตช์ ใครสามารถเสนอตัวอย่างที่เป็นรูปธรรมของคติพจน์นี้ได้บ้าง ฉันสนใจเป็นพิเศษในการเปรียบเทียบกับภาษาอื่นเช่นทับทิม ส่วนหนึ่งของปรัชญาการออกแบบทับทิม (ที่มาจากภาษา Perl ฉันคิดว่า?) ก็คือการทำสิ่งต่าง ๆ เป็นสิ่งที่ดี ทุกคนสามารถเสนอตัวอย่างที่แสดงข้อดีข้อเสียของแต่ละวิธีได้หรือไม่ หมายเหตุฉันไม่ได้หลังจากคำตอบที่ดีกว่า (ซึ่งอาจเป็นอัตนัยเกินกว่าที่จะตอบ) แต่เป็นการเปรียบเทียบที่ไม่ลำเอียงของทั้งสองสไตล์

8
Ruby แต่ไม่ใช่ Rails ในประวัติการทำงานของฉัน [ปิด]
ฉันแสดง Ruby เป็นทักษะในเรซูเม่ของฉันเพราะฉันได้เขียนโปรแกรมใน Ruby เป็นเวลา 5 ปีในขณะที่ฉันทำงานกับปริญญาเอกของฉัน วิทยานิพนธ์. ฉันส่วนใหญ่ใช้มันเพื่อใช้อัลกอริทึมการประมวลผลภาษาธรรมชาติ ฉันเริ่มมองหางานและโพสต์ประวัติย่อของฉันไปยังเว็บไซต์ไม่กี่แห่ง (เป็นโบนัสพิเศษเมื่อสมัครงานตามเป้าหมายที่กำหนด) ตอนนี้ฉันได้รับนายหน้าเรียกให้ฉันเสนองาน Ruby on Rails ให้ฉัน ปัญหาคือฉันไม่เคยเรียนรู้ Rails ไม่เคยเกี่ยวข้องกับสิ่งที่ฉันทำเพื่อปริญญาเอกของฉัน คุณจะแนะนำให้จัดการกับสถานการณ์นี้อย่างไรเพื่อหลีกเลี่ยงการเสียเวลาและสถานการณ์ของฉัน? (และการเรียนรู้ Rails อาจไม่ใช่ทางเลือกจนกว่าฉันจะทำวิทยานิพนธ์ของฉันเสร็จ) ประวัติส่วนตัวของฉันจะถูกปรับให้ชัดเจนขึ้นได้หรือไม่? มันควรจะปรับ? ฉันควรจะบอกพวกเขาอย่างสุภาพในโทรศัพท์ว่าฉันไม่รู้จัก Rails หรือไม่? ยังไงก็ตามส่วนที่เกี่ยวข้องในเรซูเม่ของฉันก็บอกว่า: ทักษะ: ภาษาโปรแกรม: C, C ++, Java, Scala, Ruby, LaTeX ฐานข้อมูล: MySQL, XML, XPath และแสดงพื้นที่ทักษะอื่น ๆ ที่ไม่อาจสับสนกับผู้พัฒนา Rails

3
WebStorm มีฟังก์ชันการทำงานใดที่ RubyMine ไม่ทำงาน
ฉันกำลังมองหาซื้อ Rubymine ในขณะที่ฉันกำลังทำทับทิมอยู่เล็กน้อย แต่ก็มี html5 / javascript จำนวนมาก ฉันจะได้รับ Webstorm เพราะฉันมีเฟรมเวิร์ค / แอพ html5 / js ล้วนๆที่ฉันทำงานอยู่อย่างไรก็ตามจากนั้นฉันก็อ่านว่า WebStorm / PhpStorm / Rubymine เป็นต้นล้วนแล้วแต่อยู่ในกรอบความคิดของพวกเขา แต่ละเฟรมเวิร์กมีฟังก์ชันการทำงานของ WebStorm อยู่แล้วนอกเหนือจากฟีเจอร์บางอย่างที่ไม่ได้อยู่ในกล่อง แต่สามารถเพิ่มผ่านปลั๊กอินได้ คุณสมบัติหลักที่ฉันสนใจเกี่ยวกับ WebStorm คือ: การทดสอบหน่วย JS จาก IDE ความคุ้มครอง JS Lint / Hint ภายใน UI การเปลี่ยนโครงสร้าง DOM / JS / Intellisense การสนับสนุน coffeescript การรวม …
27 javascript  ide  ruby 

8
Ruby on Rails ข้อเสียและ caveats [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา นี่ไม่ใช่การเปิดช่องทางสำหรับการทุบตี RoR - ซื่อสัตย์! ฉันเรียนรู้กรอบ Ruby และ Rails ดูเหมือนว่าพรีม่าจะดูเท่ห์และเป็นประสบการณ์ที่ยอดเยี่ยมเมื่อเทียบกับ PHP (อันที่จริงมันทำให้ฉันนึกถึงวันที่มีความสุขมากขึ้นด้วย C # และ. NET) อย่างไรก็ตามการเข้าสู่เรื่องนี้ฉันไม่มีประสบการณ์กับกรอบหรือภาษานี้และฉันอยากรู้อยากเห็นอะไรคือข้อเสียหรือสิ่งที่คุณต้องการให้คุณรู้เมื่อคุณเริ่มต้น (บางทีนี่อาจจะทำให้ชุมชนเป็น wiki?)

8
ทับทิมหรืองูหลาม? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา คำถามนี้เป็นอัตนัยและปลายเปิด มันอาจฟังดูเหมือนสิ่งที่ฉันควรค้นคว้าด้วยตัวเองและตัดสินใจเอง แต่ฉันอยากจะเอามันออกไปและรับความคิดจากคนอื่น เรื่องสั้นเรื่องสั้น - ฉันรู้สึกเหนื่อยกับการแข่งหนูและเข้าร่วมพิธีแต่งเพลงด้วยตัวเองในปีนี้ ส่วนมากจะหยุดพักจากการบด บริษัท และเดินทางไปรอบ ๆ แต่ฉันก็อยากจะเล่นกับเทคโนโลยีใหม่ ๆ และทำโครงการเรียนรู้ด้วยตนเองเพื่อให้ทันกับความเร็วในการเขียนโปรแกรมและฉันก็ชอบที่จะแก้ไข การเขียนโปรแกรมเมื่อไม่มีแรงกดดัน! นี่คือสิ่งที่: ฉันเป็นโปรแกรมเมอร์ C / C ++ / Java ตลอดชีวิต ฉันเป็นคนหยาบคายคร่าวๆคร่าวๆตั้งแต่ฉันทำงานกับครอบครัวของภาษานี้มาตลอดอาชีพการเขียนโปรแกรมของฉัน ดังนั้นฉันต้องการเรียนรู้ภาษาที่ไม่เกี่ยวข้องกับ syntactically กลุ่มนี้ สิ่งที่ฉันกำลังมองหาคือภาษาที่ค่อนข้างมีวัตถุประสงค์ทั่วไปสนุกกับการเรียนมีแนวคิดใหม่ที่แตกต่างจาก C ++ / Java และมีชุมชนที่ดี ข้อพิจารณารองคือมีกรอบการพัฒนาเว็บที่ดี ข้อพิจารณาในระดับอุดมศึกษาคือมันไม่ได้เป็นวิชาการทั้งหมด (อ่าน: มีงานในโลกแห่งความเป็นจริงที่ใช้ ฉัน จำกัด ให้แคบลงเป็น Ruby หรือ …
24 learning  python  ruby 

3
ทำไมภาษาจำนวนมากจึงปฏิบัติต่อตัวเลขที่เริ่มต้นด้วยเลขฐานแปด
ฉันอ่านแล้วเลขฐานแปดมีประโยชน์อย่างไร และดูเหมือนว่า octals นั้นเป็นสิ่งที่มีประโยชน์กาลครั้งหนึ่งนานมาแล้ว หลายภาษาปฏิบัติกับตัวเลขที่อยู่ก่อนหน้าด้วย 0 เป็นฐานแปดดังนั้นตัวอักษร010จึงเป็น 8 จริง ๆ สองสามอย่างคือ JavaScript, Python (2.7) และ Ruby แต่ฉันไม่เห็นจริง ๆ ว่าทำไมภาษาเหล่านี้จึงต้องการเลขฐานแปดโดยเฉพาะอย่างยิ่งเมื่อมีการใช้สัญกรณ์ที่เป็นไปได้มากขึ้นในการแสดงจำนวนทศนิยมด้วย 0 ที่ไม่จำเป็น JavaScript เป็นภาษาฝั่งไคลเอ็นต์, octal ดูเหมือนว่าไม่มีประโยชน์เลย ทั้งสามมีความทันสมัยในแง่อื่นและฉันไม่คิดว่าจะมีรหัสมากนักโดยใช้สัญกรณ์ฐานแปดที่จะใช้งานไม่ได้โดยการลบ "คุณสมบัติ" นี้ออก ดังนั้นคำถามของฉันคือ: มีจุดใดในภาษาเหล่านี้ที่สนับสนุนตัวอักษรฐานแปด ถ้าตัวอักษรฐานแปดมีความจำเป็นทำไมไม่ใช้สิ่งที่ต้องการ0o10? ทำไมคัดลอกสัญกรณ์เก่าที่แทนที่กรณีการใช้งานที่มีประโยชน์มากกว่า?

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

2
การใช้อัญมณี LGPL ส่งผลต่อแอปพลิเคชั่นลิขสิทธิ์ของฉันอย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันกำลังพัฒนาแอปพลิเคชั่นทับทิมโอเพนซอร์ซภายใต้ใบอนุญาต MIT ฉันใช้ใบอนุญาตนี้เพราะฉันไม่ต้องการ จำกัด ผู้ใช้แอปพลิเคชัน นอกจากนี้ฉันสามารถอ่านและทำความเข้าใจใบอนุญาตนี้ได้จริง ฉันเพิ่งเริ่มใช้พลอยทับทิมอื่นในโครงการของฉัน (ต้องมี "somegem") อัญมณีทับทิมนี้อยู่ภายใต้ใบอนุญาต LGPL ฉันต้องเปลี่ยนอะไรเกี่ยวกับโครงการของฉันเพราะฉันใช้พลอยทับทิมอื่น ๆ ที่ได้รับอนุญาตจาก LGPL หรือไม่? โครงการของฉันไม่มีรหัสแหล่งที่มาสำหรับอัญมณีอื่นและไม่ได้ส่งมาพร้อมกับโครงการของฉัน มันเป็นรายการที่ขึ้นอยู่กับการพึ่งพาเพื่อให้ทับทิมอัญมณีจะติดตั้งและโครงการของฉันจะเรียกมันจากรหัสของฉัน นอกจากนี้มันจะมีประโยชน์หากรู้ว่ามีใบอนุญาตใด ๆ ที่ฉันต้อง "ระวัง" เพราะการใช้พวกเขาจะส่งผลกระทบต่อใบอนุญาตของโครงการของฉัน มีการโพสต์อื่น ๆ เกี่ยวกับหัวข้อนี้ แต่ใช้ถ้อยคำในรูปแบบที่แตกต่างกัน เนื่องจากฉันพบว่าสัญญาอนุญาตนี้ยุ่งยากฉันหวังว่าจะได้รับคำตอบที่ตรงกับสถานการณ์ของฉัน ขอบคุณ Corsen

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