Tôi đang tìm kiếm một cách hiệu quả, đó cũng không phải là một sự xúc phạm, để giới thiệu các khái niệm OOP cho các thành viên nhóm hiện có? Đồng đội của tôi không phải là mới đối với các ngôn ngữ OO. Chúng tôi đã làm C ++ / C # trong một thời gian dài nên bản thân công nghệ đã quen thuộc.
Tuy nhiên, tôi nhìn xung quanh và không có nỗ lực truyền tải lớn (chủ yếu dưới dạng đánh giá mã), có vẻ như những gì chúng tôi đang sản xuất là mã C xảy ra trong các lớp. Hầu như không sử dụng nguyên tắc trách nhiệm duy nhất, trừu tượng hóa hoặc cố gắng giảm thiểu khớp nối, chỉ để nêu tên một số. Tôi đã thấy các lớp không có hàm tạo nhưng có bộ nhớ về 0 mỗi khi chúng được khởi tạo.
Nhưng mỗi khi tôi đưa lên OOP, mọi người luôn gật đầu và làm cho có vẻ như họ biết chính xác những gì tôi đang nói. Biết các khái niệm là tốt, nhưng chúng tôi (một số nhiều hơn những người khác) dường như rất khó áp dụng chúng khi nói đến việc cung cấp công việc thực tế.
Đánh giá mã đã rất hữu ích nhưng vấn đề với đánh giá mã là chúng chỉ xảy ra sau khi thực tế đối với một số người có vẻ như chúng tôi đã viết lại (chủ yếu là tái cấu trúc, nhưng vẫn mất nhiều thời gian) mã vừa được viết. Ngoài ra các đánh giá mã chỉ đưa ra phản hồi cho một kỹ sư riêng lẻ, không phải toàn bộ nhóm.
Tôi đang chơi đùa với ý tưởng thực hiện một bài thuyết trình (hoặc một loạt) và cố gắng đưa OOP trở lại cùng với một số ví dụ về mã hiện có có thể được viết tốt hơn và có thể được tái cấu trúc. Tôi có thể sử dụng một số dự án thực sự cũ mà không ai sở hữu nữa nên ít nhất phần đó không phải là vấn đề nhạy cảm. Tuy nhiên, điều này sẽ làm việc? Như tôi đã nói hầu hết mọi người đã thực hiện C ++ trong một thời gian dài vì vậy tôi đoán là a) họ sẽ ngồi đó suy nghĩ tại sao tôi nói với họ những điều họ đã biết hoặc b) họ thực sự coi đó là một sự xúc phạm bởi vì tôi nói với họ rằng họ không biết làm công việc họ đã làm trong nhiều năm chứ không phải hàng thập kỷ.
Có một cách tiếp cận khác sẽ tiếp cận đối tượng rộng hơn so với đánh giá mã, nhưng đồng thời sẽ không cảm thấy giống như một bài giảng trừng phạt?
Tôi không phải là một đứa trẻ mới ra trường, có lý tưởng không tưởng về mã được thiết kế hoàn hảo và tôi không mong đợi điều đó từ bất cứ ai. Lý do tôi viết điều này là vì tôi vừa làm một bài đánh giá về một người thực sự có thiết kế cấp cao đàng hoàng trên giấy. Tuy nhiên, nếu bạn hình ảnh các lớp: A -> B -> C -> D, trong mã B, C và D đều thực hiện gần như cùng một giao diện chung và B / C có một chức năng lót để lớp A hàng đầu hoàn toàn hoạt động tất cả công việc (xuống quản lý bộ nhớ, phân tích chuỗi, đàm phán thiết lập ...) chủ yếu theo 4 phương thức mongo và, đối với tất cả ý định và mục đích, gọi gần như trực tiếp vào D.
Cập nhật: Tôi là người lãnh đạo công nghệ (6 tháng trong vai trò này) và có sự hỗ trợ đầy đủ của người quản lý nhóm. Chúng tôi đang làm việc trên một sản phẩm rất trưởng thành và chi phí bảo trì chắc chắn cho phép họ được biết đến.