Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемwww.control-freak.ru
1 Работа с legacy-xsl-кодом Евгения Фирсова
2 ПЕРВЫЙ ЭТАП - ПОНИМАНИЕ
3 Написание документации Не скатываемся в простое перечисление вызовов, шаблонов, переменных. Описываем логику, а не алгоритм (отвечаем на вопрос «зачем», а не «как»). Пишем не для себя, а для «того парня», который ничего о внутреннем устройстве проекта не знает.
4 Написание документации Комментировать код – рано: –собираем документацию воедино –не создаём лишние ревизии
5 XSL Document- oriented text XMLSchema Document- oriented text DocBook Пусть код описывает себя сам. Написание документации
6 XSLDoc от Jeni Tennison (
7 Статистическое исследование кода Коммерческие продукты с функциональностью рефакторинга: –Microsoft Visual Studio –IntelliJ IDEA –Eclipse –oXigen рефакторинг с использованием шаблонов автоматическое создание шаблонов переименование шаблонов и переменных
8 Статистическое исследование кода Скриптовые языки, поддерживающие regexp: open(InFile, "get_regexp.xsl") || die; while ($line = ) { if ($line =~ / /) { $match = $1; $mode = $3 ne "" ? "with mode $3" : ""; print "we apply template $match $mode\n"; } close (InFile);
9 Статистическое исследование кода Скриптовые языки, поддерживающие DOM: xfile.setProperty "SelectionNamespaces", "xmlns:xsl=' set templates = xfile.selectNodes("//xsl:template") for each template in templates line = "" if template.getAttribute("match") > "" then line = "we apply template " & template.getAttribute("match") end if if template.getAttribute("mode") > "" then line = line & " with mode " & template.getAttribute("mode") end if WScript.Echo line next "" then line = "we apply template " & template.getAttribute("match") end if if template.getAttribute("mode") > "" then line = line & " with mode " & template.getAttribute("mode") end if WScript.Echo line next">
10 Статистическое исследование кода XSL. XML/XSLXSL Statistic text
11 Взлом «чёрных ящиков» Коммерческие отладчики. XMLSpy Debugger слежение за контекстом вычисление XPATH- выражений пошаговое выполнение XPATH-точки слежения и останова список вызванных шаблонов, включая встроенные
12 Взлом «чёрных ящиков» xsltproc --verbose xsltCompilePattern : parsing 'page' xsltCompilePattern : parsed page, default priority added pattern : 'page' priority Found AVT href: {url} xsltCompilePattern : parsing 'test' xsltCompilePattern : parsed test, default priority added pattern : 'test' priority parsed 3 templates Resolving attribute sets references Registered 0 modules Creating sub-dictionary from stylesheet for transformation reusing transformation dict for output Registering global variables Registering global variables from xsltproc_test.xsl xsltProcessOneNode: applying template '/' for / xsltApplyOneTemplate: copy node html xsltApplyTemplates: select page xsltApplyTemplates: list of 1 nodes xsltProcessOneNode: applying template 'page' for page xsltApplyOneTemplate: copy node head xsltApplyOneTemplate: copy node title
13 Взлом «чёрных ящиков» Текстовые маркеры. … *** … … …
14 Взлом «чёрных ящиков» Восстановление исходного XML-документа по вызываемым шаблонам.
15 Восстановление исходного XML-документа по вызываемым шаблонам. Взлом «чёрных ящиков»
16 Плагины к FireFox: –Web Developer –Live HTTP headers –FireBug
17 ВТОРОЙ ЭТАП – ИЗМЕНЕНИЕ/REFACTORING
18 Не жадничать… С каких частей проекта стоит начинать refactoring? с наиболее значимых в бизнес-плане частей; с наиболее сложных по реализации частей; с наиболее уязвимых частей.
19 Не жадничать… xsltproc --profile numbermatchnamemodeCallsTot 100us Avg 0/188 1page177 2test362 3 nolink341 4title
20 Не жадничать… XMLSpy Profiler. количество вызовов время работы с и без учёта времени выполнения вложенных инструкций время выполнения XPATH-выражений
21 Не играть с тенью… Пусть лучше работает плохо, чем не работает никак. Пусть медленно, но с меньшим количеством ошибок. –Не называть точных сроков.
22 Разделять и властвовать… XForms – изменение функциональности.
23 Разделять и властвовать… DocBook – расширение функциональности.
24 Отделять ресурсы от кода… css; javascript, в той части, которая не зависит от xsl-кода; тексты, относящиеся к интерфейсу: –многоязычность; –удалённое редактирование; –«быстрые» изменения.
25 Оптимизировать xsl-код… Зачем? удобно быстро продолжение в следующей серии…
26 Евгения Фирсова icq:
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.