Câu hỏi không thực sự là liệu lập trình meta có ổn hay không, mà là về việc liệu nó có tốt hơn những người khác trong nhóm hay không, vì vậy đây là một vài điểm gây tranh cãi về cách tôi nhìn thấy nó ...
Gần đây tôi đã chuyển sang một công việc mới, nơi tôi đang làm việc trong một nhóm lớn hơn và [lập trình meta] này làm lo lắng một số đồng nghiệp của tôi, vì họ không hiểu được nó.
Họ lo lắng rằng bạn tốt hơn họ. Điều đó thật tốt. Bạn sẽ trở thành chuyên gia mới. Bạn vừa phá hủy thế giới hiện trạng của họ.
Tôi luôn cố gắng tận dụng toàn bộ tiềm năng của ngôn ngữ, nhưng một số (không phải tất cả) các đồng nghiệp của tôi cho rằng đó là một rủi ro (một số hoan nghênh cách tiếp cận).
Chắc chắn, không ai thích kém kỹ năng hơn bất kỳ ai khác, vì vậy họ đang cố gắng ngăn bạn sử dụng các kỹ thuật quá phức tạp đối với họ. Họ không thể hiểu nó hoặc sẽ không, bởi vì họ cảm thấy an toàn ngay bây giờ.
Tôi đồng ý rằng đó là một vấn đề để viết mã mà không ai khác trong nhóm có thể hiểu được.
Tôi không. Tôi nghĩ rằng nó thể hiện chuyên môn của bạn.
Câu hỏi của tôi là, ai đúng, tôi nên làm gì?
Bạn nên sử dụng tất cả các kỹ năng của mình để viết mã tốt nhất bạn có thể viết và đừng nhìn vào phía sau những người không hiểu nó. Nếu không, bạn sẽ bị kẹt ở cấp độ của họ và chỉ là một lập trình viên bình thường. Đó là một điều tốt để tốt hơn những người khác, và đó là một điều tốt để phấn đấu để trở nên tốt hơn họ. Bạn sẽ không bao giờ có được bất kỳ trải nghiệm mới nào nếu bạn không thử sử dụng bất kỳ thứ gì mới hoặc làm những điều khác biệt.
Tôi biết tôi sẽ bị hạ thấp, nhưng đây là cách nó trông như thế nào. Nó không phải là tội ác để tốt hơn những người khác trong đội và không phải là tội phạm khi sử dụng các kỹ năng của bạn. Chỉ là mọi người đều sợ phải thừa nhận điều đó ... bởi vì họ ở phía không có kỹ năng và ghét rằng anh chàng mới đột nhiên có thể làm điều gì đó họ không thể. Nếu họ thông minh, họ sẽ nhờ bạn giúp đỡ và cho lời khuyên và không chỉ trích mã của bạn là không thể hiểu được.
BIÊN TẬP
Dường như có rất nhiều nhầm lẫn về câu hỏi này. Như các ý kiến cho thấy nhiều người nghĩ rằng đó là về khả năng đọc mã chung. Không, không phải vậy. Đó là về việc các tính năng / cấu trúc ngôn ngữ nhất định nên bị cấm hoặc tránh vì một số thành viên trong nhóm không hiểu chúng.
Câu trả lời của tôi là không . Họ không nên bị cấm. Nếu bạn muốn cấm một cái gì đó, làm thế nào bạn sẽ làm điều đó? Bạn sẽ phải chuẩn bị một số câu hỏi để tìm hiểu những gì các thành viên trong nhóm của bạn có thể và không thể - hoặc đúng hơn là không muốn học vì tôi nghĩ rằng tất cả các tính năng languague đều hữu ích ở đâu đó vì vậy luôn biết chúng và có thể sử dụng chúng tốt và bạn càng biết nhiều mã bạn có thể viết. Bạn cũng cần một thang đo để xác định các tính năng nào là dành cho người mới bắt đầu, trung cấp hoặc nâng cao.
Để chứng minh những hạn chế ngớ ngẩn như vậy, hãy lấy một ví dụ rất đơn giản: bạn sẽ được thuê làm kỹ sư phần mềm nhưng ông chủ tương lai của bạn nói với bạn rằng bạn sẽ không được phép sử dụng do/while
các vòng lặp vì có một vài người trên nhóm chưa bao giờ sử dụng chúng trước đây và cũng sẽ không tham gia vì họ luôn sử dụng for
các vòng lặp cho mọi thứ để họ thấy do/while
các vòng lặp khó hiểu.
Bây giờ bạn nghĩ điều này là ngu ngốc và điên rồ, phải không? Nhưng như vậy là cấm các tính năng khác. Một số poeple có thể sử dụng chúng và những người khác không muốn tìm hiểu chúng.
Tại sao bạn nên tạo mã xấu hơn nếu bạn biết có một cái gì đó cho phép bạn làm điều tương tự với ít nỗ lực hơn và kết quả là mã dễ đọc hơn nhiều là mã mạnh mẽ?
Và không quan trọng bạn chỉ sử dụng các tính năng ngôn ngữ cơ bản hoặc nâng cao, bạn có thể sử dụng một trong hai để tạo ra một mã không thể nhầm lẫn và không thể nhầm lẫn được vì vậy đây là một chủ đề hoàn toàn khác.