Giải thích đơn giản về CI – Continuous Integration (Tích hợp liên tục)

Giải thích đơn giản về CI – Continuous Integration (Tích hợp liên tục)

Với các bạn sinh viên, khái niệm Continuous Integration (Tích hợp liên tục) là một cái gì đó nghe rất cao siêu và hoành tráng. Mình sẽ nêu khái niệm, sau đó đưa ra một câu chuyện đơn giản để giải thích cho khái niệm này.

Tích hợp liên tục (CI) là phương pháp phát triển phần mềm đòi hỏi các thành viên trong nhóm tích hợp công việc thường xuyên. Mỗi ngày, các thành viên đều phải theo dõi và phát triển công việc của họ ít nhất một lần. Việc này sẽ được một nhóm khác kiểm tra tự động, nhóm này sẽ tiến hành kiểm thử truy hồi để phát hiện lỗi nhanh nhất có thể. Cả nhóm thấy rằng phương pháp tiếp cận này giúp giảm bớt vấn đề về tích hợp hơn và cho phép phát triển phần mềm gắn kết nhanh hơn. Trích từ: http://www.ibm.com/developerworks/vn/library/rational/201301/continuous-integration-agile-development/

Nếu bạn không hiểu ảnh nói gì, hãy đọc câu chuyện nho nhỏ phía dưới

Nếu không hiểu ảnh nói gì, hãy đọc câu chuyện nho nhỏ phía dưới:

Ngày xửa ngày xưa, Nam còn là sinh viên ngành IT của trường B. Mỗi lần code, làm bài tập nhóm đối với Nam là một cực hình. Cả team ngồi phác thảo ra từng module nho nhỏ, sau đó chia ra, mạnh ai về nhà code. Cuối tuần, cả nhóm hẹn nhau ra quán cafe để "ráp code", cóp các phần đã làm qua USB, bỏ vào một project chung. Mỗi lần "ráp code", chương trình không build được, một núi lỗi xuất hiện, cả nhóm phải hì hục mất nguyên buổi chiều để sửa. "Ráp code" trở thành một cơn ác mộng đối với Nam và các bạn trong nhóm.

Ra trường rồi đi làm, Nam đi phỏng vấn xin việc, được nhận vào công ty phần mềm C. Ở đây, mọi người đã biết dùng SVN nên không còn cảnh phải copy code qua lại nữa. Từ "ráp code" cũng biến mất mà thay vào đó là từ "tích hợp". Tuy nhiên, team của Nam vẫn còn làm việc khá ẩu. Mỗi sáng, các thành viên trong team update code từ SVN/Git về, code say sưa, sau đó commit code lên trước khi về nhà.

Đôi khi code không build được, cả team lại nháo nhào "truy tìm thủ phạm": anh Phạm Văn A sửa code mà quên commit file mới lên, chị Lê Thị B sửa connection string, … Đời nhiều khi còn trái ngang hơn, anh A sửa code, chị B sửa code làm phần của Nam chạy bị lỗi, thế là Nam lãnh đủ. Mỗi cuối tuần, cả team lại phải OT để tích hợp và sửa lỗi.

fail

Phần mềm không bán được vì quá nhiều lỗi, release chậm, công ty cũ phá sản, Nam phải đi tìm việc mới. Với khả năng của mình, Nam được nhận vào công ty C. Công ty này khá chuyên nghiệp, có áp dụng Agile, CI – tích hợp liên tục. Nhờ có CI, team của Nam hiện tại không còn gặp những rắc rối khi tích hợp:

  • Mỗi khi có người commit code, hệ thống CI sẽ tự lấy code từ SVN, thực hiện build. Hệ thống sẽ gửi mail thông báo cho toàn bộ thành viên nếu như build bị lỗi. Cả nhóm chỉ việc đọc mail, xem ai là người commit revision đó, và "nắm đầu" thủ phạm, bắt hắn sửa lỗi.
  • Project của Nam được viết Unit Test rất cẩn thận, đầy đủ. Khi anh A, chị B sửa code, commit lên, hệ thống sẽ build và chạy lại toàn bộ các Unit Test. Nếu có case nào bị fail, cả team sẽ nhận được thông báo, và anh A, chị B phải nhanh chóng fix code để các case này pass.
  • Việc tích hợp được diễn ra hàng ngày, nhiều lần trong ngày. Mỗi khi ai đó commit code làm hư build hoặc gây lỗi, cả team có thể giải quyết vấn đề NGAY LẬP TỨC. "Tích hợp" không còn là nỗi ác mộng mà trở thành chuyện thường ngày đối với Nam.

app1

Nói tóm lại, CI – tích hợp liên tục là phương pháp mà các team Agile sử dụng để đảm bảo code của toàn dự án luôn build được, luôn chạy đúng (Pass toàn bộ các test case). Hiện tại, hầu như các công ty phần mềm đều áp dụng CI, thông qua một số framework như: TFS, TeamCity, Hudson, Jenkin, Travis, … Tự trang bị cho mình những kiến thức về CI sẽ khiến bạn có giá hơn trong mắt nhà tuyển dụng nhé.

Nếu muốn hiểu chuyên sâu về Continous Integration và áp dụng, bạn nên xem một bài viết chi tiết. cụ thể về Continous Integration của Martin Folwer: . Ở bài tiếp theo, mình sẽ hướng dẫn các bạn cách áp dụng "tích hợp liên tục" vào project, thông qua Travis-CI và github.

Bài viết gốc: Blog Tôi đi code dạo.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Huy Hoàng Phạm

54 bài viết.
944 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
74 8
SOLID là gì – Áp dụng các nguyên lý SOLID để trở thành lập trình viên code “cứng” Trong quá trình học, hầu như các bạn sinh viên đều được học một s...
Huy Hoàng Phạm viết gần 3 năm trước
74 8
White
58 8
Nhập đề Kinh thư ghi lại rằng, con đường tu chân có 3 cảnh giới: Luyện khí, Trúc cơ và Kết đan. Luyện khí là quá trình rèn thân luyện thể, cho phà...
Huy Hoàng Phạm viết hơn 2 năm trước
58 8
White
53 23
Luận về comment code (Phong cách kiếm hiệp) Comment code luôn là vấn đề gây tranh cãi sứt đầu mẻ trán trong giới võ lâm. Xưa kia, thuở còn mài đít...
Huy Hoàng Phạm viết gần 3 năm trước
53 23
Bài viết liên quan
White
6 0
Tutorial] Viết Unit Test trong C với NUnit Giới thiệu tổng quan về Unit Test Ở trường đại học chắc các bạn đã được học khái niệm về Unit Test tr...
Huy Hoàng Phạm viết gần 3 năm trước
6 0
White
19 6
TDD (Test Driven Development) tức là một phương pháp lập trình chú trọng vào việc test, "viết test trước viết code sau",... rất nhiều người đã thử ...
Huy Trần viết 2 năm trước
19 6
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
54 bài viết.
944 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!