![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Вот тут в соседнем треде прозвучала такая фраза. Поскольку топик там несколько о другом, переношу обсуждение в отдельную тему.
Отлично! Ловлю тебя на слове. Я щас коротенько напишу, в чем мне видится самая большая проблема с JavaScript на методологическом уровне, а потом задам тебе парочку простых вопросов. Лады? Короче, пробема мне видится так. По некоторым объективным причинам технологии динамического программирования на стороне климента вызывали и вызывают наибольший интерес в первую очередь в среде так называемых "жадных детей" (с) Гоблин, поскольку это именно та публика, которая в силу возрастных особенностей очень любит, когда на страничке все мигает, моргает, едет задом наперед, пропадает и появляется в неожиданных местах - то есть вещи, для реализации которых Javascript является просто идеальным инструментом. Ну а поскольку основные потребители этой технологии - это гики (geeks), то и подход к вопросу у них тоже гикский, ботанский. Повторяю, просто в силу незрелости мировоззрения и отстутствия системного взгляда на вещи. Соответственно, и ресурсы по предмету, которые они создают, страдают тем же самым - отсутствием системы. В результате подавляющее большинство материалов в сети - это скорее сборник рецептов хозяйке на каждый день. Нужно прыгающие буквы - на тебе прыгающие буквы. Хочешь текст задом наперед - на тебе задом наперед. Для гиков это работает, потому что это именно то, что им нужно - здесь и сейчас. А для меня - нет. Мне вот, например, в текущем проекте нужно реализовать достаточно сложную функциональность с динамическим созданием всяких разных элементов интерфейса, которые при этом должны друг с другом взаимодействовать, инициализировать себя на основе XML данных, и пр. При этом меня не надо учить программированию; я в этом деле собаку съел и пудом соли закусил. Но мне нужно, чтобы кто-то мне рассказал про Javascript примерно в таком ключе: "Значит так, чувак, от Java тут ничего нет кроме маленько похожего синтаксиса и названия некоторых функций. Далее, переменные. Сначала об области видимости ... бла-бла-бла ... Теперь о типах ...", и так далее. Вот какой мне нужен мануал. А иначе от того, что в инете миллион сайтов по Javascript'у, мне большой пользы нет. Поэтому если ты сможешь дать пару практических советов, то это для меня будет очень большим подспорьем. 1. В чем лучше писать код? Я сейчас пользуюсь TextEdit, но он не понимает синтаксис JavaScript. А я хочу, чтобы редактор хотя бы немного облегчал мне жизнь: подсвечивал ключевые слова, следил за парностью скобок, выдавал справку по объектам и функциям. 2. Есть ли нормальные отладчики под основные браузеры - в первую очередь IE и Firefox? Я себе поставил Venkman и какого-то урода с MS, но впечатления пока так себе. 3. Где взять нормальный справочник по DHTML??? Вот это меня больше всего убивает. Ну вот я получил, например объект Div, и что с ним делать? Какие у него свойства, какие методы? Пока самая полная документация, которая мне попалась, это на сайте MSDN. Но и там не всегда понятно, что к чему. Например, объекты в Javascript поддерживают наследование? Если да, то кто у кого родитель/потомок? 4. Где все-таки взять нормальный учебник по Javascript? Вот такие вот пока вопросы. Кто сможет помочь - будет большой молодец -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
| pvo |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.10.2005 Где: Мск Репутация: нет Всего: 7 |
К сожалению, у меня похожее впечатление Я не ах какой спец в javascript, но сталкиваться с ним приходится все чаще. Поэтому вот мои 5 коп.:
Я использую редактор, входящий в Eclipse WST. В нем есть подсветка синтаксиса и довольно куций code completion. Но из того, что я видел, это не самая плохая вещь.
Из тех, что я видел - эти самые приличные. Причем "урод с MS", идущий вместе с Вин2003 мне понравился больше. Насчет пп. 3 и 4 - в понедельник напишу.
Посмотри на Bindows. Несмотря на некоторую глючность и тормознутость, занятная штука, имхо. Это сообщение отредактировал(а) pvo - 21.10.2005, 23:28 |
||||||||
|
|||||||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
pvo, спасибо, будем посмотреть
|
|||
|
||||
| Zeroglif |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Поверь, это только на первый взгляд. Повторюсь, полезных материалов, мануалов, примеров и проч. в сети полно. Они есть как здесь на винграде, так и в любой другой живой JS-тусовке...
Учить не буду. Значит так, чувак, переменные, область видимости, типы и так далее - енто базис, который упомянут в любых книгах, не стоит искать какой-то сверхдоходчивый мануал или просить разжевать тут, везде одна малина. К примеру, такие ответы должны тебя полностью устроить на начальном этапе: http://wdh.suncloud.ru/js01.htm - общие сведения об объектах http://wdh.suncloud.ru/js02.htm - переменные и область действия http://wdh.suncloud.ru/js03.htm - типы данных и их преобразование http://wdh.suncloud.ru/js07.htm - наследование ... и так далее, только меняй циферку в адресе. В чём писать - дело каждого, я пишу в EmEditor, но всё упорно пытаюсь переползти на PSPad (глюки пока не пускают). По твоим запросам удобнее второй. Про отладчики веское слово не скажу, не сложилось. Справочник по IE-шному DHTML - это MSDN, лучше нету, но всё остальное (Ecma-262, Gecko DOM Reference, Javascript Core Reference и т.д.) надо просто накачать себе в pdf или chm. Идеального учебника так и не встретил, но, например, справочник по ссылкам, что я дал выше, вполне даже ничего. Мне нравится (щас меня затопчут ногами) Флэнагановский "JavaScript: The Definitive Guide", он хоть и древний, но объемлющий и по делу. Недавно скачал Professional Javascript for Web Developers (Nicholas C.Zakas, WROX), пока читаем'c, рекомендовать погожу... |
||||
|
|||||
| sergejzr |
|
||||||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
Зря ты так. Проверка форм, вставка тэгов в форму быстрого ответа, быстрая цитата, транслит, подсветка синтаксиса на этом форуме, Всё это благодаря JScript. Можно делать полностью Веб-Приложения которые отрабатывают без перезагрузки страницы, просто в конце данные отсылаются на сервер. Готово. Причём в приложении PHP нам придётся посылать запросы клиент-сервер-клиент. Это параллельная дверь, через которую харек может проникнуть и повредить систему. Используя скрипты мы всё время находимся на "надёжной стороне" - стороне клиента.
Ну тогда ты знаешь всё. Бери карандаш и вперёд Особенность JS: все обьекты - массивы, состоящие из методов и свойств. Можешь в любой момент добавить или удалить метод или свойство обьекта Подучи DOM для работы с элементами страницы. С этих двух "ног" я начал разбираться со скриптами. месяц - два и думаю для твоих задач будешь знать JS весьма прилично.
К сож. настоящую стоющую IDE я тоже не смог найти. Поэтому довольствуюсь PHPExpertEditor. Отчасти от того, что работаю с PHP + Javascript. Штука лёгкая быстрая и поддерживает работу с FTP. Впринципе на скрипты больше и не надо
Venkmann - обычно достаточно. Если пишешь так, что работает с ним, будет работать и со всем остальным. Да, он не очень удобен, но вполне достаточен. А насчёт справочников и учебников у нас в разделе ссылок на них навалом. http://forum.vingrad.ru/index.php?showtopic=19939 |
||||||||
|
|||||||||
| Sardar |
|
||||||||||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Сразу вижу человека не работавшего с "толстыми вебклиентами". JS не подходит для анимаций, т.к. рисовать не может, а манипулирует обьектами браузера, что само по себе очень не эффективно (тормозит)
Да, есть такое, при чём большинство скриптов морально устарели, но люди пользуються. Отсюда сразу видно, проффесионал или дилетант сидел за разработкой клиентской части, хотя большинству "работает и ладно"
Вот, теперь ты начинаешь понимать зачем нужен JS и зачен нужны "толстые" клиенты
Большинство мануалов подгоняют сознание программиста с одного любого(C/C++, Java etc) языка на JS. Код такого программиста сразу отличим, т.к. пишет не вникая мощь языка, такие вещи как closures, прототипы, динамически собираемые обьекты и т.п. Это как программисту на С/С++ вдуг сказать программировать на функциональном языке или ещё лучше на Prolog. Первое что спросит "где здесь for/while"
Не относиться к языку, Dreamweaver тебе в руки.
Твоё личное мнение. Можно привести лошадь к водопою, но нельзя заставить её пить
А ты искал? Проблему JS не в языке, а в том что придумывали его Netscape'вцы, т.е. имеем дикую библиотеку стандартных обьектов, отсутствие явной многопоточности (JS как бы функциональный язык, сила его в параллельных вычислениях, например обработка событий Добавлено @ 01:29 взгляни на этот код, так ли он похож методологией на то что ты видел раньше? http://forum.vingrad.ru/index.php?showtopic=67475 Програмисты Java более близки, т.к. припомнят вложенные не статичные классы - тоже мощная вещьа. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||||||||||
|
|||||||||||||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 4 Всего: 29 |
http://www.wolf-ware.ru/ruprogram65.html Выложил "рецепник" специально для тебя. Надеюсь, окажется полезен. Пару раз пользовался им. На счёт копирайтов - не уверен, но по-моему там говорится о том, что всё дублируется онлайн документацией, и дана ссылка на сайт... |
|||
|
||||
| Bastet (из универа) |
|
|||
|
Unregistered |
Насчет DHTML, у меня сложилось мнение, что как такового dhtml не существует - это единство html, css и js. Так что вместо справочника по dhtml лучше найти подробный справочник по css - все свойства элемента div - это именно они.
Насчет гиков и жадных детей - ничего не поделаешь, подавляющее большинство авторов домашних страничек - Васи Пупкины, которые хотя "шоб было красиво" и круче, чем у всех. Базовые возможности js просты и доступны всем, поэтому их используют люди, далекие от программирования. Отсюда множество ламерских скриптов и мануалов. Сама когда-то начинала и искала справочники в сети - их мало и они в основном ограничиваются яркими визуальными эффектами. Ничего не поделаешь - плохой js такая же норма на "всемирной свалке", как плохой дизайн. Это все к тому. что виновата не технология (она хороша, я уже писала), а ламеры, которые пытаются ее использовать. Пример очень красивого использования js - www.DeviantArt.com. |
|||
|
||||
| Bastet |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 26.9.2005 Где: Тильзит Репутация: нет Всего: 6 |
Вот, для тех, кто вдруг не понял, выше была я
--------------------
"I'm not bad. I'm just drawn that way" © Jessica RabbitСм.также: BB | ЖЖ | DA |
|||
|
||||
| Sardar |
|
||||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Да, DHTML это старая терминология от ИЕ/нетскейпа, вливали в одну кучу CSS, разметку и скрипты. На MSDN'е это всё и в наши дни называеться DHTML
Согласен, JS это просто инструмент, каждый использует его по своему.
Я бы не был бы так категоричен. Анимации и "примочки" позволяют отработать язык, набить руку. На JS мы не рисуем кадры, мы изменяем свойства обьектов, точно также мы работаем со свойствами обьектов в других задачах. Т.е. анимации очень близки к повседневным задачам, но чуть сложнее из-за введения таймингов. Человек хорошо пишуший анимации по принципам JS (напомню что рисовать не можем) прекрасно будет писать динамичные интерфейсы на XUL.
Да никто ни в чём не виноват, сколько бы мы не говорили здесь, мир JS даже не поколеблеться Знание JS необходимо как и знание XHTML, CSS, XML(и сопутствующие технологии) для нромального веб-разработчика. Да, современные ASP.NET, и "расширения" J2EE позволяют многие вещи, например формы строить автоматичеки не вникаясь в подробности как оно работает. Такой код обычно среднего качества, но рабочий и это главное. А что бы сделать что то не шаблонное, потребуються знания. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||||
|
|||||||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
К словам "малолетний", "не зрелый" и подобным я бы приставил "программист", ибо возраст в реале тут никак не отражается, имхо…
|
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Воооот! Вот это уже совсем другое дело! Отличный справочник и до некоторой степени учебник. Правда, не без огрехов. Я пока еще только начал смотреть, но уже бросилось в глаза, что в массе примеров используется document.write(); Вот это меня всегда совершенно сбивало с толку, потому что я никак не мог понять, в какой момент и в какое место должен писаться вывод. Зато! Зато я щас только что прочитал, что в JS можно создавать свои объекты! С методами! С наследованием! То есть фактически программировать в ОО стиле! О, сколько нам открытий чудных... А еще! Еще я узнал, что к HTML элементам можно динамически подвешивать обработчики событий. Вот! Да с таким инструментарием можно такого наворочать! Чтоб все мигало, моргало, ехало задом наперед... Шютка Если серъезно, я, конечно, понимаю, что Javascript полезен не только как средство создания "крутых" визуальных эффектов, но и для реализации вполне серъезной функциональности, как-то валидация форм и обработка XML. Ведь именно по этой причине я и взялся за Javascript. И про AJAX тоже слышал и думал в этом направлении. Но вот когда приступил к практической разработке, то столкнулся с тем, что помимо типичных трудностей освоения нового языка с его синтаксисом, примочками и нюансами, меня сильно ограничивает непонимание методологии. Вот сейчас я уже вижу, что на JS можно программировать не только в скриптовой идеологии, но и как обычное нормальное ОО приложение - с предварительным планированием, дизайном и пр. Но, увы, никто мне об этом заранее не рассказал (я, правда, и не спрашивал Теперь внимание: в раздел JavaScript на Винграде я тоже заглядывал. Посмотрел темы "Книги по JavaScript" и "Хорошая документация". Увидел наваленные в кучу названия и ссылки. Тыкнул в пару ссылок - ничего хорошего не обнаружил. До книжки Лукача даже не добрался. И вот только прямо сейчас заметил тему Sardar'а Обьекты, прототипы, эффективные интерфейсы - ведь это же в точности то, что мне было нужно (правда, с оговорками). Но я в то время на этот топик даже и внимания не обратил, из-за слишком узкоспециального названия. Откуда мне было знать, что там находится самая важная для меня инфа? Короче, Sardar, я собираюсь (может быть, сегодня) написать тебе открытое письмо. О чем - скоро узнаешь Для всех: вопросы остаются открытыми. Если кто знает еще какие-то книжки, справочники, тулзы, редакторы и пр. для JS - колитесь Wolf1994, спасибо - отличная компактная грамотная книжка с практическими рецептами. Очень пригодится в повседневной работе. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
| Sardar |
|
||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Даже проскакивали ссылки на статьи как сделать JS посожим на Java/C#, т.е. полностью OOП с понятием приватных полей, методов и т.п. JS гибкий язык, позволяет писать как угодно, структурно, OOП и т.д. Это лучше чем ничего, но всё такие будет ограничивать твоё сознание. Например догнав что такое closures не будешь по привычке делать списки обьектов и хранить их ключи
Тоже писал, самый удобный способ addEventListener, который все кроме ИЕ поддерживают. attachEvent это немного другое, бесполезная вещь т.к. не инициализирует ссылки this. Вообщем это детали окружения JS
Времени нет закончить, это только самое начало Сам пишу/проектирую в ООП, удобно. Но в зависимости от окружения пишу разный код, в JS мне не нужно наследование, это простые скрипты. В PHP5 хочу ограничиться минимум классами, т.к. это всё нужно грузить. В Java всё спроектирую в интерфейсах, а затем пишу классы-реализации, что в целом порождает большое количество .class файлов, это удобно и наглядно. Если ты напишешь кучу "классов" что будут через прототипы "наследовать" друг от друга, то скоро сам будешь не в востроге от кода. Ведь всегда можно создать обьект который будет делать что то одно, а затем собрать динамически новый обьект, делающий что то другое, при этом скопировать часть методов из одного в другой, да паралелльно связать их с каким нибудь другим кодом. Тут ограничивает только фантазия -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||
|
|||||||
| merfi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 16.3.2005 Репутация: нет Всего: нет |
Я короче это все прочитал Могу порекомендовать следующее
Из книжек: JavaScript Наиболее полное руководство Не дорого но написали про все даже есть стекляшка с DOM и все такое Из инструменотов: Far + Colorer там вроде как все подсвечивается Если не покатит то прикольно Primal Script 3.1 и выше Он вообще все подсвечивает не заблудишься --------------------
Стремитесь к совершенству! Неуклонно идите вперед! Но помните, что Ковчег сделал любитель а Титаник построили профессионалы |
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Нет, передумал. Не буду писать открытое письмо. В двух словах, я хотел предложить реорганизовать/дополнить разделы JavaScript и JavaScript для начинающих таким образом, чтобы новичку было легче сориентироваться в море информации. Потому что по своему опыту могу сказать, что отделить мух от котлет в самом начале бывает очень трудно. Впрочем, вам виднее. Спасибо всем, кто принял участие в обсуждении. Особо отличившиеся представлены к награде -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |