Как использовать Ext-JS в дикой природе? Абстрагироваться или нет? - PullRequest
5 голосов
/ 17 марта 2011

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

Ответы [ 3 ]

3 голосов
/ 17 марта 2011

Я согласен с вами;Я думаю, что это глупая цель.И вот почему:

  1. В конце концов (через несколько лет) вы не можете изменять рамки.Если вы этого не сделаете, то вы потратили дополнительное время и ресурсы, добавив слой абстракции, который ничего не покупает.Он не только не достигнет цели, которую вы поставили (диверсифицировать свои возможности), но и увеличит объем кода, который вам и вашим партнерам по команде необходимо поддерживать.

  2. Вы всегда можете модулировать свой проект с другими библиотеками Javascript, чтобы удовлетворить любые потребности, которые ExtJs не удовлетворяет.Например, если вам не нравится реализация диаграмм в ExtJ, вы можете включить jQuery и использовать плагин, такой как jqPlot.

  3. Будет сложно написать абстракцию, которая применима к обоимтекущие и будущие библиотеки.Как вы можете гарантировать, что ваша абстракция будет противостоять изменениям либо в вашей текущей библиотеке (ExtJs и т. Д.), Либо в любой будущей библиотеке JS, которая вам нравится в будущем.

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

2 голосов
/ 17 марта 2011

Я думаю, что вариант 2 - лучший вариант. Если вы создаете отличное веб-приложение, и оно работает очень хорошо, каковы ваши шансы на переход на новую среду?

ExtJS предназначен для расширения. Я бы определенно рекомендовал использовать Ext.extend () против Ext.override () для расширения. Используя этот метод для переопределения, у вас действительно не должно быть особых трудностей при обновлении до новой версии Ext.

0 голосов
/ 17 марта 2011

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

Расширение существующего ExtJS неплохо, но вы должны сделать это структурированным и контролируемым образом. Не переусердствуйте - расширяйте только тогда, когда вам нужно - и размещайте и упаковывайте свои расширения в отдельные файлы и структуру, чтобы было легко найти расширения для классов X и Y. Попробуйте придумать решения многократного использования, чтобы вы не нужно писать новое расширение каждый раз, когда вам нужно что-то модифицировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...