1. Опишите одну вещь, которую вы изучаете сегодня на уроке. Сегодня занятия не будет, так как сегодня пасхальный понедельник.
  2. Как вы обеспечиваете доступность и удобство дизайна вашего веб-сайта или веб-приложения?

Обзор: Как достичь совершенно нового уровня удобства использования веб-сайта

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

Для начала мы должны обеспечить удобную навигацию по вашему сайту. Ссылки и меню должны легко находить и переходить по ним. Помните: мертвая ссылка означает разочарование. Также важно лично протестировать свой веб-сайт, так как вы увидите мелкие детали, которые, возможно, пропустили.

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

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

Цветовые схемы идут рука об руку с дизайном вашего сайта. Чем легче слова будут видны на вашем фоне, тем лучше, поскольку последнее, чего хотят клиенты, — это трудности с чтением описания. Одной из наиболее продуктивных стратегий веб-дизайна является использование проверенного шаблона, называемого F-дизайном, который легче читается и более привлекателен.

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

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

Последнее, что нужно упомянуть, — это попробовать свой веб-сайт самостоятельно. Помните, что каждый в какой-то момент своей жизни является потребителем; просто попытайтесь вспомнить, когда в последний раз вы покупали что-то в Интернете. Что вам понравилось или не понравилось? Было ли что-то, что вы хотели бы изменить? Ваш личный опыт поможет вам создать удобный веб-сайт как с точки зрения продавца, так и с точки зрения потребителя.

3.Какие функции HTML5 вам больше всего нравятся и как вы реализовали их в своих проектах по разработке внешнего интерфейса? Моя любимая функция HTML — это «анимация».

4. Как вы структурируете свои CSS и JavaScript, чтобы другим разработчикам было проще с ними работать?

Фронтенд-инженеры довольно часто работают с кодом, разработанным предыдущими разработчиками, или сотрудничают с командой. Итак, этот вопрос позволяет выяснить, умеют ли разработчики сделать веб-сайты или приложения понятными для своих коллег. Таким образом, лучшие ответы должны состоять из: ⚫ Примеров, демонстрирующих опыт организации кода ⚫ Понимания того, что происходит, когда код не прокомментирован должным образом ⚫ Желания создавать более простые вещи Пример: «Я организую свои таблицы стилей с разделами для каждого компонента сайта. Каждый раздел имеет комментарии по всему коду, чтобы другие разработчики могли его изменить».

5. Каков ваш процесс решения проблем с рендерингом в браузере? Считаете ли вы, что с одним браузером работать сложнее, чем с другими?

Яблочное сафари

Этот проприетарный браузер установлен на всех компьютерах и мобильных устройствах Apple, но мобильная и настольная версии ведут себя совершенно по-разному, сказал Майк Джонсон, фронтенд-разработчик Unearth Technologies. В некоторых случаях это просто потому, что iPhone и iPad используют сенсорное управление, а не мышь. Но мобильная версия Safari также оптимизирована для снижения нагрузки на меньшие процессоры iPhone и iPad.

В результате тестировщики должны относиться к мобильному и настольному Safari как к совершенно разным браузерам.

Safari делает упор на безопасность благодаря встроенным функциям, таким как защита от фишинга и переключение JavaScript. Однако одну меру безопасности часто ошибочно принимают за ошибку: Safari удаляет метаданные из файлов, загружаемых через браузер. Например, GPS-координаты будут удалены с фотографий, загруженных через Safari. Джонсон говорит, что это функция конфиденциальности, поэтому «исправления» нет, но эти отсутствующие координаты иногда можно заменить с помощью веб-API геолокации.

Еще одна распространенная проблема, возникающая в мобильной версии Safari, заключается в том, что всплывающие окна событий не работают с элементами, для которых стиль курсора не установлен с помощью CSS. Это означает, что в некоторых случаях ничего не произойдет, когда пользователь нажмет на элемент, который должен был быть интерактивным.

Чтобы исправить это, по словам Джонсона, любой элемент, который, как вы ожидаете, будет распространять событие мыши, должен либо иметь прослушиватель событий, объявленный непосредственно в элементе — в отличие от дочернего элемента — либо иметь установленное значение курсора CSS, «что довольно вопиющее, учитывая, что курсоры вообще не отображаются на мобильной iOS», — отмечает он.

Еще одна проблема в мобильном Safari связана с элементами, которые используют позицию CSS: элементы с фиксированными правилами в прокручиваемом контейнере часто содержат ошибки. Джонсон объяснил, что фиксированные элементы — это те, которые остаются «застрявшими» в позиции на экране независимо от положения прокрутки или масштабирования. «Они либо не остаются фиксированными, либо мигают или дрожат во время прокрутки, либо не фиксируются при фокусировке, особенно когда сфокусированный элемент является вводом».

По его словам, правило CSS -webkit-overflow-scrolling: touch является хорошей отправной точкой для исправления этого, но обычно эти проблемы требуют переработки как HTML, так и CSS, чтобы найти решение, соответствующее дизайну. .

Также важно помнить, что Safari — не единственный браузер, который пользователи могут запускать на своих iPhone и iPad (хотя многие разработчики относятся к нему именно так), и тестирование должно отражать это.

Google Chrome

По словам Эрана Кинсбрунера (Eran Kinsbruner), мобильного технического евангелиста Perfecto и автора электронной книги 10 фреймворков автоматизации тестирования для кросс-браузерного тестирования, Chrome лидирует на рынке инструментов для разработчиков. Для этого есть веская причина: популярный браузер Google включает в себя широкий спектр инструментов отладки и тестирования для аудита, захвата сети, производительности, отслеживания объектов и многого другого. По словам Джонсона из Unearth, двумя особенно малоиспользуемыми являются инструменты профилирования памяти и регулирования сети, которые позволяют вам проверять использование памяти вашим приложением и тестировать его в контролируемых условиях плохой сети.

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

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

«В частности, Chrome перепроверяет только основной ресурс во время перезагрузки страницы и больше не проверяет, истек ли срок действия кэшированных подресурсов», — сказал Джонсон. «Это может привести к таким проблемам, как значки, шрифты, изображения и другие статические файлы, которые не изменились после развертывания». Он рекомендовал тестировщикам использовать явные методы очистки кеша, такие как параметры URL-адреса временной метки или хешированные имена файлов, вместо того, чтобы полагаться на заголовки для управления кэшированием.

Тестировщики также могут столкнуться с проблемами ориентации изображения: встроенные изображения, которые отображаются правой стороной вверх в других браузерах, таких как Firefox и Safari, могут отображаться сбоку или вверх ногами в Chrome. Это обычно происходит не из-за ошибки, а из-за того, что ориентация EXIF ​​​​и фактическая ориентация фотографии не совпадают и связаны с тем, как Chrome интерпретирует неоднозначную информацию.

Джонсон рекомендовал обрабатывать фотографии на этапе обработки на стороне сервера, который гарантирует, что фактическая ориентация совпадает с ориентацией EXIF, и поворачивает фотографию, если это не так.

Mozilla Firefox

По словам Джонсона, Firefox стал популярным среди разработчиков пять-десять лет назад, потому что Firebug был лучшим инструментом отладки браузера, доступным в то время. Это по-прежнему надежный браузер с обширным каталогом расширений и настроек пользовательского интерфейса, но его инструменты разработчика и скорость рендеринга были превзойдены Chrome.

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

По словам Джонсона, Firefox хорошо справляется со спецификациями и избегает вопиющих ошибок. Чаще проблемы возникают из-за незначительных несоответствий макета, возникающих из-за различий в реализации CSS в разных браузерах. Он отмечает, что, поскольку Firefox построен на движке рендеринга Gecko, а не на webkit или движках, производных от webkit, используемых большинством других браузеров, вы можете обнаружить, что высота строк текста немного отличается, а входные данные формы имеют разные размеры, что иногда приводит к разрывам макета. .

Обычно значение CSS просто нужно немного подкорректировать, чтобы не вызвать разрыв. Если невозможно найти значение, которое работает для всех браузеров, вам может потребоваться реструктурировать HTML-код, чтобы найти другой способ реализации этой функции.

Но самой большой проблемой Firefox за последние несколько лет была производительность. Он имеет тенденцию работать медленно, обеспечивать задержку взаимодействия и вызывать скачок загрузки ЦП, особенно когда открыто несколько вкладок. Проблема настолько распространена, что Mozilla даже опубликовала руководство по обходному пути для пользователей.

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

Microsoft Internet Explorer/Edge

«Первое, что должен знать любой тестировщик об Internet Explorer, это то, что IE и Edge — совершенно разные браузеры, — сказал Джонсон. Он отметил, что Microsoft Edge автоматически обновляется и, таким образом, является четвертым из «современных» браузеров, в то время как окончательная версия Internet Explorer, IE11, является единственной версией этого браузера, все еще поддерживаемой Microsoft.

Тем не менее, IE на самом деле является самым простым браузером, на который разработчики могут ориентироваться в своем коде. Используя условные комментарии в HTML, разработчики могут запускать JavaScript и CSS, которые будут доступны только для определенных версий IE. Иногда это невозможно, но почти никогда не требуется для современных браузеров.

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

Джонсон предложил CSS-правило appearance: none в качестве отправной точки для настройки внешнего вида входных данных. «Иногда проще всего скрыть собственный ввод и использовать пользовательские элементы, чтобы делегировать взаимодействие с пользователем скрытому элементу», — сказал он. «В других случаях единственный способ соответствовать критериям дизайна — создать пользовательский ввод вручную».

Сингх добавил, что длительные сценарии по-разному обнаруживаются разными браузерами и могут выполняться исключительно медленно в IE. «Лучший способ избежать этих проблем — сократить циклы, рекурсию и манипуляции с DOM [объектной моделью документа]», — сказал он. «Всегда используйте CSS и ID для поиска локаторов, и это ускорит загрузку страницы».

Большая картина браузеров

Хотя новые тестировщики должны помнить об уникальных технических характеристиках и грешках каждого браузера, Джонсон предупредил, что спецификации DOM постоянно развиваются, и регулярно выпускаются новые версии браузеров.

«Это то, что поддерживает развитие веб-технологий, но также и то, что заставляет различных поставщиков браузеров использовать несколько разные подходы к тысячам проблем, которые им приходится решать», — сказал он. «Никогда не может быть канонического списка неизменных различий между браузерами или ошибок, которые вы гарантированно найдете в одном браузере, а не в другом».

Сайт, который отлично работает сегодня, может столкнуться с изнурительной ошибкой после того, как завтра будет выпущено обновление браузера. Это помогает узнать, какие общие категории взаимодействий или макетов обычно вызывают проблемы, но Джонсон объяснил:

Тестирование браузера — это не только процесс тестирования последних обновлений браузера, но и «тестирование вашего приложения.

6. В чем разница между == и === ?

Оператор '==' проверяет абстрактное равенство, т. е. выполняет необходимые преобразования типов перед выполнением сравнения на равенство.
Но оператор '===' проверяет строгое равенство, т. е. не выполнять преобразование типа, поэтому, если два значения не одного типа, при сравнении они вернут false.

7. Какова ценность foo? var foo = 10 + '20';

Ответ: '1020' из-за приведения типа числа к строке

8. Опишите, что такое терминальное приложение?

Определение эмулятора терминала Words

Сначала полезно понять, что означает телетайп. Первоначально, если вы хотели взаимодействовать с системой Unix или многими другими конструкциями мейнфреймов, вам нужно было работать с телетайпом или машиной TTY. Эти машины работают, отправляя тональные сигналы с частотной манипуляцией по линии передачи, чтобы представить текстовые данные, закодированные в простом двоичном коде. Эти системы в конечном итоге породили кодировку ASCII, которая используется для текстовых файлов.

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

У вас также есть концепция псевдотерминала PTY. Эта пара ведущего и ведомого позволяет части программного обеспечения, такой как SSH или терминал с графическим интерфейсом, предлагать интерфейс, подобный терминалу, через PTS пользователю, приходящему от ведущего устройства, называемого PTMX. Когда вы используете терминал с графическим интерфейсом, введите букву w и нажмите клавишу ввода. Вы увидите, что он утверждает, что ваша последняя команда поступила от pts, который является подчиненной парой для PTMX, который в первую очередь управляет шоу.

Теперь вы только что ввели эту команду в оболочку. Это интерпретатор командной строки, который запускается при входе в систему. Примеры включают bash, ash и tcsh. Он работает внутри редактора терминала, который представляет собой программу, которая эмулирует терминал и делает вид, что вы работаете на реальной консоли с клавиатурой и дисплеем, подключенными с использованием старомодных протоколов. Хотя вы могли бы сказать, что вы вполне можете иметь настоящую клавиатуру и монитор, вам нужно быть на той, которая отправляет фактические протоколы данных, которые ожидают эти старые фрагменты кода.

Дистрибутивы BSD и Linux дополнительно предоставляют так называемую виртуальную консоль или виртуальный терминал, когда вы удерживаете нажатыми Ctrl, Alt и F2 или другую распространенную комбинацию клавиш. Это эмуляция полноценной консоли с клавиатурой и дисплеем, использующая те же старые протоколы, что и традиционный терминал. Это, скорее всего, покажется довольно запутанным, потому что все эти термины как бы переплетаются, чтобы относиться к современным средам командной строки. Вы услышите упоминания о терминалах, эмуляторах терминалов, консолях, командных строках и оболочках в том смысле, что все они относятся к простому использованию текста для управления компьютерной системой.

Есть еще один класс эмуляторов терминала, которые позволяют использовать удаленные оболочки SSH. Они действуют так, как если бы они были физическим дисплеем и клавиатурой, обращающейся к удаленной системе. Это полезно для использования модема или, возможно, более распространенного сейчас соединения Ethernet для связи с другими компьютерами или досками объявлений, а также для доступа к сайтам telnet и выполнения ремонтных работ на маршрутизаторах и т.п. Если вы когда-либо использовали программу SSH или команду telnet в Linux, значит, вы использовали такое программное обеспечение. Вы также можете вспомнить программу HyperTerminal, которая была популярна в Windows 95.