Przez długi czas twierdziłem, że są one jednakowej wartości lub tak bardzo bliskie równości, że możliwy zysk dzięki dokonaniu właściwego wyboru był znacznie, znacznie niższy niż koszt kłótni o to.
Będąc zgodny jest ważna , choć. Więc powiedziałem, rzućmy monetą i zacznijmy pisać kod.
Widziałem już wcześniej, że programiści nie chcą się tak zmieniać. Pokonaj to! Zmieniałem się wiele razy w mojej karierze. Używam nawet różnych stylów w moim C # niż w PowerShell.
Kilka lat temu pracowałem nad zespołem (~ 20 programistów), który postanowił poprosić o dane wejściowe, a następnie podjąć decyzję, a następnie egzekwować ją w całej bazie kodu. Będziemy mieli tydzień na podjęcie decyzji.
Dużo jęków i przewracających oczami. Wiele „Lubię swoją drogę, bo jest lepiej”, ale bez substancji.
Gdy badaliśmy drobne szczegóły pytania, ktoś zapytał, jak poradzić sobie z tym problemem w stylu brace-on-the-the-line:
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
Zauważ, że nie jest od razu oczywiste, gdzie kończy się lista parametrów, a zaczyna ciało. Porównać do:
void MyFunction(
int parameterOne,
int parameterTwo)
{
int localOne,
int localTwo
}
Przeczytaliśmy, jak ludzie na całym świecie poradzili sobie z tym problemem, i znaleźliśmy wzór dodawania pustej linii po otwartym nawiasie:
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
Jeśli zamierzasz zrobić wizualną przerwę, równie dobrze możesz to zrobić za pomocą klamry. Wtedy twoje wizualne przerwy również stają się spójne.
Edycja : Dwie alternatywy dla rozwiązania „dodatkowej pustej linii” podczas korzystania z K&R:
1 / Wcięcie argumentów funkcji inaczej niż w treści funkcji
2 / Umieść pierwszy argument w tym samym wierszu co nazwa funkcji i dopasuj kolejne argumenty w nowych wierszach do tego pierwszego argumentu
Przykłady:
1 /
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
2 /
void MyFunction(int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
/Edytować
Nadal twierdzę, że spójność jest ważniejsza niż inne względy, ale jeśli nie mamy ustalonego precedensu , to właściwym rozwiązaniem jest brace-on-next-line.