20 правила, които да следвате, когато започнете с EXT JS & Sencha Touch
Когато изучават нови технологии, разработчиците често правят същите грешки, които правят другите хора, и следват същите лоши техники.
Надявам се, че това ще ви помогне да преминете няколко стъпки в изучаването на Ext JS и ще ви помогне да избегнете често срещани грешки.Въпреки че изрично говорим само за Ext JS, повечето (ако не всички) от точките могат да бъдат приложени към Sencha Touch, тъй като структурата на рамките е подобна.
Избягвайте използването на Ext.getCmp
Устояйте на изкушението да дадете ID на всичките си компоненти и използвайтеExt.getCmp, за да ги намерите отново. Докато структурата на вашето приложение е правилна и се спазват принципите на дизайна на обектно-ориентирания код, не би трябвало да имате проблем с достъпа до вашите компоненти, когато са необходими.
Избягвайте да използвате собственост на owneCt
Не разчитайте на свойствотоownerCt, за да получите родителския елемент. Ако се опитвате да получите достъп до родителя в кода на компонента, най-вероятно този код трябва да е в самия родител. Това е много подобно на използването наExt.getCmp(описано по-горе), така че не забравяйте да прочетете предоставените връзки.
Не правете рамкиращи панели.
Внимавайте с спагети кода (обхват).
Бележка на преводача. Много често има желание да се декларират компоненти, вложени с помощта на xtype Изглежда доста добре. Малко по-късно ще добавите още едно поле за въвеждане на бащино име. След това падащ списък с избор на гражданство. И свържете плъгини към списъка ... В резултат на това ще получите куп вложен код. В проектите, които получих, влагането достигна четиринадесет нива. В случая, когато трябваше да отстранявам грешки в такъв код, първонаправи основен рефакторинг. Важно е да уловите момента, когато си струва да извадите елементите в методаinitComponent
Ако не искате да разширявате базовите класове през цялото време, можете да използвате Factory Methods като алтернатива.
Уверете се, че използвате пространства от имена.
Отново организацията е всичко. Използването на вградените функции на пространствата от имена на Ext JS ще ви позволи да организирате вашите компоненти и класове, така че да са лесни за навигация в бъдеще. Най-вероятно ще искате да разделите пространствата от имена на функционални единици, като пространството от именаMyApp.Usersза целия код, който работи с потребители. Също така обичам да създавам структура на директория, която съответства на пространствата от имена. Тогава винаги е лесно да търсите правилния модул.
Бележка на преводача. Ext JS 4 също реализира автоматично зареждане, което изисква съвпадащи пространства от имена и директории. Това позволява методътExt.create('App.modules.User')да бъде извикан дори ако класътApp.modules.Userвсе още не е зареден. Ext ще се погрижи за зареждането сам. Повече подробности тук
Правилно използване на методи Get/Set и статични променливи
Устояйте на изкушението да се задълбочите в колекцията от елементи на компонента, за да получите връзка към бутон или лента, използвайки синтаксис като 'comp.get(0)' или 'comp.getTopToolbar().get(1)'. Ако някога добавите нов елемент към такава колекция, препратките към такива елементи ще бъдат невалидни. В големи приложения това ще се превърне в огромна задача за улавяне на грешки.
Спестете си някои ненужни проблеми, като създадете Get метод на необходимите компоненти, които ще копаят в колекцията. Когато добавяте нови компоненти, ще актуализирате само този метод. Ако неАко препоръчвате мързелива инстанция, можете да дефинирате необходимите бутони и елементи като членове на класа и по този начин не е необходимо да правите промени, когато добавяте към колекцията.
Бележка на преводача. За да добавите дете като член на класа, можете просто да го прехвърлите от конфигурацията.
… към метода initComponent
По този начин ще получите препратка към детето директно в обекта на класа.
Създавайте внимателно xtypes
Посочете xtype същото като името на вашия клас, включително пространството от имена. По този начин можете лесно да проследите действителната дефиниция на класа
Повторно използване на кода
Ако откриете, че пишете един и същ код отново и отново (напр. маскиране на елементи при зареждане, отговори, грешки и т.н.), тогава обвийте кода във функция, за да го използвате по-късно. По този начин си спестявате време и усилия – ще си благодарите, когато решите да промените тази част от кода и няма да се налага да преработвате стотици негови копия.
Не влагайте функции
Научете се да използвате FireBug
Превърнете своята рамка в бяла кутия!
Както каза Евън, "Не се страхувайте от изходния код." Използвайте уменията, които сте научили с FireBug, за да влезете в рамката на Ext JS, вместо да преминавате през извикванията на нейните методи в програмата за отстраняване на грешки. Невероятно е колко много можете да научите и колко лесно можете да разрешите проблем, като влезете в рамков метод, да не говорим за спестяването на часове на стрес, опитвайки се да разберете какъв точно е проблемът.
Винаги дръжте документацията отворена
Документацията е вашият най-добър приятел. Това трябва да е първата ви спирка, когато срещнете проблеми или търсите нещо ново. Той е добре проектиран и лесен за навигация, така чекоито го използват!
Бележка на преводача. Много е удобно да създадете приложение с документация в Chrome, тъй като неговият интерфейс използва раздели.
Стъпки за отстраняване на грешки
Забележка: който като мен използва notepad ++, има чудесно решение за проверка на JS за грешки и предупреждения
Изградете интерфейса постепенно.
Много е лесно да се потопите и да създадете половин дузина компоненти и след това да ги отворите в браузър и да видите резултата. Ако не работи, понякога може да бъде изключително трудно да се върнете назад в опит да откриете виновника. Предлагаме да създавате компонент по един и да продължите, след като се уверите, че всичко работи. Например, ако искате да създадете DataGrid, добавянето на елементи към което ще бъде анимирано, тогава първо създайте добавянето и след това се занимавайте с анимацията. Ако се опитате да направите всичко наведнъж, най-вероятно нещо ще се обърка.
Минимизирайте и пакетирайте (GZip) окончателния си код
Не променяйте кода на рамката!
Използвайте добавки и персонализирани разширения
Ако искате да направите компонент, койторешава често срещан проблем, е напълно възможно някой вече да го е пуснал като плъгин или разширение. Прекарайте известно време в търсене във форуми и в мрежата, преди да напишете компонент от нулата (въпреки че ако имате време, това е чудесен начин да научите)
Дефинирайте общи елементи на едно място
Много е удобно да дефинирате всички ваши променливи, пространства от имена и други конструкции, които се използват в цялата програма в един конфигурационен файл. Това ще направи много по-лесно тяхното модифициране и ще насърчи повторното им използване.
Обмислете използването на Ext.Direct
Тествайте във всички браузъри!
Hardcore conf в C++. Каним само професионалисти.
Чете сега
Представяме ви Sencha Ext JS 5
Ext JS 5: MVC, MVVM и др.
Минимизиране на приложения Ext JS и Sencha Touch с помощта на ASP.NET
Коментари 50
Вашите клиенти/вие готови ли сте да отворите разработените приложения? Това е GPLv3.
Въпреки че GPLv3 има много условия, най-важното е, че трябва да предоставите изходния код на вашето приложение на вашите потребители, така че те да могат свободно да променят вашето приложение за собствените си нужди.
Можете да използвате и да се свържете. Можете да създавате разширения. Можете да разпространявате.
При поискване ще трябва да покажете модифицираните източници, ако източникът на самата рамка е модифициран.
Това е така, че производните платени рамки и други безплатни програми да не се размножават.
Единственият крайъгълен камък - разширяването на рамковите класове попада в модификацията. И започвайки с 4.0, всичките им уроци и ръководства предлагат Ext.extend на всяка стъпка.
Ако обаче не планирате да актуализирате и пишете само CRM, да ERP, с който никой освен вашите колеги илислужителите на клиентите няма да работят, а също и ако сте готови да инвестирате времето си в технологии за обучение, които не са много подходящи за други неща в мрежата, тогава защо не - Ext ще работи и ще бъде доста добър. В рамките на дадените правила програмирането върху него може да бъде достатъчно бързо.