Лучшие практики и примеры того, как организовать объектно-ориентированный JavaScript? - PullRequest
4 голосов
/ 19 января 2011

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

Я думал организовать его наподобие jQuery с пространством имен (возможно, под названием app) и всеми функциями моего приложения внутри него, например app.func1, app.func2, однако у меня есть другие функции, которые используются внутри тех, которые похожи на утилиты, и я хотел бы, чтобы у них было другое имя, может быть, что-то вроде app.util.func ... Также мой код создает собственные объекты внутри моего приложения, но я не знаю, где находится правильное место для их размещения и их конструкторы внутри моего пространства имен.

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

Заранее спасибо!

1 Ответ

7 голосов
/ 19 января 2011

Я прочитал несколько статей и глав книг по объектно-ориентированному JS о том, как имитировать пространства имен, ...

Я бы не стал имитировать классические ОО-парадигмы в JavaScript.Вы должны придерживаться того, что естественно для JavaScript.

Не занимайтесь классическим наследованием.Используйте прототип наследования или вообще не наследуйте: Композиция / оформление выглядят намного лучше, чем наследование в JavaScript.

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

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

Организация файлов приложения JS - очень широкая тема.Вы можете организовать свои занятия на основе разделения интересов, используя такие парадигмы, как MVC или MVP.С точки зрения организации проекта, создание приложения на Maven (и в соответствии с его соглашениями) может быть вариантом.

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

...