Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Вопросы к опытным Javascript-программиста


Автор: Stampede 21.10.2005, 21:14
Вот тут в http://forum.vingrad.ru/index.php?showtopic=68105&unread=1&hl= прозвучала такая фраза. Поскольку топик там несколько о другом, переношу обсуждение в отдельную тему.

Цитата(Zeroglif @ 21.10.2005, 19:49)
Я для себя сделал вывод: бандитское обращение с Javascript-ом в прошлом веке как со стороны создателей user-agent-ов, так и со стороны вебмастеров-самоучек подмочило ему репутацию и до сих пор отпугивает неразумных, хотя на самом деле в умелых руках - это конфетка, а не язык. Ням-ням.


Отлично! Ловлю тебя на слове. Я щас коротенько напишу, в чем мне видится самая большая проблема с JavaScript на методологическом уровне, а потом задам тебе парочку простых вопросов. Лады?

Короче, пробема мне видится так. По некоторым объективным причинам технологии динамического программирования на стороне климента вызывали и вызывают наибольший интерес в первую очередь в среде так называемых "жадных детей" (с) Гоблин, поскольку это именно та публика, которая в силу возрастных особенностей очень любит, когда на страничке все мигает, моргает, едет задом наперед, пропадает и появляется в неожиданных местах - то есть вещи, для реализации которых Javascript является просто идеальным инструментом.

Ну а поскольку основные потребители этой технологии - это гики (geeks), то и подход к вопросу у них тоже гикский, ботанский. Повторяю, просто в силу незрелости мировоззрения и отстутствия системного взгляда на вещи. Соответственно, и ресурсы по предмету, которые они создают, страдают тем же самым - отсутствием системы. В результате подавляющее большинство материалов в сети - это скорее сборник рецептов хозяйке на каждый день. Нужно прыгающие буквы - на тебе прыгающие буквы. Хочешь текст задом наперед - на тебе задом наперед.

Для гиков это работает, потому что это именно то, что им нужно - здесь и сейчас. А для меня - нет. Мне вот, например, в текущем проекте нужно реализовать достаточно сложную функциональность с динамическим созданием всяких разных элементов интерфейса, которые при этом должны друг с другом взаимодействовать, инициализировать себя на основе XML данных, и пр.

При этом меня не надо учить программированию; я в этом деле собаку съел и пудом соли закусил. Но мне нужно, чтобы кто-то мне рассказал про Javascript примерно в таком ключе: "Значит так, чувак, от Java тут ничего нет кроме маленько похожего синтаксиса и названия некоторых функций. Далее, переменные. Сначала об области видимости ... бла-бла-бла ... Теперь о типах ...", и так далее.

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

1. В чем лучше писать код? Я сейчас пользуюсь TextEdit, но он не понимает синтаксис JavaScript. А я хочу, чтобы редактор хотя бы немного облегчал мне жизнь: подсвечивал ключевые слова, следил за парностью скобок, выдавал справку по объектам и функциям.

2. Есть ли нормальные отладчики под основные браузеры - в первую очередь IE и Firefox? Я себе поставил Venkman и какого-то урода с MS, но впечатления пока так себе.

3. Где взять нормальный справочник по DHTML??? Вот это меня больше всего убивает. Ну вот я получил, например объект Div, и что с ним делать? Какие у него свойства, какие методы? Пока самая полная документация, которая мне попалась, это на сайте MSDN. Но и там не всегда понятно, что к чему. Например, объекты в Javascript поддерживают наследование? Если да, то кто у кого родитель/потомок?

4. Где все-таки взять нормальный учебник по Javascript?

Вот такие вот пока вопросы. Кто сможет помочь - будет большой молодец smile

Автор: pvo 21.10.2005, 23:24
Цитата(Stampede @ 21.10.2005, 21:14)
... Соответственно, и ресурсы по предмету, которые они создают, страдают тем же самым - отсутствием системы. В результате подавляющее большинство материалов в сети - это скорее сборник рецептов хозяйке на каждый день.


К сожалению, у меня похожее впечатление smile

Я не ах какой спец в javascript, но сталкиваться с ним приходится все чаще. Поэтому вот мои 5 коп.:

Цитата(Stampede @ 21.10.2005, 21:14)
1. В чем лучше писать код? Я сейчас пользуюсь TextEdit, но он не понимает синтаксис JavaScript. А я хочу, чтобы редактор хотя бы немного облегчал мне жизнь: подсвечивал ключевые слова, следил за парностью скобок, выдавал справку по объектам и функциям.


Я использую редактор, входящий в Eclipse WST. В нем есть подсветка синтаксиса и довольно куций code completion. Но из того, что я видел, это не самая плохая вещь.


Цитата(Stampede @ 21.10.2005, 21:14)
Есть ли нормальные отладчики под основные браузеры - в первую очередь IE и Firefox? Я себе поставил Venkman и какого-то урода с MS, но впечатления пока так себе

Из тех, что я видел - эти самые приличные. Причем "урод с MS", идущий вместе с Вин2003 мне понравился больше.

Насчет пп. 3 и 4 - в понедельник напишу.

Цитата
Мне вот, например, в текущем проекте нужно реализовать достаточно сложную функциональность с динамическим созданием всяких разных элементов интерфейса, которые при этом должны друг с другом взаимодействовать, инициализировать себя на основе XML данных, и пр.

Посмотри на http://www.bindows.net. Несмотря на некоторую глючность и тормознутость, занятная штука, имхо.

Автор: Stampede 22.10.2005, 00:12
pvo, спасибо, будем посмотреть smile

Автор: Zeroglif 22.10.2005, 00:56
Цитата(Stampede @ 21.10.2005, 21:14)
В результате подавляющее большинство материалов в сети - это скорее сборник рецептов хозяйке на каждый день. Нужно прыгающие буквы - на тебе прыгающие буквы. Хочешь текст задом наперед - на тебе задом наперед.


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

Цитата(Stampede @ 21.10.2005, 21:14)
При этом меня не надо учить программированию; я в этом деле собаку съел и пудом соли закусил. Но мне нужно, чтобы кто-то мне рассказал про Javascript примерно в таком ключе: "Значит так, чувак...


Учить не буду. Значит так, чувак, переменные, область видимости, типы и так далее - енто базис, который упомянут в любых книгах, не стоит искать какой-то сверхдоходчивый мануал или просить разжевать тут, везде одна малина. К примеру, такие ответы должны тебя полностью устроить на начальном этапе:

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 22.10.2005, 01:14
Цитата
в среде так называемых "жадных детей" (с) Гоблин, поскольку это именно та публика, которая в силу возрастных особенностей очень любит, когда на страничке все мигает, моргает, едет задом наперед, пропадает и появляется в неожиданных местах - то есть вещи, для реализации которых Javascript является просто идеальным инструментом.

Зря ты так. Проверка форм, вставка тэгов в форму быстрого ответа, быстрая цитата, транслит, подсветка синтаксиса на этом форуме, Всё это благодаря JScript. Можно делать полностью Веб-Приложения которые отрабатывают без перезагрузки страницы, просто в конце данные отсылаются на сервер. Готово. Причём в приложении PHP нам придётся посылать запросы клиент-сервер-клиент. Это параллельная дверь, через которую харек может проникнуть и повредить систему. Используя скрипты мы всё время находимся на "надёжной стороне" - стороне клиента.
Цитата
При этом меня не надо учить программированию; я в этом деле собаку съел и пудом соли закусил. Но мне нужно, чтобы кто-то мне рассказал про Javascript примерно в таком ключе: "Значит так, чувак, от Java тут ничего нет кроме маленько похожего синтаксиса и названия некоторых функций. Далее, переменные. Сначала об области видимости ... бла-бла-бла ... Теперь о типах ...", и так далее.

Ну тогда ты знаешь всё. Бери карандаш и вперёд smile Серьёзно вот пара указателей:
Особенность JS: все обьекты - массивы, состоящие из методов и свойств.
Можешь в любой момент добавить или удалить метод или свойство обьекта smile
Подучи DOM для работы с элементами страницы.
С этих двух "ног" я начал разбираться со скриптами. месяц - два и думаю для твоих задач будешь знать JS весьма прилично.

Цитата
1. В чем лучше писать код? Я сейчас пользуюсь TextEdit, но он не понимает синтаксис JavaScript. А я хочу, чтобы редактор хотя бы немного облегчал мне жизнь: подсвечивал ключевые слова, следил за парностью скобок, выдавал справку по объектам и функциям.


К сож. настоящую стоющую IDE я тоже не смог найти. Поэтому довольствуюсь PHPExpertEditor. Отчасти от того, что работаю с PHP + Javascript. Штука лёгкая быстрая и поддерживает работу с FTP. Впринципе на скрипты больше и не надо

Цитата
2. Есть ли нормальные отладчики под основные браузеры - в первую очередь IE и Firefox? Я себе поставил Venkman и какого-то урода с MS, но впечатления пока так себе.

Venkmann - обычно достаточно. Если пишешь так, что работает с ним, будет работать и со всем остальным. Да, он не очень удобен, но вполне достаточен.

А насчёт справочников и учебников у нас в разделе ссылок на них навалом. http://forum.vingrad.ru/index.php?showtopic=19939

Автор: Sardar 22.10.2005, 01:25
Цитата(Stampede @ 21.10.2005, 20:14)
когда на страничке все мигает, моргает, едет задом наперед, пропадает и появляется в неожиданных местах - то есть вещи, для реализации которых Javascript является просто идеальным инструментом.

Сразу вижу человека не работавшего с "толстыми вебклиентами". JS не подходит для анимаций, т.к. рисовать не может, а манипулирует обьектами браузера, что само по себе очень не эффективно (тормозит)
Цитата(Stampede @ 21.10.2005, 20:14)
В результате подавляющее большинство материалов в сети - это скорее сборник рецептов хозяйке на каждый день.

Да, есть такое, при чём большинство скриптов морально устарели, но люди пользуються. Отсюда сразу видно, проффесионал или дилетант сидел за разработкой клиентской части, хотя большинству "работает и ладно" smile
Цитата(Stampede @ 21.10.2005, 20:14)
Мне вот, например, в текущем проекте нужно реализовать достаточно сложную функциональность с динамическим созданием всяких разных элементов интерфейса, которые при этом должны друг с другом взаимодействовать, инициализировать себя на основе XML данных, и пр.

Вот, теперь ты начинаешь понимать зачем нужен JS и зачен нужны "толстые" клиенты smile
Цитата(Stampede @ 21.10.2005, 20:14)
"Значит так, чувак, от Java тут ничего нет кроме маленько похожего синтаксиса и названия некоторых функций. Далее, переменные. Сначала об области видимости ... бла-бла-бла ... Теперь о типах ...", и так далее.

Большинство мануалов подгоняют сознание программиста с одного любого(C/C++, Java etc) языка на JS. Код такого программиста сразу отличим, т.к. пишет не вникая мощь языка, такие вещи как closures, прототипы, динамически собираемые обьекты и т.п. Это как программисту на С/С++ вдуг сказать программировать на функциональном языке или ещё лучше на Prolog. Первое что спросит "где здесь for/while" smile
Цитата(Stampede @ 21.10.2005, 20:14)
А я хочу, чтобы редактор хотя бы немного облегчал мне жизнь: подсвечивал ключевые слова, следил за парностью скобок, выдавал справку по объектам и функциям

Не относиться к языку, Dreamweaver тебе в руки.
Цитата(Stampede @ 21.10.2005, 20:14)
Есть ли нормальные отладчики под основные браузеры - в первую очередь IE и Firefox? Я себе поставил Venkman и какого-то урода с MS, но впечатления пока так себе.

Твоё личное мнение. Можно привести лошадь к водопою, но нельзя заставить её пить smile
Цитата(Stampede @ 21.10.2005, 20:14)

4. Где все-таки взять нормальный учебник по Javascript?

А ты искал? smile Посмотри в разделе "нлайн документация", я специально отбирал ссылки. sunclouds.ru лучшие.

Проблему JS не в языке, а в том что придумывали его Netscape'вцы, т.е. имеем дикую библиотеку стандартных обьектов, отсутствие явной многопоточности (JS как бы функциональный язык, сила его в параллельных вычислениях, например обработка событий smile ) и прочие недоделки. Если бы его не поддерживали от нетскейповцев, а редизайнили по новой(что мозилла частично сделала), то было бы очень хорошо.
Добавлено @ 01:29
взгляни на этот код, так ли он похож методологией на то что ты видел раньше?
http://forum.vingrad.ru/index.php?showtopic=67475

Програмисты Java более близки, т.к. припомнят вложенные не статичные классы - тоже мощная вещьа.

Автор: Wolf1994 22.10.2005, 06:38
Цитата(Stampede @ 21.10.2005, 21:14)
3. Где взять нормальный справочник по DHTML???

http://www.wolf-ware.ru/ruprogram65.html
Выложил "рецепник" специально для тебя. Надеюсь, окажется полезен. Пару раз пользовался им.
На счёт копирайтов - не уверен, но по-моему там говорится о том, что всё дублируется онлайн документацией, и дана ссылка на сайт...

Автор: Bastet (из универа) 22.10.2005, 11:34
Насчет DHTML, у меня сложилось мнение, что как такового dhtml не существует - это единство html, css и js. Так что вместо справочника по dhtml лучше найти подробный справочник по css - все свойства элемента div - это именно они.

Насчет гиков и жадных детей - ничего не поделаешь, подавляющее большинство авторов домашних страничек - Васи Пупкины, которые хотя "шоб было красиво" и круче, чем у всех. Базовые возможности js просты и доступны всем, поэтому их используют люди, далекие от программирования. Отсюда множество ламерских скриптов и мануалов.

Сама когда-то начинала и искала справочники в сети - их мало и они в основном ограничиваются яркими визуальными эффектами. Ничего не поделаешь - плохой js такая же норма на "всемирной свалке", как плохой дизайн.

Это все к тому. что виновата не технология (она хороша, я уже писала), а ламеры, которые пытаются ее использовать.
Пример очень красивого использования js - www.DeviantArt.com.

Автор: Bastet 22.10.2005, 13:20
Вот, для тех, кто вдруг не понял, выше была я smile

Автор: Sardar 22.10.2005, 13:25
Цитата(Bastet @ 22.10.2005, 10:34)
Насчет DHTML, у меня сложилось мнение, что как такового dhtml не существует - это единство html, css и js. Так что вместо справочника по dhtml лучше найти подробный справочник по css - все свойства элемента div - это именно они.

Да, DHTML это старая терминология от ИЕ/нетскейпа, вливали в одну кучу CSS, разметку и скрипты. На MSDN'е это всё и в наши дни называеться DHTML smile

Цитата(Bastet @ 22.10.2005, 10:34)
Базовые возможности js просты и доступны всем, поэтому их используют люди, далекие от программирования. Отсюда множество ламерских скриптов и мануалов.

Согласен, JS это просто инструмент, каждый использует его по своему.

Цитата(Bastet @ 22.10.2005, 10:34)
и искала справочники в сети - их мало и они в основном ограничиваются яркими визуальными эффектами. Ничего не поделаешь - плохой js такая же норма на "всемирной свалке", как плохой дизайн.

Я бы не был бы так категоричен. Анимации и "примочки" позволяют отработать язык, набить руку. На JS мы не рисуем кадры, мы изменяем свойства обьектов, точно также мы работаем со свойствами обьектов в других задачах. Т.е. анимации очень близки к повседневным задачам, но чуть сложнее из-за введения таймингов. Человек хорошо пишуший анимации по принципам JS (напомню что рисовать не можем) прекрасно будет писать динамичные интерфейсы на XUL.

Цитата(Bastet @ 22.10.2005, 10:34)
Это все к тому. что виновата не технология (она хороша, я уже писала), а ламеры, которые пытаются ее использовать.

Да никто ни в чём не виноват, сколько бы мы не говорили здесь, мир JS даже не поколеблеться smile Каждый использует его для своих нужд.

Знание JS необходимо как и знание XHTML, CSS, XML(и сопутствующие технологии) для нромального веб-разработчика. Да, современные ASP.NET, и "расширения" J2EE позволяют многие вещи, например формы строить автоматичеки не вникаясь в подробности как оно работает. Такой код обычно среднего качества, но рабочий и это главное. А что бы сделать что то не шаблонное, потребуються знания.

Автор: Aliance 22.10.2005, 20:08
К словам "малолетний", "не зрелый" и подобным я бы приставил "программист", ибо возраст в реале тут никак не отражается, имхо…

Автор: Stampede 22.10.2005, 21:08
Цитата(Zeroglif @ 22.10.2005, 00:56)

http://wdh.suncloud.ru/js01.htm - общие сведения об объектах
...
...
http://wdh.suncloud.ru/js07.htm - наследование


Воооот! Вот это уже совсем другое дело! Отличный справочник и до некоторой степени учебник. Правда, не без огрехов. Я пока еще только начал смотреть, но уже бросилось в глаза, что в массе примеров используется document.write(); Вот это меня всегда совершенно сбивало с толку, потому что я никак не мог понять, в какой момент и в какое место должен писаться вывод.

Зато! Зато я щас только что прочитал, что в JS можно создавать свои объекты! С методами! С наследованием! То есть фактически программировать в ОО стиле! О, сколько нам открытий чудных...

А еще! Еще я узнал, что к HTML элементам можно динамически подвешивать обработчики событий. Вот!

Да с таким инструментарием можно такого наворочать! Чтоб все мигало, моргало, ехало задом наперед... Шютка smile

Если серъезно, я, конечно, понимаю, что Javascript полезен не только как средство создания "крутых" визуальных эффектов, но и для реализации вполне серъезной функциональности, как-то валидация форм и обработка XML. Ведь именно по этой причине я и взялся за Javascript. И про AJAX тоже слышал и думал в этом направлении. Но вот когда приступил к практической разработке, то столкнулся с тем, что помимо типичных трудностей освоения нового языка с его синтаксисом, примочками и нюансами, меня сильно ограничивает непонимание методологии. Вот сейчас я уже вижу, что на JS можно программировать не только в скриптовой идеологии, но и как обычное нормальное ОО приложение - с предварительным планированием, дизайном и пр.

Но, увы, никто мне об этом заранее не рассказал (я, правда, и не спрашивал smile). А то, что смог найти в сети, только добавило путаницы. Почему - см. самый первый пост. И эта, Sardar, не надо меня тыкать в гуголь. От того, что по слову javascript tutorial вываливается 9 миллионов ссылок, легче не становится.

Теперь внимание: в раздел JavaScript на Винграде я тоже заглядывал. Посмотрел темы "Книги по JavaScript" и "Хорошая документация". Увидел наваленные в кучу названия и ссылки. Тыкнул в пару ссылок - ничего хорошего не обнаружил. До книжки Лукача даже не добрался.

И вот только прямо сейчас заметил тему Sardar'а http://forum.vingrad.ru/index.php?showtopic=50738 - ведь это же в точности то, что мне было нужно (правда, с оговорками). Но я в то время на этот топик даже и внимания не обратил, из-за слишком узкоспециального названия. Откуда мне было знать, что там находится самая важная для меня инфа?

Короче, Sardar, я собираюсь (может быть, сегодня) написать тебе открытое письмо. О чем - скоро узнаешь smile

Для всех: вопросы остаются открытыми. Если кто знает еще какие-то книжки, справочники, тулзы, редакторы и пр. для JS - колитесь smile

Wolf1994, спасибо - отличная компактная грамотная книжка с практическими рецептами. Очень пригодится в повседневной работе.

Автор: Sardar 22.10.2005, 22:09
Цитата(Stampede @ 22.10.2005, 20:08)
Зато! Зато я щас только что прочитал, что в JS можно создавать свои объекты! С методами! С наследованием! То есть фактически программировать в ОО стиле! О, сколько нам открытий чудных...

Даже проскакивали ссылки на статьи как сделать JS посожим на Java/C#, т.е. полностью OOП с понятием приватных полей, методов и т.п. JS гибкий язык, позволяет писать как угодно, структурно, OOП и т.д. Это лучше чем ничего, но всё такие будет ограничивать твоё сознание. Например догнав что такое closures не будешь по привычке делать списки обьектов и хранить их ключи smile

Цитата(Stampede @ 22.10.2005, 20:08)
А еще! Еще я узнал, что к HTML элементам можно динамически подвешивать обработчики событий. Вот!

Тоже писал, самый удобный способ addEventListener, который все кроме ИЕ поддерживают. attachEvent это немного другое, бесполезная вещь т.к. не инициализирует ссылки this. Вообщем это детали окружения JS smile

Цитата(Stampede @ 22.10.2005, 20:08)
И вот только прямо сейчас заметил тему Sardar'а Обьекты, прототипы, эффективные интерфейсы - ведь это же в точности то, что мне было нужно (правда, с оговорками).

Времени нет закончить, это только самое начало smile Суть топа была показать что JS ближе к функциональным языкам, нежели к OOП.

Сам пишу/проектирую в ООП, удобно. Но в зависимости от окружения пишу разный код, в JS мне не нужно наследование, это простые скрипты. В PHP5 хочу ограничиться минимум классами, т.к. это всё нужно грузить. В Java всё спроектирую в интерфейсах, а затем пишу классы-реализации, что в целом порождает большое количество .class файлов, это удобно и наглядно.

Если ты напишешь кучу "классов" что будут через прототипы "наследовать" друг от друга, то скоро сам будешь не в востроге от кода. Ведь всегда можно создать обьект который будет делать что то одно, а затем собрать динамически новый обьект, делающий что то другое, при этом скопировать часть методов из одного в другой, да паралелльно связать их с каким нибудь другим кодом. Тут ограничивает только фантазия smile

Автор: merfi 24.10.2005, 12:49
Я короче это все прочитал Могу порекомендовать следующее
Из книжек: JavaScript Наиболее полное руководство Не дорого но написали про все даже есть стекляшка с DOM и все такое
Из инструменотов: Far + Colorer там вроде как все подсвечивается
Если не покатит то прикольно Primal Script 3.1 и выше
Он вообще все подсвечивает не заблудишься

Автор: Stampede 25.10.2005, 23:49
Цитата(Stampede @ 22.10.2005, 21:08)
Короче, Sardar, я собираюсь (может быть, сегодня) написать тебе открытое письмо. О чем - скоро узнаешь smile


Нет, передумал. Не буду писать открытое письмо. В двух словах, я хотел предложить реорганизовать/дополнить разделы JavaScript и JavaScript для начинающих таким образом, чтобы новичку было легче сориентироваться в море информации. Потому что по своему опыту могу сказать, что отделить мух от котлет в самом начале бывает очень трудно. Впрочем, вам виднее.

Спасибо всем, кто принял участие в обсуждении. Особо отличившиеся представлены к награде smile

Автор: Sardar 26.10.2005, 00:05
Цитата(Stampede @ 25.10.2005, 22:49)
В двух словах, я хотел предложить реорганизовать/дополнить разделы JavaScript и JavaScript для начинающих таким образом, чтобы новичку было легче сориентироваться в море информации.

Это вопрос над которым бьёмся всем форумом. В JS всего два раздела, основной со свежими и интересными вопросами и "для новичков", где всё остальное. В PHP наоборот, всё поделено по тематике, сам считаю что новичку в обилии разделов запутаться гораздо проще. Если есть предложения/идеи - выкладывай, обдумаем, решим.

Автор: Stampede 26.10.2005, 01:29
Цитата(Sardar @ 26.10.2005, 00:05)
Если есть предложения/идеи - выкладывай, обдумаем, решим.


Ну, идея была такая. Существует несколько популярных форматов подачи информации для первичного ознакомления с вопросом, такие как ФАК, сборник рецептов, учебник (tutorial) и пр. Но есть еще один, который, который почему-то не получил большого распространения, хотя я лично считаю его самым полезным. Для себя я называю его "коротко о главном".

Концептуально - это такая организация материала, при которой автор берет на себя смелость вычленить самое-пресамое главное, что нужно знать новичку о предмете: начиная с краткого историчнского обзора и кончая типичными заблуждениями.

Одним из хороших примеров подобного подхода может послужить цикл статей Глеба Ладыженского, опубликованный в 1995 г. в журнале СУБД: http://www.jetinfo.ru/1995/3-5/1/article1.3-5.1995.html. Если кто не знает, это было время, когда реляционные БД только-только начинали проникать на писюковые платформы. Интерес со стороны народа был большой, а толковой инфы - очень мало. Кнжки Дейта, Хоффмана и пр. зубров отчасти помогали, но были скорее теоретической направленности. Доки и мануалы, с другой стороны, описывали синтаксис, но не давали общей картины. А Ладыженский взял и в более или менее компактной форме раскрыл и теоретические, и практические аспекты работы с базами данных:

Получается, конечно, не очень коротко. Но в любом нетривиальном вопросе иначе и не бывает. В качестве еще одного примера могу рассказать такую историю.

Года три назад я заметил, что заметно потолстел, и решил заняться своим организмусом. Начал, как водится, с поиска инфы. Разумеется, сразу утонул в море противоречивой информации. Только на то, чтобы хоть приблизительно разобраться, что к чему, ушло несколько месяцев. Когда разобрался, без особых напрягов и лишений за три месяца привел себя в норму, и с тех пор легко контролирую свой вес.

Но за то время, что я активно интересовался вопросом (в частности, регулярно посещал дамский худейский форум harbor.ru), я обнаружил, что у абсолютного большинства народа, даже у тех, кто уже много лет пытается похудеть, познания о предмете представляют собой невероятную мешанину из разрозненных фактов, мифов и предрассудков, в результате чего люди дико страдают, изнуряют себя голодом, глотают всякие дурацкие таблетки, зарабатывают неврозы, гробят здоровье - а худеть не худеют.

И когда я это осознал, я просто сел и написал программную статью http://harbor.ru/faq/faq.htm. Эта статья прибита на самом верху ихнего форума. Любой. кто туда заходит, сразу ее видит, и если вдруг появляется новичок и начинает нести вздор или задавать глупые вопросы, то их сразу и без разговоров отправляют изучать первоосновы.

Я могу сказать. что за то время, что она там висит, я получил уже столько благодарных отзывов от людей, которым эта статья раскрыла глаза, что если бы моя карма зависела только от этого, я бы уже давным-давно достиг сансары smile

Так вот, я, собственно, хотел вам предложить написать что-нибудь подобное в стиле "коротко о главном". Но тут очень важно, чтобы в таком тексте прозвучала отчетливая авторская позиция, поэтому коллективное творчество тут вряд ли получится.

Без такого материала, повторяю, раздел JavaScript на Винграде - это просто один из тысяч ресурсов по JavaScript.

Автор: Aliance 26.10.2005, 13:40
Разделы должны называться так, чтобы было понятно всем, особенно новичкам.

Автор: Sardar 26.10.2005, 15:28
Цитата(Stampede @ 26.10.2005, 00:29)
Концептуально - это такая организация материала, при которой автор берет на себя смелость вычленить самое-пресамое главное, что нужно знать новичку о предмете: начиная с краткого историчнского обзора и кончая типичными заблуждениями.

На это нужен талант и время.

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

По сети масса кратких справочников типа "JS за пару часов", в кторых обьясняються основные конструкции языка. Эти справочники расчитанны на ползователей уже умеющих программировать в других языках. Для C'шников описываються функции и JS преподноститься как истинно структурный язык. Для OOП'шников раскрываються приёмы как сделать JS ООП языком. Не видел ещё работы кто бы преподносил JS как функциональный язык.

В итоге люди себя ограничивают искусственными рамками, нажитыми в других языках. Это всё равно что заядлый C программист не понимает почему структура с ссылками на функции стала называться обьектом в C++ и почему это круто. Или заядлый C++ подумает почему ссылка в Java это не указатель и массив обьектов это на самом деле массив ссылок.

А теперь ещё сложней обьяснить, что функции это обьекты как и любая другая переменная в JS. Можно определять вложенные функции и это не обёртка кода укзателями, это два разных обьекта, где вложенная функция имеет свою ссылку на контекст внешней функции за свой вызов (т.е. вложенная фунция создаёться по новой при каждом вызове smile ). Такие "высокоуровневые скриптовые вещи" трудно выложить в "коротко о главном", т.к. человек не ожидает этого, а наоборот как представить изучаемый язык похожим на что либо, изученное ранее.

Вообщем нужно вдохновение на всё это smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)