Làm thế nào để trở nên giỏi trong phân tích và thiết kế hướng đối tượng (OOAD)?


26

Trở thành một nhà phân tích và thiết kế giỏi có thể giúp ích rất nhiều cho nhà phát triển. Nhưng chắc chắn có những trở ngại cho việc này. Không phải ai cũng quan tâm đến OOAD, và không phải ai quan tâm cũng biết con đường đó. Một OOAD tốt có nên biết nhiều ngôn ngữ OO không? Hay anh ấy / cô ấy có dự án thất bại? Làm thế nào một người có thể trở thành một OOAD tốt?

Câu trả lời:


34

Những người không quan tâm đang tạo ra những trở ngại của riêng họ. Tôi không thể lo lắng về điều đó.

Đối với những người không biết đường dẫn, tôi đề nghị:

  • Tôi thấy rằng mọi ngôn ngữ OO tôi học đều giúp tôi trở thành nhà phát triển OO tốt hơn. Nhiều thứ có thể được mang từ mỗi ngôn ngữ sang ngôn ngữ khác, miễn là bạn tìm thấy cộng đồng.
  • Bạn học được nhiều điều từ thất bại hơn là từ thành công, nhưng hãy cố gắng làm điều đó vào thời gian của riêng bạn. Về chuyên môn, hãy tin tưởng vào những người có nhiều kinh nghiệm hơn, ít nhất là đôi khi - nhưng đừng ngại hỏi "Tại sao?".
  • Tìm hiểu tất cả năm nguyên tắc RẮN và hiểu lý do tại sao chúng tồn tại. Không ai trong số chúng là quy tắc, nhưng chúng là những hướng dẫn tốt khi bạn bị mất.
  • Test Driven Development đã cải thiện nhiều hơn các kỹ năng thiết kế OO của tôi hơn bất kỳ điều gì khác mà tôi từng học.
  • Bạn sẽ không phải là người giỏi nhất cho đến khi bạn chuyển từ trạng thái thiếu suy nghĩ sang áp đảo và sau đó tìm thấy sự cân bằng chính xác (gần với điều sau).
  • Trên thực tế, hãy nói rằng, bạn sẽ không bao giờ tốt như hai năm sau.
  • Đọc rất nhiều sách và blog nhưng không lấy gì làm phúc âm. Ngành công nghiệp này vẫn chưa tìm thấy, và có thể không bao giờ tìm thấy, một con đường hoàn hảo.
  • Bằng mọi cách, hãy học các mẫu thiết kế, nhưng đừng tìm nơi để sử dụng chúng, chỉ cần sử dụng chúng như một người hỗ trợ để giao tiếp.

Hy vọng một số điều đó sẽ giúp.


1
Danh sách tốt @pdr. +1
Saeed Neamati

5
+1 "vẫn chưa tìm thấy và có thể không bao giờ tìm thấy, một con đường hoàn hảo."
ocodo

1
+1 "Phát triển dựa trên thử nghiệm đã cải thiện nhiều hơn các kỹ năng thiết kế OO của tôi hơn bất kỳ điều gì khác mà tôi từng học."
kevin cline


Cảm ơn tôi có một câu hỏi cho các lập trình viên
155852/NH

5

Tôi nghĩ rằng để đánh giá đầy đủ mô hình OO, bạn phải có kinh nghiệm thất bại thảm hại với các kỹ thuật lập trình không phải OO. Bạn có thể hiểu OO từ trong ra ngoài, nhưng để đánh giá cao và tôn trọng nó, nó phải là một công cụ mới sáng bóng thay thế cho cái cũ rỉ sét không hoàn toàn làm được việc.

Tôi đã tự dạy mình trong 7 năm trước khi học OO ở cấp độ đại học. Trước đó, tôi sẽ liên tục xây dựng các dự án này và chúng sẽ trở nên lớn đến mức tôi sẽ quên những gì đang diễn ra. Chúng sẽ cồng kềnh, không có tổ chức và đòi hỏi nhiều sự bảo trì để thực hiện những thay đổi nhỏ. Về cơ bản, tôi tiếp tục thấy mình bị sa lầy với mã của mình và bắt đầu làm mới liên tục.

Phải mất một thời gian tôi mới có thể thoát ra khỏi thiết kế tuyến tính mà tôi đã áp dụng, nhưng một khi tôi hoàn toàn hiểu mô hình OO thì nó giống như Eureka! Tôi đã có thể tự viết mã các dự án phức tạp hơn nhiều và năng suất của tôi tăng vọt sau khi học các khái niệm như kế thừa. Tôi không lãng phí thời gian để viết lại mã hoặc bắt đầu lại, bởi vì mọi thứ khách quan đều có ý nghĩa và nó chỉ trực quan.

Theo ý kiến ​​của tôi, mọi lập trình viên nên biết càng nhiều ngôn ngữ càng tốt. Điều này sẽ làm cho họ trở thành một cựu chiến binh dày dạn hơn, bất kể đó có phải là OO hay không. Khi bạn hiểu OO, bạn có thể thực hiện các kỹ thuật đó và áp dụng chúng ở mọi nơi chúng được triển khai.

IMHO, nếu bạn không hiểu hoặc không muốn học OO, bạn sẽ được trang bị không đầy đủ trong chiến trường của cuộc sống. Ngày càng có nhiều công ty sử dụng các ngôn ngữ OO mới hơn. Tôi không thấy bất kỳ lý do nào để không biết mô hình OO ngày nay bằng tuổi.

Tùy thuộc vào cách người đó học, tùy thuộc vào cách họ muốn học mô hình. Cá nhân tôi học tốt nhất khi ai đó dạy tôi và vì vậy, việc đến lớp cho Java I và Java II thực sự tạo ra sự khác biệt lớn cho tôi. Tôi khuyên bạn nên chọn môn tự chọn kỹ thuật phần mềm ở trường đại học, hoặc chỉ đơn giản là lên mạng và tìm kiếm các hướng dẫn OO nếu bạn không có quyền truy cập vào các khóa học đại học hoặc muốn học trong thời gian rảnh rỗi.

Khi tôi nghĩ lại về cách nó được mô tả với tôi, tôi nói; một Apple là một Apple và một Orange là một Orange. Vâng, cả hai đều rơi từ cây, nhưng chúng là hai loại trái cây hoàn toàn khác nhau và có sự hài hòa của bạn.


1
Ý bạn là thất bại thảm hại với lập trình chức năng, hay thất bại thảm hại với lập trình thủ tục?
Andrew Grimm

Thất bại thảm hại với lập trình chức năng, nhưng không thất bại trong việc làm chủ. Tôi có nghĩa là thất bại trong việc thực hiện thành công do những hạn chế của nó.
Styler

Vì vậy, bạn chắc chắn có nghĩa là lập trình chức năng, không phải lập trình thủ tục?
Andrew Grimm

Không lập trình OO.
Styler

2
Tôi chắc chắn đề nghị chỉnh sửa cái này, vì không phải OO! = Chức năng bởi bất kỳ sự tưởng tượng nào. Mọi thứ thậm chí có thể là cả hai.
Magus

0

Luôn có những trở ngại cho những người quan tâm hay không nhưng bối cảnh và mức độ nghiêm trọng có thể khác nhau.

Không cần thiết bạn phải học nhiều ngôn ngữ cho các khái niệm OO, bắt đầu với một ngôn ngữ mà bạn thích, trong một khoảng thời gian bạn sẽ có chỗ đứng vững chắc về ngôn ngữ, đăng bài này khả thi để khám phá một số điều bạn đã làm đã và cố gắng thực hiện tương tự trên một ngôn ngữ khác. Chuyên môn trong một ngôn ngữ sẽ giúp chuyển sang ngôn ngữ mới vì bạn sẽ có điểm chuẩn để xếp hạng.

Bất kỳ dự án nào cũng là trải nghiệm học tập thay vì thành công của nó, điều quan trọng là bạn đã điều chỉnh các tính năng tốt nhất như thế nào để sử dụng tốt nhất, đôi khi thật tốt khi đọc mã của người khác và tìm hiểu cách thức và lý do thực hiện. Nếu bạn có thể có được một người cố vấn sẽ là tuyệt vời. Luôn biết lý do tại sao điều này được chọn , Làm thế nào để làm điều đó theo một cách khác. Cố gắng làm việc theo logic và mô hình thiết kế của riêng bạn và đưa nó lên cấp cao / cố vấn của bạn. Bằng cách này, bạn sẽ cải thiện kỹ năng của mình, có thể khi bắt đầu, họ sẽ đi thẳng vào thùng rác nhưng sau đó bạn đã cố gắng và học được những gì bạn đã làm sai. Lặp đi lặp lại bạn sẽ ngày càng tốt hơn.

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.