Ciągle tu widzę dyskusję na temat „wyrównywania kodu” i wcięć. Chciałbym zwrócić uwagę na następujące rzeczy:
- osiem spacji będzie zawsze dwa razy dłuższe niż cztery spacje w dowolnej czcionce.
- dwie zakładki będą zawsze dwa razy dłuższe niż jedna zakładka w dowolnej czcionce.
- każdy identyfikator w jednym wierszu będzie zawsze miał taką samą szerokość w następnym wierszu… dowolną czcionką!
- Oczywiście, jeśli twoi koledzy z drużyny używają stałej odległości, a ty nie, będzie to wyglądać inaczej ... ale powinieneś coś ujednolicić - cokolwiek to jest - i jeśli to prawda, to będzie wyglądać tak samo dla wszystkich. ..w DOWOLNEJ czcionce! Dla śmiechu możesz też spróbować utrzymać wszystkich w stałej pozycji i dać połowie z nich panoramiczne monitory ... zobacz, jak to idzie.
- Jeśli robisz cokolwiek, co polega na ustawianiu kodu w oparciu o kolumnową pozycję tych znaków na ekranie, a nie zakres identyfikatorów, których używasz, zakładam, że to, co robisz, to hack. Identyfikatory nigdy nie powinny być ograniczone do określonej liczby znaków kosztem jakości ich nazw. Poza tym ... nadal nie rysujesz pól ASCII z gwiazdkami w celu umieszczenia komentarzy w swoim kodzie, prawda?
Więc rysując to wszystko razem, jeśli zaczniesz każdy wiersz w tym samym miejscu, a spójne odstępy będą miały tę samą szerokość, a identyfikatory nie zmieniają spontanicznie szerokości w każdym wierszu, wtedy twój kod faktycznie BĘDZIE wyrównany! ... aż coś się zmieni.
na przykład:
identifier.Method().Property.ToString();
identifier.Method().OtherGuy.ToString(); //how lined up and pretty!
identifier.Method().Sumthing.YouGetThePoint;
- identifier.Method (). Property.ToString ();
- identifier.Method (). OtherGuy.ToString (); //o nie! źle wyrównany!
- identifier.Method (). Sumthing.YouGetThePoint; //...ale kogo to obchodzi? mają różne właściwości!
Jedyną kwestią, do której przyznaję, jest to, że znaki niealfanumeryczne zazwyczaj nie są zbyt szerokie; obejmują one) (] [} {,: | "; ',`! i. Można to jednak naprawić w edytorze czcionek ... po prostu rozszerzając je. To nie jest problem nieodłączny od braku stałej szerokości; Nie było na to dużego popytu, więc nie zostało to jeszcze zrobione.
Podsumowując, osobiste preferencje są w porządku, ale myślę, że nie ma praktycznego powodu, aby preferować monospace od non-monospace. Podoba ci się ten wygląd? Jasne, wykonuj monospace. Chcesz, aby więcej rzeczy zmieściło się na ekranie? Nie mono. Ale sposób, w jaki ludzie traktują niemonoprzestrzeń jak herezję, jest nieco przesadzony.