Vinova tuyển lập trình viên Mobile & Web ở Hà Nội, lương $300-1000

Article: Tổ chức thư viện của Ruby 1755

ngocdaothanh.myopenid.com 174
Updated over 3 years ago

Có vài câu hỏi người học lập trình ngôn ngữ mới thường thắc mắc ngay:

  • Ngôn ngữ chẳng qua chỉ là qui định về cú pháp như vòng lặp, phân nhánh, khai báo hàm v.v. Muốn viết chương trình thì phải dùng thư viện. Thư viện để ở đâu, quản lí thế nào?
  • Làm cách nào biết hàm này ở thư viện nào? Thư viện nào có những hàm nào? Làm sao để biết chức năng của thư viện đó?

Bài này hướng dẫn cơ bản về tổ chức thư viện của Ruby. Nó mang tính khai phá gợi mở cho người mới học, không chặt chẽ hay tổng quát, đúng hoàn toàn cho mọi trường hợp.

Giả sử cài Ruby 1.8 bằng One-Click Installer vào thư mục C:\ruby. Lúc này thư viện sẽ nằm ở C:\ruby\lib\ruby. Trong thư mục này có 3 thư mục con:

  • 1.8: Chứa các thư viện chuẩn của Ruby.
  • gems: Chứa các thư viện được cài đặt bằng gem.
  • site_ruby: Chứa các thư viện không cài bằng gem.

Vì Ruby là ngôn ngữ script, nên thư viện cũng là mã nguồn. Đôi khi muốn chọc ngoáy thư viện nào đó thì phải đọc mã nguồn của nó. Lúc này phải nhớ thư viện nằm ở đâu!

Gem là gì?

Gem là chương trình dùng để quản lý (install, uninstall, update...) các thư viện cho Ruby. Nó tuơng tự PEAR của PHP, CPAN của Perl, yum của RedHat/Fedora, apt của Debian/Ubuntu. Khi cài thêm thư viện, nên dùng gem.

Cài thư viện trực tiếp từ Internet

Giả sử muốn cài thư viện Ruby on Rails. Từ console gõ:

gem install rails

Chương trình gem sẽ tự động download thư viện rails và các thư viện mà rails phụ thuộc từ Internet rồi cài vào thư mục gems trình bày ở trên.

Muốn xem trong máy đã cài thư viện gì:

gem list

Muốn xoá thư viện rails:

gem uninstall rails

Muốn xem ngoài install uninstall list còn có những lệnh gì, gõ:

gem --help
gem help commands

Cài thư viện offline

Nếu ở nhà không có Internet, có thể ra tiệm tự search rồi download tập tin .gem về nhà rồi cài:

gem install tên_tập_tin_.gem

Cách này rất phiền mà không phải lúc nào cũng thành công. Ví dụ khi muốn cài thư viện A, mà A lại phụ thuộc B và C, thì tìm tập tin .gem ứng với B và C để cài trước, rồi mới cài được A.

Sử dụng thư viện

Nếu dùng thư viện nào thì trong chương trình require thư viện ấy (giống #include của C, import của Java). Ví dụ:

require 'xml/parser'

Nếu thư viện được cài bằng gem thì phải thêm dòng require ‘rubygems’  trước dòng require thư viện đó:

require 'rubygems'
require 'rmagick'

Cài Ruby bằng One-Click Installer, thì rubygems đã được require sẵn, nếu quên require ‘rubygems’ thì chương trình vẫn chạy. Điều này rất nguy hiểm, ví dụ làm project cho khách hàng thì viết trên Windows, nhưng khi giao hàng cho khách thì phải chạy trên Linux, đến lúc giao mới thấy chương trình đếch chạy được.

Xem tài liệu

Đến đây bạn đã biết thư viện nằm ở đâu, quản lí và sử dụng thế nào. Vậy làm sao xem tài liệu về các thư viện có trong máy?

Có vài cách:

  • Khi đã biết tên thư viện, google phát là ra ngay.
  • Xem tài liệu của thư viện chuẩn: (1) vào trang web của thư viện Ruby on Rails: rubyonrails.org (2) chuyển sang trang Documentation, sẽ thấy Ruby có 2 cái chuẩn: core và standard.
  • Với thư viện cài bằng gem, ngay khi cài xong nó đã tự động trích comment trong source code của thư viện để tạo thành tài liệu. Để đọc tài liệu này, gõ
    gem server

    rồi vào địa chỉ http://localhost:8808/ sẽ thấy.

1 2 3 4 

Editors
jishin.myopenid.com 18
id.cntt.tv/[Anonymous] 9
cmpitg.myopenid.com 1
ngocdaothanh.myopenid.com 174

Comments

id.cntt.tv/[Anonymous] 9
over 5 years ago
Phần rss chắc có vấn đề gì đó. Đọc bằng google reader, nó hiện mã utf-8 luôn mà không hiện chữ Việt
id.cntt.tv/[Anonymous] 9
over 5 years ago
Phần nói về thư mục của Linux mình nghĩ k chính xác, vì nếu tự compile thì có thể chỉ định tham số—prefix và nhiều tham số khác nữa.

Vậy nên mình nghĩ chỉ cần viết cho 1 trường hợp là Windows (vì nhiều người dùng hơn, nhất là beginner). Rồi cuối bài có phần ghi chú cho các trường hợp khác, chứ mở ngoặc rồi đóng ngoặc suốt cả bài như hiện tại thì trông xấu xí và có vẻ thiếu sự sắp xếp logic.

Vài ý kiến.

jishin.myopenid.com 18
Updated over 5 years ago
jishin lấy ví dụ Linux ở đây là trên hệ Debian, khi cài mặc định nên dẫn giải ở đây cũng có thể là Debian-specific. Công nhận như vậy có thể gây nhầm lẫn cho người dùng nếu họ dùng các hệ Linux khác hoặc khi compile Ruby lại từ source code.
dangtrieu.myopenid.com 5
over 5 years ago
Trong phần gem có cần thêm “update”? -> gem update rmagick
jishin.myopenid.com 18
over 5 years ago
javi viết:

Trong phần gem có cần thêm “update”? -> gem update rmagick

Khi install thư viện mới bằng gem nó sẽ tự động update các gem trong thư viện hiện tại. Có thể chạy gem update độc lập.

You must login to be able to comment

Uploaded files

No file uploaded yet

You must login to be able to upload

Nhà tài trợ:

Mọi người đều tự do viết bài, sửa bài của người khác, và bình luận ở trang web này. Bạn muốn chủ động tạo bài mới để chia sẻ kinh nghiệm với mọi người? Xin click link ở dưới.

Create new content