Mocno średni ten kurs - kolejny kurs z jako takim przedstawieniem składni, bez głębszego zrozumienia programowania, omówienia zalet i wad rozwiązań.
W kursie programowania imo najważniejsze są przykłady, a tutaj są one słabe, uczą złych praktyk:
1) śmieci w kodzie - nieużywane zmienne, nic nie robiące funkcje, niekonsekwencja w zapisach funkcji (autorowi chyba obcy jest linter) - przykład:
function checkData1() {
return new Promise(function(resolve, reject) {
setTimeout(function() { resolve('OK1'); }, 2000);
});
}
function checkData2() {
return new Promise(function(resolve, reject) {
setTimeout(function() { resolve('OK2'); }, 2000);
});
}
function checkData3() {
return new Promise(function(resolve, reject) {
setTimeout(function() { resolve('OK3'); }, 2000);
});
}
checkData1()
.then(res => checkData2())
.then(res => checkData3())
.then(function(resp) {
console.log(resp); //OK3
});
zamiast:
function checkData1 () {
return new Promise((resolve) => {
setTimeout(resolve, 2000, 'OK1')
});
}
function checkData2 () {
return new Promise((resolve) => {
setTimeout(resolve, 2000, 'OK2');
});
}
function checkData3 () {
return new Promise((resolve) => {
setTimeout(resolve, 2000, 'OK3');
});
}
checkData1()
.then(() => checkData2())
.then(() => checkData3())
.then(console.log) // OK3
Już pomijając to, że możnaby tam pokazać jak pozbyć się powtórzeń (choć przykład nie robi nic ciekawego):
function checkData1 (id) {
return new Promise((resolve) => {
setTimeout(resolve, 2000, `OK${id}`)
});
}
checkData(1)
.then(() => checkData(2))
.then(() => checkData(3))
.then(console.log) // OK3
b) bezużyteczne funkcje:
Aż prosi się, by powtarzany kod wrzucić do naszej funkcji, a potem się do niej po prostu odwoływać:
function myPattern() {
let str = ''
for (let x=0; i<10; i++) {
str += '-';
}
console.log(str);
}
Przecież to jest stała - zastosowanie funkcji nie ma żadnego uzasadnienia, już nie wspominając o mieszaniu logiki i prezentacji oraz błędzie w liczniku (btw to jednolinijkowiec const myPattern = '-'.repeat(10) ).
function isEven(number) {
if (number % 2 == 0) {
return true;
} else {
return false;
}
}
Kolejny zbędny kod.
c) nieuzasadnione hierarchie dziedziczenia (już pomijam smutny klasyk, czyli tłumaczenie obiektówki na kotkach i pieskach):
Serio? Obiekty mają takie same właściwości, różnią się tylko wartościami i dla czegoś takiego robić dziedziczenie?
To tylko kilka losowych przykładów.
Pomijam już pomniejsze błędy rzeczowe i brak korekty tekstu.