TypeMock Video: The Goals of Unit Testing

28 сент. 2010 г. | | |

О целях юнит-тестирования.

Задачка для страшеклассников

| | |

Маленькая и совсем несложная задачка.

Есть две переменные a и b. Поменять местами их значения, не вводя третью переменную.
Решение:
a = a+b
b = a - b
a = a - b

Еще одна интересная задачка

22 сент. 2010 г. | | |

Нравятся мне эти задачки, несложные, но хитрые :) Вот еще одна.

Дано целое натуральное число. Без использования циклов и рекурсии поменять значение самого крайнего правого бита, равного 0, на 1.
Например, 0101 -> 0111; 1010 ->1011

Решение:value | (value+1)

Очень сложная задачка

14 сент. 2010 г. | | |

Не так давно знакомый программист, проходивший собеседование в девелоперской конторе, поделился задачкой, которую получил на собеседовании:

Есть массив из N элементов, в котором находятся значения от 1 до N+1. Одно значение пропущено. Нужно его определить за линейное время. Массив не сортирован.

Вот такая хитрая задачка с ооочень тривиальным решением :)

С 256-ым днем в году!

13 сент. 2010 г. | | |

С нашим днём, уважаемые коллеги!!!
Красивого, чистого кода, и пусть обходят стороной вас баги!

IoC, DI, WTF?

10 сент. 2010 г. | | |

Давайте разберемся с этими загадочными абревиатурами и разницей между ними.

IoC (Inversion of Control) -
инверсия управления, один из принципов S.O.L.I.D., известна так же как Принцип обращения зависимостей (Dependency Inversion Principle, DIP). IoC - очень полезная техника, которая уменьшает связанность и придает гибкость разрабатываемому ПО. Принцип инверсии управления звучит так [wikipedia]:

Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
В своей статье Inversion of Control Containers and the Dependency Injection pattern Мартин Фаулер вводит понятие Dependency Injection (Dependency Injection) - внедрение зависимости - как разновидность IoC. Всего он выделяет три типа DI в зависимости от того, через что осуществляется DI:
1) Interface injection
2) Setter injection (пример)
3) Constructor injection (пример)

UML редактор

3 сент. 2010 г. | | |

Наткнулась на SourceForge на милый UML-редактор NClass с элементами интерфейса, такими родными и привычными для меня как пользователя Visual Studio.
Простой и интуитивно понятный интерфейс. Поддерживает два типа диаграмм - java, c#, кодогенерацию, экспорт диаграммы в PDF, сохранение в разных графических форматах (png, jpg, etc...). Что еще сказать? Программа бесплатна, написана C#. Из минусов - нет Ctrl+Z, Ctrl+C, Ctrl+V :( Надеюсь, в следующих релизах появится поддержка этих поистине горячих сочетаний клавиш :)