Аура у Ауры или "главное - сделать!" и "что бы работало!"
18.04.2019
|
Pauel |
Дисклеймер — некоторые могут осознать себя причастными. Сочувствую.
Что бы не растекаться мыслью по древу, покажу интересный паттерн. Контекст, в котором этот паттерн встретился — консольная утилита, задача которой это несложные упражнения с файлами для сборки некоторых типовых проектов.
Девиз, под которым велась и ведётся разработка "главное, сделать и что бы работало"
Код встретился мне год назад. Хотел тогда же по горячим следам написать подробный разбор, но решил себя поберечь. Вот, спустя год, версия с минимальным количеством эмоций. Паттерн максимально облегчен и упрощен, для легкости восприятия:
Что имеем ?
async/await — ✓
promises — ✓
callback — ✓
*Sync — ✓
Вот она, мультипарадигма, в чистейшем виде.
В принципе, недостаток ровно один — не хватает только RX. Некоторое упущение, которое, возможно, восполнится в будущем.
Что бы не растекаться мыслью по древу, покажу интересный паттерн. Контекст, в котором этот паттерн встретился — консольная утилита, задача которой это несложные упражнения с файлами для сборки некоторых типовых проектов.
Девиз, под которым велась и ведётся разработка "главное, сделать и что бы работало"
Код встретился мне год назад. Хотел тогда же по горячим следам написать подробный разбор, но решил себя поберечь. Вот, спустя год, версия с минимальным количеством эмоций. Паттерн максимально облегчен и упрощен, для легкости восприятия:
// где то в дебрях библиотеки
import fs from 'fs-extra';
async coolFunction() {
// пропущено несколько страниц кода
const a = await new Promise((resolve, reject) => {
fs.read(file, ()=> {
fs.copy(file, file2)
.then(() => { /* много строчек */ }) // и так несколько раз подряд
.then(() => { fs.copySync(file, file2); }) // !!!!!
.then(() => { /* много строчек */ }) // и так несколько раз подряд
.then((x) => { resolve(x); })
})
});
// пропущено несколько страниц кода
}
Что имеем ?
async/await — ✓
promises — ✓
callback — ✓
*Sync — ✓
Вот она, мультипарадигма, в чистейшем виде.
В принципе, недостаток ровно один — не хватает только RX. Некоторое упущение, которое, возможно, восполнится в будущем.
18.04.2019 3 комментария |
I>Дисклеймер — некоторые могут осознать себя причастными. Сочувствую.
I>Что бы не растекаться мыслью по древу, покажу интересный паттерн. Контекст, в котором этот паттерн встретился — консольная утилита, задача которой это несложные упражнения с файлами для сборки некоторых типовых проектов.
I>Девиз, под которым велась и ведётся разработка "главное, сделать и что бы работало"
I>Код встретился мне год назад. Хотел тогда же по горячим следам написать подробный разбор, но решил себя поберечь. Вот, спустя год, версия с минимальным количеством эмоций. Паттерн максимально облегчен и упрощен, для легкости восприятия:
I>
I>Что имеем ?
I>async/await — ✓
I>promises — ✓
I>callback — ✓
I>*Sync — ✓
I>Вот она, мультипарадигма, в чистейшем виде.
I>В принципе, недостаток ровно один — не хватает только RX. Некоторое упущение, которое, возможно, восполнится в будущем.
Не совсем понимаю, в чем проблема кода? Автор неоссилятор, который не может переориентироваться на новые и удобные технологии? Будущее наступило, пора проснуться.
I>>В принципе, недостаток ровно один — не хватает только RX. Некоторое упущение, которое, возможно, восполнится в будущем.
M>Не совсем понимаю, в чем проблема кода? Автор неоссилятор, который не может переориентироваться на новые и удобные технологии? Будущее наступило, пора проснуться.
Проблема в том, что в одном методе заюзали всё, кроме RX. Вот надо его добавить, тогда будет полное покрытие. Мультипарадигма многозадачности
I>Дисклеймер — некоторые могут осознать себя причастными. Сочувствую.
I>Что бы не растекаться мыслью по древу, покажу интересный паттерн. Контекст, в котором этот паттерн встретился — консольная утилита, задача которой это несложные упражнения с файлами для сборки некоторых типовых проектов.
I>Девиз, под которым велась и ведётся разработка "главное, сделать и что бы работало"
I>Код встретился мне год назад. Хотел тогда же по горячим следам написать подробный разбор, но решил себя поберечь. Вот, спустя год, версия с минимальным количеством эмоций. Паттерн максимально облегчен и упрощен, для легкости восприятия:
I>
I>Что имеем ?
I>async/await — ✓
I>promises — ✓
I>callback — ✓
I>*Sync — ✓
I>Вот она, мультипарадигма, в чистейшем виде.
I>В принципе, недостаток ровно один — не хватает только RX. Некоторое упущение, которое, возможно, восполнится в будущем.
Я перечитал статью и извиняюсь перед автором, все по делу. Снимаю шляпу