Pobyt w przepływie
(… lub Dlaczego mam obsesję na punkcie programowania w jednym pliku i ty też powinieneś)
Wielkie kłamstwo, które wmawia się nam w szkole i ponownie na początku kariery, polega na tym, że bycie „dobrym” w programowaniu polega na rozwiązywaniu coraz trudniejszych problemów w bardziej elegancki sposób. Prawda jest znacznie bardziej przyziemna — bycie dobrym w programowaniu polega na efektywnym rozwiązywaniu dużego zestawu przeważnie trywialnych problemów, szybko i czysto. Prawdą jest jednak to, jak cenny jest „stan przepływu” w robieniu tego. Możliwość pozostania zanurzonym w pracy pozwala szybko przełączać się między domenami, śledząc przepływ stanu od użytkownika do logiki biznesowej, do magazynu danych iz powrotem.
Wiele „dobrych” praktyk programistycznych zwiększa złożoność:
- Oddzielne modele i widoki oraz kontrolery.
- Przechowuj wszystkie testy w równoległych plikach i folderach.
- Nie wstawiaj CSS w tekście — trzymaj go w hierarchii oddzielnych plików CSS, do których odwołuje się klasa i identyfikator.
- Nawet nie PISZ CSS — użyj preprocesora i wygeneruj go z jakiegoś języka pośredniego.
- Używaj zagnieżdżonych przestrzeni nazw pakietów i modułów, z których każdy ma własne standardowe konwencje nazewnictwa thin_gs.
W podobny sposób, w jaki skale ankiet są wykreślane w stosunku do zdolności przeciętnego człowieka do rozróżniania (zwykle 5-7 wyborów, nigdy więcej niż 9), frameworki, które opierają się na mniejszej liczbie plików, mniejszej liczbie typów i zorganizowane w możliwie płaskiej hierarchii są łatwiejsze do opanowania przez nowych programistów i łatwiejsze dla KAŻDEGO w utrzymaniu stanu przepływu podczas pracy.
„Dobrzy” programiści uwielbiają oczerniać PHP i javascript jako „złe” języki; jednak oba z nich wyróżniają się obsługą prostych wzorców „pojedynczego pliku”. Javascript robi to za pośrednictwem JSX; PHP po prostu pozwala, aby każdy skrypt php zawierał również dowolny kod HTML. Postanowiłem odtworzyć radość płynącą z tworzenia pojedynczych plików, ale dla Pythona. Miejmy nadzieję, że pozwoli to wypełnić oczywiste luki między społecznościami zajmującymi się nauką o danych w Pythonie „Notebook”, społecznościami programistów „Boot Camp” i pierwszą linią rozwoju aplikacji internetowych.
W kilku następnych wpisach na blogu omówię wiele „złych” praktyk, które zastosowałem, aby uprościć i usprawnić moje doświadczenie programistyczne. Co więcej, ogłoszę różne biblioteki open source, które odkryłem, rozszerzyłem lub opracowałem po drodze.