ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
215378 Топик полностью
ya (13.10.2010 11:18, просмотров: 1) ответил Скрипач на В двух словах
Только вот при использовании такой архитектуры напрямую сильно страдает модульность программы, вплоть до превращения её в говнокод.  Как говорят знающие люди - программу нужно разбивать на модули - си, асм, не важно. Чем меньше внешних функций позволяет вызывать модуль - тем понятнее его работа и ниже связанность модулей в программе, то есть понятнее вся программа. Представим, что есть модуль мигания светодиодом, имеющий интерфейс: // onTime - время во включ состоянии // offTime - время в выключ состоянии // void set_led_state(int onTime, int offTime); для использования таймера придется ввести еще одну функцию и вызывать ее в обработчике таймера: // void call_this_function_every_10_ms_to_support_led_pulsing(); Не трудно заметить, что: 1. Можно забыть о ней, тогда модуль работать не будет; 2. Можно вызывать ее с неправильным периодом, тогда модуль работать будет, но не правильно. 3. Управлять таймером из такого модуля практически невозможно с сохранением модульности. 4. Главный цикл программы перегружается непонятными функциями типа call_this_function_every_10_ms_to_support_led_pulsing(); 5. Для понимания работы программы нужно охватывать большие куски кода (в принципе логически не связанные).