О малоизвестном в JavaScript

 
0
 
JavaScript
ava
Се ля ви | 19.12.2004, 03:06
Прелюдия

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

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

Любому коденью предшествует хоть какое-то минимальное планирование, будь оно на бумаге, в голове, или в соответствующей программе проектирования с применением специальных нотаций моделирования. Часто мы даже не осознаём, что планируем в общих чертах способ решения задачи - перед тем, как её выполнять, т.е. планируем несознательно. И когда мы это делаем, мы производим декомпозицию задачи до тех пор, пока все под-задачи, на которые мы разбиваем исходную, не сойдутся с методами, которыми мы владеем, с помощью которых эти задачи можно было бы решить. Поэтому, именно в характере этой декомпозиции уже проявляется то, какими знаниями мы владеем - т.е. знающий человек нужен на этапе первоначального мозгового штурма проблемы, а не на этапе реализации, когда происходит какой-то конкретный "затык" в какой-то мелочи. В случае же этого сотрудника это было именно второе - я привлекался лишь когда не получалось что-то конкретное, в остальном же часто изобретались убогие тяп-ляповские велосипеды - в итоге скорость работы руководство опять не устраивала (правда, в отличае от меня, любящего подумать и выдать "конфетку", работа этого человека со стороны производила лучшее впечатление - ибо изобретание велосипедов в программировании - это активная долбёжка по клавишам, как говорят в армии - Имитация Бурной Деятельности- ИБД :notify ).

Ближе к делу

И вот я что подумал. Ведь наш форум устроен так же. Сюда приходят люди, которые не могут справиться с чем-то конкретным, т.е. у них в чём-то затык - как у этого сотрудника. Они уже всё возможно не оптимально спланировали и реализуют - и на этапе реализации возникла проблема. А как бы мы могли помогать людям выбирать изначально более верные подходы для решения их задач? Ещё на фазе планирования и, может быть, даже на фазе простого понимания задачи с технической стороны?

Ведь если программист не знает о каких-то прогрессиным методах, он их и не заложит в проект и потом для него уже не найдётся места - всё будет спланировано по-другому...

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

Задача

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

В идеале это должен быть некий FAQ, который по сути будет представлять из себя нечто вроде типовых шаблонов проектирования. Но это уже дело будущего...

Другим "спецам" я предлагаю дописывать к моим постам дополнения, которые они считают нужными и самим тоже писать такие темы. Модераторам же предлагаю создать для этого отдельный раздел форума в ветке JavaScript. Впринципе многое из этого можно будет запихивать в некий advanced-FAQ когда он станет более-менее полным. В JavaScript особенно в Explorer`овской реализации столько мелких штучек и замарочек, которые в некоторых специфических стуациях могли бы сократить работу людей в разы, если бы они о них знали - что на всех нас на ближайшее время их хватит smile

Пожелание

Единственная просьба - если нашли какую-то статью, хорошо рассказывающую о чём-то интересном - потрудитесь сократить её до некоторого необходимого рационального зерна, что бы не захламлять форум огромными трактатами, которые никто не будет читать. Лучше описать всё кратко и дать ссылку для пытливых на ваши источники информации. Этим мы обеспецим большую вероятность, что всё это будут читать многие посетители.


Вот такая вот инициатива ;)

Ну а в эту тему можно писать заявки на то, о чём вы бы хотели почитать в первую очередь. Завтричко закончу очерк о программной обработке ошибок в JavaScript и выложу. С этого и начнём ;)
Kommentare (6)
ava
Alx | 19.12.2004, 12:12 #
я хотел бы про пользовательские классы. остальное я, вроде, с горем пополам пережевал smile
ava
Се ля ви | 05.01.2005, 01:57 #
Вот, составил приблизительный список вещей, которыми мало кто по моим меркам владеет. О каждой из этих фишек нужно будет мне или другим постоянным участникам форума, кто сможет, написать.

Вот они:
1) директивы условной компиляции JScript
2) ООП в JavaScript
3) универсальные кроссбраузерные методы DOM (анализ модели DOM на предмет совместимости со всеми популярными браузерами и выведение общих методик и подходов через средства, лежащие на пересечении модели W3C DOM и IE DOM).
4) объекты TextRange и Selection для работы с текстом на странице
5) работа с буфером обмена
6) использование стандартного браузерного поиска из JavaScript
7) межбраузерная работа с несколькимми окнами и модальные окна в IE
8) подкачка XML-контента без перезагрузки страницы
9) использование атрибутов и собственных тегов
10) безбраузерные приложения HTA (IE)
11) Использование технологии HTC (IE)
12) использоваание фильтров и работа с форматом PNG в IE
13) основы XUL
14) внешние контекстные JavaScript-сценарии и их использование для повышения качества работы в Internet
15) основы Window Host Script
16) взаимодействие JavaScrript с MS-Office`ом
17) клиентский XSLT в JavaScript
später ergänzt:
Цитата (ALEXANDRO @ 19.12.2004, 12:12)
я хотел бы про пользовательские классы. остальное я, вроде, с горем пополам пережевал smile

А всё остальное ты знаешь, да? ;-)
ava
Sardar | 05.01.2005, 02:11 #
Цитата
1) директивы условной компиляции JScript

Не нужны, я против насаждения "ошибочных" идей в этом форуме smile
Цитата
5) работа с буфером обмена

Детально обговорили с рабочим кодом.
Цитата
6) использование стандартного браузерного поиска из JavaScript

Есть идеи? Только не MS only, там много интересных фич, но увы только для внутренних интранет сетей на бродилке ИЕ. В общем мире сие не всегда поддерживается, на то есть свои причины ;-)
Цитата
4) объекты TextRange и Selection для работы с текстом на странице

Всё начинаю, но никак времени закончить нет :(
Цитата
8) подкачка XML-контента без перезагрузки страницы

Обсуждалось пару раз, Cheba также постил примеры. Тема интересная, нужно раскрыть начиная с "зачем это нужно".
Цитата
9) использование атрибутов и собственных тегов

А это нормальное явление, которое давно используем smile Оперу в расчёт не брать, её приходится патчить своим кодом.
Цитата
12) использоваание фильтров и работа с форматом PNG в IE

Я не совсем в курсе, PNG - это просто граф. формат. Какие еще возможности браузер даёт? Ну кроме эффектов с градиентной прозрачностью smile , через год векторная графика окрепнет(уже сейчас не слаба) и будет этого добра за даром. Дай ключ. слова, поищу и что нибудь наваяю, самому интересно smile
Цитата
14) внешние контекстные JavaScript-сценарии и их использование для повышения качества работы в Internet

В каждом браузере и в каждой оболочке по своему... в Мозилле просто, а как в обыкновенном ИЕ?


Се ля ви спасибо за список, теперь видно куда копать и о чём рассказывать smile Хотя это не в форум, а целые статьи. Подобного материала в сети много...
ava
Се ля ви | 05.01.2005, 02:32 #
Цитата (Sardar @ 5.1.2005, 02:11)
Цитата (Се ля ви @ 5.1.2005, 00:57)

14) внешние контекстные JavaScript-сценарии и их использование для повышения качества работы в Internet



В каждом браузере и в каждой оболочке по своему... в Мозилле просто, а как в обыкновенном ИЕ?

По-моему ты подумал что-то другое. Здесь я имел в виду, что в строке браузера можно написть скрипт на JavaScript`е и он выполнится в контерсте страницы. Например можно написать "alert(document.body.innerHTML);" - и выведется всё теговое содержимое страницы, на которой ты будешь. После этого можно это забить в закладку или ссылку - и это будет типовым скриптом, доступным в любой момент.

Нужно просто собрать по сети такие скриптики, (я сам в своё время увлекался написанием и коллекционировал), и запостить в тему.

Ты это имел ввиду? Просто это-то довольно универсально, токаа интерфейс вызоваа ссылок и избранного различен немного...
später ergänzt:
Цитата (Sardar @ 5.1.2005, 02:11)
Цитата (Се ля ви @ 5.1.2005, 00:57)

4) объекты TextRange и Selection для работы с текстом на странице



Всё начинаю, но никак времени закончить нет smile

Я вот тоже тока через неделю после обещанного срока с трудом закончил про исключения... Да, не легко это, не легко... Особенно когда новый год и работа... :(
ava
Се ля ви | 10.01.2005, 18:20 #
Sardar
Цитата (Sardar @ 5.1.2005, 02:11)
Цитата (Се ля ви @ 5.1.2005, 00:57)

12) использоваание фильтров и работа с форматом PNG в IE



Я не совсем в курсе, PNG - это просто граф. формат. Какие еще возможности браузер даёт? Ну кроме эффектов с градиентной прозрачностью smile , через год векторная графика окрепнет(уже сейчас не слаба) и будет этого добра за даром. Дай ключ. слова, поищу и что нибудь наваяю, самому интересно smile

Сорри, не заметил сразу...

Начнём с того, что если просто дать IE тег типа
<img src="pic.png" />
, он его покажет без прозрачности, закрасив прозрачные места по-моему серым фоном (начсёт IE6 не помню, но в IE 5 и 5.5 точно) даже если прозрачность в картинке pic.png и задана - только специальными хитрыми расширениями стилей можно добиться того, что бы прозрачность IE выдал нормально как надо. Зато у этих расширений есть управляемые параметры, которыми можно интересно поиграться...

В Mozill`е тоже есть фишки для работы с прозрачностью, читал о них недавно... Всё это нужно подсобрать в одну концепцию и описать вместе - должно получиться интересно! :cool

smile
Насчёт векторов позволю себе высказать некоторый скепсис - IMHO ждать ещё очень долго - слишком несовместимые форматы Illustrator`а, Corel`а и FreeHand`а с Flash`ом (было дело - в своё время страшно намучался изображения в них перегонять из одного формата в другой), а SVG слишком много будет весить для сложных рисунков - это ведь XML...

К тому же алгоритмы перегона пока что ИМХО уж очень слабые (если не сказать вообще никакущие) - в том же Flash`е проще картинку векторами заново нарисовать, пользуясь растром как прозрачной подложкой для ориентации, чем параметрами векторизатора добиться, что бы он её правильно перевёл в векторную... Хотя может быть есть и более совершенные алгоритмы, не сталкивался просто...

P.S.
Цитата (Sardar @ 5.1.2005, 02:11)
теперь видно куда копать и о чём рассказывать smile Хотя это не в форум, а целые статьи. Подобного материала в сети много...

Да, в концепции форума этим идеям уже тесновато... IMHO, нужно задумываться о том, что бы развивать Vingrad уже до категории портала программистов в обозримом будущем, по большому счёту, он уже вполне созрел для этого...
ava
Sardar | 10.01.2005, 21:36 #
Цитата
В Mozill`е тоже есть фишки для работы с прозрачностью, читал о них недавно... Всё это нужно подсобрать в одну концепцию и описать вместе - должно получиться интересно! smile

Да есть фильтры, Alpha для ИЕ и moz-opacity для Мозиллы, только зачем это нужно? Если PNG так глючит, то я его пока использовать не буду...


Цитата
Насчёт векторов позволю себе высказать некоторый скепсис - IMHO ждать ещё очень долго - слишком несовместимые форматы Illustrator`а, Corel`а и FreeHand`а с Flash`ом...

Ты не совсем понял smile Да я говорил о SVG и поверь мне это прогрессирующее будущее. Ты можешь создавать time-based анимацию(язык SMIL2 от W3C), рисовать всё что хочешь оставаясь при этом в модели XML DOM. Ничего подгружать не нужно, ты сам сможешь создавать графику на клиенте :)

Также придёт XAML обещающий быть покруче Мозилловского XUL. Это конкретная платформа для создания почти полноценных приложений на базе скриптовых языков и разметки. То что есть сейчас я пока особо в серьёз не воспринимаю, это связка для обьектов ActiveX, которые редко бесплатны ;-)
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden