Một ứng dụng Web đơn giản sử dụng CGI/Perl sẽ cần những gì?


Với những ai đã từng làm nhiều với CGI và Perl sẽ dễ dàng đưa ra phương án tối ưu nhất.

Còn với những ai mới bắt đầu, hoặc chỉ cần 1 chút thôi chẳng hạn thì có thể dễ bị lạc đường giữa rất nhiều framework hoặc thư viện của perl.

Vừa rồi mình có làm một ứng dụng Web

  • Server Side : CGI sử dụng ngôn ngữ perl. (Tức là các file xử lý viết bằng ngôn ngữ Perl, và được server Apache gọi xử lý theo kiểu CGI (sử dụng module mod_perl).

  • Phía Client là Javascript và HTML.

Mình là người mới hoàn toàn với Perl. Đã từng 1 chút với PHP.

Tuy tìm hiểu thấy mọi người nói là giống nhau. Giống nhau ở đây được hiểu theo nghĩa khi viết 1 xử lý bằng Perl và PHP sẽ tương đối giống nhau.

Ai cũng biết ta không nên chế tạo lại “chiếc bánh xe”, cần chọn công cụ để reuse giúp quá trình thực hiện dự án nhanh và phù hợp nhất với yêu cầu.

Yêu cầu dự án của tôi không cần nhiều, chỉ đơn giản cũng khoảng 20 trang giao diện Web, đọc một số file cấu hình, ghi những gì người dùng phía Client gửi đến ra file. Yêu cầu rất đơn giản, nhưng có 1 điểm, số màn hình sẽ có thể thay đổi trong tương lai mà tôi lại không đủ thời gian để đưa ra một thiết kế from scratch.

Bạn đầu, tôi viết chay bằng Perl trong CGI, phân tách các http request gửi đến để

routing đến xử lý phù hợp. Code ban đầu hoàn toàn là dạng cấu trúc kiểu theo flow xử lý chứ chẳng có tí hướng đối tượng nào.

Rồi tôi tìm thấy CGI::Application (đây là cách viết một module trong Perl), nó cung cấp 1 cách khá hệ thống các thành phần để phát triển một ứng dụng Web sử dụng CGI/Perl. Nhưng xử lý liên quan đến Session, xuất ra view, routing, phương thức debug, các xử lý lỗi đã được module này cung cấp.

Việc cần làm là sử dụng các thành phần đó cho ứng dụng của mình.

Thông thương một ứng dụng web bất kì nào cũng có 3 thành phần theo mô hình MVC. Cái này là kinh điển rồi.

M : (Model) là nói dữ liệu có thể là file, nhưng thường là database.

V : (View) là nói đến phần show ra cho người dùng cuối.(người ta hay gọi là giao diện đó)

C: (Control) là nói đến phần xử lý logic từ yêu cầu của người dùng và data để đưa ra cái view theo mong muốn của người dùng.

Trong cái ứng dụng CGI/Perl của tôi, do CGI::Application đã cung cấp phần khung bao gồm:

  1. Một cơ chế đọc các request và routing đến xử lý mong muốn, cái này giúp việc đưa request đến Control phù hợp.

  2. Một cơ chế xuất view từ temple (cấu trúc giống HTML + có nhúng các phần có thể thay đổi) sử dụng module HTML::Template

  3. Cơ chế sử dụng session.
    Session sử dụng có quản lý của CGI::Application, nó dựa trên CGI::Session nhưng được sử dụng một cách thông nhất bên trong CGI::Application.

Do yêu cầu dự án khá đơn giản, những việc cần làm của tôi chỉ là học cách sử dụng HTML::Template, thêm các xử lý file.

Advertisements

5 thoughts on “Một ứng dụng Web đơn giản sử dụng CGI/Perl sẽ cần những gì?

  1. Hi ! tôi la người mới học perl!
    Tôi rất quan tâm về vấn đề này mà chưa biết triển khai thế nào?
    Bạn có thể triển khai nó theo quy trình được không?
    Thank!

    Số lượt thích

  2. Có phải bạn muốn hỏi tạo ra một ứng dụng CGI/Perl từ lúc cài đặt đến lúc chạy trên trình duyệt?

    Trả lời ngay, thì chỉ có thể đưa một số bước, bạn tìm hiểu thử, mắc đâu có thể comment lại.
    Gỉa sử môi trường là Ubuntu

    Phía server:
    1. Cài đặt Perl
    2. Cài đặt phần mềm máy chủ Web trên máy của bạn (hãy dùng Apache Server)
    3. Cài đặt mô đun mod_perl cho Apache Server (sẽ giup Apache Server chạy được các file viết bằng Perl)
    3. Cài đặt CPAN (Phần mềm quản lý các thư viện viết bằng PERL)
    4. Sử dụng CPAN để cài các gói cần thiết như CGI::Application, HTML::Template…
    Phía Client:
    5. Chạy thử một vài ví dụ về CGI Application.
    Mình sử dụng JQuery, vs HTML thôi.

    Chúc bạn làm được

    Số lượt thích

  3. Thank bạn !
    Tôi đã triển khai được như những gì quy trình bạn yêu cầu đã run và request được từ file html vào file cgi và ngược lại .
    Mình cũng thử làm thêm về mảng connect DBI qua mysql (của xampp luôn) và đã thành công .
    Mình đang làm thử về mảng json và DB_File và thấy rất bối dối về mảng này. bạn có gợi ý gì về 2 vấn đề này không?
    Tôi hiện đang là 1 fresher về Perl.
    Rất cảm ơn bạn!

    Số lượt thích

    • Bạn làm nhanh thật đấy, bạn cũng pro đấy chứ. Trước mình cũng fresher khi làm 1 cái bằng perl này, mất nhiều time lắm. Sau dạo đó, mới note lại được cái này, từ đó đến gio không động vào nữa, cũng không tìm hiểu thêm vì mình C là chủ yếu. :))
      Bạn cứ làm thử, có vấn đề gì thì thảo luận, mình biết ít thôi nhưng thích đi giai quyết vấn đề. =))

      Liked by 1 person

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s