Подтвердить что ты не робот

Примеры хорошего кода JavaScript в веб-приложениях с открытым исходным кодом

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

До недавнего времени то, что я использовал, было просто буквальными объектами и битами jQuery, но после прочтения Douglas Crockford "JavaScript: хорошие детали". Теперь я полностью понимаю, что там больше JavaScript, чем AJAX, модификации DOM и простая анимация.

Проблема заключается в том, что JavaScript, похоже, не очень стандартизирован. Количество доступных моделей ООП/наследования подавляет меня. Я не привык к каждому фреймворку/библиотеке, предоставляющему собственную имплантацию наследования. Я также не хочу принимать неправильное решение в отношении таких вещей, потому что это будет означать переписывание всего кода в случае возникновения некоторых проблем.

Итак, я ищу существующие веб-приложения с открытым исходным кодом, которые используют JavaScript, если возможно, на стороне клиента, чтобы увидеть, какие шаблоны используются в реальных проектах. Я хотел бы видеть код веб-приложений, а не фреймворки или библиотеки. Я не возражаю, если эти веб-приложения основаны на какой-либо структуре (и если она Dojo или RequireJS, это будет еще лучше, потому что я их использую;)

4b9b3361

Ответ 1

То, что я всегда рекомендую всем, кто интересуется такими вещами, это: ПЯТЬ, ЧТО ВАША КОМАНДА ДЕЛАЕТ. Если они используют методы camelCase для методов, вы используете его. Если они используют snake_case для переменных, вы это делаете. Если ваша команда предпочитает пробелы над вкладками; используйте их.

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

Если вы не работаете в команде, и вы заинтересованы в использовании стиля кодирования; затем используйте стиль библиотек, которые вы используете наиболее.

Организация мудрая, Closure - лучший... но мне как-то кажется, что я читаю JAVA вместо javascript. Наведите указатель мыши.

Ответ 2

Угу. Есть несколько гуру JavaScript, которые много пишут о том, как писать JavaScript, о прототипе OOP с JavaScript, даже о том, как следует делать отступы и именовать переменные.

Однако, если вы ищете большую реализацию JavaScript для изучения в качестве примера, я бы искал реализацию HTML5-игр. Это практически гарантировало, что вы найдете достаточно большой, хорошо написанный пример, который не минимизирован.

Ответ 3

Если вас интересуют стандарты JavaScript, я бы посмотрел commonJS. У них много хороших идей о том, как следует делать JavaScript.

BravoJS - хорошая реализация модуля для браузера.

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

Вот хорошая бесплатная книга шаблонов моделей, которую я нашел полезной Основные шаблоны JavaScript jQuery.

Вы не найдете решение вашей проблемы, и именно так разработан JavaScript. Я бы рекомендовал экспериментировать. Я считаю, что у Дугласа Крокфорда есть много замечательных идей, но это не значит, что вы должны следовать за ним к письму.

Ответ 5

Отличный вопрос. Я не смог найти один пример хорошо написанного объектно-ориентированного приложения с открытым исходным кодом. Крошечный MCE был таким-то, но я бы не счел это хорошо написанным: http://www.tinymce.com/

Однако, я написал чистый, хорошо factored объектно-ориентированный javascript на работе. Он проприетарный, поэтому я не могу поделиться им, но я могу объяснить, что сработало для меня, чтобы узнать, как это сделать:

1) Прочитайте учебник по объектно-ориентированному программированию mozilla javascript. Их объяснение наследования javascript - это именно то, что использует закрытие Google. Лично я думаю, что Крокфорд называет псевдоклассификацию легче всего читать и поддерживать с 4 из 5 других языков программирования, которые я знаю, используя классы (java, С#, python и php. Perl the oddball здесь без классов).

https://developer.mozilla.org/en/Introduction_to_Object-Oriented_JavaScript

2) Прочитайте книгу "Объектно-ориентированный Javascript" Стояна Стефанова.

3) Возьмите существующую процессуальную базу кода JavaScript и реорганизуйте ее на объекты. Используйте советы в "Чистом коде" Роберта К. Мартина, применительно к любому языку программирования.

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

5) Внедрите инъекцию зависимостей без контейнера IOC, создав все ваши объекты на верхнем уровне и подав их в объекты, которые зависят от них.

Там намного больше, но, надеюсь, это полезное начало.

Вот что я считаю правильным способом реализации наследования в javascript. это из библиотеки закрытия google:

goog.inherits = function(childCtor, parentCtor) {
  /** @constructor */
  function tempCtor() {};
  tempCtor.prototype = parentCtor.prototype;
  childCtor.superClass_ = parentCtor.prototype;
  childCtor.prototype = new tempCtor();
  childCtor.prototype.constructor = childCtor;
};

Ответ 6

Существует несколько способов узнать, как написать хороший JS-код.

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

Еще один хороший способ узнать - просто посмотреть отличный код других разработчиков и использовать его. Лучшая библиотека, которую я видел с точки зрения организации кода и использования шаблонов, - Google Closure Library. Он используется внутри компании Google в RIA, например, в Документах Google Gmail.

Ответ 7

Кстати, сегодня на SlashDot есть review шестого издания Javascript: The Definitive Guide, который, по мнению рецензента, "сохраняет свою корону в качестве конечного справочного ресурса для программистов JavaScript". Это 1,100 страниц.

Да, это не пример приложения, которое вы искали, но в книге есть много примеров и советов о лучших практиках.