Những điều bạn cần biết khi phát triển sản phẩm mã nguồn mở

Phần mềm mã nguồn mở hay Open-source software (OSS) là các sản phẩm có mã nguồn, mã code công khai và bạn có thể tải xuống nhằm chỉnh sửa, tuỳ biến và sử dụng.

Những điều bạn cần biết khi phát triển sản phẩm mã nguồn mở

Mã nguồn mở hay Open-source là cụm từ được nhắc đến rất nhiều, nhất là từ những năm trở lại đây khi công nghệ Blockchain bắt đầu có những bước chuyển mình nhất định. Có thể đối với các bạn đọc giả không có mấy hứng thú với Blockchain sẽ thắc mắc tại sao mình lại đem Blockchain vào một bài viết không mấy là...liên quan như này. Thật ra thì, nếu như bạn để ý, hầu hết các dự án Blockchain đều được thiết kế theo hướng mã nguồn mở. Những dự án lớn hàng đầu lĩnh vực như Bitcoin, Ethereum hay Solana đều công khai mã nguồn của họ và thu hút triệt để lượng nhà phát triển tham gia. Do đó, có thể nói Blockchain là một ví dụ điển hình cho sự thành công của mô hình này.

Ngoài ra, Linux - hệ điều hành mã nguồn mở phổ biến nhất hiện nay, cũng là một bằng chứng cho thấy điều mô hình này có ích như thế nào không chỉ với nhà phát triển, người dùng mà cả doanh nghiệp. Vậy hãy cùng mình tiềm hiểu xem vì sao mô hình này được ưa chuộng như vậy nhé.

Sản phẩm "Mã nguồn mở" là gì?

Phần mềm mã nguồn mở hay Open-source software (OSS) là các sản phẩm có mã nguồn, mã code công khai và bạn có thể tải xuống nhằm chỉnh sửa, tuỳ biến và sử dụng. Ngoài ra, nếu bạn là một nhà phát triển và có kiến thức về lập trình, bạn cũng có thể đóng góp vào sản phẩm ấy. Một trong những nền tảng phổ biến những để lưu trữ, phát triển và đóng góp vào các dự án mã nguồn mở là Github.

Có lẽ với các lập trinh viên, Github là một công cụ không thể thiếu. Đi ngược về lịch sử, trước khi cụm từ "Mã nguồn mở" trở thành tính từ, cuộc đối đầu giữa Henry Ford và George B. Selden có thể nói là khởi đầu cho sự chào đón với khái niệm chia sẻ các thông tin kỹ thuật của một sản phẩm.

The Father Of All Patent Trolls
This article is by Richard Snow, the former editor of American Heritage and author of I Invented the Modern Age: The Rise of Henry Ford. George B. Selden. (Photo credit: Wikipedia) There has been much in the press lately about the depredations of “patent trolls,” companies founded not to produce any…

Vì sao mô hình mã nguồn mở được ưa chuộng?

Trước khi mã nguồn mở được áp dụng rộng rãi như ngày nay, đối với một sản phầm phần mềm, hay thậm chí phần cứng, thì mã nguồn của sản phẩm cũng giống như là công thức nấu ăn của một nhà hàng vậy. Nhiều công ty tận dụng điều đó và độc chiếm thị trường. Điều đó đem lại nhiều lợi ích cho một sản phẩm về mặt doanh thu và thị phần. Tuy nhiên, điều này chỉ là ngắn hạn. Với tốc độ phát triển vượt bật trong ngành công nghệ, "công thức gia truyền" không sớm thì muộn cũng sẽ bị vượt mặt bởi các thiết kế điên rồ và tân tiến khác.

Ở phía người dùng và nhà phát triển, việc sử dụng một sản phẩm hay phát triển ứng dụng trên một hạ tầng hoặc hệ điều hành mà bạn không biết mã nguồn dẫn đến rất nhiều khó khăn. Cũng giống như việc bạn ăn một món ăn mà không biết cách chế biến của món đó như thế nào, có đảm bảo an toàn vệ sinh thực phẩm hay không hay có cần thêm mắm thêm muối gì cho ngon thêm hay không. Việc phát triển sản phẩm theo mô hình mã nguồn mở đem lại rất nhiều lợi ích về mặt cộng đồng, tốc độ, minh bạch và thậm chí là marketing. Một điểm nữa mà mình rất thích đó là sự nhiệt tình và năng nổ của cộng đồng đối với các dự án mã nguồn mở đã có chỗ đứng nhất định. Lấy ví dụ điển hình như thư viện React của Facebook: https://github.com/facebook/react

Thư viện React của Facebook trên Github

Là một công cụ được sử dụng rộng rãi bởi vô vàn dự án trên thế giới, React có một cộng đồng đồ sộ chỉ cần thông qua các số liệu trên Github. Nhờ vậy, khi có bất kỳ lỗi và vấn đề nào liên quan tới hệ sinh thái của React, bạn chỉ cần dể lại câu hỏi ở phần Issues, sẽ ắt có các lập trình viên khác có kinh nghiệm hoặc đã gặp vấn đề tương tự vào hỗ trợ bạn. Ngoài ra, như trường hợp của React, vì có mã nguồn mở, các lập trình viên cũng dễ dàng thêm bớt các tính năng mới và các thư viện hỗ trợ nhằm phục vụ mục đích phát triển phù hợp.

Số lượng user khủng khiếp của React

Những lưu ý trước khi bạn quyết định "mã nguồn mở" sản phẩm

Sau khi đọc những phần trên, bạn sẽ có một cái nhìn màu hồng về việc áp dụng mô hình này tất cả sản phẩm của bạn. Mặc dù có nhiều mặt lợi, tuy nhiên, cũng như bất kì chủ đề nào khác, Open-sourcing cũng có những điểm đáng quan ngại.

Lấy từ kinh nghiệm cá nhận, mình thấy các sản phẩm mã nguồn mở yêu cầu một đội ngũ quản trị viên có kinh nghiệm đối với việc quản lý sản phẩm và cộng động. Gọi là mã nguồn mở nhưng không có nghĩa tất cả phần lớn nhỏ trong code của bạn đều phải được công khai. Việc đưa code của dự án đến với cộng đồng nhằm mục đích tăng tính minh bạch hơn như mình đã nói ở trên. Ngoài ra, về bảo mật, việc công khai mã nguồn cũng sẽ khiến dự án của bạn dễ bị dòm ngó bởi nhiều tin tặc hơn. Tuy nhiên, với sức mạnh của cộng đồng và khả năng quản lý, mình nghĩ đây không hẳn là vấn đề lớn.

Sushiswap vs Uniswap

Về trường hợp thực tế của việc mã nguồn mở đem đến rủi ro cho sản phẩm, đó là hai sàn giao dịch phi tập trung UniswapSushiswap. Cho các bạn không biết, Sushiswap là một bản fork của Uniswap (hiểu nôm na là được xây dựng trên mã nguồn của Uniswap) và vì cũng có những cải tiến mới lạ nên Sushiswap lại trở thành đối thủ cạnh tranh trực tiếp của Uniswap. Điều này thường xảy ra khi thị phần của bạn bị tranh giành bởi chính bản sao của bạn.

Sau bài viết này, hi vọng các bạn cũng đã nắm được phần nào khái niệm "Mã nguồn mở".