2013-02-06 27 views
7

Tôi đã viết một chương trình cho một công ty. Họ muốn mã nguồn.Phát hành mã nguồn một phần cho khách hàng

Chương trình sử dụng mã mà tôi đã viết theo thời gian cho một số dự án cho một số khách hàng.

Tôi muốn chỉ phát hành mã được chương trình này sử dụng. Vì vậy, nếu một tập tin được chia sẻ được gọi là Utils.pas chứa mười chức năng và chương trình này chỉ sử dụng hai trong số chúng sau đó tôi muốn phát hành một tập tin gọi là Utils.pas chỉ với hai chức năng trong đó.

Mã là Borland Pascal, được viết bằng Delphi.

Bất kỳ ai biết cách tôi có thể thực hiện việc này?

Làm rõ: Tôi không hỏi về cấp phép. Tôi muốn khách hàng chỉ có mã nguồn được chương trình của họ sử dụng và không có gì khác.

+2

Nếu bạn không thể làm điều đó với cấu trúc tập tin của bạn, bạn có thiên đường' t chia nó thành đủ miếng. Đây là mối nguy hiểm khi có tất cả các tệp nguồn. – Blrfl

+0

Nếu mã bạn đã tạo cho chúng sử dụng "thư viện phổ biến" bạn đã tạo, tại sao không chỉ cung cấp tệp .pas cho (các) dự án của chúng và tệp DCU đã biên dịch cho "thư viện chung" của bạn? – LaKraven

+1

Mọi thứ dành riêng cho tất cả khách hàng, đặt nó vào gói thành phần của riêng bạn và chỉ cung cấp cho họ BPL không có nguồn. Sau đó, nguồn còn lại sẽ là khách hàng cụ thể. Tuy nhiên, nếu bạn có mã dành riêng cho một khách hàng mà bạn không muốn một khách hàng cụ thể khác xem, bạn cũng sẽ phải tạo mã BPL cho mã của từng khách hàng. Đây vẫn là một nhiệm vụ lớn, và tôi chúc bạn may mắn nhất. –

Trả lời

2

Tách mã của chúng ra khỏi utils.pas, thành client_xxxx_utils.pas. Tính mức phí thông thường cho công việc để thực hiện việc này, xây dựng lại, thử nghiệm khói, v.v.

Ok, trong trường hợp đó là việc vặt để tìm hiểu xem cần cắt gì ... Biên dịch chương trình và xem đơn vị utils.pas. Thông thường, bạn sẽ có dấu chấm màu xanh ở lề, cho biết bạn có thể đặt điểm ngắt. "Dead Code" sẽ không có dấu chấm màu xanh ở lề, vì mã đó đã bị loại bỏ bởi trình liên kết. Bất cứ thứ gì không có dấu chấm màu xanh, là thứ mà họ không cần.

Để có cách tiếp cận tự động hơn, có lẽ Peganza Pascal Analyzer có thể xác định mã đã chết trong một trong nhiều báo cáo.

Dưới đây là một số câu hỏi liên quan ở đây trên SO với câu trả lời tương tự (một số của tôi!)

Finding unused (aka "dead") code in Delphi

How to "automatically" remove unused units from uses clause?

Các vấn đề liên quan