Какое-либо практическое кодирование dojo/kata идеи?

Меня попросили скоро выполнить цех и додзе кодирования, чтобы люди испытали Scala, и попытайтесь создать что-то с ним. Посетители все собираются быть плохо знакомыми с Scala и могли произойти из любого из многих языков (я предполагаю, что они могут кодировать по крайней мере на одном основном языке - я включаю сравнения синтаксиса с Java, C#, Python и Ruby).

Часть обращения Scala - то, что это практично - можно использовать его в качестве общедоступного "Java питания" (Java с меньшей синтаксической помехой, закрытиями, неизменностью, FP, чертами, одноэлементными объектами, изящной обработкой XML, вывод типа и т.д.), который все еще работает на JVM (и на CLR.NET, предположительно) и не требует, чтобы Вы изменили инструменты сборки, серверную инфраструктуру, библиотеки, IDE и так далее. Большинство katas, которые я видел, было забавой, но не 'реальным миром' - математические проблемы как Euler Проекта и так далее. Они не кажутся соответствующими, поскольку мы пытаемся исследовать использование его как практический язык реального мира, которого люди могли рассмотреть использование и для взламывания и для работы, и потому что люди не обязательно собираются быть слишком знакомыми или с более глубокими частями синтаксиса Scala или с обязательно понятий позади функционального программирования.

Так, кто-либо больше сталкивался с практическим, повседневным katas, а не арифметической 'проблемой, решая'? Katas, то есть, который может протестировать, могут ли язык, библиотеки и инструменты удовлетворить варианты использования фактического ежедневного программирования большинства людей, должны сделать вместо проверения. (Не то, чтобы непрактичные не являются забавой, но просто не подходящие для вида вещи, которую меня попросили выполнить.)

Если я не могу найти хорошие примеры, я думаю, что могло бы быть полезно попытаться создать что-то как каталог библиотеки - событие для программистов, которые, прежде всего, работают над созданием инфраструктуры для университетов (и в образовании и культуре - музеи, галереи, школы, библиотеки и так далее). Это немного скучно, хотя, но это - вид вещи, что посетители продолжают работать в своем ежедневном существовании. Какие-либо предложения?

18
задан 2 revs, 2 users 100% 23 January 2015 в 17:39
поделиться

3 ответа

Есть творческий соприкосновения, лицензированный вводной учебный курс с практическими упражнениями:

http://github.com/javabin/scala-training-slides

http: / /github.com/javabin/scala-training-code

Следователи находятся в формате Open Office. Если у вас нет этого установленного, вы можете загрузить их в SlideShare, что преобразует их для онлайн-просмотра.

10
ответ дан 30 November 2019 в 09:21
поделиться

Возможно, вы сможете взглянуть на Ruby Quiz материал для вдохновения.

1
ответ дан 30 November 2019 в 09:21
поделиться

Большинство примеров программирования в моем блоге, по сути, являются упражнениями по кодированию додзё. В частности, серия матриц , а также головоломки и 99 пиво . Теперь не стоит пренебрегать матричными рядами как "математическими", так как проблемы, к которым я отношусь, связаны с построением классов в Scala, а не с выполнением фантастических алгоритмов. На самом деле, я практически пропускаю сами математические алгоритмы.

Сейчас 99 Проблемы Скалы и практически все из Project Euler являются хорошими упражнениями для функциональной части Скалы, но я понимаю это не для того, чтобы быть вашим акцентом. Я рекомендую retronym's answer. Код Розетты , не будучи функционально ориентированным, может иметь более общие примеры. С примерами Scala, конечно, много, хотя, возможно, вы захотите рассмотреть и другие задачи, для идей.

Есть много интересных вещей, которые можно узнать о Scala, но нужно быть осторожным на начальном уровне. Например, я бы не стал говорить об инъекции зависимостей (самотипы и паттерн пирога) или о классах типов (паттерн, который имитирует их с имплицитами).

Посмотрите также материал на сайте Scala Lang, в частности на документ Scala by Example.

EDIT

Я сейчас просмотрел несколько додзёй Scala, так что вот кое-что, чему я научился тогда:

  • Проблемы: они должны быть веселыми, не-квит-легкими, не-трудными, и это должно быть мнение каждого .

    Мы используем сайт Dojo Puzzles, который написан на португальском языке, так что он не будет полезен большинству людей здесь. Если есть похожий сайт на английском языке, я бы хотел услышать об этом.

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

  • Знание скалы: оказывается, не так уж важно заранее ввести ключевые понятия языка скалы, особенно если некоторые из участников имеют базовые знания.

    По моему опыту, создание среды тестирования с помощью банального "проходного" теста и объяснение того, как люди должны писать тесты, достаточно часто, чтобы люди могли начать. Если вы чувствуете, что кто-то пытается что-то написать, дайте краткое объяснение и приступайте к работе.

  • Преподавание скалы: если вы решили преподавать скалу, держите уроки короткими и следуйте додзё. В этом случае, держите набор проблем додзё, адекватных уроку, и, в зависимости от того, сколько уроков вы хотите за один день, короткими.

    Это помогает наложить искусственные ограничения на то, как нужно решать проблему. Некоторые примеры ограничений, которые я ввел на практике, это отсутствие классов и методов одного выражения (т.е. отсутствие множественных выражений или val/var деклараций). Смысл этих ограничений заключается в том, что люди не могут решить проблему привычным для них способом, что заставляет их исследовать язык в поисках альтернатив.

У меня есть окончательные результаты трех додзё, выполненных в моей текущей работе в этом репозитории .

На данный момент мы используем формат Randori Kata, но без фиксированного времени и перерыва, и с ретроспективой в конце додзё, а не в начале следующего. Это, однако, это просто то, на чем мы сейчас находимся - мы экспериментировали со многими вариациями, и мы все еще эволюционируем.

3
ответ дан 30 November 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: