Tôi là một phần của nhóm tư vấn thực hiện một giải pháp mới cho khách hàng. Tôi chịu trách nhiệm cho phần lớn các đánh giá mã trên cơ sở mã phía máy khách (React và javascript).
Tôi đã nhận thấy rằng một số thành viên trong nhóm sử dụng các mẫu mã hóa duy nhất đến một điểm mà tôi có thể chọn một tệp một cách ngẫu nhiên để nói ai là tác giả từ phong cách đó.
Ví dụ 1 (hàm nội tuyến một lần)
React.createClass({
render: function () {
var someFunc = function () {
...
return someValue;
};
return <div>{someFunc()}</div>
}
});
Tác giả lập luận rằng bằng cách gán một tên có ý nghĩa cho someFunc, mã sẽ dễ đọc hơn. Tôi tin rằng bằng cách nội tuyến chức năng và thêm một nhận xét thay vì hiệu quả tương tự có thể đạt được.
Ví dụ 2 (các hàm không liên kết)
function renderSomePart(props, state) {
return (
<div>
<p>{props.myProp}</p>
<p>{state.myState}</p>
</div>
);
}
React.createClass({
render: function () {
return <div>{renderSomePart(this.props, this.state)}</div>;
}
});
Đây là cách chúng tôi thường làm (tránh phải vượt qua trạng thái và đạo cụ):
React.createClass({
renderSomePart: function () {
return (
<div>
<p>{this.props.myProp}</p>
<p>{this.state.myState}</p>
</div>
);
},
render: function () {
return <div>{this.renderSomePart()}</div>;
}
});
Mặc dù các mẫu mã hóa này đúng về mặt kỹ thuật, chúng không phù hợp với phần còn lại của cơ sở mã cũng như kiểu dáng và mẫu mà Facebook (tác giả của React) gợi ý trong các hướng dẫn và ví dụ.
Chúng tôi cần phải giữ tốc độ nhanh để giao hàng đúng giờ và tôi không muốn gây gánh nặng cho đội một cách không cần thiết. Đồng thời chúng ta cần phải ở mức chất lượng hợp lý.
Tôi đang cố gắng tưởng tượng mình là nhà phát triển bảo trì của khách hàng phải đối mặt với những mâu thuẫn như thế này (mọi thành phần có thể yêu cầu bạn hiểu một cách khác để làm điều tương tự).
Câu hỏi:
Giá trị theo cảm nhận của khách hàng và các nhà phát triển bảo trì của một cơ sở mã nhất quán so với việc cho phép các mâu thuẫn như thế này được duy trì và có khả năng lan truyền là gì?