Показать сообщение отдельно
Старый 18.04.2012, 21:06
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ха, мне вост прямо сейчас дали тестовое задание написать какую-то показательную ерунду, которая бы себя логировала. Ну я решил немного усилить эффект и написать очень простенький встраиваемый язык, которым бы эта штука не только себя логировала, но и записывала команды в таком виде, чтобы потом выполнив их, программа бы точно воспроизвела действия пользователя.

Пример:

Код AS3:
private function clickHandler(event:MouseEvent):void
{
	this._console.run("(answer " + 
		this._fields.indexOf(event.currentTarget) + ")"); 
}
this._console - это экземпляр класса консоли, что он делает: выводит (или просто записывает) текст программы (или результат работы, закомментированый) и вызывает интерпретратор.
Т.е. код выше вызывает функцию:

Код AS3:
public function answer(index:int):void
{
	var type:String = 
		this._winner == index ? 
		ChallengeEvent.WIN : ChallengeEvent.LOOSE;
	super.dispatchEvent(new ChallengeEvent(type));
}
А класс, который слушает события делает что-то типа:

Код AS3:
private function looseHandler(event:ChallengeEvent):void
{
	this._console.print("; You loose!");
}
 
private function winHandler(event:ChallengeEvent):void
{
	this._console.print("; You win!");
}
Таким образом, во время интеракции пользователя и программы мы создаем тест, который потом можно выполнить в автоматическом режиме.

Я пока это сделал в очень общих чертах и язык очень-очень мало что умеет. Так только математику + логические операции + какие-то пару утилит.

Но я думаю продолжить над этим работать, уже, если честно, то третий раз берусь. Первый раз было только на попробовать. Второй - слишком сильно размахнулся. Вот, посмотрим, что сейчас выйдет.

Ближе к вечеру (или завтра), выложу сырцы куда-нибудь. Но они еще в таком состоянии, что людям лучше не показывать

Нажмите на изображение для увеличения
Название: console.png
Просмотров: 195
Размер:	26.9 Кб
ID:	27864

О, вот так на тестах выглядит: клик на одном из выражений - и обрабатываем результат.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 18.04.2012 в 21:18.