# 63: Làm chủ và tái cấu trúc trình biên dịch

Không có gì là lạ khi các team có kỉ luật tốt trong việc viết code lại ít chú ý đến việc biên dịch các scripts(1), do họ nghĩ rằng chúng chỉ là một chi tiết không quan trọng hoặc do sợ rằng chúng phức tạp và đòi hỏi các kĩ thuật cao trong quá trình hoạt động. Mặt khác việc biên dịch scripts không thể duy trì cùng với sự trùng lặp và các lỗi gây ra những vấn đề tương tự như các dòng code không đủ mạnh.

Lý do về việc tại sao những nhà phát triển có tính kỉ luật và có kĩ năng xem biên dịch như là một công việc phụ của họ, đó khi biên dịch scripts ta thường viết bằng một ngôn ngữ khác với mã nguồn. Một lí do nữa đó là build không hẳn là “code”. Những lập luận này xuất hiện trước một thực tế rằng hầu hết các nhà phát triển phần mềm đều ưa thích học các ngôn ngữ mới, và trình biên dịch là thứ tạo ra các sản phẩm để các nhà phát triển và người dùng chạy thử nghiệm. Code sẽ trở nên vô dụng nếu không được xây dựng, và trình biên dịch là thứ sẽ xác định thành phần cấu trúc của một ứng dụng. Nó cũng là một phần không thể thiếu trong quá trình phát triển, ra quyết định cho quá trình xây dựng có thể làm cho code và quá trình viết code đơn giản hơn nhiều.

Sử dụng các đặc ngữ trong quá trình viết scripts sẽ làm cho việc duy trì và quan trọng hơn là cải thiện chúng trở nên khó khăn hơn. Sẽ thật hợp lí nếu ta dành chút thời gian để hiểu đúng cách và tạo ra sự thay đổi. Các lỗi có thể xuất hiện khi ứng dụng được xây dựng sai cách hoặc khi cấu hình biên dịch không đúng.

Hoạt động kiểm thử truyền thống đã luôn được giao cho đội QA (Quality Asurance)(2). Đến bây giờ ta mới nhận ra được nhìn nhận việc kiểm thử như là viết code là điều thực sự cần thiết để có thể mang lại các giá trị theo một cách dễ hiểu hơn. Gần giống như vậy, quá trình biên dịch cần được sở hữu bởi các nhóm có sự phát triển.

Hiểu rõ được quá trình biên dịch có thể đơn giản hóa việc kéo dài tuổi thọ và giảm giá thành cho nó. Trình biên dịch đơn giản cho phép một một nhà phát triển mới bắt đầu một cách nhanh chóng và dễ dàng. Cấu hình tự động hóa trong biên dịch sẽ giúp bạn làm việc một cách hợp lí khi mà rất nhiều người làm việc trên cùng một project, tránh việc xung đột trong công việc. Nhiều công cụ biên dịch có khả năng hỗ trợ bạn chạy các báo cáo trên các dòng code chất lượng tốt và cho phép bạn cảm nhận các vấn đề tiềm năng một cách sớm nhất. Bằng cách dành ra thời gian nghiên cứu về cách biến trình biên dịch thành của mình, bạn có thể giúp đỡ cho mọi người trong nhóm và chính cả bản thân bạn nữa. Từ đó ta có thể tập trung vào việc viêt code và lợi ích hóa cho các bên liên quan, đồng thời làm cho công việc này thêm phần thú vị.

Hãy am hiểu quá trình biên dịch của bạn để biết được khi nào và làm thế nào để thực hiện những sự thay đổi hợp lí. Biên dịch scripts chính là viết code. Chúng thật sự quá quan trọng để giao phó cho một người khác, nếu không vì lí do nào khác ngoài việc ứng dụng chưa được hoàn thành cho đến khi nó được biên dịch. Công việc của chương trình sẽ chưa được hoàn thiện cho đến khi ta cung cấp phần mềm làm việc chính xác cho nó.

💬 Chú thích:

  • (1) Scripts: Script hay Scripting Language (hay Ngôn ngữ Script) chính là Ngôn ngữ kịch bản. Một ngôn ngữ kịch bản là một ngôn ngữ mà không đòi hỏi một bước biên dịch. Ngôn ngữ kịch bản thường thông dịch (Interpreted) thay vì biên dịch.
  • (2) Quality Asurance: QA (Quality Assurance) có nhiệm vụ giám sát, quản lý và đảm bảo chất lượng của việc xây dựng hệ thống, quy trình sản xuất của công ty theo một chuẩn mực chất lượng. Quản lý chặt chẽ các tiêu chuẩn chất lượng trong tất cả các giai đoạn từ khâu nghiên cứu thị trường, thiết kế … cho đến khâu sản xuất ra sản phẩm cuối cùng và bán hàng, tiêu thụ trên thị trường, chăm sóc khách hàng.