Если ты студент и у тебя есть студенческий билет, то ты можешь получить ряд продуктов бесплатно:
Visual Studio 2008
Visual Studio 2005
XNA Game Studio 3
SQL Server 2008 Developer
Windows Server 2003
Windows Server 2008 Standard
Expression Studio 2
Подробности тут:
Доступ к DreamSpark по студенческому билету для украинских студентов и аспирантов
среда, 18 марта 2009 г.
понедельник, 16 марта 2009 г.
Необычный подход к написанию юнит тестов
Обнаружил довольно необычный подход к написанию юнит тестов у автора вот этого поста:
Test Driven Design и Test First Development -- в чем разница?
Меня привлекло то, что тест класс представляет из себя наследник тестируемого класса.
Приведу пример классического и альтернативного подхода (пример из документации NUnit).
Тестируемый класс:
Сразу отмечу, что конкретно в этом примере второй вариант, вероятно, выглядит неудачно. Скорее всего в каких-то случаях наследование, возможно, выглядит более привлекательно.
Лично у меня возникает вопрос. А стоит ли вообще так писать тесты?
У меня сходу возникли следующие мысли насчет альтернативного подхода:
+ Наследование позволяет протестировать protected методы
+ Я могу написать helper-методы в тест классе, который будет активно работать с protected методами и свойствами
- Наследование дает бОльшую связность между тестовым и тестируемым классом
- Наследование скорее всего завяжет мне руки в SetUp/TearDown методах
- Если класс sealed, то о подходе с наследованием можно забыть
- Когда я пишу классический тест-метод, то я получаю лаконичную документацию к своему коду в виде маленьких примеров
- Когда я пишу классический тест-метод, то я использую класс точно так же как это делает production-код
- У класса Account будет аж два клиента - production code and unit tests, что как правило будет положительно отражаться на его интерфейсе
Очень интересны ваши мнения на этот счет.
Test Driven Design и Test First Development -- в чем разница?
Меня привлекло то, что тест класс представляет из себя наследник тестируемого класса.
Приведу пример классического и альтернативного подхода (пример из документации NUnit).
Тестируемый класс:
namespace bankТест, написаный при помощи "классического" подхода:
{
public class Account
{
private float balance;
public void Deposit(float amount)
{
balance+=amount;
}
public void Withdraw(float amount)
{
balance-=amount;
}
public void TransferFunds(Account destination, float amount)
{
}
public float Balance
{
get{ return balance;}
}
}
}
namespace bankТест, написанный с помощью альтернативного подхода с наследованием:
{
using NUnit.Framework;
[TestFixture]
public class AccountTest
{
[Test]
public void TransferFunds()
{
Account source = new Account();
source.Deposit(200.00F);
Account destination = new Account();
destination.Deposit(150.00F);
source.TransferFunds(destination, 100.00F);
Assert.AreEqual(250.00F, destination.Balance);
Assert.AreEqual(100.00F, source.Balance);
}
}
}
namespace bank
{
using NUnit.Framework;
[TestFixture]
public class AccountTest : Account
{
[Test]
public void TestTransferFunds()
{
this.Deposit(200.00F);
Account destination = new Account();
destination.Deposit(150.00F);
this.TransferFunds(destination, 100.00F);
Assert.AreEqual(250.00F, destination.Balance);
Assert.AreEqual(100.00F, this.Balance);
}
}
}
Сразу отмечу, что конкретно в этом примере второй вариант, вероятно, выглядит неудачно. Скорее всего в каких-то случаях наследование, возможно, выглядит более привлекательно.
Лично у меня возникает вопрос. А стоит ли вообще так писать тесты?
У меня сходу возникли следующие мысли насчет альтернативного подхода:
+ Наследование позволяет протестировать protected методы
+ Я могу написать helper-методы в тест классе, который будет активно работать с protected методами и свойствами
- Наследование дает бОльшую связность между тестовым и тестируемым классом
- Наследование скорее всего завяжет мне руки в SetUp/TearDown методах
- Если класс sealed, то о подходе с наследованием можно забыть
- Когда я пишу классический тест-метод, то я получаю лаконичную документацию к своему коду в виде маленьких примеров
- Когда я пишу классический тест-метод, то я использую класс точно так же как это делает production-код
- У класса Account будет аж два клиента - production code and unit tests, что как правило будет положительно отражаться на его интерфейсе
Очень интересны ваши мнения на этот счет.
среда, 11 марта 2009 г.
Тест. Какой вы ученый?
Очередное баловство на тему тестов.
Да, действительно, я всегда стараюсь копнуть глубоко в тех вещах, которыми занимаюсь, которые считаю важными для себя.
Как правило это играет мне на руку, хотя иногда все-же делает меня занудой. :)
Да, действительно, я всегда стараюсь копнуть глубоко в тех вещах, которыми занимаюсь, которые считаю важными для себя.
Как правило это играет мне на руку, хотя иногда все-же делает меня занудой. :)
| О, да вы - физик. |
| Пройти тест |
четверг, 19 февраля 2009 г.
IronPython. Ссылки.
Начинаем работать с IronPython.
http://blogs.gotdotnet.ru/personal/AlexanderByndyu/PermaLink.aspx?guid=71d5dcff-7833-4242-ac06-5388ad993acf
Entry point для того чтобы начать работать с IronPython в Visual Studio 2008.
Блог автора языка IronPython:
http://blogs.msdn.com/haibo_luo/default.aspx
IronPython: Grab the .NET Type
http://blogs.msdn.com/haibo_luo/archive/2007/09/25/5130087.aspx
Можно сказать entry point по IronPython/.NET interop. Очень мало, но наглядно :)
IronPython: Keyword Argument to Set .NET Property/Field
http://blogs.msdn.com/haibo_luo/archive/2007/10/02/5246577.aspx
Если кто-нибудь любит свеженькие конструкции C# вроде Object Initializer, то стоит просмотреть этот пост.
IronPython: Passing Arguments for a Call
http://blogs.msdn.com/haibo_luo/archive/2007/10/01/5230964.aspx
Примеры использования разных способов передачи параметров в функцию - позиционные параметры, параметры со значением по-умолчанию, опциональные параметры, передача параметра по имени.
IronPython: Provide (or not) Argument for by-ref Parameter
http://blogs.msdn.com/haibo_luo/archive/2007/10/04/5284947.aspx
Вызов методов с ref-параметрами.
IronPython Cookbook
http://www.ironpython.info/index.php/Main_Page
Собрание материалов по IronPython.
SimplePrograms
http://wiki.python.org/moin/SimplePrograms
Своеобразные подсказки для тех, кто не хочет держать все время языковые конструкции в голове ;)
DLR Hosting and related stuff...
http://blogs.msdn.com/seshadripv/default.aspx
Релизная версия IronPython 2.0 работает поверх Dynamic Language Runtime. Если вам (не дай бог :) ) придется интегрировать хостинг Python-скриптов с вашим .NET-приложением, то тут можно почерпнуть максимум возможной информации.
http://blogs.gotdotnet.ru/personal/AlexanderByndyu/PermaLink.aspx?guid=71d5dcff-7833-4242-ac06-5388ad993acf
Entry point для того чтобы начать работать с IronPython в Visual Studio 2008.
Блог автора языка IronPython:
http://blogs.msdn.com/haibo_luo/default.aspx
IronPython: Grab the .NET Type
http://blogs.msdn.com/haibo_luo/archive/2007/09/25/5130087.aspx
Можно сказать entry point по IronPython/.NET interop. Очень мало, но наглядно :)
IronPython: Keyword Argument to Set .NET Property/Field
http://blogs.msdn.com/haibo_luo/archive/2007/10/02/5246577.aspx
Если кто-нибудь любит свеженькие конструкции C# вроде Object Initializer, то стоит просмотреть этот пост.
IronPython: Passing Arguments for a Call
http://blogs.msdn.com/haibo_luo/archive/2007/10/01/5230964.aspx
Примеры использования разных способов передачи параметров в функцию - позиционные параметры, параметры со значением по-умолчанию, опциональные параметры, передача параметра по имени.
IronPython: Provide (or not) Argument for by-ref Parameter
http://blogs.msdn.com/haibo_luo/archive/2007/10/04/5284947.aspx
Вызов методов с ref-параметрами.
IronPython Cookbook
http://www.ironpython.info/index.php/Main_Page
Собрание материалов по IronPython.
SimplePrograms
http://wiki.python.org/moin/SimplePrograms
Своеобразные подсказки для тех, кто не хочет держать все время языковые конструкции в голове ;)
DLR Hosting and related stuff...
http://blogs.msdn.com/seshadripv/default.aspx
Релизная версия IronPython 2.0 работает поверх Dynamic Language Runtime. Если вам (не дай бог :) ) придется интегрировать хостинг Python-скриптов с вашим .NET-приложением, то тут можно почерпнуть максимум возможной информации.
понедельник, 9 февраля 2009 г.
Тест. Какая культура вам ближе?
Решил расслабить мозги после тяжелого трудового понедельника очередным тестом :)
| Поздравляем!!! Вам ближе американская культура |
| Вас зовет земля свободы! Вам импонируют американское видение жизни и ценности "нового света". |
| Пройти тест |
пятница, 30 января 2009 г.
KDE 4.2. Релиз для всех.
Выпущен релиз KDE 4.2, который, как утверждают разработчики, уже готов для конечного пользователя.
До этого было два релиза, которые опционально включались в дистрибутивы, однако не были готовы к повседневному использованию простыми смертными.
Обзор. Можно ограничиться просмотром картинок :)
http://adymo.blogspot.com/2009/01/kde4-review-from-inside-out-part-1.html
http://adymo.blogspot.com/2009/01/kde-42-review-from-inside-out-part-2.html
Я с большим интересом наблюдаю за развитием ветки 4.x. Было даже несколько попыток установить его на свой дистрибутив Ubunut. Однако каждый раз я возвращался на стабильный Gnome. Хотя во многих моментах KDE 4.x мне нравится больше чем Gnome.
Отмечу так же что стабильный релиз KDE 3.5 мне вообще не нравился.
До этого было два релиза, которые опционально включались в дистрибутивы, однако не были готовы к повседневному использованию простыми смертными.
Обзор. Можно ограничиться просмотром картинок :)
http://adymo.blogspot.com/2009/01/kde4-review-from-inside-out-part-1.html
http://adymo.blogspot.com/2009/01/kde-42-review-from-inside-out-part-2.html
Я с большим интересом наблюдаю за развитием ветки 4.x. Было даже несколько попыток установить его на свой дистрибутив Ubunut. Однако каждый раз я возвращался на стабильный Gnome. Хотя во многих моментах KDE 4.x мне нравится больше чем Gnome.
Отмечу так же что стабильный релиз KDE 3.5 мне вообще не нравился.
суббота, 20 декабря 2008 г.
Знаю ли я русский язык?
Недавно наткнулся на нехитрый тест по проверке знаний русского языка.
Кроме информации выше, на странице был еще вот такое резюме по поводу моего результата:
Вы ответили на 6 из 8 простых вопросов. Не самый плохой результат на общем фоне. Скорее всего, вы неплохо знали русский язык в школе, просто было это давно, и теперь учебник Розенталя для вас заменяет грамматическая автопроверка в "Ворде". Гордиться вам особенно нечем, но для выживания в среде носителей русского языка этого вполне хватит. Таких, как вы, в стране, согласно опросу ВЦИОМа, - 21%.*
Какие мои личные выводы?
1. Мои учителя действительно были правы, когда ставили мне 4 на протяжении многих лет школы.
2. Спустя много лет мой мозг еще не успел засохнуть :)
3. Как гражданин Украины, который родился и вырос в этой стране, вполне могу себе позволить иметь оценку четыре по языку, который не является государственным.
4. По украинскому языку у меня тоже было четыре. Но это связано с тем что я говорю и думаю на русском языке, а мое любимое, [censored], государство считает что я (и еще 1/2 - 1/3 граждан) должен знать государственный язык.
| Я проверил свои знания русского языка и получил четверку. Сходи, проверься? |
Кроме информации выше, на странице был еще вот такое резюме по поводу моего результата:
Вы ответили на 6 из 8 простых вопросов. Не самый плохой результат на общем фоне. Скорее всего, вы неплохо знали русский язык в школе, просто было это давно, и теперь учебник Розенталя для вас заменяет грамматическая автопроверка в "Ворде". Гордиться вам особенно нечем, но для выживания в среде носителей русского языка этого вполне хватит. Таких, как вы, в стране, согласно опросу ВЦИОМа, - 21%.*
Какие мои личные выводы?
1. Мои учителя действительно были правы, когда ставили мне 4 на протяжении многих лет школы.
2. Спустя много лет мой мозг еще не успел засохнуть :)
3. Как гражданин Украины, который родился и вырос в этой стране, вполне могу себе позволить иметь оценку четыре по языку, который не является государственным.
4. По украинскому языку у меня тоже было четыре. Но это связано с тем что я говорю и думаю на русском языке, а мое любимое, [censored], государство считает что я (и еще 1/2 - 1/3 граждан) должен знать государственный язык.
Подписаться на:
Сообщения (Atom)