• Можно ли верстать таблицы с помощью тега table?

    @farza
    Web - Developer
    Если речь идет о верстке веб страниц при помощи таблиц - подход утсаревший. Если речьидет о использовании таблиц по прямому назначению - все ок

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

    В 1998 году появляется спецификация Cascading Style Sheets Level 2 или в сокращении говоря CSS2, а потом и CSS2.1, что позволило выносить код оформления блоков в отдельные файлы и использовать на всех страницах сайта. Развитие этой технологии и поддержка со стороны браузеров привела к использованию блочной вёрстки, вместо таблиц.

    Табличный подход к верстке был актуальным до появления технологии CSS и имеет статус устаревший” с 2011 года. Как только консорциум всемирной паутины поддержал стандарт CSS, на смену табличного подхода пришел блочный

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

    Таблицы применять нужно только по их прямому назначению

    Подробнее в видео формате:
    https://www.youtube.com/watch?v=VGnhXpVkbWg
    https://www.youtube.com/watch?v=Sxb2o9nVB1Q

    Или курс целиком:
    geekspace.info/course/2/description
    Ответ написан
    Комментировать
  • Чем отличаются функциональные тесты от приемочных?

    @farza
    Web - Developer
    Тезисно - этап приемочного тестирования - это формальный процесс тестирования, который проверяет соответствие системы требованиям и проводится с целью определения удовлетворяет ли система приемочным критериям и вынесения решения заказчиком или другим уполномоченным лицом принимается приложение или нет.

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

    В мире веб разработки также существует этап приемочного тестирования. Например вам заказали простой интернет магазин. Отдел тестирования после успешного завершения проекта пишет приемочные тесты на функциональные возможности сайта. Они могут выглядеть следующим образом:

    • Демонстрация регистрации на портале
    • Демонстрация возможности положить товар в корзину
    • Демонстрация возможности получения скидки за каждый третий оформленный заказ и многое другое


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

    Более подробно в рамках PHP:
    Статья: geekspace.info/notes/17
    Видео: geekspace.info/lecture/view/12
    Ответ написан
    Комментировать
  • Как работает группировка Мюнха?

    @farza
    Web - Developer
    XSL - элемент key

    Простое определение
    Ключ может содержать элемент или множество элементов. Получить элемент или множество элементов из ключа можно при помощи функции key() по переданному в качестве аргумента значению.

    Определение из учебника
    Элемент объявляет именованный ключ, т. е. пару «имя-значение», связанную с указанным элементом в XML-документе. Этот ключ используется с фукнцией key() в выражениях XPath для осуществления эффективного доступа к связанным элементам в сложном XML-документе.


    Оригинал
    The element is a top-level element which declares a named key that can be used in the style sheet with the key() function.


    Ссылки на документацию
    https://www.w3schools.com/xml/ref_xsl_el_key.asp

    В примере выше создается ключ с именем group, который содержит множество item (match="item") и этот элемент "item" или его множество можно получить по значению атрибута group (use="@group").

    В примере выше в ключе «group» содержится множество «item», доступ к которым можно получить по значению атрибута «group» через функцию «key()».

    generate-id

    Простое определение
    Возвращает строку, которая уникально идентифицирует первый узел документа. Если в функцию передать множество, то будет возращен уникальный id первого элемента из этого множества

    Определение из учебника
    Функция generate-id возвращает уникальный строковый идентификатор первого в порядке просмотра документа узла, передаваемого ей в виде аргумента. Если аргумент опущен, функция возвращает уникальный идентификатор контекстного узла. Если аргументом является пустое множество, функция должна возвращать пустую строку.

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


    Оригинал
    The generate-id() function returns a string value that uniquely identifies a specified node.

    If the node-set specified is empty, an empty string is returned. If you omit the node-set parameter, it defaults to the current node.


    Ссылки на документацию
    https://xsltdev.ru/xpath/generate-id/
    https://www.w3schools.com/xml/func_generateid.asp

    Квадратные скобки

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

    Этой строчкой
    <xsl:apply-templates select="item[generate-id(.) = generate-id(key('group',@group))]" />

    мы говорим следующее:
    Примени все шаблоны к тем элементам item, которые соответствуют критерии (фильтру), который указан в квадратных скобках

    В этой части
    key('group',@group)

    мы говорим следующее:
    Дайте мне множество элементов «item» из ключа «group», значение атрибута «group» которых равняется значению атрибута «group» у «item» находящегося в XML документе

    Идем далее. Этой строчкой
    generate-id(key('group',@group)
    Мы говорим следующее
    Вернув множество item с одинаковым значением атрибута «group», дай мне id первого элемента из множества

    Этой строчкой
    item[generate-id(.) = generate-id(key('group',@group))]

    Мы говорим следующее
    Примени все шаблоны для элементов «Item», generate-id которых равняется уникальному generate-id элемента.

    В итоге получается, что шаблоны применятся только для элементов «item» с уникальным атрибутом «group»

    Подробнее с примерами:
    geekspace.info/notes/1
    Ответ написан
    Комментировать