Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Moodle

Оригинал: Moodle
Автор: Tim Hunt
Перевод: А.Панин

13.6. Что не было описано

Я надеюсь, я что мне удалось представить неплохой обзор принципа работы приложения Moodle. Ввиду ограничения объема главы я исключил из рассмотрения несколько интересных тем, включая темы о том, как расширения аутентификации, регистрации и оценок позволяют приложению Moodle взаимодействовать с информационными системами для хранения данных студентов, а также об интересном способе хранения загружаемых файлов приложением Moodle на основе их содержимого. Информация, касающаяся этих и других аспектов архитектуры Moodle может быть найдена в документации для разработчиков.

13.7. Выученные уроки

Один из интересных аспектов работы над проектом Moodle заключается в том, что он получил развитие в качестве исследовательского проекта. Moodle позволяет (но не заставляет) использовать подход социальной конструктивистской педагогики. То есть, мы лучшим образом учимся создавая что-то, а также учимся друг у друга при работе в сообществе. Вопрос доктора философии Martin Dougiamas по поводу проекта заключался не в том, эффективна ли эта модель для обучения, а в том, эффективна ли эта модель для развития проекта с открытым исходным кодом. То есть, можем ли мы рассматривать проект Moodle как попытку изучения возможности создания и использования виртуального образовательного окружения (VLE), причем эта попытка заключалась в непосредственном создании и использовании приложения Moodle сообществом, в котором преподаватели, разработчики, администраторы и студенты преподают и учатся друг у друга? Я считаю эту модель удачной для проекта разработки программного продукта с открытым исходным кодом. Основным местом встречи разработчиков и пользователей для взаимного обучения являются дискуссии в разделе форумов проекта Moodle, а также раздел базы данных ошибок.

Возможно, наиболее важным результатом этого исследовательского проекта является вывод о том, что вы не должны бояться начинать разработку с реализации наиболее простого возможного решения в первую очередь. Например, в ранних версиях приложения Moodle имелось только несколько жестко заданных ролей, таких, как преподаватель, студент и администратор. Этого было достаточно в течение многих лет, но в итоге на ограничения было обращено внимание. Когда пришло время проектирования системы ролей для приложения Moodle версии 1.7, у сообщества был большой опыт использования Moodle, а также большое количество запросов функций, которые указывали на то, что нужно людям для более гибкого управления системой доступа. Все это помогло в проектировании такой простой системы ролей, как это возможно, но при этом и такой сложной, как это необходимо. (Фактически первая версия системы ролей была чрезмерно сложной, поэтому впоследствии она была немного упрощена в версии 2.0 приложения Moodle.)

Если вы рассматриваете программирование как деятельность по решению задач, вам может показаться, что в первый раз для приложения Moodle была выбрана неподходящая архитектура, а позднее пришлось потерять много времени на ее корректировку. Я могу сказать, что такая точка зрения неконструктивна при попытке решения сложных задач, встречающихся в реальной жизни. Во время начала разработки приложения Moodle никто не располагал в достаточной степени знаниями о том, как спроектировать используемую на данный момент систему ролей. С точки зрения обучающегося, различные ступени развития, пройденные приложением Moodle до достижения актуальной архитектуры, были необходимы и неизбежны.

При таком подходе к разработке возможно изменение практически любого аспекта системной архитектуры, как только вы узнаете больше о ней. Мне кажется, приложение Moodle показывает, что это возможно. Например, мы нашли способ способ последовательного рефакторинга кода для перехода от устаревших сценариев к архитектуре MVC. Это требует усилий, но, кажется, что тогда, когда это необходимо, ресурсы для реализации этих изменений могут быть найдены в сообществах проектов с открытым исходным кодом. С точки зрения пользователя, система последовательно развивается с каждым релизом.


К началу