Cała oryginalna treść jest tworzona po ukraińsku. Nie wszystkie treści zostały jeszcze przetłumaczone. Niektóre posty mogą być dostępne tylko po ukraińsku.Dowiedz się więcej

Czym jest Konwencja nad Konfiguracją (w kontekście RoR i nie tylko)?

Okładka posta: Czym jest Konwencja nad Konfiguracją (w kontekście RoR i nie tylko)?
Spis treściKliknij link, aby przejść do wybranego miejsca
Ta treść została automatycznie przetłumaczona z ukraińskiego.
Konwencja zamiast konfiguracji (CoC) — to zasada, która polega na tym, że system lub framework ma już domyślne konfiguracje, pozwalając programiście uniknąć pisania / tworzenia ustawień samodzielnie. Znacząco skraca to liczbę decyzji, które należy podjąć, i zmniejsza czas potrzebny na konfigurację oraz rozwój w ogóle.
Po raz pierwszy podejście to zyskało popularność dzięki frameworkowi Ruby on Rails. U podstaw Rails leży idea, że większość programistów będzie wykonywać podobne zadania w podobny sposób. Dlatego Rails zapewnia typowe rozwiązania, takie jak struktura plików, nazwy modeli, kontrolerów i baz danych. Jeśli przestrzega się przyjętych konwencji, system automatycznie konfiguruje wiele aspektów aplikacji. Na przykład model o nazwie Article będzie automatycznie odpowiadał tabeli articles w bazie danych, bez potrzeby dodatkowej konfiguracji.
To uwalnia programistę od rutynowej konfiguracji. Wyjątkowe przypadki, w których potrzebna jest indywidualizacja, można łatwo dostosować osobno, jednak główną część zadań można wykonać szybciej, korzystając z wcześniej zdefiniowanych konwencji.
Eliminacja nadmiernej konfiguracji pozwala skupić się na logice aplikacji, a nie na ustawieniach. Przyspiesza to rozwój i zmniejsza liczbę błędów, ponieważ mniej konfiguracji oznacza mniej miejsc, w których może wystąpić błąd. Jednocześnie podejście to można spotkać również poza Rails. Wiele nowoczesnych frameworków i narzędzi stosuje podobne podejście — od bibliotek JavaScript po systemy zarządzania infrastrukturą.
CoC jest jednym z kluczowych podejść do uproszczenia procesu rozwoju, gdzie aplikacje, które odpowiadają ustalonym konwencjom, wymagają minimalnej konfiguracji, a programista zyskuje większą swobodę w tworzeniu funkcjonalności zamiast pracy z drobnymi ustawieniami.

Przykład CoC (RoR)

Przyjrzyjmy się przykładzie CoC nieco bliżej, aby zrozumieć, gdzie dokładnie oszczędzamy czas i zmniejszamy prawdopodobieństwo błędów przez dodany kod niestandardowy.
coc-scheme.png
  1. Programista tworzy model – na przykład model Article w Rails.
  2. Ponieważ Konwencja zamiast konfiguracji zakłada korzystanie z konwencji, Rails automatycznie oczekuje, że tabela dla tego modelu będzie nazywać się articles (standardowa liczba mnoga dla angielskich rzeczowników).
  3. Rails automatycznie łączy ten model z tabelą articles w bazie danych, bez potrzeby dodatkowych ustawień. Jeśli konwencja pasuje, dodatkowa konfiguracja nie jest potrzebna.
Takie podejście uwalnia od zbędnej konfiguracji, ponieważ system polega na typowych ustawieniach.
Prościej mówiąc - framework już ma ogólne konfiguracje, które nie muszą być wymyślane samodzielnie, wystarczy tylko przestrzegać konwencji, aby wszystko działało "prosto z pudełka".

Ten post nie ma jeszcze żadnych dodatków od autora.

Co to jest SCM (Zarządzanie Kontrolą Źródła)?
21 sie '24 21:46

Co to jest SCM (Zarządzanie Kontrolą Źródła)?

@memecode
Jaką hierarchię ma DOM (Model Obiektów Dokumentu)?
23 sie '24 09:22

Jaką hierarchię ma DOM (Model Obiektów Dokumentu)?

@memecode
Jak działa model sztucznej inteligencji?
15 wrz '24 16:42

Jak działa model sztucznej inteligencji?

@memecode
Co oznacza relacyjny (w kontekście baz danych relacyjnych)?
21 wrz '24 08:27

Co oznacza relacyjny (w kontekście baz danych relacyjnych)?

@memecode
Czym jest RDBMS (relacyjny system zarządzania bazami danych)?
21 wrz '24 08:56

Czym jest RDBMS (relacyjny system zarządzania bazami danych)?

@memecode
Co oznacza zasada ACID w programowaniu?
24 wrz '24 20:31

Co oznacza zasada ACID w programowaniu?

@memecode
Zaokrąglanie liczb dziesiętnych: zasady matematyczne, JavaScript i Ruby
18 paź '24 12:59

Zaokrąglanie liczb dziesiętnych: zasady matematyczne, JavaScript i Ruby

@memecode
[Fix] Fabryka nie zarejestrowana: "user" (KeyError) (FactoryBot / Rails 7)
7 gru '24 10:46

[Fix] Fabryka nie zarejestrowana: "user" (KeyError) (FactoryBot / Rails 7)

@memecode
Co to jest PORO w Ruby?
8 gru '24 12:46

Co to jest PORO w Ruby?

@memecode
Czym różnią się spec_helper.rb i rails_helper.rb w RSpec?
8 gru '24 13:53

Czym różnią się spec_helper.rb i rails_helper.rb w RSpec?

@memecode
9 gru '24 14:50

[Fix] Nie ma takiego pliku ani katalogu @ rb_sysopen - tmp/pids/server.pid

@memecode
Co należy wiedzieć, aby zbudować udaną karierę w IT jako freelancer
23 gru '24 16:03

Co należy wiedzieć, aby zbudować udaną karierę w IT jako freelancer

@memecode