Clean Architecture & Design Patterns in Practice · Lekcja

Spójność, sprzężenie i separacja odpowiedzialności

Opanuj trzy podstawowe właściwości projektowania oprogramowania, które decydują o jego łatwej utrzymywalności: wysoką spójność, luźne sprzężenie i wyraźną separację odpowiedzialności.

Lekcja 4 z 413 kroki

Spójność, sprzężenie i separacja odpowiedzialności to bezpłatna lekcja Clean Architecture & Design Patterns in Practice na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Clean Architecture & Design Patterns in Practice, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Clean Architecture & Design Patterns in Practice zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Why These Properties Matter

Under clean code and SOLID lie three deeper design properties: cohesion, coupling, and separation of concerns. They explain why the rules work.

What is Cohesion

Cohesion measures how well a module’s responsibilities belong together. High cohesion = one well-defined job; low cohesion = a grab-bag of unrelated methods.

Low vs High Cohesion

Compare the two: the Util class mixes unrelated concerns, while UserRepository is tightly focused. That focus is high cohesion.

// Low cohesion
class Util {
  saveUser() {}
  sendEmail() {}
  formatDate() {}
}
// High cohesion
class UserRepository {
  save() {}
  findById() {}
}

What is Coupling

Coupling measures how much one module depends on another’s internals. Tight coupling spreads changes everywhere; loose coupling keeps interactions minimal.

Tight Coupling Example

Here OrderService creates its own SmtpMailer, locking it to that exact class. Swapping the mailer means editing the service — tight coupling.

class OrderService {
  constructor() {
    this.mailer = new SmtpMailer();
  }
}

Loosening the Coupling

Inject the mailer instead. Now OrderService depends on an abstraction and accepts any implementation. That’s loose coupling.

class OrderService {
  constructor(mailer) {
    this.mailer = mailer;
  }
}

The Sweet Spot

The sweet spot is high cohesion and low coupling together: focused modules that stay independent, so systems are easy to change, test, and reason about.

Separation of Concerns

Separation of concerns means splitting a program so each part owns one distinct concern — keep UI, business logic, and data access in separate layers.

Mixed Concerns

This function tangles data access, logic, and presentation together. Touch any one concern and you risk breaking the others — mixed concerns.

function showTotal(id) {
  const rows = db.query('SELECT * FROM orders WHERE id=' + id);
  const total = rows.reduce((s, r) => s + r.price, 0);
  document.body.innerHTML = 'Total: ' + total;
}

Separated Concerns

Split it into a repository, a calculator, and a view. Each concern now changes and tests independently. Much cleaner.

const order = repository.findById(id);
const total = calculator.total(order);
view.render(total);

How They Connect to SOLID

These properties underpin SOLID: single responsibility drives cohesion, dependency inversion drives low coupling, and layering expresses separation of concerns.

Quick Check

High cohesion, low coupling — can you tell them apart?

Recap

You’ve got the foundations: cohesion keeps related work together, low coupling minimizes dependencies, and separation of concerns divides by purpose.

Bezpłatny start

Ucz się Clean Architecture & Design Patterns in Practice dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
12
Lekcje
48

Często zadawane pytania

Czy lekcja „Spójność, sprzężenie i separacja odpowiedzialności” jest bezpłatna?

Tak — pełny tekst „Spójność, sprzężenie i separacja odpowiedzialności” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Clean Architecture & Design Patterns in Practice, przejdź na CoddyKit PRO. Kurs Clean Architecture & Design Patterns in Practice zawiera 4 lekcji w sumie.

Co nauczysz się w „Spójność, sprzężenie i separacja odpowiedzialności”?

Opanuj trzy podstawowe właściwości projektowania oprogramowania, które decydują o jego łatwej utrzymywalności: wysoką spójność, luźne sprzężenie i wyraźną separację odpowiedzialności. Ćwiczysz Clean Architecture & Design Patterns in Practice z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Clean Architecture & Design Patterns in Practice?

Nie wymagamy żadnego doświadczenia. Clean Architecture & Design Patterns in Practice w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Spójność, sprzężenie i separacja odpowiedzialności”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Clean Architecture & Design Patterns in Practice?

Tak. Każda lekcja Clean Architecture & Design Patterns in Practice zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Wprowadzenie do Clean Code
  2. Przegląd zasad SOLID
  3. Wartość dobrego projektu
  4. Spójność, sprzężenie i separacja odpowiedzialności
← Powrót do Clean Architecture & Design Patterns in Practice