Groovy Hướng dẫn viết chữ cho người mới bắt đầu
⚡ Tóm tắt thông minh
Groovy Script là một ngôn ngữ lập trình hướng đối tượng dành cho... Java nền tảng biên dịch thành mã bytecode JVM. Nó bổ sung kiểu động.ping, các hàm đóng và cú pháp ngắn gọn để Javavà nó cung cấp năng lượng Jenkins đường ống, Gradle xây dựng và SoapUI khẳng định.
Một Groovy Kịch bản?
Apache Groovy là một ngôn ngữ lập trình hướng đối tượng, Java Ngôn ngữ lập trình tương thích cú pháp được xây dựng cho Java nền tảng. Ngôn ngữ năng động này có nhiều tính năng tương tự như PythonRuby, Smalltalk và Perl. Groovy mã nguồn được biên dịch thành Java mã bytecode, vì vậy nó chạy trên bất kỳ nền tảng nào có hỗ trợ bytecode. Java Máy ảo đã được cài đặt. Groovy Nó cũng thực hiện rất nhiều công việc ngầm, điều này khiến nó hoạt động nhanh nhẹn và năng động hơn so với các hệ điều hành thông thường. Java.
A Groovy kịch bản chỉ đơn giản là một .groovy tệp chứa các câu lệnh mà Groovy Nó được gói trong một lớp được tạo tự động trước khi chạy. Đó là lý do tại sao bạn có thể thực thi một tệp chỉ có một dòng mà không cần viết lớp hoặc mã. main phương pháp. Groovy Do đó, nó có thể được sử dụng như một ngôn ngữ kịch bản cho Java nền tảng này vẫn cung cấp các khả năng dành cho doanh nghiệp. JavaNó bổ sung các tính năng tăng năng suất như hỗ trợ DSL, hàm đóng và kiểu dữ liệu động tùy chọn.pingKhông giống như một số ngôn ngữ khác, nó được thiết kế như một ngôn ngữ bổ trợ cho... JavaKhông phải là sự thay thế cho nó.
💡 Mẹo: Groovy Phiên bản 5.0 là phiên bản phát hành ổn định hiện tại và nhắm đến JDK 11 trở lên. Groovy Phiên bản 4.0 vẫn khả dụng cho các dự án JDK 8, và Groovy Phiên bản 6.0 vẫn đang trong giai đoạn alpha đối với JDK 17. Luôn kiểm tra bảng yêu cầu hệ thống trên trang tải xuống chính thức trước khi chọn phiên bản.
Tại sao Groovy?
Dưới đây là những lý do chính tại sao bạn nên sử dụng và học hỏi Groovy:
- Groovy là một ngôn ngữ linh hoạt và năng động.
- Nó tích hợp liền mạch với tất cả các hệ thống hiện có. Java các đối tượng và thư viện.
- Cảm giác thật dễ dàng và tự nhiên khi Java nhà phát triển.
- Đoạn mã này ngắn gọn và dễ hiểu hơn so với đoạn mã tương đương. Java Mã.
- Bạn có thể sử dụng nó nhiều hay ít tùy thích ở bên trong. Java các ứng dụng.
- Nó hoạt động theo tiêu chuẩn thông thường. Java Máy ảoVì vậy, không cần môi trường chạy riêng biệt.
Groovy Lịch Sử
- 2003: Được khởi xướng bởi James S.trachan và Bob McWhirthời hạn.
- 2004: Đã nộp cho Java Quy trình cộng đồng được gọi là JSR 241, sau đó đã bị rút lại.
- 2005: Đã được đưa trở lại track bởi Jeremy Rayner và Guillaume Laforge.
- 2007: Groovy 1.0 được phát hành.
- 2012: Groovy 2.0 được phát hành.
- 2014: Groovy Phiên bản 2.3 được phát hành với hỗ trợ chính thức cho JDK 8.
- 2015: Groovy đã trở thành một dự án cấp cao tại Apache Software. Foundation.
- 2022: Groovy Phiên bản 4.0 đã được phát hành, với tọa độ Maven được chuyển sang...
org.apache.groovy. - 2025: Groovy Phiên bản 5.0 đã được phát hành cho JDK 11 trở lên.
Đặc điểm của Groovy
- Các giá trị hằng số dạng danh sách, bản đồ, phạm vi và biểu thức chính quy.
- Đa phương thức (phân phối phương thức thời gian chạy) và lập trình siêu cấp.
- Groovy Các lớp và tập lệnh thường được lưu trữ trong
.groovycác tập tin. - Tập lệnh chứa Groovy các câu lệnh mà không có bất kỳ khai báo lớp nào.
- Các tập lệnh cũng có thể chứa các định nghĩa phương thức bên ngoài các định nghĩa lớp.
- Groovy Mã có thể được biên dịch và tích hợp hoàn toàn với hệ thống truyền thống. Java ứng dụng.
- Hỗ trợ ở cấp độ ngôn ngữ cho bản đồ, danh sách và biểu thức chính quy.
- Hỗ trợ cho các hàm đóng, kiểu độngpingvà giao thức siêu đối tượng.
- Hỗ trợ cả kiểu tĩnh và kiểu độngpingcộng thêm tình trạng quá tải toán tử.
- Tùy chọn kiểm tra kiểu tĩnh thông qua
@TypeCheckedvà@CompileStaticChú thích.
Làm thế nào để cài đặt Groovy
Bước 1) Đảm bảo bạn có Java cài đặt.
Bước 2) Đến phần https://groovy.apache.org/download.html Và nhấp vào Windows Liên kết cài đặt.
Lưu ý: Bạn cũng có thể cài đặt Groovy Từ tệp Zip nhị phân, thông qua trình quản lý gói như SDKMAN!, Homebrew, Scoop hoặc Chocolatey, hoặc dưới dạng plugin cho ứng dụng của bạn. Java IDE. Trong Groovy Trong hướng dẫn này, chúng ta sẽ bám sát... Windows trình cài đặt.
Bước 3) Khởi chạy trình cài đặt đã tải xuống. Chọn ngôn ngữ và nhấn OK.
Bước 4) Trên màn hình chào mừng, hãy nhấn TIẾP THEO.
Bước 5) Đồng ý với các điều khoản cấp phép.
Bước 6) Chọn các thành phần bạn muốn cài đặt và nhấn TIẾP THEO.
Bước 7) Chọn thư mục cài đặt và nhấn TIẾP THEO.
Bước 8) Chọn thư mục Menu Bắt đầu và nhấn TIẾP THEO.
Bước 9) Sau khi quá trình cài đặt hoàn tất, hãy giữ nguyên các đường dẫn mặc định và nhấn TIẾP THEO.
Bước 10) Xác nhận các tùy chọn liên kết tệp và nhấp vào TIẾP THEO.
Bước 11) Trong menu Bắt đầu, tìm kiếm Groovy Mở bảng điều khiển để xác nhận cài đặt.
⚠️ Cảnh báo: Windows Trình cài đặt này là một sản phẩm do cộng đồng đóng góp, không phải là bản phát hành chính thức của Apache. Nếu tổ chức của bạn yêu cầu tải xuống Apache có chữ ký số, hãy sử dụng bản phân phối Zip nhị phân và xác minh tính hợp lệ của nó. .asc chữ ký và .sha256 Thay vào đó là mã kiểm tra.
Groovy Xin chào thế giới Ví dụ
Giả sử bạn muốn in chuỗi ký tự đơn giản “Hello World” ra màn hình. JavaĐoạn mã sẽ trông như thế này.
public class Demo {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Đầu ra:
Hello World
Đoạn mã trên hợp lệ trong cả hai trường hợp. Java và Groovy, bởi vì Groovy chấp nhận hầu hết mọi thứ Java cú pháp. Ưu điểm của Groovy Điều đó có nghĩa là bạn có thể bỏ qua phần khai báo lớp, phương thức public và lệnh gọi print đầy đủ, mà vẫn đạt được kết quả tương tự chỉ với một dòng lệnh.
println "Hello World"
Đầu ra:
Hello World
- Không cần dùng dấu chấm phẩy.
- Không cần phải có lớp học hay...
mainphương pháp. System.out.printlnđược giảm xuốngprintln.
Groovy Biến
In JavaTrong trường hợp này, liên kết tĩnh là bắt buộc, có nghĩa là kiểu dữ liệu của một biến phải được khai báo trước.
public class Demo {
public static void main(String[] args) {
int x = 104;
System.out.println(x);
//x = "Guru99";
}
}
Đầu ra:
104
Trong ví dụ trên, kiểu dữ liệu của biến được khai báo trước bằng từ khóa `type`. intNếu bạn muốn khai báo một số thực dấu phẩy động, bạn sẽ sử dụng từ khóa. float or double.
Nếu bạn cố gắng gán một giá trị chuỗi cho một int (Bỏ dấu chú thích ở dòng 5), bạn sẽ nhận được lỗi biên dịch sau.
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
Ngược lại, Groovy hỗ trợ kiểu độngpingCác biến được định nghĩa bằng từ khóa. defVà kiểu dữ liệu không cần phải được khai báo trước. Hệ thống sẽ tự động xác định kiểu dữ liệu của biến, và bạn thậm chí có thể thay đổi kiểu dữ liệu đó sau này.
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
Đầu ra:
class java.lang.Integer class java.lang.String
In Groovy Bạn cũng có thể tạo chuỗi nhiều dòng. Chỉ cần đảm bảo rằng bạn đặt chuỗi đó trong dấu ngoặc kép ba lần.
def x = """Groovy at Guru99""" println x
Đầu ra:
Groovy at Guru99
Lưu ý: Bạn vẫn có thể sử dụng các kiểu dữ liệu tường minh như sau: byte, short, intvà long in GroovyNhưng một khi bạn đã khai báo kiểu dữ liệu một cách rõ ràng, bạn không thể thay đổi nó một cách linh hoạt.
int x = 104 println x x = "Guru99"
Đầu ra:
104
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
at jdoodle.run(jdoodle.groovy:3)
Command exited with non-zero status 1
Groovy Operaxoắn
Toán tử là một ký hiệu cho trình biên dịch biết cần thực hiện một phép toán hoặc thao tác logic cụ thể. Groovy Hỗ trợ năm nhóm toán tử sau đây.
- Toán tử số học: thêm (+), trừtract (-), nhân (*), chia (/), phép chia lấy dư (%), tăng (++), giảm (–).
- Các toán tử quan hệ: bằng (==), không bằng (!=), nhỏ hơn (<), nhỏ hơn hoặc bằng (<=), lớn hơn (>), lớn hơn hoặc bằng (>=).
- Toán tử logic: và (&&), hoặc (||), không (!).
- Toán tử bitwise: và (&), hoặc (|), phép toán loại trừ hoặc (^), phép toán bổ sung (~).
- Toán tử gán: gán (=) và các dạng kết hợp (+=), (-=), (*=), (/=), (%=).
Groovy bổ sung thêm một vài toán tử Java không có, và chúng loại bỏ rất nhiều đoạn mã kiểm tra giá trị null rườm rà.
| Operator | Mô tả Chi tiết |
|---|---|
| ?. | Điều hướng an toàn. Trả về null thay vì ném ngoại lệ NullPointerException khi phía bên trái là null. |
| ?: | Toán tử Elvis. Trả về phía bên trái nếu giá trị là đúng, ngược lại trả về phía bên phải. |
| <=> | Toán tử tàu vũ trụ. Ủy thác cho compareTo và hữu ích bên trong các closure sắp xếp. |
| ==~ | So khớp biểu thức chính quy. Chỉ trả về true khi toàn bộ chuỗi khớp với mẫu. |
Groovy Loops
In JavaBạn sẽ định nghĩa một vòng lặp đếm như sau.
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x++) {
System.out.println(x);
}
}
}
Đầu ra:
0 1 2 3 4 5
Bạn có thể đạt được kết quả tương tự trong Groovy với upto phương pháp này bao gồm cả hai giới hạn.
0.upto(5) { println "$it" }
Đầu ra:
0 1 2 3 4 5
Đây it là tham số ngầm định của closure, và nó chứa giá trị của lần lặp hiện tại. Hãy xem xét đoạn mã sau.
2.upto(4) { println "$it" }
Đầu ra:
2 3 4
Bạn cũng có thể sử dụng times Phương thức này luôn bắt đầu từ 0 và dừng lại trước số bạn gọi nó một đơn vị, vì vậy bạn cần 6 để in các số từ 0 đến 5.
6.times { println "$it" }
Đầu ra:
0 1 2 3 4 5
Bây giờ giả sử bạn muốn in ra các số 0, 2 và 4. Java vòng lặp for.
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x=x+2) {
System.out.println(x);
}
}
}
Đầu ra:
0 2 4
Bạn có thể sử dụng step Phương pháp này cho cùng kết quả. Tham số thứ hai là mức tăng, và tham số đầu tiên là giới hạn trên độc quyền.
0.step(5, 2) { println "$it" }
Đầu ra:
0 2 4
Groovy Ra quyết định
Groovy tái sử dụng Java các câu lệnh điều kiện và bổ sung thêm tính linh hoạt cao hơn nhiều. switchBảng dưới đây tóm tắt các lựa chọn.
| Tuyên bố | Mô tả Chi tiết |
|---|---|
| câu lệnh if | Như trong JavaPhần thân của câu lệnh if sẽ được thực thi khi điều kiện đúng. |
| câu lệnh if/else | Điều kiện trong câu lệnh if được đánh giá trước tiên. Nếu điều kiện đúng, các câu lệnh trong khối if sẽ được thực thi và khối else sẽ bị bỏ qua. Nếu điều kiện sai, các câu lệnh trong khối else sẽ được thực thi thay thế. |
| Câu lệnh if lồng nhau | Được sử dụng khi bạn cần kiểm tra thêm một điều kiện bên trong khối lệnh if. |
| chuyển đổi tuyên bố | Một chuỗi if-else lồng nhau trở nên khó đọc khi có quá nhiều điều kiện. Câu lệnh switch giúp cho cùng một logic trở nên dễ đọc hơn. GroovyNhãn trường hợp có thể là một giá trị, một lớp, một phạm vi, một biểu thức chính quy hoặc một closure. |
| Câu lệnh switch lồng nhau | Groovy Ngoài ra, nó cũng cho phép đặt một câu lệnh switch bên trong một câu lệnh switch khác. |
Groovy Danh sách
Cấu trúc danh sách cho phép bạn lưu trữ một tập hợp các mục dữ liệu. Trong GroovyMột List chứa một chuỗi các tham chiếu đối tượng và giữ nguyên vị trí của mỗi phần tử trong chuỗi đó. Một danh sách hằng được viết dưới dạng một chuỗi các đối tượng được phân tách bằng dấu phẩy và được đặt trong dấu ngoặc vuông.
Ví dụ về Groovy danh sách:
- Một danh sách các chuỗi ký tự:
['Angular', 'Nodejs'] - Danh sách các tham chiếu đối tượng hỗn hợp:
['Groovy', 2, 4, 2.6] - Một danh sách các giá trị số nguyên:
[16, 17, 18, 19] - Một danh sách trống:
[]
Các phương thức liệt kê sau đây có sẵn trong Groovy.
| Phương pháp | Mô tả Chi tiết |
|---|---|
| thêm vào() | Thêm một giá trị mới vào cuối danh sách. |
| chứa đựng() | Trả về true nếu danh sách chứa một giá trị nhất định. |
| được() | Trả về phần tử tại vị trí được chỉ định. |
| isEmpty() | Trả về true nếu danh sách không chứa phần tử nào. |
| dấu trừ() | Tạo một danh sách mới bao gồm các phần tử của danh sách gốc, ngoại trừ những phần tử được chỉ định trong tập hợp đã cho. |
| thêm() | Tạo một danh sách mới bao gồm các phần tử của danh sách gốc cùng với các phần tử trong tập hợp được cung cấp. |
| pop () | Xóa phần tử cuối cùng khỏi danh sách và trả về danh sách đó. |
| tẩy() | Xóa phần tử tại vị trí được chỉ định. |
| đảo ngược() | Tạo một danh sách mới bằng cách đảo ngược các phần tử của danh sách gốc. |
| kích thước() | Trả về số lượng phần tử trong danh sách. |
| sắp xếp () | Trả về một bản sao đã được sắp xếp của danh sách. |
Hãy xem xét những điều sau Groovy Ví dụ về kịch bản.
def y = ["Guru99", "is", "Best", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
Đầu ra:
[Guru99, is, Best, for, Groovy] true Best Learning
Dòng đầu tiên in ra danh sách năm phần tử ban đầu, bởi vì add() Chưa chạy. get(2) trở lại với danh hiệu “Tốt nhất” kể từ Groovy Danh sách được đánh số từ 0, và pop() Trả về "Learning" vì mục đó được thêm vào cuối cùng.
Groovy Maps
A Groovy Map là một tập hợp các cặp khóa-giá trị. Các khóa không cần dấu ngoặc kép khi chúng là các định danh đơn giản, điều này giúp cho cú pháp map rất gọn nhẹ.
Ví dụ về Groovy bản đồ:
[tutorial: 'Java', language: 'Groovy']là một tập hợp gồm hai cặp khóa-giá trị.[:]Biểu thị một bản đồ trống.
Dưới đây là danh sách các phương thức ánh xạ có sẵn trong Groovy.
| Phương pháp | Mô tả Chi tiết |
|---|---|
| chứaKey() | Kiểm tra xem bản đồ có chứa khóa đã cho hay không. |
| được() | Tra cứu khóa trong Map và trả về giá trị phù hợp. Nếu không tìm thấy mục nào, nó sẽ trả về null. |
| bộ chìa khoá() | Trả về tập hợp các khóa trong Map. |
| đặt() | Liên kết giá trị được chỉ định với khóa đã cho. Nếu Map đã chứa một bản đồping Đối với khóa đó, giá trị cũ sẽ được thay thế. |
| kích thước() | Trả về số lượng bản đồ cặp khóa-giá trịpings. |
| giá trị () | Trả về một tập hợp các giá trị. |
Groovy thí dụ:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
Đầu ra:
Jen
Groovy Đóng cửa
A Groovy Closure là một khối mã được gói gọn trong một đối tượng. Nó hoạt động giống như một phương thức hoặc một hàm, nhưng có thể được lưu trữ trong một biến và truyền đi như bất kỳ giá trị nào khác.
Ví dụ về một closure đơn giản:
def myClosure = { println "My First Closure" } myClosure()
Đầu ra:
My First Closure
Một closure có thể nhận tham số. Danh sách các định danh được phân tách bằng dấu phẩy, với một mũi tên (->) đánh dấu kết thúc danh sách tham số.
def myClosure = { a, b, c -> y = a + b + c println y } myClosure(1, 2, 3)
Đầu ra:
6
Hàm đóng (closure) cũng có thể trả về một giá trị.
def myClosure = { a, b, c -> return (a + b + c) } println(myClosure(1, 2, 3))
Đầu ra:
6
Khi bạn không khai báo danh sách tham số, Groovy cung cấp một tham số ngầm định duy nhất có tên là itCác closure cũng có thể được truyền cho các closure khác, đó chính xác là cách các phương thức tập hợp như... each, collectvà findAll làm việc.
Groovy CÔNG CỤ
Chúng ta sẽ xem xét ba công cụ quan trọng được cung cấp kèm theo... Groovy phân phối:
- groovysh: Thực thi mã một cách tương tác từ dòng lệnh.
- groovyConsole: Một cửa sổ đồ họa để thực thi mã tương tác.
- Tuyệt vời: thi hành Groovy các tập lệnh, theo cách tương tự như khi bạn chạy một tập lệnh Perl hoặc Python kịch bản.
Groovysh
- Một trình thông dịch dòng lệnh.
- Giúp bạn thực hiện Groovy Viết mã tương tác.
- Cho phép bạn nhập từng câu lệnh riêng lẻ hoặc toàn bộ kịch bản.
Ảnh chụp màn hình bên dưới cho thấy groovysh đánh giá các biểu thức từng dòng một.
Groovy An ủi
- Một giao diện Swing hoạt động như một giao diện tối thiểu. Groovy biên tập viên phát triển.
- Cho phép bạn viết và chạy. Groovy Viết mã tương tác.
- Giúp bạn tải và chạy Groovy các tệp kịch bản.
Trong tạp chí Groovy Dưới đây là cửa sổ dòng lệnh, kịch bản được nhập vào khung trên và kết quả hiển thị ở khung dưới.
Groovy
groovy lệnh là bộ xử lý chạy Groovy nó biên dịch mã nguồn thành mã bytecode trong bộ nhớ và thực thi trong một bước duy nhất, do đó không cần giai đoạn biên dịch riêng biệt. Nó cũng có thể được sử dụng để kiểm tra các chương trình và tập lệnh đơn giản. Groovy Các biểu thức được nhập trực tiếp từ thiết bị đầu cuối, như minh họa bên dưới.
Ở đâu Groovy Được sử dụng trong các dự án thực tế
Hầu hết các nhà phát triển đều gặp Groovy Không phải như một ngôn ngữ độc lập mà là lớp kịch bản bên trong một công cụ mà họ đã sử dụng. Biết được vị trí xuất hiện của nó sẽ giúp việc xác định cú pháp ở trên dễ dàng hơn nhiều.
| Công cụ | Làm thế nào Groovy được sử dụng |
|---|---|
| Jenkins | Các pipeline khai báo và pipeline kịch bản được viết bằng... Groovy DSL và thư viện dùng chung đều đơn giản. Groovy các lớp học. |
| Gradle | Các cổ điển build.gradle tập tin là một Groovy kịch bản, đó là lý do tại sao nó đọc gọn hơn so với một Maven POM hoặc một Ant Tệp xây dựng. |
| SoapUI | Groovy Các bước kịch bản và các khẳng định kịch bản điều khiển dữ liệu yêu cầu động và các kiểm tra phản hồi tùy chỉnh. |
| Spock | A Groovy Khung kiểm thử với các khối given-when-then và bảng dữ liệu được sử dụng rộng rãi cho các bài kiểm thử đơn vị JVM. |
| Elasticsearch và Grails | Grails xây dựng các ứng dụng web hoàn chỉnh trên Groovyvà một số công cụ dữ liệu chấp nhận Groovy Dành cho việc lập trình kịch bản tùy chỉnh. |
In kiểm tra tự động hóa Điều này có ý nghĩa gấp đôi đối với các nhóm: cả công việc CI chạy bộ kiểm thử và bản thân các bài kiểm thử đều có thể... GroovyNhư vậy, một ngôn ngữ duy nhất bao gồm cả việc kết nối các luồng xử lý dữ liệu và logic xác nhận.
Groovy Vs. Java
| Groovy | Java |
|---|---|
| Thuộc tính truy cập mặc định là public, do đó một phương thức không có thuộc tính này có thể truy cập được từ bên ngoài lớp và gói của nó. | Thuộc tính truy cập mặc định là package-private, do đó các trường, phương thức và lớp không có thuộc tính này chỉ hiển thị trong phạm vi gói của chúng. |
| Các phương thức getter và setter được tạo tự động cho các thuộc tính của lớp. | Bạn phải tự định nghĩa các phương thức getter và setter cho các trường. |
| Groovy Cho phép thay thế biến bên trong chuỗi được đặt trong dấu ngoặc kép. | Java Không hỗ trợ nội suy chuỗi. |
| Nhập thông tin là tùy chọn. | Nhập thông tin là bắt buộc. |
| Câu không nhất thiết phải kết thúc bằng dấu chấm phẩy. | Mỗi câu đều kết thúc bằng dấu chấm phẩy. |
| Groovy Tự động bao bọc mọi đoạn mã lệnh trong một lớp Script được tạo tự động. | Bạn cần một phương thức main để làm cho một lớp có thể thực thi được. |
Mọi thứ đều công khai và năng động theo mặc định, nhưng @CompileStatic phục hồi Java- Tốc độ và kiểm tra ở mức độ cao. |
Mọi thứ đều được biên dịch tĩnh và kiểm tra trong quá trình xây dựng. |
Huyền thoại về Groovy
| Myth | Reality |
|---|---|
| Groovy Chỉ có thể được sử dụng để lập trình kịch bản. | Nó rất tuyệt vời để viết kịch bản, nhưng nó cũng biên dịch thành các lớp thông thường mà bạn có thể sử dụng trong bất kỳ ứng dụng JVM nào. |
| Groovy Nó tập trung hoàn toàn vào closure, vì vậy nó chỉ đơn giản là một ngôn ngữ lập trình chức năng. | Groovy Nó kế thừa ý tưởng từ các ngôn ngữ lập trình chức năng như Lisp và Clojure, nhưng về bản chất vẫn là một ngôn ngữ lập trình hướng đối tượng. |
| Groovy Chỉ nên sử dụng khi áp dụng phương pháp phát triển dựa trên kiểm thử (test-driven development). | Groovy Nó rất phù hợp với TDD khi sử dụng Spock, nhưng đó chắc chắn không phải là lý do duy nhất để sử dụng nó. |
| Bạn chỉ cần Groovy Nếu bạn muốn sử dụng Grails. | Grails là một framework phát triển web mạnh mẽ, nhưng Gradle, Jenkinsvà Spock đều sử dụng Groovy không có nó. |
Nhược điểm sử dụng Groovy
- JVM và Groovy Thời gian khởi chạy tập lệnh khá chậm, điều này hạn chế việc sử dụng nó cho việc viết kịch bản cấp hệ điều hành nhanh chóng.
- Groovy Nó không được sử dụng rộng rãi bên ngoài các cộng đồng tập trung vào JVM.
- Việc sử dụng nó rất bất tiện. Groovy mà không có IDE nào hiểu được các tính năng động của nó.
- Phân bổ động có thể tạo ra Groovy mã này chạy chậm hơn so với mã tương đương. Java mã trừ khi bạn áp dụng
@CompileStatic. - Groovy Các chương trình có thể cần nhiều bộ nhớ hơn so với các chương trình thông thường. Java chương trình.
- Kiến thức về Java Về cơ bản, đó là một điều kiện tiên quyết.
Khi bạn đã cảm thấy thoải mái với Groovy Về cú pháp, bước tiếp theo tự nhiên là hệ sinh thái xung quanh nó. Củng cố các nguyên tắc cơ bản với... Java hướng dẫnsau đó xem cách Groovy Các tập lệnh điều khiển quá trình xây dựng và triển khai trong Jenkins, so sánh các công cụ xây dựng với Maven và Kiến Apachevà khám phá cách Groovy các khẳng định phù hợp với Selenium và bộ kiểm thử API.














