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

Groovy เป็นภาษาการเขียนโปรแกรม "รุ่นต่อไป" ที่ใช้ Java ซึ่งออกแบบมาเพื่อปรับปรุง Java ในขณะที่เพิ่มคุณสมบัติยอดนิยมจาก Smalltalk, Python และ Ruby Groovy syntax เป็นชุดของ Java ที่ช่วยให้นักพัฒนา Java สามารถเริ่มเขียนโค้ดใน Groovy ได้เมื่อพวกเขาเรียนรู้ Groovy เป็นแบบเชิงวัตถุไดนามิกและผสานรวมกับ Java ได้อย่างราบรื่น การตลาดที่ชาญฉลาดความสำเร็จของ Groovy คือการคาดเดาของใคร คู่แข่งหลักคือ Ruby, Scala และ Closure

3
ความแตกต่างระหว่างอนาคตและสัญญาคืออะไร?
ความแตกต่างระหว่างอนาคตและสัญญาคืออะไร? (ใน Akka และ Gpars) พวกเขาดูเหมือนกันทั้งฉันบล็อกและคืนค่าในอนาคตเมื่อได้รับเรียกและสัญญาคือการได้รับผลของอนาคต
73 api  scala  groovy  akka 

5
Groovy กำลังจะหายไป? [ปิด]
ฉันแน่ใจว่าคำถามนี้ถูกถามหลายครั้ง อย่างไรก็ตามฉันต้องการถามอีกครั้งด้วยความตั้งใจว่าอนาคตของภาษาเหล่านี้คืออะไร ฉันถูกแนะนำให้รู้จักกับGroovyเป็นครั้งแรกและชอบมันมาก ผมรู้สึกว่าไวยากรณ์ถูกง่ายและมันก็เป็นมากใกล้ Java และฉันก็สามารถที่จะเรียนรู้ได้อย่างรวดเร็วGrails จากนั้นก็มีScalaและกรอบการทำงานเว็บLift ฉันยังคงเรียนรู้สกาล่าและฉันพบว่าไวยากรณ์ยากมากในบางครั้ง อย่างไรก็ตามฉันยังคงสงสัยว่าอนาคตของ Groovy คืออะไร เมื่อผู้เขียน Groovy บอกว่าเขาจะไม่สร้าง groovyถ้าเขารู้เรื่องสกาล่ามันทำให้ฉันสงสัยว่ามีอนาคตหรือไม่ แน่นอนว่า Groovy มีมานานแล้วและ Grails ถูกใช้งานในปัจจุบันโดย บริษัท ขนาดใหญ่หลายแห่ง ถ้ามีใครไปดู Grails vs Lift วันนี้ Grails จะเป็นผู้ชนะอย่างชัดเจน บริษัท อื่น ๆ กำลังใช้งานอยู่ แต่ด้วยทุกสิ่งที่ฉันได้กล่าวไปแล้วฉันสนใจที่จะรู้ว่าควรลงทุนใน Groovy หรือไม่? Groovy กำลังจะหายไปและ Scala เป็นตัวเลือกที่ดีกว่าหรือไม่? หากซีอีโอของ BMW บอกว่าเขาขับ Mercedes แล้วใครจะสงสัยว่าทำไมเราทุกคนไม่ควรขับ Mercedes ด้วยใช่มั้ย (ฉันเข้าใจว่าคำถามนี้กว้างมากและอาจถูกปิดฉันหวังว่าจะทำให้เป็น Wiki แบบเปิดสำหรับผู้อื่นได้)
30 java  scala  groovy  grails 

2
เมื่อใดควรใช้ def ใน Groovy
ฉันได้รับการพัฒนาใน Groovy สักครู่แล้วและฉันสงสัยว่าฉันควรจะใช้การคัดเลือกนักแสดงแบบไดนามิกบ่อยแค่ไหนdef? เพื่อนร่วมงานของฉันเชื่อว่าเราควรใช้มันเสมอเพราะช่วย Groovy ในวิธีที่ฉันไม่เข้าใจ ขณะนี้เมื่อประกาศเมธอดส่งคืนชนิดและอาร์กิวเมนต์ฉันชอบที่จะจงใจระบุว่าควรนำวัตถุใดบ้างและคายออกมา (สำหรับการอ่านรหัสและฉันมาจากพื้นหลัง Java มันสมเหตุสมผลกับฉัน): String doSomething(String something){ //code } // vs def doSomething(def somthing){ //code } // vs def doSomething(somthing){ // code } ดังนั้นฉันเดาคำถามของฉันมันเป็นเพียงการตั้งค่าเมื่อต้องการใช้defหรือมีข้อได้เปรียบที่แท้จริงในการใช้มันตลอดเวลา? (ฉันเพิ่มตัวอย่างสุดท้ายเพราะฉันรู้สึกว่ามันเหมาะกับคำถามเป็นตัวเลือกที่ทำงานได้สำหรับ Groovy)

3
เมื่อใดที่ต้องเขียนคำสั่ง return ที่ชัดเจนใน Groovy
ในขณะนี้ฉันกำลังทำงานในโครงการ Groovy / Grails (ซึ่งฉันค่อนข้างใหม่) และฉันสงสัยว่าเป็นวิธีปฏิบัติที่ดีที่จะละเว้นreturnคำหลักในวิธีการของ Groovy หรือไม่ เท่าที่ฉันรู้ว่าคุณต้องแทรกคำหลักเช่นสำหรับคำสั่งป้องกันดังนั้นหนึ่งควรใช้มันทุกที่อื่นหรือไม่ ในความคิดของฉันreturnคำหลักเพิ่มเติมจะเพิ่มความสามารถในการอ่าน หรือมันเป็นสิ่งที่คุณเพิ่งคุ้นเคย ประสบการณ์ของคุณกับหัวข้อนั้นคืออะไร? ตัวอย่างบางส่วน: def foo(boolean bar) { // Not consistent if (bar) { return positiveBar() } negativeBar() } def foo2() { // Special Grails example def entitiy = new Entity(foo: 'Foo', bar: 'Bar') entity.save flush: true // Looks strange to …

4
ทำให้วิธีการที่ไม่ขึ้นอยู่กับเขตข้อมูลอินสแตนซ์คงที่?
เมื่อเร็ว ๆ นี้ฉันเริ่มเขียนโปรแกรมใน Groovy สำหรับกรอบการทดสอบการรวมสำหรับโครงการ Java ฉันใช้ Intellij IDEA กับปลั๊กอิน Groovy และฉันรู้สึกประหลาดใจที่เห็นว่าเป็นคำเตือนสำหรับวิธีการทั้งหมดที่ไม่คงที่และไม่ต้องพึ่งพาฟิลด์อินสแตนซ์ใด ๆ ใน Java อย่างไรก็ตามนี่ไม่ใช่ปัญหา (อย่างน้อยจากมุมมองของ IDE) วิธีการทั้งหมดที่ไม่ได้ขึ้นอยู่กับเขตข้อมูลอินสแตนซ์ใด ๆ ควรถูกเปลี่ยนเป็นฟังก์ชันแบบคงที่หรือไม่? ถ้าเป็นจริงจะมีเฉพาะกับ Groovy หรือเป็น OOP โดยทั่วไปหรือไม่ และทำไม?

4
Groovy เรียกแอปพลิเคชั่นบางส่วนว่า 'currying' หรือไม่?
Groovy มีแนวคิดที่เรียกว่า 'currying' นี่คือตัวอย่างจากวิกิ: def divide = { a, b -> a / b } def halver = divide.rcurry(2) assert halver(8) == 4 ความเข้าใจของฉันเกี่ยวกับสิ่งที่เกิดขึ้นที่นี่ก็คือการโต้แย้งทางด้านขวาของdivideถูกผูกไว้กับค่า 2 ดูเหมือนว่ารูปแบบของการใช้งานบางส่วน คำว่า currying มักจะใช้เพื่อหมายถึงการเปลี่ยนฟังก์ชั่นที่นำชุดของข้อโต้แย้งเป็นฟังก์ชั่นที่ใช้เพียงหนึ่งอาร์กิวเมนต์และส่งกลับฟังก์ชั่นอื่น ตัวอย่างเช่นนี่คือประเภทของcurryฟังก์ชั่นใน Haskell: curry :: ((a, b) -> c) -> (a -> (b -> c)) สำหรับคนที่ไม่ได้ใช้ Haskell a, bและcพารามิเตอร์ทั่วไปทั้งหมด curryใช้เวลาฟังก์ชั่นที่มีสองข้อโต้แย้งและผลตอบแทนฟังก์ชั่นที่ใช้aและผลตอบแทนการทำงานจากการb cฉันได้เพิ่มวงเล็บพิเศษลงในประเภทเพื่อทำให้ชัดเจนยิ่งขึ้น ฉันเข้าใจผิดหรือเปล่าว่าเกิดอะไรขึ้นในตัวอย่างของความแรงหรือเป็นเพียงบางส่วนที่ใช้ผิด? …

1
Groovy ปฏิบัติตามหลักการความสอดคล้องของ Tennent หรือไม่?
นี่คือการสนทนาที่น่าสนใจของหลักการการโต้ตอบของ Tennentและคำอธิบายสั้น ๆ จากNeal Gafter : หลักการกำหนดว่าการแสดงออกหรือคำพูดเมื่อห่อในการปิดและเรียกใช้ทันทีควรมีความหมายเช่นเดียวกับก่อนที่จะถูกห่อในการปิด การเปลี่ยนแปลงความหมายใด ๆ เมื่อการปิดโค้ดในการปิดอาจเป็นข้อบกพร่องในภาษา ภาษา Groovy ปฏิบัติตามหลักการนี้หรือไม่

1
'ไวยากรณ์น้ำส้มสายชู' หมายถึงอะไร
ฉันอ่านGroovy in Action, Second Editionและจากเชิงอรรถฉันพบข้อความต่อไปนี้ Java เท "น้ำส้มสายชูไวยากรณ์" มากกว่าโครงสร้างเพื่อกีดกันโปรแกรมเมอร์จากการใช้มัน คำนี้syntax vinegarหมายถึงอะไรที่นี่? ฉันไม่เคยได้ยินคำนี้มาก่อนและค้นหาใน DuckDuckGo และ Google แต่ไม่พบความหมาย แต่มันถูกใช้ในหลาย ๆ ที่ มันจะดีถ้ามีใครสามารถอธิบายความหมายของคำนี้และนำไปใช้ในบริบทของการเขียนโปรแกรมภาษา หวังว่านี่จะถือว่าเป็นคำถามที่ถูกต้อง ไม่พบไซต์ stackexchange อื่นที่ฉันสามารถถามได้
12 java  syntax  groovy 

5
ข้อผิดพลาดใน Grails Framework [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปัญหา / ข้อผิดพลาดที่ใหญ่ที่สุดของการใช้เฟรมเวิร์กคืออะไร ตอนนี้ฉันกำลังเรียนรู้เกี่ยวกับกรอบการทำงานและฉันชอบมันมาก แต่ฉันต้องรู้ว่าปัญหาสำคัญอะไรที่ฉันอาจพบเมื่อใช้และวิธีการหลีกเลี่ยง

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

4
มีอะไรพิเศษเกี่ยวกับการแกงหรือการใช้งานบางส่วน
ฉันได้อ่านบทความเกี่ยวกับการเขียนโปรแกรมฟังก์ชั่นทุกวันและพยายามที่จะใช้แนวทางปฏิบัติบางอย่างให้มากที่สุด แต่ฉันไม่เข้าใจสิ่งที่เป็นเอกลักษณ์ในการประยุกต์ใช้การ currying หรือบางส่วน ใช้โค้ด Groovy นี้เป็นตัวอย่าง: def mul = { a, b -> a * b } def tripler1 = mul.curry(3) def tripler2 = { mul(3, it) } ฉันไม่เข้าใจความแตกต่างระหว่างtripler1และtripler2คืออะไร พวกเขาทั้งคู่ไม่เหมือนกันหรือ 'การแกง' ได้รับการสนับสนุนในภาษาที่ใช้งานได้จริงหรือบางส่วนเช่น Groovy, Scala, Haskell เป็นต้น แต่ฉันสามารถทำสิ่งเดียวกันได้ (แกงเผ็ดซ้าย, แกงกะหรี่ขวา, แกงกะหรี่หรือแอปพลิเคชั่นบางส่วน) เพียงแค่สร้างชื่อหรือไม่ระบุชื่อ ฟังก์ชั่นหรือการปิดที่จะส่งต่อพารามิเตอร์ไปยังฟังก์ชั่นเดิม (เช่นtripler2) ในภาษาส่วนใหญ่ (แม้ C. ) ฉันทำอะไรบางอย่างหายไปหรือเปล่า มีสถานที่ที่ฉันสามารถใช้แอปพลิเคชั่นการแกงและบางส่วนในแอปพลิเคชัน …

5
มีผู้นำที่ชัดเจนในภาษาที่ใช้ JVM หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา สถานะปัจจุบันของโครงการเหล่านี้คืออะไรและมีหนึ่ง (หรือสอง) ปรากฏเป็นผู้นำที่ชัดเจน? เพื่อแสดงให้เห็นถึงแรงจูงใจของฉันในการถามคำถามนี้ลองนึกย้อนกลับไปหลายปี ต้นแบบและ jQuery กำลังเผชิญหน้ากับผู้เล่นอื่นเช่น MooTools ที่ต่อสู้เพื่อเอาชีวิตรอดเช่นกัน กรอไปข้างหน้าอย่างรวดเร็วจนถึงทุกวันนี้และฉันทามติทั่วไปก็คือ jQuery เป็นไลบรารี JavaScript สำหรับวัตถุประสงค์ทั่วไปที่ดีที่สุด ในช่วงหลายปีที่ผ่านมามีสิ่งที่คล้ายกันเกิดขึ้นกับภาษาที่ใช้ JVM หรือไม่ มีบางภาษาตกอยู่ในสภาพทรุดโทรมและถูกทอดทิ้งหรือไม่? จากสิ่งที่ฉันได้อ่านดูเหมือนว่าสกาล่าจะได้รับการเตรียมให้เป็นที่ชื่นชอบอย่างแน่นอน แต่จากนั้นอีกครั้งเกือบทุกอย่างที่ฉันอ่านมานั้นเป็นเวลาหลายปี ฉันได้ทำ bit การวิจัยมากขึ้น - ฉันมีความคิดที่จะตรวจสอบปริมาณการค้นหาปีที่ผ่านมาโดยใช้ Google Trends ดูเหมือนว่า Jython และ JRuby มีความสนใจค่อนข้างน้อยในขณะที่ปริมาณของ Groovy ลดลงและปริมาณของ Scala นั้นคงที่ (แย่ที่สุด) หรือเพิ่มขึ้นเล็กน้อย (ดีที่สุด) นี่เป็นการประเมินที่ถูกต้องหรือไม่? และใช่ฉันหมายถึงภาษาที่ไม่ใช่ Java บน …
9 java  scala  jvm  groovy  jruby 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.