Tìm thấy một giải pháp tốt hơn cho một vấn đề tại nơi làm việc - tôi có nên ngăn chặn việc đăng đoạn mã trực tuyến không?


18

Tôi nghĩ rằng hầu hết chúng ta, các lập trình viên, đã sử dụng Stack Overflow để giải quyết các vấn đề hàng ngày: tìm kiếm một thuật toán hiệu quả để làm một cái gì đó.

Bây giờ hãy tưởng tượng một tình huống: bạn có một vấn đề cần giải quyết. Googled một chút, tìm thấy một câu hỏi StackOverflow nhưng bạn không thực sự hài lòng với câu trả lời cho đến nay. Vì vậy, bạn phải thực hiện nghiên cứu của riêng mình: bạn cần thực hiện vì bạn muốn nó trong ứng dụng của công ty.

Cuối cùng sau một vài giờ bạn đã tìm thấy giải pháp tốt hơn. Bạn rất vui, bạn đã thêm nó vào cơ sở mã của công ty, sau đó bạn muốn gửi câu trả lời của mình bằng một đoạn mã (chỉ vài dòng) cho câu hỏi bạn đã tìm thấy trước đây để giúp đỡ người khác.

Nhưng chờ đã: phần mềm của công ty là nguồn đóng và bạn đã làm việc với nó trên đồng hồ.

Vì vậy, điều này có nghĩa là tôi không nên đăng câu trả lời ở nơi làm việc cũng như ở nhà cho câu hỏi đó trong phần còn lại của cuộc đời tôi, bởi vì tôi đã giải quyết nó tại nơi làm việc và công ty sở hữu đoạn mã đó?


Tôi nghĩ rằng nó phụ thuộc vào chính sách của bạn công ty. Tôi sẽ xin phép được ở bên an toàn.
MrSmith42

1
Yêu cầu luật sư công ty nếu ông có thể làm cho một teeny ngoại lệ nhỏ trong một trường hợp này ít, và nếu ông nói vâng, anh ấy sẽ là một goodhearted -Công ty luật sư. Điều lạ lùng là anh ấy sẽ chỉ cho bạn biết điều gì là lợi ích tốt nhất của công việc của anh ấy và công ty, đó là "không".
Neil

1
@ MrSmith42 Chắc chắn. Nhưng nói thật là tôi đã phạm tội nhiều lần và tôi đã làm điều đó mà không nghĩ đến hậu quả tiềm tàng cho đến bây giờ. Và có lẽ, tôi không đơn độc với điều này. Đó là lý do tại sao tôi hỏi nó ở đây ... Hay mọi người quan tâm không thể hiện ý tưởng hoặc gửi bất kỳ mã trực tuyến nào trong khi làm việc? Tôi không thể tin được.
Calmarius

5
Một trong những mối quan tâm có thể là nếu giải pháp / thuật toán của bạn mang lại lợi thế cạnh tranh cho công ty, thì việc chia sẻ nó có thể gây ảnh hưởng đến công ty của bạn.
cYn

3
Nếu bạn nghĩ rằng nó sẽ giúp ích cho ai đó, và không cho đi ip công ty, chỉ cần đăng một phiên bản chung của sự việc. Cá nhân, tôi nghĩ rằng nếu giải pháp được lấy một phần từ những người khác mà bạn tìm thấy ở đây, công ty không có yêu cầu về kỹ thuật ở nơi đầu tiên vì nội dung ở đây là cc.
GrandmasterB

Câu trả lời:


15

Phơi bày thông tin công ty độc quyền là điều bạn không bao giờ nên làm. Tuy nhiên, hầu hết các đoạn mã trên Stack Overflow thường trần tục hơn thế. Xem xét ví dụ này :

public static unsafe void SwapX4(Byte[] Source)  
{  
    fixed (Byte* pSource = &Source[0])  
    {  
        Byte* bp = pSource;  
        Byte* bp_stop = bp + Source.Length;  

        while (bp < bp_stop)  
        {
            *(UInt32*)bp = (UInt32)(
                (*bp       << 24) |
                (*(bp + 1) << 16) |
                (*(bp + 2) <<  8) |
                (*(bp + 3)      ));
            bp += 4;  
        }  
    }  
}

Phương pháp này đảo ngược độ bền của số 32 bit, bằng cách hoán đổi các byte xung quanh. Sự khác biệt giữa cách thực hiện này và một cách ngây thơ là cái này chạy nhanh gấp đôi, nhưng bạn chỉ có thể chạy nó trên một máy endian nhỏ. Nó đang được sử dụng trong một chương trình độc quyền, nhưng nó mô tả một kỹ thuật chung và không tiết lộ bất cứ điều gì bí mật.


Điều này có xu hướng đi theo ý tưởng rằng một công ty không sở hữu thuật toán phải không?
Daniel Gratzer

8
Tôi không thể nói điều đó với bất kỳ sự chắc chắn nào, do tính chất byzantine của hệ thống bằng sáng chế.
Robert Harvey

@Jozefg: Giống như bất kỳ phát minh nào, các thuật toán phức tạp và không đủ rõ ràng và được phát triển trong công ty, là một trong số ít những thứ trong thế giới phần mềm có thể "dễ dàng" được sở hữu bởi các công ty. Một ví dụ được trình bày ở đây, đủ đơn giản để nó không thuộc loại đó. Và mặc dù có những trường hợp tư tưởng ban đầu thực sự và nhiều năm nghiên cứu được đầu tư và một công ty nên có toàn quyền sở hữu, phần lớn thời gian hệ thống bằng sáng chế (ít nhất là ở Mỹ) chỉ bị lạm dụng.
DXM

7

Tôi thường xuyên đăng các vấn đề và giải pháp tôi gặp phải trong công việc, về thời gian của công ty với mã công ty *. Tôi đã nói chuyện trực tiếp với người quản lý của mình về vấn đề này và anh ấy cảm thấy rằng giá trị mà công ty nhận được từ thời gian tôi ở đây vượt xa mọi lo ngại về thời gian của tôi nói chung ở đây.

* Tôi thận trọng để làm xáo trộn bất cứ điều gì tôi nghĩ có thể là độc quyền. Mã nội bộ của chúng tôi rất độc quyền, nhưng phần lớn sẽ vô dụng với bất kỳ ai nếu không có phần cứng độc quyền của chúng tôi (mà chúng tôi không bán).

Tôi nhìn vào câu hỏi và câu trả lời của mình khi giúp đỡ bản thân cũng như người khác khi họ gặp phải vấn đề tương tự như tôi.


1

Công ty của bạn sẽ tốn bao nhiêu thời gian hoặc mất thời gian nếu bạn không có tài nguyên này?

Miễn là không có thông tin độc quyền hoặc độc quyền nào được đưa ra, tôi cảm thấy rằng các giải pháp đăng bài mà bạn đã tìm thấy là sự đền bù cho câu trả lời mà bạn đã nhận được.


1

Câu trả lời nằm trong các thỏa thuận pháp lý bằng văn bản mà bạn đã ký với chủ lao động (hợp đồng của bạn) và với quyền tài phán mà theo đó các thỏa thuận đó sẽ được phán quyết. Thông thường, một thỏa thuận pháp lý sẽ liệt kê quyền tài phán có thể hoặc không phải là tiểu bang bạn làm việc (mặc dù có thể là quốc gia bạn làm việc, nhưng không nhất thiết phải như vậy).

Một cuốn sách tuyệt vời là Sở hữu trí tuệ và Nguồn mở của Van Lindberg. Từ P. 185:

Không có hậu quả pháp lý nào cho [một công ty] phản ứng thái quá khi xác định "thông tin độc quyền". Một số tiểu bang giới hạn việc áp dụng PIA khi tác giả hoặc nhà phát minh không sử dụng tài sản của công ty hoặc thời gian để tạo ra tác phẩm mới ... Ngay cả khi giới hạn áp đặt của nhà nước làm mất hiệu lực một phần của PIA, các khía cạnh khác của thỏa thuận thường tồn tại.

Đọc hợp đồng của bạn. Tiết lộ ý định của bạn với chủ nhân của bạn trước khi bạn hành động. Sau đó tiết lộ hành động của bạn cho chủ nhân của bạn. Tiết lộ những điều này bằng văn bản và nhận được phản hồi / sự cho phép của họ khi áp dụng bằng văn bản. Ít nhất đó là những gì cuốn sách nói.

Tôi không phải là một luật sư, chỉ quan tâm đến những thứ này. Đây không phải là lời khuyên pháp lý, chỉ là đề nghị thân thiện. Đối với bản thân tôi, tôi không tình cờ công khai bất cứ điều gì liên quan đến công việc. Tôi đã công khai một số điều sau khi thảo luận dài với sếp của mình, công khai đầy đủ, ghi nhãn giấy phép rõ ràng và một thỏa thuận bằng văn bản về những gì tôi sẽ phát hành, nhưng điều đó rất hiếm.


0

Tôi đã đăng đoạn mã trực tuyến nhưng tôi luôn chỉnh sửa mã để xóa mọi tham chiếu đến công ty, mọi dữ liệu khách hàng và tôi cũng thường đổi tên các trường / biến. Về cơ bản, tôi cuối cùng đã viết lại mã để nó không bị truy ngược lại cho chủ nhân. Phải mất một chút nỗ lực nhưng tôi nghĩ nó đáng giá.

Ngoài khía cạnh pháp lý, bạn cũng phải nghĩ rằng bạn đã được tin tưởng với tài sản của chủ lao động. Nếu bạn tự do đăng các bit của nó lên mạng thì có vẻ như bạn thiếu thận trọng và không thể tin tưởng được. Ngay cả khi bạn đã cho phép một nhà tuyển dụng trong tương lai tìm thấy đoạn trích của bạn từ một công cụ tìm kiếm có thể không biết điều này.

Đây là lý do tại sao tôi có xu hướng sai lầm ở phía thận trọng.

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.