пятница, апреля 24, 2009
Физкультура
понедельник, апреля 20, 2009
Первые 30 км
Позавчера проехался на велосипеде с друзьями до горнолыжного комплекса Ключи. Забрались на гору, тяжело это было. Затем съезжали с вершины, фотографируясь - получилось много и красиво. Это был мой первый опыт съезжания со склона по пересеченной местности, своего рода даунхил - надо будет как-нибудь повторить... :)
А еще я купил себе рюкзак, Mammut Freeride 18 - вообще он "зимний", но я его покупал для катания на велосипеде (хотя может и зимой с ним буду катать на борде), потому что все барахло (насос, запаска, отвертка и т.д.) помещенное в старый "ранец" очень неприятно в нем болталось, да и сам ранец бил по спине, подпрыгивая на кочках - новый же я покупал с ремнями (поясным и грудным). Поэтому рюкзак довольно плотно сидит на спине, и ни куда не "прыгает" и не съезжает вбок... Ну и конечно он более пригоден для перевоза всяких тяжестей, то есть два килограмма за плечами я даже не чувствовал. Ну и конечно в нем есть фишечка: свисток на одной из лямок, думаю буду регулярно свистеть... Просто так... :)
воскресенье, апреля 19, 2009
Подвожу итоги своего первого велосезона: лето-осень-зима 2008 и чуть-чуть 2009
пятница, апреля 10, 2009
Шерегеш
Температура сейчас в Новосибе +8, там примерно так же, но снег не должен таять, по крайней мере так говорят :) Вообщем посмотрим, надеюсь, будет весело!
суббота, апреля 04, 2009
BDD rocks! Cucumber rocks!
Студенты обычно тестируют так: написали функцию суммирования, проверили, что работает "2+2" - все! А потом оказывается, что на "3+0" она падает, а через некоторое время (когда что-то в коде менялось) вообще перестает даже "2+2" складывать. Человек не может после каждой модификации кода проверить все предельные и стандартные поведения программы - это просто очень трудоемко.
Но есть решение! Мы создаем тесты, которые будут проверять работу каждой функции в отдельности - в нашем примере это проверка, что "2+2=4" и "3+0=3". И каждый раз, мы запускаем тесты и убеждаемся, что все по прежнему работает.
Так же возможно мы придумаем, как улучшить алгоритм работы нашей функции, и тогда мы просто перепишем функцию и запустим тесты - если все OK, то мы молодцы, иначе откатываемся к предыдущей версии и думаем над улучшением работоспособности нового, более хорошего алгоритма.
Теперь поговорим о реализации этих тестов.. Ведь mix'овый калькулятор я бы рад протестировать, но абсолютно нет средств и инструментов для этого. С современными языками и фреймворками дела обстоят гораздо лучше: есть очень много этих самых средств и инструментов. Приведу пример лучших для Ruby (субъективное мнение):
- rspec - BDD фреймворк, весьма удобен, вот пример
Как можно увидеть, код вполне читаем на родном english'е, мы тестируем наш список в разных ситуациях и ожидаем определенного поведения.
Этот фреймворк мне нравится больше всего именно для тестирования разных функции, моделей - cucumber - и опять фреймворк, девиз которого "BDD with elegance and joy". Это просто супер - вот вам нравится идея написания тестов на русском языке. Мне - очень!
Это пример комплексного тестирования форума. Вы подумаете, что тут где-то обман (!), как система догадывается, что я имею ввиду? Ведь ИИ еще не доведен до юзабельного состояния :( Да, есть дополнительные расходы, которые заключаются в объявлении пары правил для обработки выражений специфичных для форумов, но это всего 10 строчек с регулярными выражениями, зато что мы получаем взамен!
Тест пишется за несколько минут, даже меньше, и он очень удобен для демонстрации людям, не знакомым с программированием, например, дизайнерам и заказчикам!
четверг, апреля 02, 2009
Шерегеш в апреле - катание в майках
Обязательно поеду, по-моему будет очень классно и, как минимум, очень необычно!