Skip to content

Latest commit

 

History

History
33 lines (20 loc) · 2.54 KB

Markdown.md

File metadata and controls

33 lines (20 loc) · 2.54 KB

Задание Markdown

Напиши процессор упрощённого markdown-подобного языка разметки.

Спецификация языка разметки.

Описание намеренно сделано не полным. Ты должен придумать наиболее удачное поведение своего процессора во всех спорных случаях. Все твои решения должны быть зафиксированы в виде модульных тестов.

Формат

Создай fork этого репозитория. В проекте Markdown реализуйте метод Render класса Md. Он принимает в качестве аргумента параграф текста в markdown-подобной разметке, и возвращает строку с html-кодом этого текста, согласно спецификации.

Разбей свой процессор на составные части. Каждая часть должна быть легко читаема и покрыта тестами.

В этой задаче запрещено использовать регулярные выражения.

Соблюдай следующий процесс

  • Уточни требования. Для этого дополняйте файл Spec.md по аналогии. Каждый абзац должен описывать требование и одновременно являться примером работы этого требования.
  • Проведи начальное проектирование. Определи какие будут классы и какие в них будут методы. Не пиши внутренности методов на этом этапе. Покажи свою декомпозицию своему наставнику. Получи обратную связь.
  • Для реализации методов используй TDD.

Производительность

Твой алгоритм должен работать быстро — линейно или почти линейно от размера входа. Не забудь написать такой тест!

Расширяемость

Подумай, как твой код мог бы расширяться, чтобы поддержать другие возможности классического Markdown