Smalltalk по-русски
суббота, Май 21, 2005
1-е ежегодное соревнование программистов на Smalltalk: предварительные итоги

Первая фаза 1-го соревнования программистов на Smalltalk длилась 48 часов с 17 часов по московскому времени понедельника 16 мая по 17 часов среды 18 мая.

Ошибся я сразу же. Забыл о разнице между киевским и московским временем, и, в результате, ознакомился с заданием на час позже начала.

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

Прикинув сложность, я подумал, что вполне реально сделать приложение удовлетворяющее базовым требованиям за пару часов. Через три часа стало ясно, что нужно еще минимум столько же времени :), а значит лучше перенести всё на следующий день.

Ввиду лёгкости задачи и того, что осталось работы часа на два-три следующий день (вторник) прошёл даром. И только в среду я занялся второй частью задания, а именно построением веб-интерфейса. Задание я делал на VW7.3 с Seaside поверх WebToolkit и BGOK для генерации графиков. Для упрощения разворачивания решения я решил использовать версию Seaside, идущую в дистрибутиве с VW. Это было второй ошибкой, из-за которой я пробежал по всем(!) багам, как отдельно Seaside-а так и комбинации Seaside+WebToolkit, которые были пофикшены за последние пол года. Последним испытанием стала отправка результатов. После отправки парселов, я решил отправить готовый образ с загруженными парселами дабы исключить любые накладки. Запакованый архив иеет размер около 8Мб. Потратив 40 минут я понял, что ни один из трёх доступных мне SMTP серверов письмо такого объёма не пропустит.

В среду на разработку было затрачено порядка 6-7 часов. Итого около 10 часов на выполнение задания.

Признаюсь, что, не смотря на относительную простоту и даже банальность, выполнение задания оказалось довольно полезным. В очередной раз убедился, что знание английского у меня хромает; даже не представляю, как тестировать веб-приложение и вообще с TDD проблемы; знаний CSS маловато даже для того, чтобы приложение выглядело хоть чуть получше, чем "нераскрашенный" HTML; чем делать графики под VW я не знаю. В сухом остатке: не стоило считать себя слишком могучим и откладывать разработку на потом.

В результате я получил приложение которое которое позволяет вести множество голований, выводить результаты голосования в текстовом и графическом виде (столбчатые и круговые диаграммы), данные хранятся в самом образе. И, так как в интернете выложены уже два приложения, то и я решил, не смотря на недовольство результатом, не прятаться от глаз общественности.

Скачайте архив с парселами. Перед загрузкой этих парселов загрузите парсел "Wave-Base", а затем пакет "SeasideForWebToolkit" версии "2.5b7.10.2" (последняя на даный момент) из публичного синкомовского репозитория. Урл для доступа к приложению: http://localhost:8008/seaside/go/surveys.

Два других доступных решения делались на других технологиях. Решение Blaine Buxton - Squeak с Seaside и PieChatMorph. Во-первых, выглядит оно не в пример красивей моего :). Во-вторых, большое покрытие тестами. В третьих, намного более полно использованы возможности Seaside. Так, там существует редактор вопросов, который, естественно, генерируется на лету. Существует возможность отображения круговых диаграм, а вот экспорт в XML вызывает исключение.

Решение Michael Lucas-Smith использует VW, собственный веб-фрейморк SimpleWeb (поверх WebToolkit), Prevayler и BGOK. Интересна история SimpleWeb. Зародился он на VAST. Так как там нет Seaside, то был создан фреймворк с API подобным Seaside, и использующим стиль передачи продолжений (CPS) для достижения того поведения, которое обеспечивает Seaside с помощью явных продолжений. Во время соревнования фреймворк был переписан(!) на VW. Помимо базовой функциональности данное приложение умеет отображать результат в виде круговой диаграммы, и имеет экспорт в XML. Приложение имеет около 90 тестов. Мои несколько тестов на этом фоне выглядят просто смешно.

Учитывая лёгкость создания базовой функциональности можно предположить, что при выборе победителя основную роль будут играть дизайн приложения, покрытие тестами, и дополнительная функциональность, как то наличие экспорта в XML, графического представления результатов голосования, качество пользовательского интерфейса (персонально мне понравился редактор голосований Blaine Buxton). Ну, и, нельзя исключить вероятность того, что приложение не сможет "скушать" тот конфиг, который приготовили судьи. Это будет довольно не приятно.

Результаты соревнования должны быть готовы к 1-му июня. Ждём-с.

Ярлыки:

Comments: Отправить комментарий

<< Home

Популярные статьи
:: Smalltalk?!
:: Почему Smalltalk?
:: Great Leap Forward from Java to Smalltalk

Последние сообщения
:: Smalltalk & OCL (Bold for Delphi/C++): Найдите 10 ...
:: Обмен опытом
:: Dolphin 6 beta
:: История GUI и Smalltalk
:: [Dolphin] Документация
:: Будущее IBM Instantinations' VisualAge Smalltalk
:: [VW] Знаете ли Вы, что такое Ephemeron?
:: [VW] Полезняшки: StorePlugins
:: Dolphin 6 - IdeaSpace
:: Находим публичный интерфейс класса во время выполн...

Архив
Предыдущие новости / Декабрь 2004 / Январь 2005 / Февраль 2005 / Март 2005 / Апрель 2005 / Май 2005 / Июнь 2005 / Июль 2005 / Август 2005 / Сентябрь 2005 / Октябрь 2005 / Ноябрь 2005 / Декабрь 2005 / Январь 2006 / Февраль 2006 / Март 2006 / Апрель 2006 / Май 2006 / Июнь 2006 / Июль 2006 / Сентябрь 2006 / Октябрь 2006 / Ноябрь 2006 / Декабрь 2006 / Январь 2007 / Февраль 2007 / Март 2007 / Апрель 2007 / Май 2007 / Июнь 2007 / Август 2007 / Сентябрь 2007 / Ноябрь 2007 / Январь 2008 / Март 2008 / Май 2008 / Июнь 2008 / Июль 2008 / Август 2008 / Сентябрь 2008

Atom Feed
Smalltalk по-русски


Powered by Blogger