Dự án Grails được gây cảm hứng từ sự thịnh hành của “Ruby on Rails” – framework đã đem lại nhiều thay đổi mới mẻ trong cách thức lập trình web. Với Ruby on Rails (RoR), những công việc lặp đi lặp lại thường thấy được tự động hóa, một số mô hình và giao diện có thể được tự phát sinh, và môi trường lập trình được hỗ trợ tối đa. Tất cả những điều đó đã nhanh chóng đưa RoR lên một vị trí được trọng vọng trong thế giới programmer.
Với mong muốn có một “RoR” kết hợp được sức mạnh những nền tảng Java kinh điển: Spring, Hibernate, SiteMesh… Peter Ledbrook và đồng nghiệp đã quyết định xây dựng “Groovy on Grails”. Một framework đã dần thành hình và phát triển mạnh mẽ từ đó.
Sức mạnh của Grails có thể tóm gọn lại ở những yếu tố sau:
- Tăng năng suất lập trình: Grails giúp tự động hóa những công việc và các câu truy vấn đơn giản(dynamic finder), hỗ trợ scaffolding, và hệ thống taglib giúp lập trình viên xử lý html một cách rất dễ dàng.
- Giản dị hóa những công nghệ lập trình như Spring, Hibernate: Giúp cho việc học và sử dụng dễ dàng với những ứng dụng đơn giản; mà vẫn đảm bảo tính linh hoạt, khả chuyển của những công nghệ gốc khi cần thiết.
- Quen thuộc với lập trình viên Java: lập trình viên có thể lập trình bằng hai ngôn ngữ Groovy và Java, thậm chí trộn chung lẫn nhau chương trình cũng vẫn chạy. Điều này giúp rút ngắn thời gian học Grails cho Java-developer.
- Cộng đồng sử dụng Grails rất tích cực: Mọi vấn đề nảy sinh đều được nhanh chóng thông báo; các phiên bản Grails cũng liên tục được cập nhật để đáp ứng kịp thời các nhu cầu của môi trường công nghiệp.
- Thư viện plug-in phát triển phong phú: Cơ chế plug-in của Grails cho phép người sử dụng có thể dễ dàng mở rộng các tính năng của web-application, đồng thời cũng có thể public các plugin này để chia sẻ với cộng đồng. Ví dụ, cần gửi mail từ server? Chỉ cần cài đặt plugin Mail , cấu hình mail server và thêm 1 dòng code gọi service!
- Groovy: một ngôn ngữ độc đáo và thú vị.
Read More...
I.Giới thiệu về Swagger
Swagger là một công cụ đơn giản nhưng mạnh mẽ để tạo document cho các dự án sử dụng RESTful API. Với hàng ngàn developer tham gia hỗ trợ phát triển Swagger ở hầu hết các ngôn ngữ lập trình và các môi trường deloy.
Phiên bản mới nhất hiện tại là 2.0. wagger 100% open source.
Read More...
Có lẽ đa số chúng ta đều quen với việc hoàn tất chương trình, chạy thử, thấy sai, tìm và sửa lỗi, chạy thử... Điều này không có gì là sai trái, tuy nhiên nếu đợi đến khi hoàn tất chương trình rồi mới chạy thử, thì việc tìm và sửa lỗi sẽ tương đối vất vả. Quá trình này sẽ đơn giản hơn, nếu bạn có thể chia chương trình thành từng phần nhỏ, và test chúng một cách riêng rẽ. Đó là ý nghĩa của unit test.
Tuy nhiên, để unit test hiệu quả, chúng ta cần có các công cụ để tiến hành nó một cách tự động. Các công cụ này gọi là unit test framework. Với Java, framework nổi tiếng nhất là JUnit. JUnit là một framework đơn giản dùng cho việc tạo các unit testing tự động, và chạy các test có thể lặp đi lặp lại. Nó chỉ là một phần của họ kiến trúc xUnit cho việc tạo các unit testing. JUnit là một chuẩn trên thực tế cho unit testing trong Java.
Read More...
Bài viết dưới đây hướng dẫn cách tạo file dịch trong Yii2 bằng console giup app của ta được hoàn thiện ngôn ngữ 1 cách chính xác và nhanh nhất
Khi xây dựng application sẽ tốt hơn nếu hướng suy nghĩ tạo 1 ứng dụng toàn cầu,đa ngôn ngữ ngay từ khi bắt đầu . Nó sẽ tiết kiệm được rất nhiều thời gian và vấn đề phát sinh khi app của bạn được phát triển .
Read More...
Những người phát triển phần mềm như chúng ta hiểu rõ rằng để có thể tích hợp được 1 hệ thống đầy đủ các loại thành phần chạy thống suốt với nhau là 1 điều không hề dễ dàng. Để các hệ thống IT làm việc và giao tiếp được với nhau, chúng ta cần xây dựng giao thức và nó sẽ làm tiêu tốn khá nhiều thời gian của bạn.
Lý do đó, người ta đưa ra khái niệm chuẩn Enterprise Integration Patterns, giới thiệu, mô tả và hướng dẫn xử lý các vấn đề thường gặp trong việc tích hợp hệ thống. Tuy nhiên, để tuân theo EIP cũng không hề dễ dàng. Chúng ta có một cách khác để tuân theo chuẩn EIP là sử dụng framework tích hợp Apache Camel, với mục tiêu chính là làm cho việc tích hợp này dễ dàng hơn. Camel cung cấp rất nhiều component cho chúng ta sử dụng và sử dụng khái niệm route để thực hiện việc định tuyến luồng dữ liệu khi tích hợp các thành phần lại với nhau. Chúng ta sẽ tìm hiểu dần dần các khái niệm và cách thức sử dụng nó sau đây.
Read More...
Hãy thử tưởng tượng rằng bạn đang thành lập 1 hệ thống website thương mại điện tử (thu thập thông tin người dùng, ...), có liên quan tới nhiều đơn vị dữ liệu khác nhau. Nếu có 1 hệ quản trị cơ sở dữ liệu nào đó hoạt động nhanh hơn SQL Server nhiều lần, miễn phí, dễ giám sát và xử lý, toàn bộ hệ thống ứng dụng của bạn thì MongoDB chắc chắn sẽ là sự lựa chọn không thể tốt hơn.
Bài viết này sẽ tóm lược giới thiệu cơ bản về mongodb và cách truy suất mongodb trong java.
Read More...
Khi làm việc với các project thì việc kết nối DB là không tránh khỏi. Có nhiều cách để app có thể giao tiếp vs DB và cũng tùy thuộc và dạng app mà bạn làm việc. Với JEE, bạn có nhiều cách như Spring Data JPA, Hibernate. Nổi tiếng và thông dụng nhất vẫn là Hibernate, tuy nhiên nếu bạn thích một kiểu giao tiếp mới DB ngoài Hibernate thì MyBatis là 1 lựa chọn không tồi.
Read More...
Trong quá trình phát triển các dự án, điều cần thiết là tái tạo được nhiều môi trường dev và test, mô phỏng được môi trường triển khai của dự án, như vậy sẽ hạn chế rủi ro và lỗi xảy ra lúc triển khai.
Chúng ta có thể áp dụng Docker để tạo các môi trường khác nhau theo đúng mục đích của mình.
Bài viết này sẽ hướng dẫn cách tạo môi trường web php 5.3 trên ubuntu 12.04
Read More...
Trong bài này sẽ giới thiệu về JavaFX và Demo một chương trình Login để có cái nhìn sơ bộ về nền tảng này!
Read More...
Khi làm việc với các dự án lớn liên quan đến các hệ thống thời gian thực, việc theo dõi và báo cáo tình trạng của hệ thống là vô cùng quan trọng. Việc theo dõi và gửi các thông số cho quản trị viên nắm được tình hình hệ thống tốt nhất mà không cần can thiệp và phân tích log trên server.
Phải xác định rằng, thành phần theo dõi và gửi báo cáo sẽ hoạt động như là một module độc lập tách rời khỏi hệ thống. Chúng ta có 2 cách:
- Cung cấp các service để hệ thống chính ghi lại các thông số trong quá trình hoạt động. (Cách này khi implement thì sẽ thay đổi cấu trúc module chính nếu thay đổi cơ chế theo dõi từ module monitor).
- Thông qua công nghệ Spring AOP, cho phép module monitor tự gắn kết và module chính mà không làm thay đổi cấu trúc của nó bằng cách lắng nghe theo class hoặc bắt các luồng dữ liệu được xử lý trong module đó.
Vì đây là hướng dẫn ban đầu nên mình chỉ đơn giản làm theo cách 1.
Bên cạnh việc theo dõi, chúng ta sẽ có các job cài đặt sẵn cho mục đích báo cáo như hằng ngày, hằng tuần…
Read More...