Xây dựng thư viện cần lưu ý những gì?

Hello
Mình đang xây dựng 1 thư viện cho ngôn ngữ c/c++. Mình muốn hỏi xem là khi xây dựng thư viện thì có điểm gì cần lưu ý. Tìm trên mạng không thấy mấy tài liệu về việc viết thư viện như: thiết kế cấu trúc thư viện, nên lập trình theo phương pháp nào, cách tổ chức để thư viện được logic…
Mình định viết xong sẽ dùng VS hoặc cmake để build ra thư viện tĩnh hoặc động
Bạn nào đã có kinh nghiệm về việc xây dựng thư viện cho mình xin ít lời khuyên.
Thank you

thích viết gì thì viết. Miễn là api nó dễ xài, documentation dễ hiểu, chạy nhanh, và quan trọng hơn hết là nó phải chạy đúng :joy:

1 Like

Bạn đang đi ngược hướng, cách thông thường là đang viết một cái app, refactor nó thành các module con. Module nào có thể reuse lại được thì cho thành thư viện.

React cũng thế, trước dùng nội bộ Facebook, sau đó mới public

5 Likes

À, mình không viết app. Mình chỉ build 1 thư viện cung cấp các hàm để giải quyết về 1 vấn đề nào đó. Ví dụ như opencv …

1/ Coding style, phải consistency và dễ debug:


https://google.github.io/styleguide/cppguide.html

2/ Performance: tìm đọc cuốn Effective C++, nếu dùng C++11 & C++14 thì tìm đọc bản mới nhất
3/ Làm xử lý ảnh phải chú ý nhiều đến multithread, dễ nhất và thường dùng nhất là OpenMP, ko thì có thể học std::thread
4/ Nếu làm giao diện thì có thể xài Qt (ko khuyến khích), ceGUI…
5/ Nếu muốn nâng cao, làm design pattern luôn thì tìm đọc cuốn này, tuy nhiên ko khuyến khích đối với những người chưa có kinh nghiệm https://www.amazon.com/API-Design-C-Martin-Reddy/dp/0123850037

1 Like

Đúng như anh Hung nói,
Bạn cứ coi như đang viết một module nhỏ cho một app bự. Nhưng thay vì build luôn với app thì build ra thư viện riêng rồi gắn vô app sau.
Bạn thiết kế module đó dễ xài thì build ra thư viện dễ xài, dễ dùng.

2 Likes

Môn kiến trúc phần mềm trường em không được học nên design pattern em cũng chưa biết gì ạ. Em xem qua thấy có phần đó. Tks a

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?