Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Làm thế nào để đọc - hiểu một project có hàng nghìn dòng

  1. #1
    Ngày gia nhập
    10 2010
    Nơi ở
    Đại học Bách Khoa Hà Nội
    Bài viết
    45

    Mặc định Làm thế nào để đọc - hiểu một project có hàng nghìn dòng

    Câu hỏi như ở tiêu đề, khi muốn học hỏi thêm mình thường tải về các source code mà các lập trình viên đi trước share trên mạng. Những project như vậy thường có đến hàng nghìn dòng, với hàng chục file mã nguồn, với nhiều lớp, nhiều hàm mà mình chưa biết.
    Vậy làm thế nào để đọc, hiểu code và ứng dụng vào chương trình của mình. Thường thì mình đọc lướt qua code, cố gắng hiểu nhưng nhìn lại cả project, chỗ nào cũng thế @@, bỏ cuộc sớm và tự tìm cái code ngắn hơn. Ai có kinh nghiệm về vấn đề này có thể chia sẻ được không?
    Chẳng biết mình muốn cái gì nữa :v

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Tùy theo loại code, chứ hỏi như bạn thì 'chúa cũng phải lắc đầu' thôi. Về cơ bản, Kevin nghĩ bạn cần có một vài thứ để có thể hiểu code của người khác.

    1. Kinh nghiệm: Viết nhiều code, sử dụng nhiều loại phần mềm
    2. Kiến thức nền tảng và phải phong phú (sẽ là điểm chính)
    3. Hiểu được 'chuẩn viết code của thế giới'
    4. Khả năng về tiếng anh

    Nói đơn giản là: Không phải code nào cũng dễ hiểu, muốn hiểu được bạn cần hiểu người viết code đó...
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  3. #3
    Ngày gia nhập
    09 2012
    Bài viết
    24

    Thường những lập trình viên có kinh nghiệm, người ta sẽ dùng design pattern để viết cho nhanh và gọn, nên người chưa có kinh nghiệm đọc sẽ ko hiểu. Do đó lời khuyên của mình là bạn nên học thật kỹ data structure của ngôn ngữ, biết design pattern, và xem thật kỹ comment hoặc documentation kèm theo file

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

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    HCM
    Bài viết
    365

    Trích dẫn Nguyên bản được gửi bởi iexplore Xem bài viết
    Câu hỏi như ở tiêu đề, khi muốn học hỏi thêm mình thường tải về các source code mà các lập trình viên đi trước share trên mạng. Những project như vậy thường có đến hàng nghìn dòng, với hàng chục file mã nguồn, với nhiều lớp, nhiều hàm mà mình chưa biết.
    Vậy làm thế nào để đọc, hiểu code và ứng dụng vào chương trình của mình. Thường thì mình đọc lướt qua code, cố gắng hiểu nhưng nhìn lại cả project, chỗ nào cũng thế @@, bỏ cuộc sớm và tự tìm cái code ngắn hơn. Ai có kinh nghiệm về vấn đề này có thể chia sẻ được không?
    Đơn giản thôi , hướngtiếp cận nhự sau :
    Bước 1 - Đọc hiểu requirement để nắm được chức năng, chạy thử xem từng chức năng chính, mục đích là nắm vững các chức năng chính.Tóm lại là trả lời được câu hỏi WHAT ( chương trình này dùng để làm gì, có các chức năng chính nào )

    Bước 2 - Đọc tài liệu thiết kế : Thiết kế tổng thể, thiết kế chi tiết, framework guideline để hiểu xem ứng dụng thiết kế theo domain nào, dùng các patern nào. Ví dụ nếu tài liệu thiết kế có ghi là viết theo MVC thì có thể tìm hiểu thêm về MVC nếu chưa biết. Tóm lại là để trả lời câu hỏi HOW ( chương trình được thiết kế như thế nào ). Giả sử coder không cung cấp tài liệu thiết kế thì ngoài 1 số tài liệu đi kèm nếu có, có thể căn cứ vào folder structure, source file naming convention để biết app được thiết kế theo kiến trúc nào để từ đó có thể tự build tài liệu thiết kế ! Cần thiết thì nhờ người có kinh nghiệm xem hộ xem ứng dụng được thiết kế như thế nào.Với lập trình viên trên 5 năm kn thì đọc lướt qua code và cách tổ chức code là có thể hiểu được 80% thiết kế! Trường hợp lập trình viên viết không theo 1 chuẩn nào cả thì phải tự vẽ flowchart tất cả các main function liên quan đến 1 chức năng chính cần chạy , giả sử đây là flow của 1 chức năng login :
    UI.ValidateControl --> Bussiness.VerifyUser-->DAO.CheckUser

    Có thể dùng 1 số diagram như sequence diagram để mô tả !

    Bước 3 : Đọc và chạy thử code chi tiết ( nếu cần thì debug step by step ) trong các main function căn cứ theo tài liệu thiết kế và flowchart+ requirement ở trên , nếu không hiểu hoặc thấy code không match thiết kế thì quay lại bước 2 để xem lại .
    Đã được chỉnh sửa lần cuối bởi Haipt : 23-02-2013 lúc 03:45 PM.

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    Trích dẫn Nguyên bản được gửi bởi iexplore Xem bài viết
    Câu hỏi như ở tiêu đề, khi muốn học hỏi thêm mình thường tải về các source code mà các lập trình viên đi trước share trên mạng. Những project như vậy thường có đến hàng nghìn dòng, với hàng chục file mã nguồn, với nhiều lớp, nhiều hàm mà mình chưa biết.
    Vậy làm thế nào để đọc, hiểu code và ứng dụng vào chương trình của mình. Thường thì mình đọc lướt qua code, cố gắng hiểu nhưng nhìn lại cả project, chỗ nào cũng thế @@, bỏ cuộc sớm và tự tìm cái code ngắn hơn. Ai có kinh nghiệm về vấn đề này có thể chia sẻ được không?
    tớ cũng cùng quan điểm với a HaiPT,
    đọc tài liệu trước
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

Các đề tài tương tự

  1. Dòng code "public IList<baocaovatttuDTO2> laydsbaocao()" có ý nghĩa như thế nào ?
    Gửi bởi biencute trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 27-07-2012, 04:59 PM
  2. Cách Chuyển project C++ sang COM project và DLL như thế nào?
    Gửi bởi onetalomila trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 07-04-2011, 08:52 PM
  3. ý nghĩa của các chức năng khi chọn project để tạo là gì vậy ?
    Gửi bởi langtu072 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 29-11-2010, 10:34 PM
  4. Tìm công nghệ mới của .net để làm project
    Gửi bởi -Xme- trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 15-03-2010, 10:15 AM
  5. cho em hỏi về ý nghĩa các project
    Gửi bởi koutarou trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 28-05-2008, 08:59 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn