Доброго времени суток.
Современный мир оставляет мало возможностей не сталкиваться с javascript. Nodejs стал для меня последней каплей и, разочарованный в RoR (слишком много магии и генераторов — никаких холиваров, рубисты!), я снова поддался безумию: один язык на клиенте и сервере. Хоть javascript и прекрасен как язык, фреймворков, которые реализуют MVVM или хотя бы MVC и которые бы мне понравились, нет. Они все тяжеловесны и требуют написания лишнего (мусорного) кода. Поэтому я бы хотел представить на суд мое видение MVVM и получить от сообщества пинков в нужном направлении. Лучшим направлением было бы: «Вы пропустили библиотеку, посмотрите %library_name%», ибо все, что на поверхности (angularjs, knockoutjs, etc.) я посмотрел. Ну а так как фреймворк сырой и вряд ли принесет сейчас кому-то пользу, в обмен на долгожданные пинки я попытаюсь кратко сформулировать свой опыт, полученный при его написании.
Читать полностью »
Метка «tdd» - 3
Javascript: тесты, компиляция и MVVM
2013-07-01 в 13:38, admin, рубрики: google closure, javascript, mvvm, qunit, requirejs, tdd, Песочница, метки: google closure, javascript, mvvm, qunit, requirejs, tddВведение в модульное тестирование для c# проектов в среде MonoDevelop
2013-05-28 в 16:12, admin, рубрики: nunit, tdd, Программирование, метки: c++, nunit, tdd, unit-testing Модульные тесты используются при разработке программного обеспечения. Они могут быть созданы как после написания исходного кода, так и до этого, все зависит от ваших предпочтений и вероисповедания, либо предпочтений вашей компании. Разработка через тестирование(TDD) вызывает довольно спорное впечатление. Кто-то считает, что это довольно бесполезная вещь, однако склонен не согласиться. Бесполезным TDD назвать точно нельзя. Создание теста покрывающего предполагаемое изменение в программе, а затем написание кода который бы позволил пройти этот тест, заметно упрощает разработку. Модульные тесты так же используются для проверки уже созданного функционала. Однако достичь 100% покрытия кода программы модульными тестами практически невозможно.
Читать полностью »
Подход к решению сложных задач в программировании и вообще
2013-05-12 в 14:50, admin, рубрики: tdd, Песочница, Программирование, метки: tdd, ПрограммированиеПериодически перед нами возникают задачи, решение которых кажется для нас просто не возможным. Мы не знаем как подступиться, с чего начать, и чем больше мы думаем об этой проблеме, тем больше закапываемся и приходим в отчаянье.
Это может быть реализация большого функционала, особенно используя новые технологии. Или большой рефакторинг legacy кода.
Или в обычной жизни, это может быть сбор детского китайского велосипеда. Несколько дней назад, я купил сыну велосипед, привез в коробке домой, открыл коробку, и впал в отчаянье:
(картинка из внешнего источника, свою не сделал)
Автоматизация тестирования Web-приложений
2013-04-29 в 18:04, admin, рубрики: .net, bdd, Gangnam Style, nunit, specflow, tdd, web-разработка, webdriver, приёмочные тесты, разработка, тестирование, метки: .net, bdd, gangnam style, nunit, specflow, tdd, web-разработка, webdriver, приёмочные тесты
Автоматизация тестирования – место встречи двух дисциплин: разработки и тестирования. Наверное поэтому, я отношу эту практику к сложным, но интересным.
Путем проб и ошибок мы пришли к следующему технологическому стеку:
- SpecFlow (опционально): DSL
- NUnit: тестовый фреймворк
- PageObject + PageElements: UI-абстракиця
- Контекст тестирования (информация о целевом окружении, пользователях системы)
- Selenium.WebDriver
Для запуска тестов по расписанию мы используем TFS 2012 и TeamCity.
В статье я опишу, как мы к этому пришли, типовые ошибки и пути их решения.
Читать полностью »
Как начать писать тесты за 10 шагов по 10 минут
2013-04-23 в 9:33, admin, рубрики: tdd, разработка, тестирование, тесты, метки: tdd, тестыДайте-ка угадаю: вы согласны с тем, что писать тесты — это хорошо. Это повышает надежность системы, ускоряет разработку, проект с хорошим тестовым покрытием поддерживать легко и приятно, а TDD — это вообще почти идеал процесса разработки. Но не у вас в проекте. То есть, оно клёво, но, к сожалению, сейчас столько работы — просто завал. Куча задач, одних только критических багов — два десятка, плюс надо срочно дописать этот модуль и еще написать письмо заказчику… Так что тесты, наверное, будем прикручивать уже в конце, если время останется. Или в следующем проекте. Нет, ну там точно полегче будет. Скорее всего.
Как, узнали ситуацию?
Так вот — чушь всё это. Сфера ИТ — бесконечна, как вселенная, куча работы будет всегда. Можно или начать писать тесты прямо сейчас, или не сделать этого никогда. Я тут набросал короткий план, как начать это делать за 10 шагов, по шагу в день, по 10 минут на шаг. И когда я говорю «10 минут» я имею в виду не «3 с половиной часа» и не «ну сколько-то времени, лучше побольше», а именно 600 секунд. Если у вас нету в день 600 секунд свободного времени — срочно меняйте проект, работу, профессию, страну проживания (нужное подчеркнуть), потому что это не жизнь, а каторга какая-то. Поехали.
Читать полностью »
NPM для front-end разработки
2013-04-22 в 15:15, admin, рубрики: bdd, html, javascript, nodejs, npm, tdd, Веб-разработка, метки: bdd, html, javascript, nodejs, npm, tdd, фронтенд Недавно я задался вопросом поиска инструментария для разработки мобильных приложений на html/css. Из требований были: доступность, легковесность, простота настройки. Выбор пал на встроенный Node менеджер NPM. NPM содержит
инструментарий для базовых тасков типа install и запуска пользовательских скриптов. Также NPM не такой громоздкий, как Grunt и не требует адаптации модулей под себя, т.к. запускает модули с командной строки.
Управление front-end проектом с помощью NPM
2013-04-22 в 15:15, admin, рубрики: bdd, html, javascript, nodejs, npm, tdd, Веб-разработка, метки: bdd, html, javascript, nodejs, npm, tdd, фронтенд Недавно я задался вопросом поиска инструментария для разработки мобильных приложений на html/css. Из требований были: доступность, легковесность, простота настройки. Выбор пал на встроенный Node менеджер NPM. NPM содержит
инструментарий для базовых тасков типа install и запуска пользовательских скриптов. Также NPM не такой громоздкий, как Grunt и не требует адаптации модулей под себя, т.к. запускает модули с командной строки.
Пара слов о книге «Professional TDD with C#»
2013-04-14 в 14:30, admin, рубрики: .net, tdd, книга, тестирование, метки: tdd, книга, тестирование
Хотел бы сказать пару слов о книге Professional Test Driven Development with C#. Выбрать книгу по популярным технологиям и техникам программирования не так сложно. На каждом форуме написано, что если хочешь познать .NET – не обойтись без Рихтера. Сложнее с менее популярными темами. Итак, TDD…
ASP.NET MVC Урок E. Тестирование
2013-04-09 в 18:53, admin, рубрики: .net, ASP, asp.net mvc, nunit, tdd, метки: .net, asp.net mvc, c++, nunit, tddЦель урока. Научиться создавать тесты для кода. NUnit. Принцип применения TDD. Mock. Юнит-тесты. Интегрированное тестирование. Генерация данных.
Тестирование, принцип TDD, юнит-тестирование и прочее.
Тестирование для меня лично – это тема многих размышлений. Нужны или не нужны тесты? Но никто не будет спорить, что для написания тестов нужны ресурсы.
Рассмотрим два случая:
- Мы делаем сайт, показываем заказчику, он высылает список неточностей и дополнительных пожеланий, мы их бодро правим и сайт отдаем заказчику, т.е. выкладываем на его сервер. На его сервер никто не ходит, заказчик понимает, что чуда не произошло и перестает платить за хостинг/домен. Сайт умирает. Нужны ли там тесты?
- Мы делаем сайт, показываем заказчику, он высылает список правок, мы их бодро правим, запускаем сайт. Через полгода на сайте 300 уников в день и эта цифра растет изо дня в день. Заказчик постоянно просит новые фичи, старый код начинает разрастаться, и со временем его всё сложнее поддерживать.
Лень-driven development
2013-03-26 в 10:17, admin, рубрики: gtd, tdd, Исследования и прогнозы в IT, лень, метки: tdd, лень Человек — ужасно ленивая зараза. Нет, ну я не о вас, конечно! Ну что вы! Я так, о себе. О 99% человечества. Но не о вас, нет. Вы сами за себя решайте. Но вот те 99%, так уж вышло — ужасно ленивы. Кто-то это отрицает, кто-то мирится, кто-то борется. А лично мне кажется, что это такая же неотъемлемая черта нашего вида, как, например, две руки и две ноги. Можно убиваться, что у нас нет крыльев или жабр — а можно научиться хорошо пользоваться тем, что есть. Так же и с ленью. Зачем её отрицать? Надо её использовать по-полной. И вот тут, поскольку мы с вами имеем кое-какое отношение к ИТ, давайте посмотрим, как с этим обстоит дело в нашей профессии.
Читать полностью »