Tôi đã là một lập trình viên chuyên nghiệp trong một vài năm. Các ý kiến về mã của tôi thường giống nhau: viết mã tuyệt vời, được kiểm tra tốt, nhưng có thể nhanh hơn .
Vậy làm thế nào để tôi trở thành một lập trình viên nhanh hơn, mà không làm giảm chất lượng? Vì mục đích của câu hỏi này, tôi sẽ giới hạn phạm vi ở C #, vì đó chủ yếu là những gì tôi viết mã (cho vui) - hoặc Java, tương tự đủ theo nhiều cách quan trọng.
Những việc tôi đang làm:
- Viết giải pháp tối thiểu sẽ hoàn thành công việc
- Viết một loạt các bài kiểm tra tự động (ngăn ngừa hồi quy)
- Viết (và sử dụng) các thư viện có thể tái sử dụng cho tất cả các loại
- Sử dụng các công nghệ nổi tiếng nơi chúng hoạt động tốt (ví dụ: Hibernate)
- Sử dụng các mẫu thiết kế nơi chúng phù hợp với vị trí (ví dụ: Singleton)
Đây là tất cả tuyệt vời, nhưng tôi không cảm thấy như tốc độ của tôi đang tăng lên theo thời gian. Tôi làm cẩn thận, bởi vì nếu tôi có thể làm điều gì đó để tăng năng suất của tôi (thậm chí 10%), đó là nhanh hơn so với đối thủ cạnh tranh của tôi là 10%. (Không phải tôi có bất kỳ.)
Bên cạnh đó, tôi đã liên tục nhận được sự ủng hộ này từ các nhà quản lý của mình - cho dù đó là phát triển Flash quy mô nhỏ hay phát triển Java / C ++ cho doanh nghiệp.
Chỉnh sửa: Dường như có rất nhiều câu hỏi về những gì tôi muốn nói nhanh, và làm thế nào tôi biết tôi chậm. Hãy để tôi làm rõ với một số chi tiết.
Tôi đã làm việc trong các nhóm vừa và nhỏ (5-50 người) trong các công ty khác nhau qua các dự án khác nhau và các công nghệ khác nhau (Flash, ASP.NET, Java, C ++). Quan sát của những người quản lý của tôi (mà họ nói trực tiếp với tôi) là tôi "chậm".
Một phần của điều này là do một số lượng đáng kể các đồng nghiệp của tôi đã hy sinh chất lượng cho tốc độ; họ đã viết mã bị lỗi, khó đọc, khó bảo trì và khó viết các bài kiểm tra tự động. Mã của tôi nói chung là tài liệu tốt, có thể đọc và kiểm tra được.
Tại Oracle, tôi sẽ liên tục giải quyết các lỗi chậm hơn các thành viên khác trong nhóm. Tôi biết điều này, bởi vì tôi sẽ nhận được ý kiến cho hiệu ứng đó; điều này có nghĩa là các nhà phát triển khác (có, nhiều kinh nghiệm và có kinh nghiệm hơn) có thể thực hiện công việc của tôi trong thời gian ngắn hơn so với tôi, với chất lượng gần như tương đương (khả năng đọc, khả năng bảo trì và khả năng kiểm tra).
Tại sao? Tôi đang thiếu gì? Làm thế nào tôi có thể trở nên tốt hơn ở đây?
Mục tiêu cuối cùng của tôi rất đơn giản: nếu tôi có thể tạo ra sản phẩm X trong 40 giờ hôm nay và tôi có thể cải thiện bản thân bằng cách nào đó để tôi có thể tạo ra cùng một sản phẩm vào 20, 30 hoặc thậm chí 38 giờ vào ngày mai, đó là điều tôi muốn biết - Làm thế nào để tôi đến đó? Tôi có thể sử dụng quy trình nào để liên tục cải thiện? Tôi đã nghĩ rằng đó là về việc sử dụng lại mã, nhưng dường như điều đó là không đủ.