Trình tạo mã tự động [đóng]


13

Một trong những đồng nghiệp của tôi thích sử dụng trình tạo mã tự động, tạo ra số lượng lớn mã được ghi chép kém và rất khó bảo trì.

Là chi phí của việc sử dụng một trình tạo mã có giá trị rắc rối trong bảo trì, để giảm thời gian tạo?

Câu trả lời:


10

Hãy viết lại rằng:

Là chi phí của một trình tạo mã tự động tốt có đáng không?

Đúng.

Là chi phí của một trình tạo mã tự động kém, tạo ra nhiều công việc hơn cho những người khác nhưng tác giả có đáng không?

Tuyệt đối không. Không có lý do cho mã kém. Nếu ai đó muốn khéo léo và sử dụng việc tạo mã tự động thì họ nên dành thời gian để đảm bảo rằng mã được tạo là mã tốt. Nếu không, quan điểm của nó là gì? Nó chỉ đẩy buck xuống và khi nói đến sản xuất mã, buck nên dừng lại ở nhà phát triển đã viết nó.


16
Tôi không đồng ý với quan điểm thứ hai của bạn. Mã được tạo chỉ cần đủ tốt để nó hoạt động và không tạo ra hiệu năng / bảo mật hoặc bất kỳ vấn đề nào khác. Vì bạn không bao giờ nên duy trì mã được tạo bằng tay, điều đó không thành vấn đề nếu nó không tuân theo các tiêu chuẩn mã hóa thông thường của bạn.
Hila

4
Điều đó tốt cho bạn không đồng ý. Tuy nhiên, nếu bạn sẽ dành thời gian để tạo một trình tạo mã thì tại sao bạn không dành thời gian để làm cho mã được tạo ra đẹp? Sau khi được tạo, tôi không biết ai đã tạo ra nó, nó được tạo ra như thế nào, cũng như ý định của nó trừ khi nó có thể đọc / bảo trì như tất cả các phần khác. Đôi khi các máy phát điện chỉ ở đó để tạo điểm khởi đầu chứ không phải là sản phẩm hoàn chỉnh chính thức.
Wheaties

1
Ngoài ra, nếu việc tạo mã là một phần của bản dựng của bạn (nghĩa là nó được tạo lại mỗi bản dựng) thì việc tạo ra mã "đẹp" sẽ không có ý nghĩa gì nhiều. Nhưng nếu bạn định tạo mã một lần và đó là một câu chuyện khác.
Dean Harding

5
Hila, bạn không bao giờ nên duy trì mã được tạo bằng tay, nhưng khi đến ngày bạn cần thay đổi mã đó do yêu cầu mới / thay đổi, bạn cần mã rõ ràng và dễ hiểu để bạn có thể dễ dàng thực hiện các thay đổi cần thiết cho trình tạo , và sau đó tạo lại.
Carson63000

6
Mã được tạo không cần phải đủ đẹp để bảo trì, nhưng nó cần đủ dễ hiểu để gỡ lỗi và xác nhận.
Huperniketes

23

Mã được tạo bởi một máy phát điện không bao giờ nên được duy trì bằng tay. Nếu cần phải thay đổi, thì trình tạo và / hoặc cài đặt của nó phải được điều chỉnh và chạy lại. Xem xét điều đó, không có vấn đề gì nếu mã kết quả là không thể hiểu được và không có giấy tờ miễn là bản thân cơ chế tạo là rõ ràng. (Hãy chắc chắn ghi lại thực tế rằng mã được tạo và vị trí của trình tạo và cách thức hoạt động của nó.)

Tương tự: trong khi bộ xử lý máy tính của tôi luôn thực thi mã máy, tôi không cần biết gì về nó miễn là tôi biết cách tạo mã máy đó bằng ngôn ngữ và trình biên dịch cấp cao. Tôi đã nghe nói rằng GCC đôi khi tạo ra mã máy phụ, nhưng ai quan tâm, miễn là nó hoạt động hoàn hảo. Các lớp trừu tượng hóa cơ sở dữ liệu tạo ra SQL để hoạt động với công cụ DB, nhưng ai quan tâm SQL đó trông như thế nào, miễn là lớp trừu tượng rõ ràng và hoạt động?

Khi được sử dụng đúng cách, trình tạo mã chắc chắn có thể tiết kiệm không chỉ tạo, mà còn chi phí bảo trì.


4
Vấn đề sau đó trở thành, chỉ một người có công cụ, không ai khác làm, và do đó phải tự duy trì mã.
Mumbled

Đây là vượt qua buck. Là nhà phát triển phần mềm, hoạt động kinh doanh của chúng tôi là mã - bất kể chúng tôi sản xuất nó như thế nào.
Steven Evers

12
@David, nếu chỉ có một người có công cụ, bạn không nên sử dụng nó cho một dự án liên quan đến nhiều người.
Matt Olenik

2
@Matt, chính xác. Các trình tạo là một phần của dự án (có thể so sánh với các tập lệnh xây dựng) và nên được lưu trữ trong kiểm soát phiên bản hoặc kho lưu trữ trung tâm tương tự.
Joonas Pulakka

2
@SnOrfus: Tôi nghĩ việc kinh doanh của chúng tôi là sản xuất các sản phẩm hoạt động mà mọi người sẵn sàng sử dụng và mua. Đó là nơi lương của chúng tôi đến từ. Mã chỉ là một phương tiện.
Joonas Pulakka

6

Một trình tạo mã là một loại trình biên dịch. Bạn đừng lo lắng về đầu ra của trình biên dịch đẹp như thế nào, bạn chỉ làm việc với mã nguồn. Sử dụng nó và sau đó sửa đổi đầu ra thường khó hơn so với việc viết từ đầu dưới dạng dễ hiểu bởi con người và có nghĩa là bạn không thể sử dụng lại trình tạo mã mà không phải làm việc nhiều, vì bạn sẽ phải áp dụng cùng thay đổi với cùng một mã không thể hiểu chính xác.

Do đó, chúng có thể ổn nếu chúng là một phần của quá trình xây dựng và được ghi lại như vậy. Đầu vào của trình tạo sau đó là mã nguồn và bất cứ thứ gì nó tạo ra đều là kết quả trung gian, không bị nhầm lẫn.

Tuy nhiên, nếu ai đó đang sử dụng một mã để tạo mã không thể hiểu được, được cho là được sử dụng làm nguồn, thì người đó tạo ra mã xấu. Không thành vấn đề nếu người đó sản xuất mã xấu một cách máy móc hoặc bằng tay, đó vẫn là mã xấu và bạn vẫn gặp vấn đề về chất lượng với nó.

Do đó, bạn cần coi điều này như bất kỳ nhà phát triển nào khác và viết mã xấu. Tôi không biết làm thế nào bạn xử lý điều đó tại cửa hàng của bạn.


3

Từ các nhận xét về các câu trả lời khác, có vẻ như bạn đang hỏi về tiêu chuẩn nhóm hơn là bản thân trình tạo mã.

Một công cụ tạo mã nên được đưa vào dự án và nên (nếu thích hợp) là một phần của quá trình xây dựng. Một ví dụ sẽ có trong nhóm của chúng tôi, chúng tôi sử dụng Subsonic 2.2 mà chúng tôi đã tạo các lớp từ các đối tượng cơ sở dữ liệu được xây dựng.

Exe thực hiện điều này được kiểm tra vào SVN như một phần của dự án để một thành viên mới của nhóm có thể nhận dự án mới từ svn và ngay lập tức xây dựng nó mà không cần phải tìm ra tất cả các lớp cơ sở dữ liệu này đến từ đâu (trong ví dụ này chúng tôi thậm chí không bao gồm mã được tạo trong svn).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.