Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.07.2011, 17:23
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 1  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
По умолчанию Универсальный алгоритм обработки результатов

Привет.
Есть несколько тысяч операций, которые выдают результаты различного типа. Каждый результат надо обрабатывать по определенной формуле и определять хорошо или плохо. Все было просто, когда обработка была на сравнения с каким то параметром. Например результат число больше 200, или строка != "", ну и если результат массив, то обычно проверялась его длина или искался элемент в нем. Я до сих пор использовал формулы в обратной польской нотации (ОПН), куда подставлялся результат. Было более менее универсально.

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

У меня пока вариант, использовать регэкспы в довесок к ОПН, но только для строк.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 21.07.2011, 19:08
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Написать валидаторы с стандартизированным интерфейсом, которые будут принимать параметр и выдавать результат.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 21.07.2011, 22:14
Flashrunner вне форума Посмотреть профиль Отправить личное сообщение для Flashrunner Найти все сообщения от Flashrunner
  № 3  
Ответить с цитированием
Flashrunner

Регистрация: Sep 2010
Сообщений: 47
Почитайте про шаблон Specification http://martinfowler.com/apsupp/spec.pdf

Старый 21.07.2011, 23:58
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 4  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Написать валидаторы с стандартизированным интерфейсом, которые будут принимать параметр и выдавать результат.
Хм, меня сейчас больше "начинка" валидаторов интересует. Но спасибо за совет, пригодится при рефакторинге.

Цитата:
Почитайте про шаблон Specification http://martinfowler.com/apsupp/spec.pdf
Спасибо, почитаю, отпишусь.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 22.07.2011, 00:38
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 5  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Начинка может быть какая угодно, тут как раз нет необходимости приводить начинку к одному виду. Унификацию проверки реализует валидатор.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 22.07.2011, 00:44
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 6  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
То есть для чисел один валидатор, для строк другой, для массивов третий? Если да, имеет ли смысл дробить их еще мельче по виду проверки - отдельный валидатор для больше, отдельный для меньше, третий для равно?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 22.07.2011, 00:52
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 7  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Именно. Имеет ли смысл дробить это тебе решать, можно и подробить.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 22.07.2011, 01:11
Flashrunner вне форума Посмотреть профиль Отправить личное сообщение для Flashrunner Найти все сообщения от Flashrunner
  № 8  
Ответить с цитированием
Flashrunner

Регистрация: Sep 2010
Сообщений: 47
Валидаторы, описанные alatar, по сути и есть Спецификации по Фаулеру.
Цитата:
Сообщение от GBee Посмотреть сообщение
Если да, имеет ли смысл дробить их еще мельче по виду проверки - отдельный валидатор для больше, отдельный для меньше, третий для равно?
Вообще валидаторы должны отвечать только true или false, это и делает их унифицированными. В данном случае я бы наверное создал 'My'RangeValidator, если вас интересует конкретный диапазон значений.
В статье, на которую я дал ссылку, написано как удобно делать композитные валидаторы.

Старый 22.07.2011, 01:19
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 9  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Именно. Имеет ли смысл дробить это тебе решать, можно и подробить.
Ага отлично, спасибо.

Цитата:
Валидаторы, описанные alatar, по сути и есть Спецификации по Фаулеру.
Я еще не читал, английский у меня не на высоте, читаю долго со словариком. Но общий смысл я понял, идея то простая. Больше огорчает, что сам не допер, наверно с опытом придет.

Цитата:
Вообще валидаторы должны отвечать только true или false
Это как раз то, что мне нужно. Сейчас я все прогоняю через один объект, подобие большого валидатора (у меня он анализатором называется :о)) , и он возвращает бульон, как раз.


Спасибо.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 22.07.2011, 01:29
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 10  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Вообще валидаторы должны отвечать только true или false
Не должны, это один из вариантов. Ничто не мешает возвращать более информативные объекты.
__________________
משיח לא בא
משיח גם לא מטלפן

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:45.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.