Dạo gần đây xuất hiện software mới Robbie DAO(http://www.robbie.jp/) mà mình cảm thấy khá hay nên có chút ý kiến về nó.
1. Bối cảnh ra đời Để hiểu được tại sao soft này ra đời thì cần phải hiểu về Object/Relational Mapping Tool. Object ở đây tức là chỉ về kiểu ngôn ngữ theo lối Object(Object-Oriented Language) ví dụ Java, C++, còn Relational ở đây chỉ về Relational Database ví dụ Mysql, MSQL, DB2. Các application thời này hầu như đều sử dụng Relational Database để lưu trữ dữ liệu, cho nên trong chương trình phải có đoạn code để connect, xử lý với Database server(SQL code). Tuy nhiên càng phát triển về application kiểu này người ta càng phát hiện ra rằng đoạn SQL code này rất khó maintenance. Ví dụ: Để access vào sql server phải viết hàng loạt đoạn code rồi mới đến được SQL code, bản thân SQL cũng là một ngôn ngữ theo kiểu Data-Oriented viết trong lòng của chương trình viết theo kiểu Object thì sẽ làm đoạn mã chương trình rất khó hiểu, programer Java chưa chắc đã hiểu rõ về SQL language, hay Relational Database sẽ gây khó khăn về việc lập trình... Chính vì vậy đã ra đời software Object/Relational Mapping, tức là tất cả các đoạn mã SQL sẽ mapping thành đơn vị Class, từ đây sẽ sinh ra Object sử dụng trong chương trình. Chương trình sẽ làm được 2 điều: +Trong code của application(Java code) sẽ không còn có SQL code nữa... +Programer cho dù không có hiểu rõ về Database cũng không sao, chỉ cần viết cấu trúc cho CLASS store data là OK.
Loại soft này nổi tiếng là Hibernate(http://www.hibernate.org) đã được phần lớn programmer hưởng ứng và sử dụng rộng rãi. Tuy nhiên Hibernate cũng có yếu điểm như sau: + Setting quá phức tạp, để có thể sử dụng được mất rất nhiều công sức. + Chỉ có thể viết được những đoạn SQL code đơn giản.
2. Robbie DAO(Object/SQL Mapping) Robbie DAO đã ra đời trong bối cảnh như vậy, và tự xưng mình là Object/SQL Mapping(từ này trước đây chưa có thì phải) Tác giả viết soft này vì: + Tại sao mọi việc lại phức tạp lên vậy, cần thiết phải đơn giản. Các loại component soft phải cần thiết phải đơn giản. + Thiết định được tất cả các đoạn mã SQL phức tạp dựa trên XML + Có thể tự động tái tạo được SQL code một cách đơn giản nhất. Ví dụ: Viết sẵn ra một đoạn SELECT code phức tạp nhất để trong việc search. SELECT USER_ID FROM USER_TABLE WHERE NAME LIKE AAA OR (AGE <= 30 AND AGE >= 15)...... Trong chương trình lúc đó chỉ cần search name mà thôi, thì tự động các phần sau không liên quan sẽ bị cắt đi. Cho nên tùy lúc, tùy mục đích có thể tạo ra được SQL cụ thể trên một nền tảng SQL có sẵn. Cái ý tưởng này theo mình thật là tuyệt lắm...
Và cũng đúng như vậy thật, Robbie thật là đơn giản, sáng tạo và rất hiệu quả trong việc tạo SQL code, chúng ta có thể gắn name tag cho các đoạn SQL riêng biệt và lúc sử dụng chúng chỉ cần nhớ cái tên đó là được v.v...
Tác giả hình như là người Nhật... Mình không hẳn cảm thấy tuyệt vì kỹ thuật, hay tính tiện lợi của soft mà là chính về cái tâm ý, tấm lòng muốn tạo ra soft ware mà mục đích của nó thật sự muốn đem lại lợi ích cho người sử dụng ở mức độ nhỏ nhất. Mà phải công nhận trên thế giới về phần này người Nhật thật là giỏi lắm...
Mod_perl, mod_php, cgi Performance Test http://opentechpress.jp/article.pl?sid=06/08/25/0143209&from=rss
Qua kết quả trên có thể thấy rằng giữa mod_perl và mod_php có performance gần như ngang ngữa với nhau. CGI là quả là yếu.
Mixi(SNS) là trang web SNS nổi tiếng ở Nhật cũng sử dụng mod_perl. Tuy nhiên mod_perl cần phải biết cách viết của nó không hẳn chỉ đơn giản là PERL bình thường. Program, biến số được cache trên memory nên trong code program cần phải chú ý...
PHP thì sinh sau đẻ muộn, thiết kế tốt hơn nhiều, lại khá đơn giản cho việc lập trình web.
Tuy nhiên cũng khó nói cái nào hơn cái nào được nhỉ. [mad]
Mình cũng có vài ý kiến góp vui! 1)Về Robbie,người ta còn kêu nó là framework.Trong máy kmzz cũng có nhiều framework như vầy và đều sử dụng lại or import nó mỗi khi viết một project mới!Trong mấy công ty IT thì mấy cái này thường có rất nhiều. 2)Về mấy cái ngôn ngữ lập trình thì cái ra đời sau thường hay hơn cái trước.Bây giờ sau C đã có D,sau Java đã có Ruby...Ko biết mai mốt rồi sẽ ra cái gì nữa đây...!