Kolejny kreacyjny wzorzec projektowy omawiany na łamach tego bloga: singleton. Wzorzec dookoła którego narosło wiele mitów i legend. Dziś o tym dlaczego singleton jest antywzorcem, jakie problemy powoduje oraz kiedy warto po niego sięgnąć.
class DbConnection {
private static connection?: DbConnection;
private constructor() {
// real connection implementation
}
static create(): DbConnection {
if (!DbConnection.connection) {
DbConnection.connection = new DbConnection();
}
return DbConnection.connection;
}
}
Oczywiście, samo utworzenie połączenia raczej nic nam nie da. Musimy być w stanie coś z nim zrobić. W obrębie klasy połączenia możemy stworzyć zwykłe metody, np. do uruchamiania zapytań czy zamykania komunikacji. class DbConnection {
private static connection?: DbConnection;
private constructor() {}
static create(): DbConnection {
if (!DbConnection.connection) {
DbConnection.connection = new DbConnection();
}
return DbConnection.connection;
}
run(sql: SQL) {
// implementation
}
close() {
DbConnection.connection = null;
}
}
Zasada DRY, to po przełożeniu na język polski: nie powtarzaj się. Brzmi bardzo banalnie, jednak dosyć często okazuje się, że mamy problem z jej stosowaniem w kodzie. Dziś dowiesz się, jak nie łamać tej reguły, a co za tym idzie nie powtarzać się.
Sprawdź ten wpisYAGNI to kwintesencja zasad clean code. Dotyczy ona bezużyteczności kodu, a dokładniej, konieczności usuwania tych fragmentów, które nie są potrzebne. W myśl "You aren't gonna need it" nie powinniśmy tworzyć niczego więcej, niż to, co jest potrzebne.
Sprawdź ten wpisZasada KISS: "Keep it simple, stupid", może zostać dosłownie przetłumaczona na: "rób to prosto, głupku". Mówi ona o tym, abyśmy tworzyli kod w jak najprostszy i najbardziej czytelny sposób. Już dziś sprawdź, czego się wystrzegać, aby spełniać KISS.
Sprawdź ten wpisWzorce projektowe zostały stworzone po to, aby nie wymyślać przysłowiowego koła na nowo. Znajomość wzorców projektowych i umiejętność ich stosowania pozwala na szybkie rozwiązywanie problemów. Wpis ten radzi, jakie wzorce zastosować u siebie.
Sprawdź ten wpisDziś prezentuję kolejny wzorzec projektowy, który pozwala uniknąć drabinek if-else if. Mowa tutaj o wzorcu state, który idealnie nada się, jeśli posiadasz różne stany w swoim systemie oraz chcesz mieć możliwość płynnego przechodzenia pomiędzy nimi.
Sprawdź ten wpisFanatyk czystego i prostego kodu. Zwolennik podejść DDD oraz Modular Monolith. Na codzień pracuje jako programista i architekt. Po godzinach spełnia się w projektach open source, udziela się na blogach oraz czyta książki o kosmosie i astrofizyce.