Datgs' Blog

Quyết chiến quyết thắng !

Archive for the tag “Programming”

Lập trình C với thư viện libpq của Postgresql

1. Mục đích

Tại sao phải lập trình C với thư viện libpq.

  • Thực thi nhanh hơn ngôn ngữ thông dịch (scripts)
  • Bảo mật hơn
  • Che dấu được mã nguồn
  • Ứng dụng lập trình CGI

Các hệ thống thường bắt đầu từ PHP nhưng khi lượng truy cập đồng thời tăng lên họ cần có những tiểu xảo (đại xảo) để tối ưu hóa hiệu năng của hệ thống. Biên dịch sang mã máy là một phương pháp cực kì hiệu quả. Hệ thống sẽ không phải nai lưng để dịch các đoạn script mà chỉ cần nạp chương trình vào bộ nhớ là xong.

2. Cài đặt

  • Cài đặt Postgresql bạn có thể tham khảo bài cài đặt postgresql. Trên windows & ubuntu, việc cài đặt diễn ra hết sức dễ dàng nhờ bộ cài (windows) và shell command (yum của Ubuntu)
  • Thiết lập thư viện libpq trong hệ thống. Với Ubuntu việc này cũng hết sức dễ dàng nhờ shell command.
  • Cập nhật phiên bản thông dich cc, gcc.

3. Lập trình với thư viên libpq

1. Đóng mở các kết nối tới postgresql server

2. Truy vấn, tương tác cơ sở dữ liệu

4. Dịch chương trình thành mã máy

Bạn có thể tham khảo tại http://www.postgresql.org/docs/8.1/static/libpq-build.html

Tuy nhiên, một lưu ý với bạn. Đó là bạn phải chỉ ra các thư viện nằm ở đâu khi dịch. Mỗi hệ điều hành nó được mặc định đặt ở một vị trí khác nhau. Bao gồm:

* Nơi để file libpq-fe.h (khi dịch ra file object)

Shell command

cc -c -I/usr/local/pgsql/include testprog.c

Phần chữ in đậm, bạn phải chỉ đến nới có chứa file libpq-fe.h.

Trên Ubuntu với phiên bản postgresql 8. thì thư mục đó là /usr/include/postgresql

* Nơi để file lpq (khi liên kết các module với libpq)

Shell command

cc -o testprog testprog1.o testprog2.o -L/usr/local/pgsql/lib -lpq

Phần in đậm, bạn phải chỉ đúng nơi có chứa file thực thi lpq

Trên Ubuntu với phiên bản postgres 8. thì thư mục đó là /usr/lib

5. Nguồn tham khảo

Libpq APIs

http://www.postgresql.org/docs/8.1/static/libpq.html

Mã nguồn ví dụ

http://www.postgresql.org/docs/8.3/static/libpq-example.html

Syntax của ngôn ngữ lập trình

Về mặt hình thức thì đúng là các ngôn ngữ giống nhau về syntax. Có thể gọi đó là trào lưu cũng được. Trước đây khi ngôn ngữ C ra đời, nó được trào đón và thực sự vượt hẳn lên trên Pascal trong việc phát triển các hệ thống. Và đẩy Pascal trở về đúng vị trí của nó: một cuốn sách giáo khoa về lập trình. Và các ngôn ngữ sau này, thông thường là Like C.

Những phá cách theo kiểu Python không phải là không được chào đón. Tuy nhiên Like C vẫn được ưa thích hơn cả. Theo chủ quan của anh, và có lẽ cũng là của các lập trình viên khác là có lẽ là vì nó “vừa đủ”. Vừa đủ ngắn và vừa đủ dài (hình thức bao gồm keyword, operator …). C cũng vừa đủ giản đơn cho người mới học lập trình, và cũng đủ phức tạp để thể hiện được ý tưởng của các giải thuật cơ bản. Nó khó học hơn pascal một chút (một chút thôi), nhưng viết mã đơn giản hơn Pascal gấp nhiều lần. Vì vậy lựa chọn C là hợp lý.

Các ngôn ngữ sau này hầu hết được sinh ra từ ngôn ngữ C (tức là xây dựng nên từ các dòng code C).

Về mặt nội dung, mỗi ngôn ngữ lập trình là một công cụ với mục đích cụ thể. Không có ngôn ngữ nào ra đời chỉ để “cho vui”. Sự khác nhau và giống nhau của các ngôn ngữ là ở chỗ “nó được sử dụng để làm gì?”.

Và cũng vì đó là một công cụ, một công cụ dành cho con người sử dụng. Cho nên, không nên nghĩ rằng cái này khó lắm, cái kia khó lắm không học được đâu !!! Mà nên nghĩ rằng cái này chưa biết, cái kia biết rồi. Cũng từa tựa như là việc sử dụng MS Word vậy thôi.

So sánh như vậy là hơi khập khiễng, bởi vì MS Word là công cụ ứng dụng dành cho nhân viên văn phòng (rộng hơn là everybody), còn ngôn ngữ lập trình là công cụ đa năng (và chỉ một số đối tượng được chuyên môn hóa mới có thể tiếp cận được).

Quan trọng nhất của việc sử dụng ngôn ngữ lập trình là tư duy logic, tư duy ở cấp độ con số.

Post Navigation

Follow

Get every new post delivered to your Inbox.