Agipedia

Lập trình cặp

Lập trình cặp (Pair Programming) là một cách phát triển phần mềm, ở đó hai nhà phát triển cùng làm việc trên chỉ một máy tính, một người lái (driver), một người làm hoa tiêu (navigator). Người lái tập trung vào sách lước – viết cho mã nguồn chạy được, hoa tiêu tập trung vào chiến lược – giúp cho mã nguồn có thiết kế và giải pháp tốt nhất.

Trong lập trình cặp, hai nhà phát triển nên hoàn đổi vai trò cho nhau một cách liên tục (ví dụ cứ 30 phút) để họ giao tiếp tốt, giữ tinh thần và sức khỏe. Các cặp nên tự chọn những người phù hợp với mình nhất cho tác vụ hiện thời.

Một số lợi ích của lập trình cặp:

  • Lập trình cặp giúp chia việc thực thi và suy nghĩ thành hai vai trò khác nhau. Việc chia này giúp các nhà phát triển tư duy tốt hơn cũng như viết mã tốt hơn. Kết quả công việc tốt hơn. Theo một nghiên cứu lập trình cặp tăng 15% năng suất và ít hơn 15% lỗi
  • Lập trình cặp giúp củng cố thói quen lập trình tốt. Khi lập trình cùng người khác, các nhà phát triển có nhiều sức ép hơn để thực hành thói quen tốt
  • Nhà phát triển tập trung làm việc hơn do ít người làm phiền hơn bởi đang làm việc cùng người khác
  • Tạo sở hữu mã nguồn tập thể cho dự án, do đó nhiều người có hiểu biết sâu hơn về dự án
  • Chuyển giao tri thức, kỹ năng nhanh hơn giữa các thành viên

 

TDD – Phát triển hướng kiểm thử

TDD (Test Driven Development – Phát triển Hướng Kiểm thử) là một phương pháp phát triển phần mềm mà các hoạt động lập trình, kiểm thử và thiết kế được đan xem vào nhau.

Quy tắc của TDD:

  1. Viết một kiểm thử đơn vị để mô tả một mặt của chương trình, kiểm thử vừa viết thường là thất bại bởi tính năng đó chưa được cài đặt.
  2. Viết vừa đủ mã nguồn để vượt qua kiểm thử
  3. Tái cấu trúc mã nguồn tới khi thỏa mãn các tiêu chí của mã tối giản (simple design)
  4. Lặp lại các thao tác trên

tdd

Một số lỗi thường gặp

  • Quên không chạy kiểm thử thường xuyên
  • Viết quá nhiều kiểm thử một thời điểm
  • Viết kiểm thử quá lớn khó hiểu
  • Viết những kiểm thử quá
  • Viết kiểm thử cho những đoạn mã hiển nhiên
  • Không duy trì mã kiểm thử. Mã kiểm thử cũng là mã nguồn
  • Chỉ một số nhà phát triển trong nhóm dùng
  • Khi vượt qua kiểm thử lại nghĩ quá nhiều tới tái cấu trúc

XP – Extreme Programming

XP (Extreme Programming) là một phương pháp phát triển phần mềm hướng đến việc nâng cao chất lượng phần mềm và khả năng đáp ứng với thay đổi yêu cầu người dùng. XP là một trong các phương pháp thuộc họ Agile, nó chủ trương đưa ra các bản phát hành thường xuyên thông qua các chu trình phát triển ngắn. Việc này là để nâng cao năng suất và tạo ra những thời điểm để tiếp nhận những yêu cầu người dùng mới. Tác giả của XP là Ken Beck, một kỹ sư phần mềm người Mỹ.

XP tập trung vào việc áp dụng tốt nhất những kỹ thuật lập trình, giao tiếp rõ ràng và làm việc nhóm để tạo những sản phẩm tốt nhất. Một số thành phần và đặc điểm của XP: Lập trình cặp, Rà soát mã nguồn, Kiểm thử đơn vị, Giữ mã nguồn đơn giản và rõ ràng, Sẵn sàng đón nhận các thay đổi, Trao đổi thường xuyên với khách hàng, Trao đổi thường xuyên giữa các nhà phát triển.

Tên gọi Extreme Programming (Lập trình Cực đoan) xuất phát từ ý tưởng phương pháp này đưa các hoạt động lập trình hữu ích lên một mức cao nhất có thể. Ví dụ, việc rà soát mã nguồn là một hoạt động hữu ích, và trong XP thì việc này được diễn ra liên tục, chẳng hạn là thông qua Lập trình cặp.

Các hoạt động trong XP:

  • Viết mã: XP coi mã nguồn là thành phần quan trọng nhất trong quá trình phát triển phần mềm. Không có mã nguồn thì không có sản phẩm chạy được.
  • Kiểm thử: XP nói về việc kiểm thử như sau: “Nếu một vài bài kiểm thử có thể loại bỏ được một ít lỗi thì nhiều bài kiểm thử sẽ loại bỏ được nhiều lỗi”. Do vậy XP khuyến khích việc tiến hành kiểm thử ở tất cả mọi mức độ. Từ Kiểm thử đơn vị cho đến Kiểm thử chấp nhận, Kiểm thử tích hợp,…
  • Lắng nghe: Các lập trình viên cần lắng nghe khách hàng của họ để biết được họ thực sự cần gì.
  • Thiết kế: Cố gắng thiết kế một kiến trúc cho phép loại bỏ phần lớn sự phụ thuộc trong hệ thống, cho phép thay đổi và mở rộng dễ dàng.

Các giá trị trong XP:

  • Giao tiếp: XP chủ trương tạo ra một cách hiểu chung giữa các nhà phát triển về hệ thống mà họ đang xây dựng, tránh các hiểu lầm. XP khuyến khích thiết kế đơn giản, cộng tác giữa người dùng và lập trình viên, giao tiếp thường xuyên và phản hồi liên tục.
  • Đơn giản: XP khuyến khích việc bắt đầu với một giải pháp đơn giản nhất. Các tính năng khác được thêm vào khi cần thiết.
  • Phản hồi: XP khuyến khích các phản hồi đa chiều:
    • Phản hồi từ hệ thống: Thông qua việc kiển thử.
    • Phản hồi từ khách hàng: Thông qua kiểm thử chấp nhận được viết bởi khách hàng và kiểm thử viên.
    • Phản hồi từ nhóm: Nhóm ước tính mỗi khi có các hạng mục mới mà khách hàng muốn đưa vào.
  • Tinh thần dũng cảm: Tinh thần này được khuyến khích thông qua các hoạt động khác nhau.
  • Tôn trọng: Tôn trọng người khác và tôn trọng chính mình.

 

Xem thêm: Giới thiệu eXtreme Programming