ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
158926 Топик полностью
Evgeny_CD, Архитектор (13.06.2009 15:57, просмотров: 525) ответил Vit на Нельзя объять необъятное(С)
Приведение всего к FSM - это слишком кардинально даже для меня :) Никто и не думает, чтобы отметить остальные методики. Туже многозадачность и пр. Вопрос в том, чтобы был инструмент, который можно использовать по мере необходимости. Если внутри потоком иметь некоторое количество зависимых или независисимых автоматов - понятность кода сильно вырастет. Теперь насчет "готовых либ" Вот тут собака и зарыта. Один из кайфов автоматного подхода состоит в том, что я могу запротоколировать поведение автомата. Т.е. писать очень короткий лог - временная метка - в какое состостояние перешел. Могу на дебаг консоль выводить, могу в FLASH писать. Вы привели классические примеры, где, на мой взгляд, применение автоматов просто жизненно необходимо. GSM модем - это хороший объект для автомата: включен, командный режим, режим данных, входящий звонок и т.д. Автомат там будет недецкий, сами понимаете. PPP/LCP еще один автомат, IP стек - третий. Если я запротоколирую переходы всех автоматов, то мне гораздо проще будет искать ответ на вопрос - а почему у меня в городе Н-ске нет связи с сервером? Или скорость GPRS 10 байт/сек? При создании чужих либ, при приходе нового человека в команду это вообще незаменимо. Вот просто так тупо парсить файл моском - тоскливо. А так посмотрел на автомаически сгенеренное структурное описание, на отдельные автоматы, и понял - а что в коде как работает. И когда "что-то пойдет не так" - ты не орешь на форумах "почему у меня в версии XXX либы происходит утечкам памяти", а мпокойно локализуешь проблему, и далее либо сам проавишь, либо к аффтару либы идешь.