Save 37% off PRO during our Black Friday Sale! »

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

14a93c30b43b559be64bafe7baced0c3?s=128

Ha-Duong Nguyen

October 04, 2012
Tweet

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 cmpitg@gmail.com 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 • Documentation • Compatibility • Issue Tracker

    • Summarization
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. Issue Tracker • Mục đích • Cách sử dụng –

    Milestones – Assignees
  10. 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, …
  11. 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