Đầu tiên là từ chối trách nhiệm: Tôi thực sự không biết câu hỏi này có phù hợp với trang web này không, nhưng tôi vẫn thấy đây là một câu hỏi có liên quan không chỉ với tôi mà còn cho những người mới bắt đầu. Nếu câu hỏi có thể được cải thiện để phù hợp ở đây, vui lòng chỉ ra ý kiến int. Nếu nó không phù hợp, hãy cho tôi biết và nếu có thể hãy cho tôi biết nơi này có thể được thảo luận vì tôi không tìm thấy bất kỳ diễn đàn tốt nào cho việc này.
Tôi đã học lập trình năm 2009 khi tôi học PHP. Cuối năm 2012, tôi chuyển sang C # và .NET. Dù sao, mã hóa không phải là vấn đề, viết ra các thuật toán không phải là vấn đề của tôi. Vấn đề thực tế của tôi là phải biết những gì phải được mã hóa để đạt được một yêu cầu và nơi nó phải được mã hóa.
Hầu hết các khóa học có sẵn trên web đều giải quyết cách thức - cách viết mã bằng một ngôn ngữ nhất định, cách sử dụng một số bộ API, v.v. Đó không phải là quan điểm của tôi ở đây.
Trong những năm này, tôi đã đọc rất nhiều về một loạt điều: phân tích và thiết kế hướng đối tượng, các mẫu thiết kế, thiết kế hướng tên miền, v.v. Tôi hiểu ví dụ như các nguyên tắc RẮN, một số ý tưởng chính của DDD như sự cần thiết phải có sự tham gia của các chuyên gia tên miền, phát triển ngôn ngữ phổ biến, v.v. Tôi dám nói tôi một nền tảng lý thuyết ít nhất là hợp lý.
Nhưng khi đi vào thực tế tôi cảm thấy như mình là một thảm họa. Cách đây một thời gian, tôi cần tiếp tục phát triển một hệ thống tài chính đã được phát triển bởi một người khác. Đó là loại "hệ thống cũ" được phát triển với C # và WinForms. Đó là lần đầu tiên tôi chọn một dự án có độ phức tạp miền thực, với rất nhiều quy tắc kinh doanh, v.v.
Tôi thú nhận rằng khi tôi nhận được các yêu cầu hầu hết thời gian tôi nghĩ rằng "làm thế nào điều này có thể được thực hiện?" - Tôi không biết làm thế nào để bắt đầu làm việc với các yêu cầu để tìm ra những gì phải được thực hiện. Những nhầm lẫn chính của tôi Tôi tin là những gì tôi phải viết mã, các lớp, giao diện và nơi mỗi phần logic đi, lớp nào mỗi thứ phải có. Vấn đề là tôi không biết bắt đầu từ đâu.
Hầu hết thời gian, với khá nhiều suy nghĩ tôi kết thúc với một số ý tưởng, nhưng tôi không bao giờ biết cách đánh giá xem ý tưởng của tôi có đúng hay không.
Ý tôi là tôi không nghĩ rằng đây là một lý thuyết thiếu, vì tôi đã nói rằng tôi đã đọc về một loạt điều về kiến trúc phần mềm và hướng đối tượng mà tôi đã đề xuất nhưng nó không giúp ích nhiều trong việc xác định những gì phải làm trong thực tế .
Vì vậy, làm thế nào tôi có thể học hỏi để thực sự làm thiết kế hướng đối tượng? Điều tôi muốn học là: các yêu cầu được đưa ra biết cách bắt đầu làm việc với chúng trong một quy trình dẫn đến việc tìm ra những gì phải được thực hiện và nơi mỗi đoạn mã thuộc về. Làm thế nào tôi cũng có thể học cách đánh giá nếu ý tưởng của tôi là chính xác hay không?
Tôi tin rằng giải thích đầy đủ điều này như một câu trả lời ở đây sẽ không thể thực hiện được. Tuy nhiên, điều tôi đang tìm kiếm có thể theo phong cách trang web là câu trả lời chỉ đưa ra một cái nhìn tổng quan và chỉ ra một số tài liệu tham khảo (sách, khóa học trực tuyến, v.v.) có thể được sử dụng để mở rộng ý tưởng và thực sự học những điều này.