Trước hết, điều chỉnh lại phong cách mã hóa của tôi: khoảng trắng. Từ lâu, một số chú hề đã viết một bài báo đùa về các thực tiễn tốt nhất đưa ra các ví dụ mã với như 12 tab đầy đủ của khoảng trắng ở mọi nơi anh ta có thể; làm cho mã không thể đọc được nếu không có màn hình rộng 12 feet hoặc cỡ chữ .0001. Rất nhiều lập trình viên cho rằng nó đáng tin cậy và bắt đầu thực hiện nó - mặc dù nó thực sự rõ ràng là không thực hành tốt. Nó làm tôi điên. Thôi nào các bạn, tôi nói, bạn thông minh hơn thế. Khoảng trắng 50% trở lên trên trang 240 cột không có ý nghĩa gì. Đặt dấu ngoặc nhọn đầu tiên trên cùng một dòng với chữ ký hàm hoặc lớp (có một hoặc hai dấu cách, không phải là một tab hoặc hai ở giữa). Sử dụng 3 khoảng trắng để thụt lề cho các cấp mã (5 nếu bạn có thành viên nhóm mù một phần). Sau đó sử dụng một dòng trống ở đây và ở đó trong mã để đặt mọi thứ trong các khối logic nhỏ hơn.
Đây là một ví dụ khác về một cái gì đó xương đầu. Trước tiên tôi sẽ nói với bạn điều này không đến từ một người dí dỏm thiếu kinh nghiệm. Đó là một số mã rất tốt bởi một anh chàng có thể có được một kỹ thuật rất tiên tiến hoạt động trong khi hầu hết phần còn lại của thế giới vẫn đang gãi đầu về nó. Đây là những gì làm tôi bực bội. Tại sao các lập trình viên giỏi rất quan tâm đến việc định dạng mã của họ?
for (Iterator<Byte> iterator = collection.iterator(); iterator
.hasNext();) {
byteArray[i++] = iterator.next();
}
Bây giờ chỉ cần nhìn vào định dạng của điều kiện. Nếu bạn thực sự nghĩ về nó, đó không phải là một nơi hoàn toàn phi logic để đặt một ngắt dòng? Đối với một người, tôi có nhiều không gian để xem toàn bộ cho ... {trên một dòng. (May mắn thay, anh chàng này không sử dụng nhiều tab để thụt lề.) Nhưng nếu anh ta hoàn toàn không thể sống mà không phá vỡ nó, tại sao lại có một thông số chức năng? Có một dấu phân cách hoàn toàn tốt ngay trước đó - dấu chấm phẩy - sẽ có ý nghĩa hơn như một điểm dừng. Phiếu bầu của tôi là đặt toàn bộ điều kiện và mở {(đi cùng với for) trên cùng một dòng. Anh ấy cũng kết thúc tốt đẹp - dễ dàng để phù hợp với cú đúp kết thúc với "for" đã mở. (Một số người - và các công cụ (Điều đó có thừa không?) - cũng muốn đặt nó ở những nơi xa lạ.)
Thứ hai - lưu ý về trọng tâm của từng chuyên gia lập trình viên và nếu có sự khác biệt đáng kể, hãy chắc chắn rằng điều đó được phản ánh trong phần nào của mã mà mỗi lập trình viên làm việc. Một chuyên gia về điều khiển công nghiệp về robot, một kỹ sư chủ yếu làm việc trên các bit toán học phức tạp và anh chàng có bằng CS, người gây ấn tượng với việc xây dựng mã hoàn toàn tối nghĩa (dường như càng khó hiểu, càng phức tạp, phải không?) sẽ viết mã khác nhau. Khi có những khác biệt đáng kể này, hãy chia nhỏ công việc để mỗi sức mạnh riêng phù hợp với công việc.
Khi không có sự khác biệt như vậy, hãy đồng ý về phong cách mã hóa và trong mọi trường hợp - xem lại mã, xem lại mã, xem xét mã. Thẳng thắn mà nói, tôi đã trải qua rất nhiều mã spaghetti cẩu thả trong đời (giảm 12 lần trong việc gỡ lỗi và thay đổi bởi nhóm bảo trì, hoặc kết quả của việc tích hợp mắt gà) và tôi đang trên đường trở thành một chuyên gia về mã sau 2 phút nói chuyện với người cuối cùng đã làm việc với nó. (Lưu ý bên lề: Trên thực tế, có một điểm mà tại đó việc viết lại mã tốt hơn là tiếp tục thích ứng.)
Cá nhân, tôi thích làm việc ở nhà một mình là tốt. Tôi chưa bao giờ gặp một lập trình viên thích hoặc làm việc tốt hơn trong một hình khối được bao quanh bởi rất nhiều lập trình viên, các cuộc thảo luận và gián đoạn khác. Nhưng bạn phải làm quen với việc làm việc trong một nhóm và điều đó có nghĩa là dành thời gian để cùng nhau thảo luận (không phải chiến đấu) những gì bạn đang làm. Đó thực sự là một phần của công việc - nó thực sự là. Tốt hơn nhiều để chấp nhận nó và làm nó một cách có hệ thống, hiệu quả và hiệu quả. Và trong khi chúng tôi làm việc đó - đó cũng là một phần của công việc dành thời gian chuyển kiến thức và thông tin cho những người viết tài liệu (một số trong đó bạn có thể cần phải tự viết). Và khi bạn đủ kinh nghiệm để nâng cao trách nhiệm của mình, bạn thậm chí có thể thấy mình trò chuyện thường xuyên hơn với các nhà quản lý và người tiếp thị, v.v.
Viết mã một mình là một sở thích. Kỹ thuật phần mềm chuyên nghiệp là một nghề nghiệp nhiều mặt.