Tư duy lập trình – Copy code

Trong quá trình phát triển phần mềm, chắc chắn đôi lúc bạn phải tham khảo các source bên ngoài. Vì đơn giản là bạn không phải là một cái máy để nhớ được mọi mọi câu lệnh, không phải là thiên tài mà mọi thuật toán bạn có thể viết được.Thế nên việc tìm search, copy paste lại đoạn source ở đâu đó để phục vụ cho mục đích của mình là điều sẽ xảy ra.

Vậy câu hỏi ở đây là bạn có nên làm như thế ko ? Nếu có thì làm thế nào cho để việc copy source code đó không ảnh hưởng đến sản phẩm bạn đang làm. Trong loạt bài về tư duy lập trình mình xin giới thiệu với bạn bài thứ 2 với tiêu đề “Tư duy lập trình – Copy code”.

Bài 1 : Tư duy lập trình – Tư duy code

Tư duy lập trình – Copy code

Nếu bạn có hỏi tôi là có bao giờ tôi đi tham khảo và copy source nơi khác về apply vào trong dự án mình không? Thì rất nhanh tôi trả lời là có, rất nhiều và khá thường xuyên là khác.

1. Tại sao lại copy source code ?

Tôi thì không cho rằng đó là một điều sai trái vì tôi luôn copy source code vì :

  • Với cùng xử lý thì có thể có rất nhiều cách thực hiện và nhiều hàm có thể đáp ứng được. Vậy nên tôi luôn tìm cho mình cách xử lý tối ưu trên mạng.
  • Tìm kiếm xem đã có update mới nhất cho một đối tượng cần tìm hay method chưa : Cái này thường xảy ra khi có version update mới của Java, hay một thư viện nào đó của Java.
    • Ví dụ : Gần đây tôi mới biết được ở JDK7 trở nên thì đã support việc khai báo đối tượng ngay trong try() để có thể tự động close đối tượng khi đã kết thúc xử lý trong try {} catch.
    • Bạn có thể tham khảo một số bài viết liên quan đến Java File đã được tôi bổ sung xử lý khai báo đối tượng trong try ().Link : https://dinhthehien.com/category/java/java-file/
  • Theo mình việc search source code cũng có một điểm hay là bạn có thể đọc, và so sánh được xem xử lý thế nào tốt hơn và tối ưu hơn đối với bài toán bạn đang làm.
  • Theo mình mọi source code khi đã đưa lên trên mạng thì cơ bản đã chạy được và một phần nào đó nó cũng thể hiện được tư tưởng code của người tạo ra nó. Vì thế rất có thể ta sẽ học hỏi được nhiều hơn các style code độc và lạ.
  • Cuối cùng thì tôi luôn copy source code và biến nó thành source của mình để phù hợp với bài toán tôi cần giải quyết, chứ không bao giờ copy nguyên những gì trên mạng cả.

2. Các nguyên tắc khi phải copy source code

Phải hiểu bài toán đang cần gì

Tất nhiên rồi . Bạn mà không hiểu bài toán bạn làm đang cần gì thì bạn chẳng thể search được ra kết quả mong muốn chứ đừng nói đến việc copy source code đó đúng.

Chính vì thế bạn cần thật hiểu những gì bài toán đặt ra, và những gì cần làm. Phải phân tích xem bạn muốn tìm hiểu cho xử lý nào, muốn dùng đối tượng nào để xử lý ( đôi khi nó nằm ngay trong yêu cầu của Khách hàng )

Đừng quá nóng vội tìm kiếm, hãy thử phân tích và chia nội dung cần tìm ra càng nhỏ càng tốt để phù hợp với xử lý bài toàn bạn đang làm sau đó mới tiến hành tìm kiếm theo từng xử lý nhỏ mà bạn đã phân tích trước đó.

Tư duy lập trình – Copy code

Luôn copy source ở những nguồn uy tín

Hãy luôn nhớ điều này, bạn không thể tin tưởng những nguồn source không uy tín. Tốt nhất bạn đầu bạn hãy tìm hiểu qua trang chủ của các thư viện, tìm hiểu qua Api của chúng.

VD như java thì chắc chắn sẽ là các các trang cho java tutorial , hay php thì chắc chắn nên tìm hiểu ở php tutorial.

Bên cạnh đó bạn có thể đăng câu hỏi lên một số site hỏi đáp, bạn có thể có câu trả lời rất tốt từ các thành viên trong site đó.

Mình thì hay sử dụng http://stackoverflow.com vì đây là trang rất uy tín và các câu trả lời của các thành viên luôn được verify kỹ từ những người có kinh nghiệm. Đặc biệt là trả lời rất nhanh.

Phải thực sự hiểu toàn bộ source mình đã copy

Phải hiểu từng dòng xử lý source code bạn đã copy, đây là yêu cầu quan trọng nhất trong việc tìm kiếm và copy source code tại một nguồn khác. Lý do là vì :

Tất cả source code, dù bạn tạo ra hay copy từ đâu đi nữa thì đối với Khách hàng nó chính là source code bạn tạo ra. Và bạn không thể nói với Khách hàng là đây là source code tôi đi copy từ chỗ khác. Không ai cho phép và thông cảm cho bạn điều đó. Vì thế dù lý do gì đi chăng nữa bạn sẽ luôn phải chịu trách nhiệm về source code ( dứa con tinh thần ) mình tạo ra.

Phải sửa nó lại thành của mình, phù hợp với nội dung xử lý bạn đang cần

Tất nhiên rồi nhỉ, copy source người khác mà cứ để thế mà dùng thì tất nhiên là không được. Vì cơ bản thì nó không thể đáp ứng hết yêu cầu bài toàn mà bạn đang phải giải quyết, hay nó đang thừa xử lý so với những gì bạn cần.

Vì thế sau khi copy thì nhất định phải sửa lại source code cho phù hợp với cấu trúc source bạn đang có, phù hợp với coding conversion của dự án mà bạn đang tham gia, hay phù hợp với yêu cầu đặc biệt nào đó của khác hàng ...

Bạn nên nhớ rằng dù là source code đi copy thì nó vẫn phải mang chính phong cách của bạn. Biến của người khác thành của mình.

Chỉ nên copy đoạn code xử lý nhỏ

Đúng vậy, đừng bao giờ copy cả một đống source mà bạn không thể nào phân tích được nó. Hãy chỉ copy các đoạn code xử lý nhỏ lẻ để bạn dễ dàng quản lý nó. Tốt nhất hãy copy theo từng chức năng xử lý, phân loại nó vào luôn các hàm , class mà bạn đã định nghĩa sẵn và đã phân tích trước đó.

Việc copy từng đoạn nhỏ có ý nghĩa quạn trong giúp bạn không bị copy thừa code hay bỏ qua những đoạn code không cần thiết cho chương trình của mình.

3. Khi nào bạn không nên copy source code

  • Khi bạn không hiểu gì về cái đống source code đó : Như ở phần trên đã nói rồi nhỉ, bạn cần hiểu cặn kẽ nó trước khi copy để sử dụng. Và có thể giải thích ý nghĩa bất kỳ xử lý nào nếu như được yêu cầu.
  • Khi source code đó là cả một thư viện chứ không phải một đoạn codeKhi mà source code đã được đóng thành thư viện thì hoàn toàn các bạn không thể đọc và phân tích được source code. Các bạn không thể biết được trong đó có những gì ? Vì thế chỉ sử dụng khi Khách hàng cho phép và thư viên đó có đầy đủ mô tả dạng Api cho bạn nghiên cứu và sử dụng.

Chúc các bạn thành công!

Hãy đứng trên vai những người khổng lồ.

Rate this post
Đinh Thế Hiển
 

Mình là người thích viết lách, chia sẻ các trải nghiệm trong cuộc sống. Thích thể thao đặc biệt là thể hình. Hãy kết nối với mình nhé.

Click Here to Leave a Comment Below 0 comments