Требуется разработчик на удаленку 1000-2000$

whirlwind

TDD infected, paranoid
Требуется разработчик, уверенно-владеющий ООП, владеющий (или с прицелом на) TDD.
Требования: тест-код-рефакторинг
Условия: удаленка, оплата за недельную итерацию, вилка 200-500$ от скилла, с перспективой. Для начала рассчитываем на 2 итерации в месяц, так что без напрягов успеем познакомиться.

Для сомневающихся про ООП учитываем что написано тут http://phpclub.ru/talk/threads/Требуется-php-программист-на-удаленку-2000-мес.64963/#post-574261 (предвосхищая типичное "что с предыдущим?", отвечаю - эта вакансия под новые проекты)

Для несомневающихся, присылайте свои примеры 2 связанных интерфейсом классов, разработанных по TDD (то есть на основе тестов - кривых, косых, любых не важно, я все пойму :D ) ссылки в личку или в этом топике. Если присылать нечего, то предлагаю простое тестовое задание, которое следует сделать на TDD
Дано:
PHP:
interface ICommand {

	/**
	 * Выполнить команду
	 * @return void
	 * @throws CommandException
               */
    function execute();

    /**
     * Откатить изменения, выполненные командой
     * @return void
     */
    function rollback();

}

interface ITransaction {

	/**
	 * Добавить команду
	 * @param ICommand $cmd
	 * @return void
	 */
    function addCommand(ICommand $cmd);

    /**
     * Выполнить транзакцию
     * @return boolean
     */
    function execute();

}
ITransaction::execute пытается выполнить все команды, если какая то команда не выполняется, оно делает каждой предыдущей выполненной команде rollback. Для примера можно взять команду копирования файла, распаковки zip-архива, etc.

PS. Вопрос "мало денег" обсуждаем как минимум после кода.
 

Koc

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

whirlwind

TDD infected, paranoid
Так иди как на доп халтуру :) У тебя хорошая база. Глядишь, переманим деньгой.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Я думаю, тут скорее дело не в деньгах, а в том, что боятся TDD. По крайней мере, я — боюсь :)
 

whirlwind

TDD infected, paranoid
флоппик вот это меня и поражает. Написано же - или с прицелом. То есть, за совсем немаленькие деньги предлагается поднять собственный скилл и никому это не интересно? Нонсенс :D
 

AmdY

Пью пиво
Команда форума
о, так вакансия ещё есть?
как раз хочу попробовать удалёнку. Сейчас активно штурмую и пишу тесты, пока ещё не готов, но на следующей неделе будет что показать.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
флоппик вот это меня и поражает. Написано же - или с прицелом. То есть, за совсем немаленькие деньги предлагается поднять собственный скилл и никому это не интересно? Нонсенс :D
Ну, может еще быть, что не хотят признавать «неквалификацию» собственную в вопросах программирования. Я вот например просто думаю, что я банально не потяну )
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Та не, я думаю зажралися. Покажи моего конкурента, кто здесь предлагает больше на удаленку.
здесь - это очень ограниченная выборка
например, вчера я написал свои предложения сюда:
http://www.scriptlance.com/projects/1295530477.shtml
http://www.scriptlance.com/projects/1295386077.shtml

да, мне интересно поработать для того, кто ценит качество, с кем можно обсудить, но лениво же вкалывать за пол-цены :)
 
  • Like
Реакции: Mols

Adelf

Administrator
Команда форума
Mols
ты не проверяешь что выполненные команды отроллбачились. Тут моки очень удобно использовать...
 

Mols

Новичок
Adelf
угу. Не проверяю.
Основываясь на описании интерфейса в основном.
Но оставил это как замечание в TODO )))
Где-то ж надо остановиться... это ж ТЗ
И даже доку сгенерил на всякий.
Чтобы TODO было удобно смотреть.
Но давайте подождем, что ТС скажет.
Понятно же, что я не адепт))) Просто имею большое желание поработать с командой, где разработка основана на TDD
 

whirlwind

TDD infected, paranoid
Mols скажу что это тесты натянутые на код, а не код написанный под тесты. Например, что проверяет тест CommandTransactionTest::testExecute? Возврат булева значения? А по тесту можно сказать от чего зависит результат CommandTransaction::execute? Например, если мы используем подход тестирования состояния, то там следует проверить, что файлы действительно были созданы: $this->assertTrue(file_exists(имя файла)) для каждой команды. Если мы используем подход проверки поведения, то следует создать моки и установить ожидания. Этот тест ничего не тестирует. Я смотрю на тест, и не могу сказать как работает транзакция. С равным успехом я могу предположить, что внутри класса транзакции есть статический счетчик, который инкрементируется при каждом вызове. И результат выполнения CommandTransaction::execute зависит от того, четное значение счетчика или нечетное. Фантазировать можно бесконечно много.

То же самое касается теста команды. Из четырех тестов, тестами по факту являются только два.

PS. но вообще, попытка похвальна
 
Сверху