2008-09-12 22 views
68

Thách thức tốt để cải thiện kỹ năng của bạn trong lập trình hướng đối tượng là gì?Thách thức/nhiệm vụ/bài tập tốt để học hoặc cải thiện kỹ năng lập trình hướng đối tượng (OOP)

Ý tưởng đằng sau cuộc thăm dò ý kiến ​​này là cung cấp ý tưởng về bài tập nào hữu ích cho việc học OOP.

Thử thách phải là ngôn ngữ bất khả tri nhất có thể, yêu cầu ít hoặc không sử dụng thư viện cụ thể hoặc chỉ là thư viện phổ biến nhất. Cố gắng chỉ bao gồm một thách thức cho mỗi câu trả lời, để phiếu bầu sẽ tương ứng với thành tích của thử thách đó. Cũng sẽ được tốt đẹp nếu một mức độ kỹ năng cần thiết đã được chỉ định, và cũng là lý do đằng sau lý do tại sao nó là một bài tập hữu ích.

Giải pháp cho những thách thức sau đó có thể được đăng dưới dạng câu trả lời cho câu hỏi "Cách ..." và được liên kết đến từ đây.

Ví dụ:

  • Challenge - thực hiện một chồng last-in-đầu-out
  • Skill cấp - mới bắt đầu
  • Lý - cung cấp cho kinh nghiệm làm thế nào để tham khảo đối tượng

Trả lời

39

Building Skills in Object-Oriented Design là sách miễn phí có thể được sử dụng. Mô tả như sau

"Mục đích của cuốn sách này là để giúp nhà thiết kế đầu bằng cách cung cấp cho họ một chuỗi các bài tập thú vị và vừa phải phức tạp trong thiết kế OO. Sách này cũng có thể giúp các nhà quản lý phát triển một mức độ thoải mái với quy trình Các ứng dụng mà chúng ta sẽ xây dựng là một bước trên tầm thường, và sẽ đòi hỏi một số suy nghĩ và thiết kế cẩn thận, hơn nữa, bởi vì các ứng dụng phần lớn là giải trí trong tự nhiên, chúng thú vị và lôi cuốn. các quy trình và hiện vật của thiết kế OO trước thời hạn dự án làm cho thiết kế tốt có vẻ không thể. "

+1

Tôi thứ hai - cuốn sách hay này. –

1

Chắc chắn là một thách thức tốt, mặc dù ít có khả năng truy cập hơn là một nhiệm vụ "bắt đầu từ đầu", là tái cấu trúc một số mã hiện có hoặc không sử dụng thừa kế hoặc không sử dụng rất nhiều sử dụng thừa kế. Quá trình tái cấu trúc sẽ phơi bày rất nhiều lợi ích và gotchas của oop, vì nó chắc chắn có cho tôi trong dự án gần đây nhất của tôi. Nó cũng đẩy tôi hiểu các khái niệm tốt hơn so với các dự án trước đây, nơi tôi đã tạo ra các thiết kế hướng đối tượng của riêng mình.

8

Thử thách: Viết trình bao bọc cho trang web/API dịch vụ của bạn được lựa chọn bằng ngôn ngữ bạn chọn, chưa tồn tại (ví dụ: ZenDesk API trình bao bọc được viết bằng C#). Phát hành trình bao bọc dưới dạng nguồn mở để người khác sử dụng.

Skill Level: Beginner tới Intermediate

Lý do: Để tìm hiểu làm thế nào để ngoại suy một dịch vụ API web của bên thứ 3 vào một tập hợp có ý nghĩa của các đối tượng/lớp học, làm cho việc tái sử dụng các API mà dễ dàng hơn trong ngôn ngữ bạn đã chọn.

4

Sau khi bạn đã tìm hiểu kiến ​​thức cơ bản, hãy nghiên cứu cuốn sách mẫu thiết kế "Gang of four".

http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1221488916&sr=8-1

Đây là một cổ điển, và phải đọc cho bất kỳ coder ai muốn tìm hiểu làm thế nào để sử dụng OO để thiết kế các giải pháp thanh lịch đến các vấn đề mã hóa thông thường.

+5

Với tất cả sự tôn trọng đối với GOF, "Đầu tiên trong các mẫu thiết kế" là một cách đọc thú vị hơn nhiều. – CaptainHastings

+2

GOF là điều tối thượng và chúng ta không nên lo sợ về nó. Đọc nó hàng ngày trước khi đi ngủ. – kta

0

Một tác vụ nhất định có rất ít việc phải làm với "OOP", đó là cách bạn đánh giá nó.

Tôi sẽ xem cuốn sách Tái cấu trúc, chương 3 và đảm bảo rằng không có mùi mã xấu tồn tại trong giải pháp. Hoặc, quan trọng hơn, đi qua những cái mà áp dụng.

Quan trọng nhất, hãy quan sát sự tồn tại của người định cư và getters (chỉ ra rằng bạn đang hoạt động trên các giá trị từ một lớp và không yêu cầu lớp hoạt động trên các giá trị riêng của nó) - hoặc sử dụng "mở rộng" mà không áp dụng Thay thế Liskov Nguyên tắc, những thứ như thế.

3

Lấy một đoạn mã được viết theo thủ tục và cố gắng chuyển đổi nó thành giải pháp dựa trên OOP. Trong quá trình này, hãy tham khảo một cuốn sách về tái cấu trúc và các mẫu thiết kế. Một người bạn của tôi đã có thể thực hiện một bước tiến lớn trong việc hiểu các khái niệm hướng đối tượng một cách chính xác theo cách này. Như với bất cứ điều gì, điều này có thể không làm việc cho tất cả mọi người.

2

Tôi đã tìm thấy CRC cards là khá hiệu quả trong việc học, dạy và xây dựng thiết kế OO tốt.

13

Viết chương trình thử thách từ đầu. Hãy thử để có được một số người (khoảng năm, mà nên được doable) để sử dụng nó. Trả lời các yêu cầu thay đổi của họ.

Điều chỉnh thiết kế của chương trình. Bắt đầu nhỏ, sau đó xem nó phát triển. Quản lý sự tăng trưởng này. Điều này thật khó. Bạn cũng sẽ phải sửa lỗi và duy trì điều đó theo thời gian, mà đối với tôi là một bài học rất có giá trị.

+5

+1 ** Trả lời các yêu cầu thay đổi của họ ** –

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