Chúng ta thường nghĩ rằng điện toán hiện đại được phân chia giữa mã và dữ liệu. Về mặt chức năng, điều này có ý nghĩa khi chúng ta xem xét bất kỳ ứng dụng cụ thể nào. Nhưng khi chúng ta xem xét một kiến trúc microservice tiêu chuẩn, chiều rộng và chiều sâu của bản thân mã không chỉ là một vài tệp văn bản — nó trở thành một tập dữ liệu của riêng nó. Khả năng quản lý cơ sở mã của chúng tôi bị giới hạn bởi sự hiểu biết của chúng tôi về chúng và đã đến lúc chúng tôi sử dụng các công cụ được xây dựng cho dữ liệu lớn và áp dụng chúng vào kỷ nguyên của mã lớn.
Công cụ dữ liệu lớn nổi tiếng nhất là tìm kiếm. Sức mạnh của tìm kiếm giúp tiết kiệm thời gian quý báu. Đồng sáng lập Sourcegraph và giám đốc công nghệ Beyang Liu hiểu điều này khi ông bắt đầu giới thiệu nó với thế giới nhà phát triển. Anh ấy biết nỗi đau khi gia nhập một công ty mới và học một cơ sở mã mới.
Việc hiểu ý kiến và kiểu mã của những người khác nhau có thể khiến bạn choáng ngợp và cơ sở mã phát triển theo thời gian theo những cách khó đoán và khó hiểu. Vì vậy, Liu đã xây dựng Sourcegraph , một công cụ giúp các nhà phát triển làm việc hiệu quả hơn. Nó thực chất là một công cụ tìm kiếm mã.
Với nhận thức sâu sắc rằng mã lớn là dữ liệu lớn, chúng ta có thể sử dụng sức mạnh của biểu đồ tri thức để giúp chúng ta tìm kiếm và hiểu bất kỳ cơ sở mã nào trên thế giới.
Gần đây tôi đã nói chuyện với Liu về hành trình của anh ấy với Sourcegraph và các mục tiêu dài hạn của anh ấy (để nghe toàn bộ cuộc trò chuyện, hãy nghe podcast Dữ liệu nguồn mở ).
Sourcegraph là một công nghệ nguồn mở, miễn phí cho phép bạn tìm kiếm trên toàn bộ cơ sở mã của mình. Mục tiêu chính của nó là giúp giải quyết phần quan trọng nhất trong công việc của kỹ sư phần mềm: hiểu mã hiện có.
Nó làm như vậy bằng cách:
“Đối với hầu hết các kỹ sư phần mềm, phần lớn nhất trong công việc của bạn không phải là viết mã mới. Nó có ý nghĩa và hiểu tất cả các mã đã tồn tại,” Liu nói.
Có hai thành phần cơ bản đối với Sourcegraph: thành phần tìm kiếm và biểu đồ tham chiếu toàn cầu .
Giống như hầu hết các công cụ tìm kiếm, thành phần tìm kiếm của Sourcegraph nhận truy vấn và đưa ra kết quả tốt nhất. Giả sử rằng một nhà phát triển đang tìm kiếm việc cần làm trong một kho lưu trữ cụ thể. Nhà phát triển có thể nhập truy vấn tìm kiếm như thế này repo:facebook/react content:TODO
và nó sẽ tìm kiếm mọi việc cần làm trong thư mục đã chỉ định. Bạn có thể xem một ví dụ thực tế về việc tìm kiếm kho lưu trữ gốc React của Facebook tại đây . Một trong những công nghệ chính để thực hiện điều này là định dạng chỉ mục được tối ưu hóa cho việc tìm kiếm mã.
Khi còn là thực tập sinh kỹ thuật trong nhóm phụ trợ của Google Apps vào năm 2010, Liu đã được truyền cảm hứng từ việc sử dụng Google Code Search của anh ấy — đó là điều đã khiến anh ấy sử dụng định dạng chỉ mục. Một điều khác thu hút sự chú ý của anh ấy là công việc của Russ Cox trong việc triển khai bước đầu tìm kiếm mã nội bộ của Google và việc Han-Wen Nienhuys tái triển khai nó dưới dạng một thư viện mã nguồn mở có tên là Zoekt .
“Trọng tâm của trải nghiệm đó là công cụ Tìm kiếm mã này đã lập chỉ mục tất cả các mã tại Google và giúp mọi nhà phát triển có thể truy cập mã đó, cho dù bạn là thực tập sinh hay kỹ sư cấp cao của Jeff Dean,” Liu nói.
Biểu đồ tham chiếu chung giúp bạn hiểu cơ sở mã và thực hiện các chức năng như “đi đến định nghĩa” và tìm tài liệu tham khảo, yêu cầu ánh xạ toàn bộ cơ sở mã để đưa bạn đến đúng nơi.
Sourcegraph sử dụng nhiều thư viện trình biên dịch và giao thức mở để đạt được điều này và có các giao thức riêng, chẳng hạn như Source Lib và SCIP , phù hợp hơn với yêu cầu của Sourcegraph.
Liu nói: “Tất cả là về việc cung cấp giao diện không phụ thuộc vào ngôn ngữ này cho những người lập chỉ mục dành riêng cho ngôn ngữ này, những người sử dụng kiến thức về trình biên dịch để xây dựng biểu đồ tham chiếu toàn cầu.
Sourcegraph bắt đầu khi Liu có công việc đầu tiên sau khi ra trường, tại Palantir Technologies . Anh ấy đối mặt với một trong những vấn đề mà mọi người đều gặp phải khi bắt đầu công việc mới với tư cách là kỹ sư phần mềm:
Liu nhớ lại: “Tôi được thả vào cơ sở mã lớn, phức tạp này đã qua tay nhiều chủ sở hữu. “Có một chút lộn xộn, và tôi nhớ, vào khoảng cuối tháng đầu tiên đó, tôi đã nhìn lại và tự hỏi bản thân: 'Tôi đã đạt được gì ở đây? Tôi đã dành toàn bộ thời gian của mình chỉ để cố gắng hiểu những gì đang diễn ra trong đoạn mã này và tìm hiểu xem tại sao nó lại được viết như vậy. Có vẻ như phần lớn công việc của tôi chỉ là khám phá mã hiện có và tìm ra cách mà phần tương đối nhỏ mà tôi đang cố thêm vào phù hợp với bức tranh rộng hơn đó.'”
Thời gian của Liu tại Google đã cho anh ấy tiếp xúc với một bộ công cụ nội bộ dành cho nhà phát triển, một trong số đó là Google Code Search, giúp tất cả mã tại Google có thể truy cập được. Trải nghiệm này, cùng với nỗi đau khi mới bắt đầu làm việc tại Palantir, đã thúc đẩy Liu tạo ra thứ gì đó có thể giúp các kỹ sư phần mềm khác tránh được những vấn đề tương tự.
Cuộc trò chuyện với Quinn Slack , một đồng nghiệp của Liu tại Palantir, về việc tạo ra một công cụ tìm kiếm mã phổ biến đã trở thành hành động, từ đó ra đời SourceGraph.
Vào năm 2011, Marc Andreessen đã viết về cách phần mềm đang ăn mòn thế giới . Các dấu hiệu ở khắp mọi nơi: từ món ăn bạn gọi, đến việc đặt một chuyến đi, đến việc kiểm soát hệ thống sưởi trong nhà của bạn.
Nhưng Liu cho rằng chúng ta mới chỉ nhìn thấy phần nổi của tảng băng chìm. Anh ấy nói rằng việc hiểu mã sẽ trở thành một việc hàng ngày.
Anh ấy so sánh nó với việc biết chữ, nói rằng: “Chúng ta từng sống trong một thế giới mà khả năng đọc và viết chỉ giới hạn ở một bộ phận rất nhỏ, ưu tú của xã hội, hạn chế mức độ mà nền văn minh nhân loại có thể phát triển.”
Liu cho biết khi mật mã có sức mạnh đối với hầu hết mọi thứ trong cuộc sống của chúng ta, thì việc hiểu nó sẽ trở thành một yêu cầu phổ biến. Ý nghĩ này đã thúc đẩy niềm đam mê xây dựng Sourcegraph của Liu. Việc tạo một công cụ tìm kiếm mã sẽ cấp cho mọi người quyền truy cập vào hệ sinh thái mã nguồn mở rộng lớn — tất cả chỉ bằng một truy vấn tìm kiếm đơn giản.
Bởi Sam Ramji, DataStax
Sam Ramji là giám đốc chiến lược của DataStax. Là người có 25 năm kinh nghiệm trong lĩnh vực công nghệ tại Thung lũng Silicon và Seattle, Sam đã giúp xây dựng hai thị trường trị giá hàng tỷ đô la (quản lý API tại Apigee và xe buýt dịch vụ doanh nghiệp tại BEA Systems) và xác định lại chiến lược Linux và mã nguồn mở của Microsoft từ "dập tắt" sang "bắt lấy". ." Anh ấy rất am hiểu về nguồn mở, kinh tế nền tảng, phần mềm trung gian và điện toán đám mây, chú trọng vào trải nghiệm của nhà phát triển và phần mềm doanh nghiệp.
Cũng được xuất bản ở đây