Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Применение библиотек > Пишем фреймворк для JS |
Автор: Sardar 20.7.2006, 15:16 |
С этого топа открывается проект, цели которого:
![]() Сейчас подходящее время для работы - лето. В проект приглашаються все заинтересованные, главным образом, делиться замечаниями и требованиями. Конечно, не все они будут реализованны, если область применения решения очень мала. За основу был взят именно prototype.js, т.к. возносит JS на ступеньку выше. Здесь нет виджетов и готовых компонентов типа календарей и подобного, за ними обращаться к http://dojotoolkit.org/. Вообще, я привык делать "графические примочки" под задачу, а не реализовывать огромный и гибкий компонент под все мыслимые условия. Задача нашей библиотеки:
Многое реализованно мной, ещё больше сторонними разработчиками, кода на самом деле много. Этим проектом мы хотим рассмотреть их устройство, но не заменить их, хотя в итоге библиотека будет самостоятельным продуктом. Главное отличие - мы малое сообщество, мы не сможем поддерживать библиотеку в таком состоянии, что бы она могла быть использоваться в серьёзных проектах. Но! результаты этой библиотеки будут гораздо выше чем у её старших собратьев, т.к. мы будем учиться, а специалист, ИМХО, лучше либы ![]() Сейчас открываю один топ, в будущем будет раздел форума в проектах. Вы можете писать в этой теме что угодно, кроме "О, это круто!" и подобных, не привносящих ничего, постов. В будущем для этого будут отдельные топы, сейчас флуд не нужен ![]() Заинтересованные могут начать проектировать части библиотеки, состовлять требования, рассматривать интересные моменты. Одна просьба: выкладывайте тексты "аттачем" к посту, длинный пост плохо читается. Лицензия: весь код, написанный мной, будет под GPL- или LGPL-лизензией. Код, написанный другими участниками, должен быть под любой http://www.opensource.org/ лицензией. Код может быть использован любым проектом с совместимой лицензией. Почти все лицензии, в том числе и LGPL, позволяют использовать код в коммерческих целях. По моему, только GPL "заразная" (потребует от проекта GPL-совместимой лицензии). Have fun! ![]() (Исправил грам.ошибки и пунктуации. -12345с) |
Автор: Се ля ви 20.7.2006, 16:43 |
Sardar, идея хорошая, но где - спецификация? Subversion-репозиторий? Баг-фиксинг - система? Или ты действительно хочешь написать фреймворк, просто общаясь с людьми в закреплённой теме форума? |
Автор: Sardar 20.7.2006, 17:06 |
Се ля ви, идея появилась 2 дня назад, реализовываться начала 3 часа назад. Всё будет. Главным образом подфорум в проектах и категория в вики. После интегрируемся в SVN форума. Баг-репортинговой системы не будет пока её нет у форума, быть дочерним проектом Винграда и использовать отдельный инструментарий не разумно ![]() Этой темой хочу увидеть отзывы "да! я уже пользовал ... и хотелось бы ...". Другими словами найти заинтересованных лиц и просто тех кто хочеть учиться. К концу недели всё необходимое налажу, начну выкладывать идеи и код. |
Автор: Се ля ви 20.7.2006, 18:56 |
У меня накопилось немало идей, правда не столько для обучающихся новичков, сколько для автоматизации разработки сайтов коллективами дизайн-студий. Я про себя называю этот проект "XSite", время от времяни добавляю к нему новые идеи и жду, пока будет возможность им заняться. Некоторые идеи можно было бы вместить в этот фреймворк. ![]() Тогда можно так: на выхах распарсю свои записи и попытаюсь выудить, что, возможно, было бы вам здесь интересно в контексте этого фреймворка - можно будет обсудить и что-то включить, хотя непосредственного участия и не обещаю - мне бы со своим проектом справиться... Но всё-таки хотелось бы по-раньше увидеть документ с надписью "Спецификация", что бы не было ситуации "кто в лес, кто по дрова", а без него и обсуждать-то по сути нечего, кроме просто выявления желающих чем-нибудь таким заняться. ![]() |
Автор: smartov 20.7.2006, 19:57 |
Sardar, уже не раз видел разные фреймворки. Не взял ни один. И у меня подозрение что если не подойти к вопросу интересно, то и этот окажется маловостребованным. Почему не взял ни один: 1) Размер. Мне нужна ерундовина: тултип какой-нибудь, но не простой, а немного навороченный. Я знаю что там кода на пару килобайт, и таскать за собой библиотеки (которые пользователь будет грузить себе) на 50 и более килобайт желания нет абсолютно никакого. Но бывает что библиотека сама по себе реализовывает какой-то сложный функционал. Вывод - надо состряпать js-compressor. Только не глючный ![]() 2) Сваленность в кучу. Даже если я все-таки из-за природной лени возьму какую-то библиотеку, то наверняка она не подойдет мне полностью. Вывод - поправить. Удобство копания в коде на >50 Kb ясно сразу. Вывод из первых двух пунктов - код надо разделять. Всенепременно. Модульность - наше главное оружие. 3) IE - стандартизация. Нет, я конечно понимаю, что даже Опера уже вроде принимает document.elementName... или там document.form1.field1 но ведь есть же общепринятые стандарты. getElementById() итд итп. А это уже Code Standards. 4) Ну этот вопрос ты совершенно верно обговорил - делать код работоспособным в IE 5, Opera 7, Firefox 0.99, Nesccape и Safari черт знамо каких версий это неправильнео, утяжеляет работу со скриптом, размер скрипта, а уж копание во всех этих ветках кода - вообще песня. На счет прототайпа - глянул. Идеи неплохи, но реализация..... А кое где и идеи...... Например эта "Dollar function" - это наверное чтобы усложнить жизнь тем, кто будет твой код читать. В общем подсмотреть - могет быть. Равняться - ИМХО нет. А так в общем тоже не прочь был бы поучавствовать. Есть пара вопросиков: Какой canvas? Что за коллекции ты имеешь в виду? (пример) |
Автор: diam 20.7.2006, 21:05 |
Я так и не понял, по какому принципу будет разрабатываться фреймворк. Так же не понял, чем он должен стать по окончанию написания. Понял только, зачем: не для практических применений, а для понимания процесса ![]() Собственно, вопросы. 1. Будет ли subversion или нечто подобное? 2. Каким ты видишь фреймворк по окончанию разработки? (Нужно иметь представление о конечном результате) |
Автор: S.A.P. 20.7.2006, 23:17 | ||
Я обожаю эту функцию для меня теперь всякие document.getElementById('div1').insertBefore(document.getElementById('child1'), document.getElementById('outer_child')) стали всего - лишь кошмарным сном. К тому - же это делает универсальным вызовы функций в которые могут передаваться как id элементов, так и сами элементы. Слово W3C у меня никогда не ассоциировалось с удачным програмным интерфейсом. Sardar, сейчас уже можно сказать на какие браузеры будет ориентирован этот фреймворк и в каком объёме? в частности интересует IE6 ( ![]() Попутно хочу предложить включить в список фич - кроссбраузерную работу с Selections. Эта тема у меня долго мусолилась, но универсального решения я пока не придумал. |
Автор: Zeroglif 21.7.2006, 00:10 | ||
Я - ЗА! Учиться хочу всегда. Позиция по этому делу приблизительно совпадает с позицией smartov. |
Автор: smartov 21.7.2006, 00:28 |
Зато не знакомый с этим человек просто крышей тронется. В общем дело вкуса |
Автор: Sardar 21.7.2006, 01:18 | ||||
Да, создам ветку, SVN форумский (там же все разработки).
Набор не сильно связанных между собой функций и модулей длай решения конкретных задачь. Сильная сторона: малый размер, можно собрать под себя. Слабая сторона: это для тех кто разбираеться, набор инструментов, а не готовое на все мыслимые условия решение. Аналогии ![]() Debian linux - есть всё необходимое (20% системы) и редко (никогда) используемое (70% системы) - это большой софт который не просто настроить под конкретную задачу, за то как танк может решить в любых условиях что угодно. Gentoo linux - нет ничего (как в винде) после установки, собираеться всё необходимое под себя, требуеться точно представлять чего ты хочешь, но результат - очень быстрый, заточенный под твои нужды, без лишнего хлама софт. Я тоже, немного громоздкий синтаксис DOM'а мешает. Поверх него хочеться очень легковесную оболочку типа выборки по className (или по условию вообще, т.е. обычный filter для коллекций), выборка непосредственных потомков ноды по тегу (getElementsByTagName пробегает по всем нодам, что требуеться гораздо реже) и т.д.
Нет, мы не пишем (хотя это и не запрещаеться, читай Я не пишу ![]() ![]() Просто создай тему в разделе ViJio в "Наши проекты", название "Идея: работа с Selections" и подробно что хочешь видеть + то как ты представляешь это порешать ![]() Так, тема вижу разрастаеться, постите идеи в раздел http://forum.vingrad.ru/index.php?showforum=254, а я разберусь что склеить/разделить ![]() |
Автор: Ciber SLasH 23.7.2006, 08:44 |
Я тоже поучаствавать хотел бы... ![]() |
Автор: PyS 27.9.2006, 13:30 |
я тоже за, но офигенным JS-ком никогда не был ![]() Хотя и я могу пригодиться ![]() |
Автор: GZep 19.12.2006, 17:15 |
Sardar, а такие уже готовые проекты, как, например, http://forum.vingrad.ru/topic-53318.html будут автоматически включаться в репозиторий? |
Автор: dXdYdZ 2.8.2007, 15:21 |
На счёт заинтересованных лиц. Я достаточно долго (примерно 1.5 года) работал с библиотекой Dojo toolkit. Начинал ещё с версии 0.3.1. В процессе работы с данной библиотекой разобрался с большим количеством её возможностей и могу сказать Вам, что всё, что Вы хотите написать, в ней уже есть. Плюс ещё куча возможностей "на все случаи жизни". Кроме этого она обладает чёткой структурой, идеологией и позволяет абстрагироваться (на высоком уровне) от особенностей тех или иных браузеров. Писал интерфейсы. В том числе и разрабатывал свои компоненты (widget-ы) для Dojo. Однако библиотека Dojo вплоть до версии 0.4.х обладает рядом очень существенных для Internet недостатков, а именно:
Ещё одним недостатком можно считать отсутствие полноценной поддержки на руском языке. Одно время я писал (в основном переводил) документацию по dojo на русский язык. Перевёл описание нескольких базовых библиотек (порядка 40 страниц текста), однако это описание лишь примерно 5% возможностей данной библиотеки. Я даже делал сайт, посвящённый dojo toolkit, однако это не вызвало никакого интереса со стороны общественности, поэтому в настоящий момент сайт находится в полурабочем (скорее даже в нерабочем) состоянии и сейчас мной не поддерживается. Перечисленные выше недостатки, как правильно заметил smartov, присущи не только библиотеке Dojo toolkit, но и большинству других JavaScript-библиотек. В связи с этим я начал создание своей JavaScript-библиотеки, главными принципами при разработке которой являлись:
В скором времени планируется размещение данного сайта в сети Internet. |
Автор: smartov 2.8.2007, 16:50 |
dXdYdZ, с удовольствием посмотрим блиблиотеку, если все действительно так здорово и если библиотека будет распространятся под GPL ![]() |
Автор: vasac 3.8.2007, 12:20 |
dXdYdZ, к чему вы все это да еще и в чужой теме? Сделаете — кладите ссылки, а "скоро на первом канале" не надо. |
Автор: dXdYdZ 4.8.2007, 22:07 |
Ок. Просто хотелось узнать Ваше мнение на этот счёт. |
Автор: Zeroglif 4.8.2007, 23:27 |
Можно было бы какие-то модули-кусочки тестировать/обсуждать прямо тут, критика не задержится ![]() |
Автор: dXdYdZ 7.8.2007, 01:33 |
Как только допишу хоть до какого - нибудь логического завершения, тогда выложу в интернет и можно будет обсуждать. |
Автор: dXdYdZ 18.8.2007, 01:15 |
Дописал демо-версию. Смотрите http://forum.vingrad.ru/forum/topic-168598/kw-javascript-dom-widget-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82-%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82%D1%8B.html. |
Автор: cruelangel 12.9.2007, 19:49 |
"библиотека для обучения"... а учить писать кроссбраузерный код, значит, не надо? ![]() |
Автор: dXdYdZ 12.9.2007, 23:22 |
Протестировано в Mozilla 1.7.12, FireFox 2.0, Opera 9.01, IE6. |
Автор: cruelangel 23.9.2007, 22:52 |
эт я не тебе писал ![]() |