Как стать автором
Обновить

Комментарии 14

Мне кажется, такие уровни самостоятельно возникают.

То есть — пока тебе ни к чему, например, паттерны ты их и не используешь и не думаешь о них.
Пока ты не понял, что такое замыкания, тебе и в голову не придет их использовать.
Ну и так далее.
Вся проблема в том, что массу прелестных вещей можно использовать не по назначению. Reflection — пожалуй самый яркий пример.
Например? Зачем бы reflection в бизнес-логике? Я просто не могу представить:)
А… если умельцы которые пишут…
Я может плохо пояснил откуда возникла идея.

Была Ява 1.2 — может не самый продвинуты язык, но он мало давал свободы. А это плюс если есть толпа начинающих программистов и минус если есть продвинутые.

Потом пошло поехали — в яве 5,6 и теперь уйма всго в 7 и 8 (если до них доживем).
Если эти штуки правильно использовать — читаемость кода растет. если абьюз — падает. Что делать?
Тут и возникла идея про уровни
На данный момент это решается code review и даванием по шапке:)
А потом студент исправляет мелкий баг в коде архитектора, а ему «В файле обнаружено 217 closures, до использования которых вы ещё не доросли. Пожалуйста перепишите в более примитивном стиле»…

Вообще, берёте любую утилиту для статического анализа кода, пишете несколько профилей под разные уровни разработчика и запускаете нужный в зависимости от автора кода.
О! Может быть действительно разные профили для статистического анализа — это решение.
Хотя хотелось бы чего то помощнее
А как там решается эта проблема?
В каждом модуле может быть указано, что он принадлежит к определённому языку. Языки — это просто библиотеки, которые могут ограничивать использование конструкций общего языка, или вводить новые с помощью макросов (Lisp же). В стандартном наборе библиотек есть разные уровни, используемые при обучении по книге How to Design Prograns:
(require lang/htdp-beginner)
(require lang/htdp-intermediate-lambda)
...
Красиво!
Делал раньше подобное подсознательно, благодаря топику теперь буду явно задумываться.
Делать разделение — стоит однозначно, имхо.

А чем профили статического анализа — не выход? Можно просто в аттрибутах класса писать уровень принадлежности, а на основании этого стат. анализатор будет менять стиль проверки.
Ну не всё ИМХО существующие анализаторы проверить могут.
По моему мнению, разные уровни языков есть в каждом языке программирования.

Эти уровни определяются не какими либо доступными функциями, а пониманием системы, где они реализуются.

Пример из жизни:
— Когда начинал учить язык «ХХХ» (неважно какой), Я знал, что эта функция делает тото, а вот эта — тото. Что такое оптимизация или безопасность Я понятия не имел и даже об этом не задумывался. Это так сказать один уровень.
Прошло время, Я разобрался как всё это работает в системе, и вдруг начал понимать, что функция А мешает работать функции Б и вызывает потери производительности, что использование функции С небезопасно. То есть Я вышел на совершенно другой уровень. Я увидел систему в целом.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации