Đi tới nội dung chính của trang này

Thực đơn

Thực đơn

  • Công ty 
  • Tin tức 
  • Dịch vụ 
  • Công nghệ/Sáng tạo 
  • Tuyển dụng 
  • Thông tin nhà đầu tư 
  • Tính bền vững 
  • Cách thức đại lý mạng 

 

Tốc độ

soi kèo bóng đá tối nay, Ryo Karaki và Naoki Kuroda sẽ xuất hiện trên sân khấu tại “Go Conference 2024”

soi kèo bóng đá tối nay, Ryo Karaki và Naoki Kuroda từ CyberAgent sẽ phát biểu tại Go Conference 2024, một hội nghị công nghệ liên quan đến ngôn ngữ Go sẽ được tổ chức vào Thứ Bảy, ngày 8 tháng 6 năm 2024
Chúng tôi sẽ đóng vai trò là nhà tài trợ địa điểm cho hội nghị này và sẽ chào đón những người tham gia tại AbemaTowers

Giới thiệu về bản trình bày

・Loa
soi kèo bóng đá tối nay / 15:50-16:10 (PHÒNG B)

・Tiêu đề phiên
"Xây dựng Go AST từ sự khác biệt về định dạng Unified Diff tới cờ tính năng công cụ tự động"

・Tóm tắt
Việc phát triển dựa trên thân cây, cho phép phát triển nhanh hơn và rút ngắn thời gian triển khai, yêu cầu nhánh chính luôn sẵn sàng để phát hành chính thức Nếu bạn muốn tránh phản ánh nó trong Sản xuất vì nó đang trong giai đoạn phát triển hoặc nếu bạn cần kiểm tra QA nội dung đã sửa đổi trong môi trường Staging, bạn cần triển khai nó bằng cách sử dụng cờ tính năng Cờ tính năng là một cơ chế cho phép bạn thay đổi hành vi của hệ thống mà không cần thay đổi mã và có thể được bật/tắt chủ yếu thông qua các dịch vụ bên ngoài quản lý các biến và trạng thái môi trường Cụ thể, bằng cách triển khai phân nhánh trước theo giá trị của cờ, chúng ta sẽ có thể thay đổi hành vi của hệ thống tùy thuộc vào giá trị của cờ tính năng đầu vào từ bên ngoài
Quy trình QA chi tiết là cần thiết để đảm bảo chất lượng hệ thống đồng thời với tiến độ phát triển nhanh chóng trong quá trình phát triển dựa trên đường trục Việc kiểm tra một cách có hệ thống bằng CI là cần thiết, nhưng bên cạnh đó, QA trong môi trường Staging cũng vô cùng quan trọng Để đạt được điều này, cần phải triển khai kết hợp các cờ tính năng phù hợp Tuy nhiên, việc triển khai các cờ tính năng sẽ làm phức tạp mã, vì vậy không nên để chúng tồn tại lâu hoặc có nhiều cờ cùng lúc trong quá trình phát triển dựa trên thân cây Do đó, việc đưa và loại bỏ nhanh các cờ tính năng là cần thiết để đảm bảo chất lượng cho QA đồng thời giảm thiểu độ phức tạp của mã Tuy nhiên, để nâng cao chất lượng QA, cần phải thường xuyên kết hợp các cờ tính năng, điều này đặt ra vấn đề tăng chi phí quản lý
Để giải quyết vấn đề này, chúng tôi đã xây dựng cây cú pháp trừu tượng Go (AST) từ thông tin khác biệt định dạng Unified Diff do git diff xuất ra và đã thử tự động đo lường các cờ tính năng bằng cách sử dụng các khác biệt AST Trong phần này, chúng tôi sẽ giới thiệu cách tự động chèn các cờ tính năng phù hợp thông qua quá trình chuyển đổi Unified Diff thành mã Go hợp lệ và xây dựng AST, sử dụng triển khai nội bộ của công cụ tái cấu trúc "gopatch" của uber-go làm tài liệu tham khảo Thông qua phiên này, người tham gia sẽ có thể tìm hiểu các ý tưởng tạo công cụ bằng cách sử dụng Unified Diff và cách sử dụng hiệu quả các cờ tính năng Hơn nữa, có thể áp dụng kiến ​​thức này vào việc phát triển các công cụ thiết bị tự động

-----------------------------------------------------------------------
・Loa
Ryo Karaki / 16:50-17:10 (PHÒNG B)

・Tiêu đề phiên
"Giải thích chi tiết "Sửa lỗi vòng lặp trong Go 122" / Đóng góp một kẻ nói dối tự tạo cho golangci-lint"

・Tóm tắt
Tôi chắc rằng tất cả các bạn đều biết rằng vấn đề chia sẻ bộ nhớ biến vòng lặp đã được giải quyết kể từ Go122 (bản xem trước từ Go121) xem

Hãy tiến thêm một bước nữa: Khi nào bộ nhớ mới được phân bổ cho một biến vòng lặp? Làm thế nào bạn có thể giải thích tại sao hai kết quả đầu ra dưới đây lại khác nhau?

for i := range 3 fmtPrint(&i) // [0x14000112018, 0x14000112030, 0x14000112038] // Địa chỉ khác
for i := range 3 print(&i) // [0x1400010af18, 0x1400010af18, 0x1400010af18] // Cùng địa chỉ


Vòng lặp mới và các công cụ xung quanh nó được triển khai theo cách không gây ra lỗi hoặc làm giảm hiệu suất trong mã hiện có

Trong phần này, chúng tôi sẽ giải thích hoạt động bên trong đằng sau những thay đổi này thông qua việc đọc mã của gói loopvar Hơn nữa, tôi muốn hiểu sâu hơn về các biến vòng lặp bằng cách kiểm tra không chỉ các tài liệu thiết kế và thảo luận cộng đồng mà còn cả những thay đổi hành vi được thực hiện bởi các công cụ ngoại vi và lắp ráp

Ngoài ra, một công cụ nói dối tự chế có thể phát hiện bản sao của các biến vòng lặp không còn cần thiết từ Go122để golangci-lint Trong khi giới thiệu nội dung và cách thức kẻ nói dối này phát hiện, chúng tôi cũng sẽ giải thích cách tạo công cụ phân tích tĩnh trong soi kèo bóng đá tối nay Chúng tôi hy vọng phiên này sẽ hữu ích khi bạn thực hiện bước đầu tiên hướng tới việc tạo ra kẻ nói dối của riêng mình hoặc đóng góp cho OSS


-----------------------------------------------------------------------
・Loa
Naoki Kuroda / 19:05-19:10 (PHÒNG A)

・Tiêu đề phiên
"siêu giải phẫu deadcode"

・Tóm tắt
Cuối năm 2023, soi kèo bóng đá tối nay chính thức sẽ thông báo “Tìm các hàm không thể truy cập bằng mã chết” (), tôi đã giới thiệu một công cụ tên là deadcode để tìm các hàm không dùng đến

Sau khi deadcode được giới thiệu trên blog này, một số vấn đề đã được đặt ra về việc có nên áp dụng deadcode chính thức của soi kèo bóng đá tối nay cho golangci-lint (https://githubcom/golangci/golangci-lint), một công cụ cho phép bạn thiết lập nhiều linters cùng một lúc

Tuy nhiên, golangci-lint đã không chấp nhận mã chết này và thay vào đó từ chối đề xuất này so với một kẻ nói dối có tính năng tương tự được gọi là không sử dụng Bằng cách tìm hiểu thêm về lý do của điều này và sự khác biệt giữa hai loại kẻ nói dối, tôi tin rằng bạn sẽ có thể hiểu được đặc điểm và cách sử dụng của từng loại kẻ nói dối
Bản thân tôi cũng sử dụng mã chết và gửi PR để cấu trúc lại một số mã OSS Tuy nhiên, khi người ta chỉ ra rằng PR là một sự tái cấu trúc không cần thiết, tôi đã học được vai trò của các phương thức trong các giao diện không nên bị phát hiện và xóa bằng deadcode
Vậy dựa trên kinh nghiệm đó mình xin chia sẻ với các bạn một số điểm cần lưu ý khi sử dụng deadcode hiện tại
Cụ thể, trong buổi này chúng ta sẽ thảo luận về các chủ đề sau:
1 Tổng quan về Deadcode và cơ chế nội bộ
2 So sánh mã chết và mã không được sử dụng thông qua vấn đề golangci-lint
3 Những lưu ý khi sử dụng deadcode ở giai đoạn này
Buổi học này đặc biệt dành cho những ai muốn tìm lỗi mã nguồn các hàm không sử dụng trong soi kèo bóng đá tối nay hoặc những người quan tâm đến chính mã tìm lỗi mã nguồn của soi kèo bóng đá tối nay