Код, который сразу писали в таком стиле и на правильном языке, как правило всё-же хорошо читается.
Код, который писали, натягивая за уши функциональный стиль, да на неприспособленном языке – читается как говно. Два прекрасных примера – php и java. Там да, код в таком стиле – просто кровавое месиво.
Насчёт коллбэков: коллбэки как конструкции – вообще обычно зло. Сравни:
var f = function (arg, callback) { ...; callback (result)};
f(123, function(res){...});
против
var f = Promisify(function(arg) { return result});
var cb = Promisify(function (res){...}),
cb1 = Promisify(function (res){...})
f(123)
.then(cb)
.then(cb1)
.fail( function(err){...});
Во втором случае аж два «коллбэка» плюс обработка ошибок decoupled от самих функций.
Промисы проще читаются, в них проще обрабатывать ошибки и обычно понятно, что куда передаётся. Они, правда, довольно дорогие.
Не понял насчёт создания лямбд не инлайном – лямбда же просто стрелка, как её можно не инлайном? Её ж именовать придётся.
no subject
Date: 2015-04-26 11:28 am (UTC)Код, который писали, натягивая за уши функциональный стиль, да на неприспособленном языке – читается как говно. Два прекрасных примера – php и java. Там да, код в таком стиле – просто кровавое месиво.
Насчёт коллбэков: коллбэки как конструкции – вообще обычно зло. Сравни:
против
Во втором случае аж два «коллбэка» плюс обработка ошибок decoupled от самих функций.
Промисы проще читаются, в них проще обрабатывать ошибки и обычно понятно, что куда передаётся. Они, правда, довольно дорогие.
Не понял насчёт создания лямбд не инлайном – лямбда же просто стрелка, как её можно не инлайном? Её ж именовать придётся.