Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Giới thiệu phong cách phát triển mở

Giới thiệu phong cách phát triển mở

My talk @ MHST 2012 Training @ AUF/CNF Center Hanoi @ 2012

Ha-Duong Nguyen

October 04, 2012
Tweet

More Decks by Ha-Duong Nguyen

Other Decks in Technology

Transcript

  1. Sơ lược Phong cách phát triển mở Nguyễn Hà Dương

    Fedora Ambassador, Mozillian, thành viên HanoiLUG, Ubuntu-VN, Không gian Cộng đồng Hà Nội [email protected] Tài liệu này được phát hành dưới tất cả các điều khoản của giấy phép Creative Commons Non-commercial Share-Like 3.0 Unported
  2. Coding Conventions • Mục đích • Các loại quy ước

    chính: – Quy tắc đặt tên – Programming style (indent style) – Quy tắc thêm thực thể (class, function, …) – Quy tắc đặt version – semantic versioning • Các loại design pattern • Programming paradigm functional → programming
  3. Documentation • Mục đích & mục tiêu • Đối tượng:

    – Tài liệu chỉ dẫn chung – Cho người phát triển – Cho người sử dụng • Chú ý: – Chia theo mức độ sử dụng/tham gia – Theo nhu cầu – Các câu hỏi thường gặp (FAQs) • Nâng cao: literate programming
  4. Documentation Mục tiêu • Dễ hiểu • Đứng trên quan

    điểm của người đọc • Ngắn gọn hoặc chi tiết tùy mức độ • Lý do, dẫn chứng, tham chiếu rõ ràng • Có license
  5. Documentation Documentation cho người phát triển: • Làm thế nào

    để: – Bắt đầu phát triển mã nguồn – Thêm một thực thể – Thêm một tính năng – Xử lý một bug – Tương tác với nhóm phát triển – Trở thành một người phát triển
  6. Documentation Documentation cho sử dụng: • Làm thế nào để:

    – Report một lỗi (bug) – Build và cài đặt – Sử dụng – Đóng gói
  7. Tính tương thích – Compatibility • Mục đích: – Vấn

    đề về broken binary • Các loại tương thích: – Tương thích mã nguồn – Tương thích binary
  8. Các công cụ cho một dự án FOSS • Web

    thông tin • Version control system: Git, Hg, SVN, CVS, … • Documentation, Wiki, … • Kênh thông tin: – Web – IRC – Mailing list: • Announce • User • Dev • Issue tracker: Github, GoogleCode, Bugzilla, …
  9. Chú ý • Nên duy trì một danh sách ý

    tưởng/tính năng (idea/feature list) • Bad code/program != bad person/skills • Sẵn sàng vứt bỏ mã nguồn • Test-driven-development – QA: – Test định nghĩa mục đích – Test định nghĩa thực thể chương trình • Mỗi đối tượng là một thực thể sống