О целях юнит-тестирования.
Задачка для страшеклассников
Маленькая и совсем несложная задачка.
Есть две переменные a и b. Поменять местами их значения, не вводя третью переменную.Решение:
a = a+b
b = a - b
a = a - b
Еще одна интересная задачка
Нравятся мне эти задачки, несложные, но хитрые :) Вот еще одна.
Дано целое натуральное число. Без использования циклов и рекурсии поменять значение самого крайнего правого бита, равного 0, на 1.
Например, 0101 -> 0111; 1010 ->1011
Решение:value | (value+1)
Очень сложная задачка
Не так давно знакомый программист, проходивший собеседование в девелоперской конторе, поделился задачкой, которую получил на собеседовании:
Есть массив из N элементов, в котором находятся значения от 1 до N+1. Одно значение пропущено. Нужно его определить за линейное время. Массив не сортирован.
Вот такая хитрая задачка с ооочень тривиальным решением :)
IoC, DI, WTF?
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 редактор
Наткнулась на SourceForge на милый UML-редактор NClass с элементами интерфейса, такими родными и привычными для меня как пользователя Visual Studio.
Простой и интуитивно понятный интерфейс. Поддерживает два типа диаграмм - java, c#, кодогенерацию, экспорт диаграммы в PDF, сохранение в разных графических форматах (png, jpg, etc...). Что еще сказать? Программа бесплатна, написана C#. Из минусов - нет Ctrl+Z, Ctrl+C, Ctrl+V :( Надеюсь, в следующих релизах появится поддержка этих поистине горячих сочетаний клавиш :)
Ярлыки
Копирайты
Блог о жизни вне кода
Постоянные читатели
Популярно
-
Понравился анекдот о колбасе и яйцах :) Жена посылает мужа-программиста в магазин: - Дорогой, купи, пожалуйста, палку колбасы, и если б...
-
Продолжаю серию постов о своём первом андроид-приложении. Сегодня мысли о публикации приложения в разных маркетах.
-
Бета-версия одиннадцатой cтудии вызвала много охов и ахов. Чтобы там ни говорили, работать в ней приятно, хоть по началу немного необычно. ...
-
Jquery.Inputmask - крутой (да-да, именно) плагин, добавляющий гибкости в работу с обычным текстовым полем для ввода. Плагин является ус...
-
Перевод поста "Top 10 Things That Annoy Programmers" Кевина Панга. Оригинал тут
-
Разделяй и влавствуй - подход на все времена. Концепция модульного программирования не нова, и хорошо себя зарекомендовала. В мире разрабо...
-
Фридман А.Л. - Основы объектно-ориентированной разработки программных систем. ( скачать ) Книга написана как учебное пособие для студентов ...
-
Steve Freeman, Nat Pryce. Growing Object-Oriented Software, Guided by Tests ( скачать ) Test-Driven Development (TDD) is now an established...
-
Для некоторых методов класса Microsoft Code Analysis даёт такой совет: CA1822 : Microsoft.Performance : The 'this' parameter (or ...