Батл по рефакторингу 
Мы долго разговаривали разговоры, а пора бы уже дело делать, поэтому представляю вашему вниманию первый батл по рефакторингу.
Тема батла: “Работа с файловой структурой“.
Задание текущего батла: разработать программу которая генерирует структуру файлов и каталогов, на основании заданного массива.
Примечание, формат массива определяется разработчиком, при этом учитываются следующие моменты:
- 1. Структура может быть вложенной;
- 2. Структура может быть частично созданной, тогда нужно создать недостающие файлы;
- 3. В массиве должны указываться данные для файлов (контент);
- 4. Если файл уже существует, то его содержимое должно заменяться на контент;
- 5. Если для файла в массиве не задан контент, то содержимое файла должно быть пустым.
Маленькое лирическое отступление - в прошлом посте я опубликовал правила проведения батлов, так вот… Забудьте о них, порядок проведения батлов с сегодняшнего дня и навсегда таков:
Подготовительные действия:
- 1. Определяется тема и задание батла (заданий может быть много на одну тему, одно задание - это один раунд батла);
- 2. Каждый кто хочет пишет свой вариант программы по заданию и выкладывает на pastie.org (можно и в другом месте, по вкусу), здесь публикует только ссылку;
- 3. Для каждого опубликованного варианта начинается самое интересное - БАТЛ (или замес, если по-русски).
Ограничения на код:
- 1. Батл должен начинаться с нуля - это значит никакого готового кода. Фреймворкам говорим нет!
- 2. Разработка ведется через тесты и только через тесты. Тест показывает как должен работать код!
- 3. В батле участвует только код бизнес логики. Это значит что никакого html и тому подобных вешей;
Итак, после того как варианты опубликованы, а их, кстати говоря может быть всего один, начинаются боевые действия. Суть батла сводится к тому, чтобы набрать как можно больше очков, при этом применяются следующие “боксерские” удары и приемы:
- 1. “Хук слева” (2 балла) - это когда в коде соперника Вы нашли ошибку и опубликовали тест, который подтверждает наличие этой ошибки; (очки начисляются вам)
- 2. “Прямой правый” (1 балл) - это когда вы сделали рефакторинг чужого кода и соперник не смог доказать, что его вариант лучше чем Ваш; (очки начисляются вам)
- 3. “Аперкот” (2 балла) - это когда вы опубликовали рефакторинг, а соперник нашел в нем ошибку, которой нет в его варианте (Аперкот автоматически блокирует прямой правый, и очки начисляются сопернику)
- 4. “Блок” (1 балл)- это когда проводится “прямой правый” и соперник смог доказать свою правоту. При этом правота должна быть здраво аргументирована! (очки начисляются тому кто заблокировал)
- 5. “Взаимный блок” (0 баллов) - это когда доказательство правоты сводится к тупому перепиныванию - “а мне так больше нравится” и никто из соперников не может привести разумные доводы.(очки никому не начисляются)
Важный момент! Тот кто публикует свой вариант автоматически получает 10 баллов. Эта фора нужна для того, чтобы уровнять тех кто что-то написал и вынужден отстаивать свой код, перед теми кто ничего не опубликовал, а только набирает очки за счет того, что “мутузит” соперника.
И последнее, спорные вопросы единолично решаются мной. За неспортивное поведение сразу дисквалификация.
Итак, попробуем провести первый батл, мой код - http://www.pastie.org/1264003
Ну что? Кто сделает первый хук?!
подписаться на блог
deepwalker
Гость
http://paste.in.ua/1309/
По поводу вашей версии - а класс какую роль играет? ООП ради ООП? Вторник к сожалению пропущу, воюйте без меня
Evgeny Sergeev
Веб-разработчик, автор блога codeart.ru
О! Питончик… не ожидал.
Класс - это привычка, в данном конкретном случае наверное можно и одной функцией обойтись.
Leave a Reply