Всегда пологал, что пользоваться кодами возврата в высокоуровневых языках для обработки ошибок — больше похоже на «концепцию magic numbers». Сам использую исключения (в общих чертах) примерно так:
# все ожидаемые ошибки
class AppError < StdError
end
# более точное описание
class IntegrationError < AppError
end
Возможно, автор может написать небольшой обзор конвенции, к которой он пришел и пользуется. Интересно услышать мнение. Спасибо.
Если Вы думаете, что я «суровый ООПшник» — то глубоко заблуждаетесь. Уже давно не пишу на ЯП с класс-ориентированным подходом и возвращаться к ним не собираюсь. Проблемы-то чаще всего не с ЯП, а со специалистами их использующими.
К сожалению, те, кто пишет код очень редко могут называться программистами. Именно поэтому я считаю «светлый» путь не просто сложным, а невозможным. Квалификация специалистов часто слишком низкая, чтобы позволять им вольности.
То же самое относится к функциональной парадигме. Из личного опыта: на потоке в университете было 100 человек, в основном «золотые медалисты», из них 10 поняли, 30 зазубрили билеты. Остальные же получили свой низший проходной балл. Конечно, теперь 90% работают «программистами».
имхо, гугл хочет типизацию + возможность делать байт-код (или что-то подобное). во-первых, скорость исполнения. во-вторых, проще писать вебапп с поддержкой оффлайн (гугл давно не хочет делать всякие gears). В-третьих, реализации JS не на 100% совместимы в разных браузерах.
По всей видимости, у них стоял выбор: сделать новый стандарт JS или новый язык. С новым языком проще, ибо патенты, обратная совместимость и много других проблем.
еще один пост на тему «Какой я умный и какие дибилы работают в гугле».
JavaScript хорош, не спорю. Но его следует уничтожить как минимум за то, что позволяет сделать так:
имхо, обучение в пост-советских вузах — это зло в принципе. людей нужно не учить, а преподавать и развивать интерес к самообучению. а это делает очень малое количество преподавателей, к сожалению.
# все ожидаемые ошибки
class AppError < StdError
end
# более точное описание
class IntegrationError < AppError
end
Возможно, автор может написать небольшой обзор конвенции, к которой он пришел и пользуется. Интересно услышать мнение. Спасибо.
При проектировании и кодировании пытаюсь пользоваться одним принципом:
Простые вещи это результат сложного анализа, а сложные — результат простого нагромождения.
Любой плохочитаемый код — сложный.
То же самое относится к функциональной парадигме. Из личного опыта: на потоке в университете было 100 человек, в основном «золотые медалисты», из них 10 поняли, 30 зазубрили билеты. Остальные же получили свой низший проходной балл. Конечно, теперь 90% работают «программистами».
По всей видимости, у них стоял выбор: сделать новый стандарт JS или новый язык. С новым языком проще, ибо патенты, обратная совместимость и много других проблем.
JavaScript хорош, не спорю. Но его следует уничтожить как минимум за то, что позволяет сделать так:
undefined = 'My cool value';