У нас была та же проблема, когда мы реализовали древовидный компонент для [fleXive] и использовали вложенный подход модели дерева набора, упомянутый tharkun от документы MySQL .
В дополнение к вещам скорости (существенно) мы использовали , распространяется подход, который просто означает, что мы использовали максимум значение Long для высокоуровневых границ права, которое позволяет нам вставлять и перемещать узлы, не повторно вычисляя все левые и правые значения. Значения для левого и правого вычисляются путем деления диапазона для узла 3 использованием und внутренний треть как границы для нового узла.
пример кода Java А виден здесь .
Это обоюдоострый меч. Если у вас есть возможность просто учиться, вы можете избежать фреймворков и делать все вручную. Фреймворки, как правило, делают вас более продуктивным, поскольку они заботятся обо всех тонких деталях совместимости браузеров и т. Д. На самом деле это аргумент, который касается всех уровней абстракции.
Я бы посоветовал изучить фреймворк и потратить время на его изучение. основные концепции, которые абстрагируются от фреймворка.
Да, вы только посмотрите на все вопросы jQuery, которые задают люди, не имеющие к jQuery ничего общего.
Их еще много, но их сложно найти.
Нет, поскольку вам нужно знать JavaScript, чтобы использовать фреймворк, и все больше и больше использования JavaScript помогает вам овладеть им. Однако они помешают вам освоить DOM.
Нет, фреймворки мешают вам изучать DOM, который является не javascript, а независимым от языка API, разработанным комитетом и разным в каждом браузере, что приводит в ярость. Под нейтральным языком я подразумеваю, что он разработан для использования также из Java, VBscript и, возможно, других языков.
Однако в фреймворках нет ничего, что мешало бы вам изучать сам JS. Фактически, они значительно упростят изучение JS, убрав DOM с вашего пути.
Как я мог бы стать мастером JavaScript, если бы я всегда использовал фреймворки и ничего не делал сам?
Если бы вы ничего не сделали, но использовали фреймворк, тогда я не думаю, что вы могли бы стать «мастером» кодирования JavaScript. Если, с другой стороны, вы посмотрите, как фреймворк реализует определенные функции, и спросите, почему / как это было реализовано, тогда вы сможете начать очищать лук, которым является JavaScript.
Я задал вопрос по JavaScript, и все рекомендуют что я использую фреймворк (который не покажет мне настоящего ядра JS!) вместо ручного кодирования.
Учитывая проблемы совместимости браузеров, в целом, вероятно, разумнее использовать фреймворк / библиотеку для сложных частей. Зачем воссоздавать колесо? Однако, если вы намереваетесь на самом деле узнать , как что-то делать без фреймворка, то лучше сказать это в ваших будущих вопросах.
- Вы кодировали свои собственные так называемые фреймворки при обнаружении JS для сами?
Наверное, это первое, что я сделал. JavaScript, когда я впервые столкнулся с ним, отличался от того, к чему я привык, потому что я хотел создать структуру, которая сделала бы код более похожим на Java / C #. Однако в процессе этого я понял, что веду себя довольно глупо, и обнаружил, что предпочитаю способ обработки множества вещей в JavaScript. Это не значит, что я этого не делал Я создал свой собственный набор часто используемых функций.
- Вы всегда использовали фреймворки, такие как jQuery?
Не поначалу, но с тех пор я их использую. Когда у вас есть такое-то время на завершение проекта и приближается срок, гораздо проще / разумнее использовать библиотеку / фреймворк. У меня было несколько проблем с ними раньше, и если бы я не знал, как / почему работает JavaScript, я бы никогда не смог решить указанные проблемы.
- Могли бы вы теперь считать себя мастером JS?
О языке, да. О языке внутри браузера - не обязательно.
У меня было несколько проблем с ними раньше, и если бы я не знал, как / почему работает JavaScript, я бы никогда не смог решить указанные проблемы.
- Могли бы вы теперь считать себя мастером JS?
О языке, да. О языке внутри браузера - не обязательно.
У меня было несколько проблем с ними раньше, и если бы я не знал, как / почему работает JavaScript, я бы никогда не смог решить указанные проблемы.
- Могли бы вы теперь считать себя мастером JS?
Языка, да. О языке внутри браузера - не обязательно.
Да: фреймворки обычно скрывают многие сложные части JavaScript. Но вопрос в том, станете ли вы худшим программистом JavaScript, если знаете, как эффективно использовать его с фреймворком? Конечно нет. Эффективное использование подмножества любого языка программирования часто лучше, чем плохое использование каждого актива языка.
Нет: фреймворки имеют тенденцию скрывать многие сложные части JavaScript. Использование фреймворка, просмотр его кода во время отладки, понимание фреймворка делает вас настоящим мастером JavaScript. Фреймворки часто показывают методы, о которых вы даже не догадывались. Посмотрите на код. Это часто хорошо прокомментировано или даже задокументировано, и вы станете мастером.
Итак: используйте фреймворки JavaScript, чтобы упростить кодирование и учиться в процессе.
** PS: ** Чтобы ответить на ваш последний вопрос. Я занимаюсь программированием на JavaScript с момента его появления на заре Netscape. Да, безусловно, мы создали собственные фреймворки и библиотеки, выращенные в домашних условиях. Sarissa - один из таких «фреймворков» (или библиотеки) для JavaScript, в разработке которого я активно участвовал. Но разве мы обычно не объединяем часто используемые функции при написании на каком-либо языке, которые в конечном итоге могут превратиться в структуру?
Обновления: просто исправили некоторые ужасные опечатки, не беспокойтесь о повторном чтении ;-)
Да, безусловно, мы создали собственные фреймворки и библиотеки, выращенные в домашних условиях. Sarissa - один из таких «фреймворков» (или библиотеки) для JavaScript, в разработке которого я активно участвовал. Но разве мы обычно не объединяем часто используемые функции при написании на каком-либо языке, которые в конечном итоге могут превратиться в фреймворк?Обновления: просто исправили некоторые ужасные опечатки, не стоит перечитывать ;-)
Да, безусловно, мы создали собственные фреймворки и библиотеки, выращенные в домашних условиях. Sarissa - один из таких «фреймворков» (или библиотеки) для JavaScript, в разработке которого я активно участвовал. Но разве мы обычно не объединяем часто используемые функции при написании на каком-либо языке, которые в конечном итоге могут превратиться в структуру?Обновления: просто исправили некоторые ужасные опечатки, не беспокойтесь о повторном чтении ;-)
Я разорван, я начал кодировать javascript еще во времена Netscape Navigator 4 и Internet Explorer 5, еще в темные века соответствия стандартам браузеров и задолго до появления jQuery или MooTools оф. Было обычным делом заключать почти каждую строку кода в (document.all)? / * т.е. код * /: / * nn код * /;
или поддерживать отдельные сценарии для каждого браузера. Хотя это очень расстраивает, я определенно думаю, что это сделало меня лучшим программистом.
Но у новых программистов есть гораздо лучшие инструменты, и они должны их использовать. Вам все равно придется изучать javascript, jQuery не пишет код за вас, но он позволит вам писать код, а не тратить часы на разработку обходных решений для браузера.
Больше знаний никогда не помешает, если у вас есть время узнать о методах javascript dom и поэкспериментировать. Это уже не так больно, как раньше, большинство скриптов, даже больших и сложных, будут работать во всех современных браузерах с небольшими хитростями. Я также считаю, что важно понимать, что именно добавляет jQuery, чтобы вы понимали, что это метод jQuery, а не часть javascript. Полагаться только на то, что библиотека всегда будет в ней, - нехорошо, потому что однажды вы окажетесь в положении, когда вы не сможете ее использовать, и вы не захотите тупо смотреть на своего босса, как олень в фары говорят: «А что ты имеешь в виду, я не могу использовать jquery?»
будет работать во всех современных браузерах с небольшими хитростями. Я также считаю, что важно понимать, что именно добавляет jQuery, чтобы вы понимали, что это метод jQuery, а не часть javascript. Полагаться только на то, что библиотека всегда будет там, - нехорошо, потому что однажды вы окажетесь в положении, в котором вы не сможете ее использовать, и вы не захотите тупо смотреть на своего босса, как олень в фары говорят: «А что ты имеешь в виду, я не могу использовать jquery?» будет работать во всех современных браузерах с небольшими хитростями. Я также считаю, что важно понимать, что именно добавляет jQuery, чтобы вы понимали, что это метод jQuery, а не часть javascript. Полагаться только на то, что библиотека всегда будет в ней, - нехорошо, потому что однажды вы окажетесь в положении, когда вы не сможете ее использовать, и вы не захотите тупо смотреть на своего босса, как олень в фары говорят: «А что ты имеешь в виду, я не могу использовать jquery?»Вы кодировали свои собственные так называемые фреймворки, когда открывали для себя JS?
Да . Это трудный путь, но он очень полезен для личного обучения.
Вы всегда использовали такие фреймворки, как jQuery?
Да . Но когда это действительно необходимо .
Можете ли вы теперь считать себя мастером JS?
Нет . Есть так много вещей, которые нужно изучить, особенно в контексте развивающихся веб-стандартов и браузеров.
Причины использования фреймворков JavaScript заключаются в упрощении таких задач, как:
Так в условия изучения JavaScript Фреймворки не мешают вам быть гури JS.
Но с точки зрения реального мира JS всегда используется с такими вещами, как DOM, CSS и т. Д., И без понимания этого вы не сможете быть настоящим гуру-разработчиком JS.
Так что вы можете изучить простой JavaScript и использовать фреймворк, да, да, можно. Но это будет вне контекста и почти бесполезно.
В результате вам нужно изучать не только JS как язык, но и JS для Интернета.
И Framework не позволяют этого сделать.
Итак, подведем итог: избегайте использования фреймворков, если вы не можете выполнить работу без него или усилия выполнения работы без фреймворка слишком высоки.
усилие. Он включает кроссбраузерную поддержку. Итак, , например , если мне нужно реализовать страницу, которая будет использовать AJAX или должна разрешить пользователю перетаскивать элементы на страницу, есть у меня нет возможности сделать это вручную (усилия слишком высоки). Для этого я выберу jQuery или что-нибудь еще.
Просто выберите подходящего для работы . Никакой инструмент - это тоже инструмент.
ДОБАВЛЕНО: Главный вопрос был:
Как мне стать мастером JavaScript, если я всегда использовал фреймворки и ничего не сделал сам?
Вы можете пойти твердым путем - разработать свою собственную структуру и поддерживать ее в актуальном состоянии . Вы столкнетесь со всеми возможными проблемами и будете вынуждены понять все скрытые части. Вероятно, вы не захотите повторно реализовать jQuery, а вместо этого создадите структуру, связанную с бизнесом. Примером такого может быть "ProductJS": предоставление разработчикам архитектуры для управления продуктами на вашем веб-сайте, комментирования их, сравнения и т. Д.
Я думаю, что существует путаница между языком Javascript, который просто удивителен и заслуживает изучения каждым программистом, и "объектными моделями" браузера и css, которые беспорядочны, содержат ошибки и уродливы.
Javascript, браузеры и API, такие как DOM, обладают некоторыми плохими и утомительными качествами. Библиотеки объединяются в несколько более совершенных API-интерфейсов и часто избавляют вас от необходимости делать такие вещи, как анализ браузера и так далее.
Вы по-прежнему будете использовать Javascript.
Также может быть важно понять, что происходит внизу, и почему определенные аспекты библиотек так сильно вам помогают. Никогда не знаешь, когда у тебя тоже не будет возможности использовать библиотеку, поэтому важно понимать, как делать такие вещи, как взаимодействие с DOM и выполнение кроссбраузерных запросов AJAX без библиотеки.
Лично я думаю, что что-то вроде jQuery может поднять вашу игру как программиста на JavaScript, если вы посмотрите на это как на возможность изучить, как Джон Ресиг думал о дизайне и реализации.
Его ненавязчивость. Стиль JavaScript заслуживает подражания.
В любом случае используйте jQuery. Но также читайте, изучайте, подражайте этому.
Как мне стать мастером JavaScript, если я всегда использовал фреймворки и ничего не сделал сам?
Ну, может, ты мог бы стать мастером фреймворка - в процессе вы обязательно узнаете что-нибудь о javascript.