![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Доброго времени суток, уважаемые форумчане!
Приглашаю на разговор и обсуждение одного вопроса - об актуальности информации для разработчиков веб-приложений в различных версиях бумажных книг. Вопросы, которые интересовали: 1. Действительно ли книга содержит всё, что нужно для разработчика? 2. Хорошим ли языком написана? 3. Сколько в ней находится "мусора", не нужного для общих кроссбраузерных приложений? 4. Стоит ли её покупать? Решил рассмотеть учебник с названием: "JavaScript. Полное руководство." 4-е издание., 720 стр., Авторы: Аллен Р. Вайк, Джейсон Д. Джиллиам. 2004 год, 4-й квартал. В и-нете доступна часть глав, введение (170 КБа) и примеры к этой книге (архив, 280 К, по нескольку примеров к каждой главе). Конкретно, главы 4, 20, 26. Вся книга недоступна, так как продаётся ныне в магазинах. Но издательство предоставляет перечисленную информацию сознательно, чтобы дать возможность оценить качество. Начнём по порядку. Книга ( http://www.williamspublishing.com/Books/5-8459-0716-0.html ) имеет такие главы (список скопирован с сайта издательства. Более подробное содержание (120 КБа) с названиями параграфов можно увидеть там же): __Ч.1. Основы JavaScript 25 1. Введение в JavaScript (эта глава доступна в онлайне, 170 КБа) 27 2. Комплект инструментальных средств для разработки JavaSсript-сценариев 39 3. Начало процесса написания сценариев 61 Книга, по словам авторов, рассчитана на людей, знакомых с программированием, но не знающих Javascript. Конкретно - цитирую: " Web-мастера. Авторы и разработчики языка XHTML. Разработчики Web-приложений. Дизайнеры и разработчики на динамическом HTML. Профессиональные пользователи.". Очень серьёзный подбор. Тем интереснее выводы, которые я сделал в конце. Видим подробное и достаточно доходчивое, неторопливое введение в процесс пользования средствами работы с языком. Часто в книгах не хватает этого раздела - начинают сразу с теории, не вспоминая о том, что есть ОС и программа-оболочка для работы. Надо сразу оговориться, что учебник не самый новый. Он рассматривает скрипт в браузерах версий IE5.5, Netscape 7, Mozilla, Opera (видимо, до 7-й версии), без упора на кроссбраузерные совместимости. Как мы увидим чуть позже, стиль изложения не позволит в таком объёме (700 стр.) рассмотреть слишком много вопросов. В книге уже успели "откреститься" от Netscape 4, поэтому можно считать информацию современной. __Ч.II. Ядро языка JavaScript 75 4. Основные языковые компоненты (эта глава доступна в онлайне, 520 КБа) 77 5. Операции 107 6. Управляющие структуры и циклы 133 7. Функции 157 О, да, своевременно пошла теория. Столь же подробная, как в известных и признанных книгах этого уровня - Д. Гудман; Cliff Wootton; Дронов. Удобно, что материал изложен доходчиво, но не для "чайников" - все вопросы по ядру языка освещены. Но есть отличия. Справедливости ради, уточним, для кого же, на мой взгляд, написана книга. У Гудмана и Вутона - справочный стиль, у Дронова - комбинированный Уже по прошествии нескольких глав вырисовывается стиль и можно сделать выводы. Стиль изложения языка выбран классический неторопливый, будто бы у преподавателей и студентов вагон времени впереди, и они пока что строго следуют ему. Особенно впечатлило, например, описание коментариев в JS. Знаете, это 2 конструкции - //... и /*...*/ . На описание комментариев потрачено 2 страницы. На описание того, как они не появляются в тексте страницы, если в приводимом примере мы их напишем. Кто не верит, что на описание комментариев можно потратить 2 страницы, убедитесь по 4-й главе на сайте издательства. Знакомо по лекциям? "Подождите, мол, радуйтесь пока, что мы вас не нагружаем." И студенты радуются, что так здорово воспринимают идею комментариев. А потом пойдут действительно сложные вещи, котороые едва успеют записать, не то, чтобы понять. Вспомним о том, для кого написана книга по версии авторов. Для людей, уже знающих какой-либо язык программирования. При этом, не спорю, что хорошо, что имеются подробные скурпулёзные описания того, что такое имя и функция. Всегда можно вернуться и повторить. Но давайте вернёмся к реалиям. В мире существуют десятки языков программирования. С несколькими из них неплохо бы познакомиться и поработать. Перечислим: С, Паскаль (Делфи), PHP, Перл, Javascript, HTML, CSS, XML. Если по каждому будем так не спеша вразвалочку читать десятки страниц, то сколько времени нужно для всех из них? А ведь надо иметь представление о новых языках - Python, Ruby, Lua, о средах программирования, об ОС. Или мы студенты тех преподавателей, которые ведут увлекательный рассказ о базовых понятиях языка? На мой взгляд, представление языка, не первого изучаемого, не должно быть затяжным - не стоит он того внимания. Нужно давать конспективно-справочное изложение с понятной структурой и лёгкой навигацией, уделять место идеям пропорционально значимости. Гудман, Вутон, Дронов шли таким путём, чтобы в 1-2 тыс страниц уложить максимальный и строго структурированный объём знаний. Впрочем, у каждого своё менение, каким должно быть изложение языка. Как и у будущих читателей и почитателей рассматриваемого в нашем обзоре подхода. К сожалению, это менение о всей книге. Смотрите по числу страниц далее, с какой плотностью идёт изложение следующих понятий, не буду столь подробно комментировать. __Ч.III. Базовые и клиентские объекты JavaScript 179 8. Базовые объекты языка 181 9. Объект navigator 217 10. Объект Window 227 11. Объекты документа 253 12. Объекты формы 277 13. Фреймы 311 После ядра описаны объекты браузера, начиная с традиционных для раннего JS. Однако, уже в следующей главе пойдёт описание DOM - очень хорошо, что его выдвинули на 2-й план, в отличие от более старых учебиков, где он упомянут в конце. 14. Создание пользовательских объектов JavaScript 357 __Ч.IV. Объекты DOM 377 15. Основы объектной модели документов 379 16. Доступ к DOM-модели 387 17. Манипулирование DOM-моделью 411 __Ч.V. Написание сценариев документов 433 18. Обработка событий 435 19. Каскадные таблицы стилей 461 20. Слои (эта глава доступна в онлайне, 230 КБа) 477 21. Накаты и визуальные эффекты 503 22. Меню и панели инструментов 521 23. Навигация по сайту с помощью JavaScript 545 24. Формы и верификация данных 557 25. Персонализация и динамические страницы 583 Теперь практика. К книге прилагаются примеры, так что в этом плане она выдержана на уровне нормальных учебников. __Ч.VI. JavaScript на серверной стороне 607 26. Введение в среду сервера (эта глава доступна в онлайне, 120 КБа) 609 27. Создание Web-служб с помощью JScript .NET 619 28. Сервер сценариев Windows Script Host 639 Как видим, речь пошла о языке на сервере, при этом язык не JavaScript, а JScript - реализация языка компанией Майкрософт для нужд сервера. Цитата: "Учитывая инициативу Microsoft в выдвижении .NET на передний край современной технологии, JScript .NET является отличным языком для создания web-служб на основе .NET." Синтаксическая основа та же, но в языке появляется множество объектов, работающих в среде сервера. По сути дела, это другой язык, как становится другим язык нефтедобывающей отрасли или юриспруденции по сравнению с языком бытового общения. Хорошо, они дали представление о таком языке в 2 реализациях, потратили на это 40 страниц книги. Я бы написал об отдельном языке отдельную книгу, пусть хотя бы на 40 страниц, но занимать внимание читателей совсем другим языком считаю необоснованным. Достаточно было бы 2-4 страницы для представления. Однако, вспомнив, что на описание комментариев тратили 2 страницы вместо 2 абзацев, делим мысленно 40 на 6, и получаем около 7. Наверное, по моим "обезвоженным" меркам, это просто несколько затянутое представление, не на 4 страницы, а на 7. К примеру, в главе 26 70% текста посвящено понятию клиент-серверной технологии. Хорошо, полезно знать, правда, это надо знать до начала изучения Javascript, ведь он - ярко выраженный клиентский язык, а взялись, дойдя до серверного JS. Остальное - работа с сеансом (cookie, IP-адрес). И только в следующих главах - примеры работы серверных скриптов. __Ч.VII. Основные технологии программирования 651 29. Сравнение с образцом с помощью регулярных выражений 653 30. Обработка ошибок 683 31. Отладка 699 Неплохо, все части важны, все эти понятия надо усвоить. Посмотрим, что мы успели. Общие кроссбраузерные понятия рассмотрены практически все. Те, кто смог прочитать книгу до конца, могут запомнить, где что лежит и помнить особенности увлекательного (без иронии) сюжета. Но, повторюсь, моё мнение - не то время и не тот предмет, по которому романы следует читать. К тому же, имеется масса примеров, на которые надо отвлекаться при чтении. И сколь бы язык ни был увлекательным, не надо ориентироваться на прочтение всего руководства. Не прочитав, не узнаем структуры книги и справочных мест. Вывод - книга есть перепись хороших лекций для некоторого вуза (колледжа), авторы умеют подавать материал и рассказывать доходчиво. Кому нужно разжёвывание понятий и технологий, может высоко оценить книгу. И он будет не одинок - книгу высоко ценят в мире и переводят на иностранные языки! Но вот на руководство и справочник по языку, который нужен заявленным потребителям - веб-разработчикам и "профессиональным пользователям", книга в силу своей направленности не тянет. Получилось многовато текста, но я изложил свой взгляд на книги стиля неторопливого учебника. Каково ваше мнение, что должно быть в книге, которая описывает язык для веб-разработчика? (Добавлены ссылки из содержания на доступные в онлайне главы.) Это сообщение отредактировал(а) 12345c - 11.7.2006, 14:04 |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
На самом деле JS очень прост, большинство материала о синтаксисе (вся часть 2) доступны в инете в сотнях работ. Отдельно нужно упомянуть Справочник вебразработчика где всё необходимое доступно разьяснено.
Именно потому что JS очень прост в синтаксисе его можно выучить за пару дней, тем более если есть опыт в C подобных языках. Что бы научиться программировать как это принято в JS потребуеться время, проще всего программистам " декларативных" языков, знакомых с замыканиями, прототипами, динамичесими типами и т.д.. Программисты знакомые с прототипными языками (SmallTalk, Slate etc) вообще через пару часов "просекут фишку" ![]() Кстати те кто пришёл с Ruby и подобных языков сразу заметят топорность JS в плане работы со списками и словарями. JScript ещё имеет нормальный словарь (Dictionary обьект), но в стандартном JS этого нет. Вобще за отсустствие итераторов и геттеров/сеттеров нужно пинать ECMA. Конечно же мозилла плевала на ограниченость ECMA (млин сколько ждали try/catchn когда все их имели... ![]() JavaScript используеться не только в браузере, хотя обычному пользователю не знающему о Mac'ах, о линухе, никогда не пишущему разного рода апплеты для десктопа и плагины под софт и не подозревающему о разных железных примочках управляемых скриптами, JavaScript для веба вполне достаточно ![]() Если делаеться уклон на браузер, то просто необходимо разьяснить что есть viewport в браузере (окна, документ плавно вплетающийся в DOM и т.д.). Об этом можно почитать здесь: http://www.quirksmode.org/ Для разработчика крайне необходимо знать как расчитываються размеры и координаты в браузере, а это 80% CSS. Хорошо что упомянули DOM, т.к. только через DOM, а не innerHNTML/document.write (признаюсь удобно ![]() В итоге: похоже масса инфы должна быть доступна из инета, хотя бумажный и сточник проще читать, дело вкуса. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Sardar, про JS2 в книге неоднократно упоминается, что там будут классы и больше подобия стандартным языкам, но всё было написано году в 2002-2003-м, так что информации о нём мало, если не сказать, что нет.
Язык прост для тех, кто его знает и понимает задачи, в которых он применяется. Неклиентский JS я лично вообще отношу к другому языку, ![]() на это им категорически не хватит места, слишком растянутый стиль. Там даже альтернативы определений свойств объекта не указаны, стандартный this.property1=2abcde"; , и всё. На парение над пространством определений языка рассчитывать не приходится, только отпечаток матрицы знаний.
Добавлено @ 19:35 потом, на освящение нужны священнослужители, а это дополнительная стоимость -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Куплю, прочту, скажу
![]() |
|||
|
||||
12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Чтением таких учебников вообще никто не интересуется? Может, кто читал такого типа - скажите, всем ли нравится, когда вот так много, но толково разъясняют? Или учебник должен быть справочником? Сам давно с ними дела не имел, интересно узнать мнение начинающих или недавно начинавших изучение Javascript.
|
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Учебник не должен с серьёзным видом разьяснять синтаксис на страниц так 60. Учебник должен учить программировать, естественно вплетая опыт автора между строк. Не функции опредляються так, а функции используються "вот так". При этом задача не тривиальная (как в 99% учебников), а действительно интересное. Например показать как передаём функцию в функцию (callback), где это используеться, оборот действий в функции и т.д.
Например:
//осторожно, код писан в поле ответа форума без запуска, возможны синтаксические Как видно в примере не просто "вот это фукции ребята", а опыт, примеры и прочее. Естественно всё что после линии должно быть в стандартной библиотеке, но в ECMA нас не любят, яркий пример когда спецификация пишеться не сведущими людьми. Также реализация setField может насторожить громоздкостью, можно короче, попробуй ![]() ![]() P.S. шучу конечно ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
с подобным я встречался как раз у очень молодого автора, порядка 21 год, "Справочник по Java" или примерно такое название. Книга компактная, но совершенно не содержит ответов на "почему" и не годится как учебник. Но у этих она излишне растянута - опыта я там не видел, кроме преподавательского, косвенно видимого. Написана как роман, но как раз в этом минус, на мой взгляд - мало кому надо читать, запоминая страницу за страницей, пусть даже запоминать надо не много, а вот отыскать по некоторй системе ответ на вопрос - надо, но в таких романах искать приходится, перечитывая (и невольно запоминая). Тоже метод, но излишне трудозатратен. Когда отучившемуся надо, он и так всё запомнит, если применит в задаче. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
У меня нет ни одного бумажного справочника. Почему? Потому что я использую Java, Ruby, Python, JavaScript, C и PHP, они имеют справочники в сети, подробные и свежие, оффициальные и не только. Вообще это древний умираюший подход писать бумажный справочник. Есть единственная для меня причина покупки книги - опыт автора. Не тривиальные вещи понятные сразу самому, а приёмы, конкретные задачи, двумя словами: методология языка. Конечно всё относительно, может есть гуру что всё знает
![]() Operating Systems 5de edition - William Stallings - хороший пример каким должен быть учебник. Он обучает понимать почему и зачем были приняты конкретные решения в осях. Любая книжка о XSLT/XML - пример каким не должен быть учебник (всё время натыкаюсь на "смотрите дети, это value-of, он делает то-то, смотрим дальше это..."). Ценность такого "справочника" (много воды для справочника, мало инфы (опыт, приёмы у смысле) для учебника) стремиться к нулю из-за массы документации в сети. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Хорошо скзано про различие справочника и учебника. Справочник - "как", учебник - "почему". Но в данной книге я не видел рассуждений типа "почему". Да и если бы они были, сколько страниц надо для описания того, почему введены в язык комментарии :-) ? Там и по этому, и по сложным вопросам говорится ,"как" (...устроено клиент-серверное взаимодействие).
Хотя, есть, угадывается причина-следствие, развитие: "Когда в Сети начала появляться доступная информация, произошло смещение от традиционных клиент-серверных приложений к трехзвенным приложениям. В этих системах, как показано на рис. 26.2, клиентские машины общаются с web-сервером (или фермой из более чем одного сервера), который, в свою очередь, взаимодействует с базой данных. Кроме того, пользователи подключаются только на время, необходимое для получения данных, а затем отключаются. Это позволило обрабатывать больше пользователей и запросов без излишней нагрузки на базу данных." Гл.26, с.612 |
|||
|
||||
12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
А вот итоги обсуждения традиционного учебника по истечении месяца. На форуме достоинствами и недостатками учебников интересуются гораздо меньше, чем актуальными технологиями типа AJAX. Возможно, это объясняется тем, что сюда приходят люди или подготовленные, или наоборот, ищущие конкретного совета, но не планирующие медленно и обстоятельно читать учебник главу за главой. Думаю, что гораздо большим интересом пользовалась бы книга типа справочника. Например, планируется к выпуску вскоре 5-е издание Гудмана "JavaScript. Библия пользователя". Многие её знают в 4-й английской версии. Она, конечно, тоже с подходом учебника (типа Дронова). Но обширность и систематичность материала позволяет использовать её как справочную настольную книгу. (Возможно, кто-то из нас, посетителей форума, рассмотрит эту книгу с должным уровнем подробности, чтобы ознакомить с содержанием и сравнить с другими.)
|
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: нет Всего: 43 |
Зря вы так. Если кто-то не высказывается в теме - это еще не значит, что он не существует ![]() По поводу библии пользователя - четвертое издание очень интересное однако я стоклнулся с той же проблемой, что думаю и многие другие - в сверстанном PDF документе более двух тысяч старниц. Распечатать и сброшюровать очень проблематично, купить в магазине - думаю цена будет достаточно велика для многих (особенно только начинающих осваивать). Читать же такие книги на компьютере - последнее что остается. Я сам придерживаюсь мнения, что хороший учебник - это книга, которую всегда можно взять с полки и пролистав найти нужную страницу. Электронная документация хороша именно своими уникальными способностями - по вбитому ключевому слову получить список ссылок - т.е. мы опять приходим к концепции электронного справочника ![]() Мне кажется, что бумажные учебники будут существовать еще очень долго (уж в космос я бы точно с собой взял ![]() |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 10 Всего: 260 |
||||
|
||||
12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Нет, для меня она интереса не представляет, это же учебник. А мнение высказал по прочитанным главам. Пользуюсь компактным электронным справочником и статьями и документацией из и-нета. И я про то, что учащиеся ещё не заходят сюда, а отучившиеся уже не интересуются этим. ![]() |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |