![]() |
![]() |
Behaviour driven programming или переворот в сознании программераBDD - behaviour driven programming, по-нашему "поведенческое программирование", основанное на мысли о том, что делает это, кому это наужно, и для чего делать это. В основу bdd заложено tdd test driven development (не слыхали? тогда бегом на wiki, восполнять пробелы в знаниях).
Все эти dd приводят вас в ужас? Попробую объяснить человеческим языком. Раньше ведь как было? Напишешь бывало, код, напишешь еще, расширяешь функционал, расширяешь, даже не задаваясь вопросом нужен ли он, или только для "галочки", как и кто этим кодому будет пользоваться? А потом кода становится много и один код начинает цеплять кусочки работы другого кода, т.е. любое изменение одного объекта может отразиться на работе других объектов, а ошибки в конечном счете будут вылазить уже в самом неприятном месте - на десктопе конечного пользователя. До недавних пор ситуацию можно было бы назвать трагической, если бы не наличие тестов, которые кардинально меняют ситуацию. Особенно когда мы пишем тесты еще ДО НЕПОСРЕДСТВЕННОГО НАПИСАНИЯ КОДА. Как так? А вот так. Например, объект Box должен уметь добавлять некий элемент item в массив items. Все что нам нужно проверить, так это то, что элемент добавился корректно, т.е. что Box.add(item) будет добавлять в Box.items[] новый item. Пишем тест, @box=Box.new Вот и всё. Если все работает, то assert_not_nil вернет true и наши тесты пройдут. Вот теперь мы можем написать непосредственно метод объекта Box: def add(item) По мере написания нового кода - мы будем дописывать тесты и каждый раз прогонять наш проект все большим числом проверок, что обеспечит как качество кода, так и понятность и логичность в бизнес-объектах в целом. Это TDD, который нативно поддерживается Ruby и Rails. Но есть на свете умные люди, которые пошли еще дальше, и стали делать тесты всё более человечными, для чего был написан плагин RSpec и написание при помощи него тестов и кода стало называться behaviour driven programming. Основная мысль RSpec - создание спецификаций и выражение языком близким к человеческому того, чего ожидается от объекта, т.е. его поведение, а вокруг спецификации уже выстраиваются тесты и сам код. Замечательный туториал для RSpec for Rails: http://blog.davidchelimsky.net/articles/2006/11/06/view-spec-tutorial Внимание, правильный url для установки плагина RSpec: svn://rubyforge.org/var/svn/rspec/tags/REL_0_7_5_1/rspec_on_rails/vendor/plugins/rspec_on_rails т.е. ruby script/plugin install svn://rubyforge.org/var/svn/rspec/tags/REL_0_7_5_1/rspec_on_rails/vendor/plugins/rspec_on_rails Да, вот такая вот мэйнструя в программировании вообще и для Rails в частности. Ну вот и закончен еще один проект
09:24, 16 ферваля 2007
( Web Development )
Простой и легкий дизайн в стиле Web 2.0, Фичи: база вакансий, база резюме, CMS с tiny_mce и picbrowser, подписка на получение новых вакансий, вакансии автоматически рассылаются при публикации. Подписка с подтверджением, отписка по ссылке в письме. Для трекинга проекта впервые использовался Basecamp, от чего и пропёрся. Хорошая штучка. Если платить ежемесячную абонплату. Окончательно решилась проблема с часами в VMWare на AMD 64 Dual Core
11:49, 15 ферваля 2007
( Virtual Machines )
Оказалось, что проблема присуща именно этой платформе, решается, внимание, УСТАНОВКОЙ ДРАЙВЕРА ПРОЦЕССОРА AMD как в хостовой, так и в гостевой системах. Также, на всякий случай, установил AMD Dual-Core Optimizer который по описанию точно имеет отношение к часам и частотам, на которых работает процессор.
В общем, так проблема и решилась :) Вот про это же в ixbt: Забавные вещи в поисковых машинах
22:12, 12 ферваля 2007
( Daily thoughts )
Верстка HTML форм
19:14, 12 ферваля 2007
( Web Development )
По мотивам заметки с xhtml.ru (кстати, очень качественный ресурс) о форматировании формы без таблиц Короче, дабы не быть голословным, просто скажу, в css работает вот это: input[type='text']{ color:red; } Кому оно надо - тот поймет :) updated: Автообнаружение прокси. ИМХО, самый правильный способ настройки прокси на клиенте
13:33, 12 ферваля 2007
( Administration Education )
Опять же, как просветил всезнающий камрад brj, настраивать прокси на клиентах можно по-разному. И вот самый лучший, IMHO, cпособ автообнаружения. Далее привожу copy-paste из http://www.freeproxy.ru/ru/free_proxy/faq/wpad.htm
WPAD - это Web Proxy Auto-Discovery Protocol. Цель WPAD - в автоматическом обнаружении PAC URL (PAC - это Proxy Auto Config, файл на JavaScript). Для этого браузер использует DNS, DHCP и Service Location Protocol (SLP). WPAD позволяет клиентам автоматически определять настройки proxy сервера без участия пользователя. UPDATE: Читаем про грабли: http://www.sysoev.ru/web/wpad.html Web 2.0
18:16, 8 ферваля 2007
( Daily thoughts )
Видео потрясающе. Рекомендуется смотреть лицам, понимающим английский.
Link via brj Открыл для себя Mozilla Calendar
01:03, 8 ферваля 2007
( Mindmaps )
http://www.mozilla.org/projects/calendar/
Отлично, а я как раз искал инструмент для работы с гугль календарем и с basecamp календарем проекта. Имеет привычный интерфейс Outlook, позволяет работать с календарем и с задачами. А, еще есть плагины. (updated) VMWare сервер, контроллер домена и проблемы с синхронизацией по времени
17:02, 2 ферваля 2007
( Administration Virtual Machines )
Имеется: VMWare сервер 1.0.1 на базе Athlon 64 Dual Core 3800+, в нем устрановлен контроллер домена, виртуальный сервер терминалов и FreeBSD роутер. Началось все со странно работающей синхронизации времени на клиентах, очевидно, что время на клиентских машинах и на контроллере домена не совпадало, что в принципе, является ситуацией неординарной, т.к. для корректного функционирования kerberos5 протокола аутентификации между сервером и клиентами требовалось корректное (читай одинаковое) время. А разница во времени была, и очень немаленькая. А рассинхронизация времени на клиенте с контроллером домена влекла за собой последствия весьма неожиданые (сетевые принтеры не печатали, в терминалах вообще было вообще что-то невообразимое, политики применялись через раз). И вот захожу я на контроллер домена, и, о ужас, время идет БЫСТРЕЕ чем надо, т.е. буквально, секундная стрелка наворачивала круги как электросчетчик при включенном сварочном аппарате. Windows cannot find the machine account, The clocks on the client and server machines are skewed. . Вот такая печальная история. VMWare рекоммендует много workaround, есть целые дискуссии на форумах и описание проблемы в целом pdf на сайте производителя. Гугль дает по поиску много страниц. Лично у меня есть подозрение на power saving options в биосе и на работу dual core в vmware. UPDATE: Проблема решилась. Заходим в BIOS и ставим технологию Cool'n'Quiet в disable. UPDATE2: Не ставим виртуальным машинами ДВА ПРОЦЕССОРА. Только по одному.
|
© Максим Прокопов 2005-2024 | О сервере |