Clean Code JavaScript - jak pisać kod, którym nie wstydzisz się pochwalić przed kolegami
Czy znasz to uczucie, gdy otwierasz stary kod i nie możesz zrozumieć, co miałeś na myśli? Albo gdy kolega prosi o pomoc ze swoim skryptem, a ty spędzasz godziny próbując go rozszyfrować? Repozytorium Clean Code JavaScript to zbiór praktycznych zasad, które pomogą uczynić Twój kod zrozumiałym, łatwym w utrzymaniu i profesjonalnym.
Dlaczego czysty kod jest tak ważny?
Od ponad 15 lat pracy z JavaScript widziałem setki projektów. Główny problem większości z nich nie tkwi w złożoności algorytmicznej, ale w nieczytelności kodu. Czytamy kod 10 razy dłużej niż go piszemy. Clean Code JavaScript to adaptacja słynnej książki Roberta Martina „Clean Code" dla świata JavaScript.
Jak mówi autor repozytorium, Ryan McDermott:
„Każdy fragment kodu zaczyna się jako szkic, jak mokra glina nabierająca ostatecznego kształtu. Niedoskonałości usuwamy podczas przeglądu z kolegami."
5 kluczowych zasad z repozytorium
1. Znaczące nazwy zmiennych
Pierwszym krokiem do czystego kodu jest właściwe nazywanie. Powinny być:
- Wymawialne
- Możliwe do wyszukania (żeby można je było znaleźć przez Ctrl+F)
- Niewymagające mentalnego tłumaczenia
Źle:
const yyyymmdstr = moment().format('YYYY/MM/DD');
Dobrze:
const currentDate = moment().format('YYYY/MM/DD');
2. Funkcje powinny robić jedną rzecz
Ten błąd pojawia się w 90% projektów. Funkcja to nie powieść, ale krótki wiersz.
Źle:
function emailClients(clients) {
clients.forEach(client => {
const record = database.lookup(client);
if (record.isActive()) email(client);
});
}
Dobrze:
function emailActiveClients(clients) {
clients.filter(isActiveClient).forEach(email);
}
function isActiveClient(client) {
const record = database.lookup(client);
return record.isActive();
}
3. Unikaj efektów ubocznych
Funkcja nie powinna modyfikować niczego poza swoim obszarem odpowiedzialności. Jest to szczególnie ważne podczas pracy z tablicami i obiektami.
Źle:
const addItemToCart = (cart, item) => {
cart.push({ item, date: Date.now() });
};
Dobrze:
const addItemToCart = (cart, item) => {
return [...cart, { item, date: Date.now() }];
};
4. SOLID dla JavaScript
Zasady SOLID działają nie tylko w Javie i C#. Oto jak wygląda Odwrócenie Zależności w JS:
Źle:
class InventoryTracker {
constructor(items) {
this.items = items;
this.requester = new InventoryRequester();
}
}
Dobrze:
class InventoryTracker {
constructor(items, requester) {
this.items = items;
this.requester = requester;
}
}
5. Testowalność
Czysty kod to kod podatny na testowanie. Każda funkcja powinna mieć jedną odpowiedzialność i przewidywalny wynik.
Źle:
describe('MomentJS', () => {
it('handles all cases', () => {
// 20 строк теста разных сценариев
});
});
Dobrze:
describe('MomentJS', () => {
it('handles 30-day months', () => {
// один четкий сценарий
});
it('handles leap year', () => {
// другой сценарий
});
});
Kto skorzysta na tym repozytorium?
- Junior developerzy: Zrozumiecie różnicę między działającym kodem a dobrym kodem
- Team leadzi: Możecie wykorzystać te zasady podczas przeglądu kodu
- Instruktorzy: Otrzymacie doskonałe przykłady na kursy JavaScript
- Freelancerzy: Klienci doceniają czysty i łatwy w utrzymaniu kod
Moje osobiste doświadczenia z wdrożeniem
W mojej praktyce był projekt z 50 plikami po 500+ linii kodu każdy. Po wdrożeniu zasad Clean Code:
- Czas potrzebny na dodanie nowych funkcji spadł o 40%
- Liczba błędów produkcyjnych spadła 3-krotnie
- Nowi programiści wdrażali się 2 razy szybciej
Jak zacząć?
- Zapisz repozytorium w zakładkach
- Wybierz 2-3 zasady, które najczęściej naruszasz
- Zacznij stosować je w nowym kodzie
- Stopniowo refaktoryzuj stare sekcje
Jak mówi autor: „Te zasady nie są dogmatem, ale przewodnikiem. Nasza profesja jest młoda i wciąż się uczymy."
Linki:
Powiązane projekty