Obecnie uczę się JavaScript.

Kiedy mam do czynienia z pojedynczym plikiem tekstowym, który zaczyna być długi i trudny w nawigacji, zwykle używam pełnych linii ukośników, aby utworzyć nagłówki komentarzy dla każdej sekcji. Zdałem sobie sprawę, że jeśli po prostu zamknę sekcję kodu w nawiasach klamrowych (tj. {Długa sekcja kodu}, że mój edytor tekstu (nawiasy) pozwoli mi po prostu zwinąć całą sekcję. Chociaż to znacznie ułatwia mi życie, Zastanawiam się, czy spowoduje to jakiekolwiek komplikacje dotyczące zakresu lub czegokolwiek, czy też nawiasy, które nie są dołączone do żadnych etykiet, w rzeczywistości nie tworzą żadnego zachowania poza zezwoleniem edytorowi tekstu na zawinięcie sekcji.

1
cebo 20 listopad 2019, 22:27
3
When I am dealing with a single text file that starts getting long and hard to navigate wtedy refaktorujesz swój kod. Przenieś części, które należą do siebie, do osobnego pliku.
 – 
Olian04
20 listopad 2019, 22:32
1
Wiele środowisk IDE umożliwia korzystanie z „regionów” (lub posiada wtyczki, które dodają funkcjonalność). Na przykład VSCode pozwala mi dodać komentarz taki jak // #region Blah z odpowiadającym // #endregion Blah i pozwala mi go złożyć. Jednak zgadzam się z @Olian04, że jeśli twój plik staje się tak nieporęczny, rozważ refaktoryzację, aby uwzględnić więcej modułów/klas/cokolwiek, aby zapewnić możliwość komponowania.
 – 
Heretic Monkey
20 listopad 2019, 22:37
1
„długa i trudna w nawigacji” ma obecnie mniej niż 50 linii. Chcę tylko móc złożyć sekcje z kilkoma powiązanymi funkcjami lub z klasą i jej funkcjami. Pomysł regionów jest dokładnie tym, czego chcę, zobaczę, czy jest do tego wtyczka
 – 
cebo
20 listopad 2019, 22:40

1 odpowiedź

Tak, wstawianie nawiasów klamrowych może powodować błędy lub błędy kompilacji w istniejącym kodzie, ponieważ nawiasy klamrowe definiują zakres leksykalny. Może się skończyć niezamierzonym ukryciem zmiennej, która jest używana po utworzonym bloku lub zacieniowaniem tej, która została zdefiniowana przed blokiem.

Istnieją przypadki użycia do tworzenia tych bloków leksykalnych w środku kodu, jednak nie tylko do celów organizacyjnych. W tym celu, jeśli chcesz zorganizować, lepiej wyodrębnić swój fragment kodu do oddzielnej funkcji / klasy / modułu / pliku / itp. Korzyści z tego są ogromne.

Warto jednak zauważyć, że niektóre języki + IDE obsługują funkcje wyłącznie dla przypadków użycia, które opisujesz. Na przykład C# ma #region< /a>, który ogranicza zwijaną sekcję kodu.

Powiedziałbym również, że większość IDE obsługuje już zwijanie / rozwijanie niektórych konstrukcji kodu (takich jak ciała funkcji / metod) natychmiast po wyjęciu z pudełka, więc możesz uzyskać to zachowanie za darmo, nieco refaktoryzując swój kod.

2
jmrah 20 listopad 2019, 22:57