Ни один фреймворк не работает
Обновлено: 21.11.2024
Эта информация действительна для проектов, созданных с помощью собственного компоновщика IntelliJ IDEA. Если вы используете инструмент сборки, такой как Maven или Gradle, вносите все изменения с помощью файла сборки.
Для разработки приложений для конкретных платформ в IntelliJ IDEA предусмотрены аспекты. Фасеты содержат библиотеки, зависимости и технологии, а также предоставляют дополнительные элементы пользовательского интерфейса для настройки параметров конкретной платформы.
Обратите внимание, что не все аспекты доступны по умолчанию. Чтобы иметь возможность использовать некоторые из них, вам нужно сначала установить плагин для нужного фреймворка. Дополнительную информацию о существующих подключаемых модулях см. в репозитории подключаемых модулей JetBrains.
IntelliJ IDEA может идентифицировать типичный для определенного фреймворка файл или каталог и добавить для вас необходимый аспект. Как только фасет будет обнаружен и добавлен, IntelliJ IDEA сообщит вам об отсутствующей конфигурации и предложит необходимые действия.
Если фасет не определяется автоматически, вы можете добавить его вручную. В модуль можно добавить более одного аспекта.
Некоторые платформы доступны только в IntelliJ IDEA Ultimate. Обратитесь к таблице сравнения, чтобы убедиться, что ваша версия IntelliJ IDEA поддерживает необходимые платформы.
Добавить фасет в модуль вручную
В окне инструмента "Проект" Alt+1 щелкните правой кнопкой мыши модуль, к которому вы хотите добавить фасет, и выберите "Добавить поддержку платформы".
Выберите нужный фреймворк из списка.
В зависимости от вашего выбора вам может быть предложено настроить дополнительные параметры (например, настроить библиотеку).
Примените изменения и закройте диалоговое окно.
Отключить автоматическое определение фреймворка
По умолчанию автоматическое определение включено для всех поддерживаемых платформ. Вы можете полностью отключить автоматическое определение фреймворка или исключить отдельные фреймворки из автоматического определения.
В главном меню выберите Файл | Структура проекта ( Ctrl+Alt+Shift+S ) и выберите Фасеты .
Выберите «Обнаружение» и нажмите Alt+Insert .
В списке Framework to Exclude выберите нужный вариант.
Вы можете отключить автоопределение определенного фреймворка только в одном каталоге или во всем проекте. Список также позволяет отключить автоматическое определение всех фреймворков в определенном каталоге.
Если вы хотите отключить автоматическое определение всех фреймворков во всем проекте, снимите флажок Включить определение фреймворка.
Чтобы повторно включить автоматическое обнаружение везде, установите флажок Включить обнаружение платформы и удалите все записи из списка Исключить из обнаружения.
Современные интерфейсные фреймворки постоянно требуют, чтобы вы загружали всю среду разработки с зависимостями и компилировали свой код, прежде чем даже пытаться просмотреть его в своем браузере. Это что-то хорошее? Проблема в том, что мы создаем более сложные сайты, или фреймворки сами по себе сложны и создают ненужный уровень сложности.
У Хуана более 10 лет опыта работы с пользовательским интерфейсом на фрилансе. Его работа основана на перфекционизме и обеспечении наилучшего взаимодействия с пользователем.
Прочитайте испанскую версию этой статьи, переведенную Йесикой Дандерфер
Современные интерфейсные фреймворки требуют, чтобы вы загрузили среду разработки с зависимостями и скомпилировали свой код, прежде чем пытаться просмотреть его в браузере. Это хорошо? Проблема заключается в том, что мы создаем более сложные сайты, или в том, что фреймворки сами по себе сложны, создавая ненужный уровень сложности?
Сегодняшняя веб-разработка сильно изменилась с 90-х годов. мы можем создавать целые возможности, которые очень близки к тому, что может делать любое нативное приложение, и процесс разработки также изменился. Прошли те времена, когда для веб-разработчика переднего плана требовалось открыть Блокнот, ввести несколько строк кода, проверить его в браузере и загрузить в папку FTP.
Внешняя веб-разработка прошлого
Начнем с очевидного: мир уже не тот, что был 10 лет назад. (Я знаю, это шокирует.) Единственное, что остается неизменным, — это перемены. Раньше у нас было очень мало браузеров, но было много проблем с совместимостью. Сегодня вы не часто видите такие вещи, как «лучше всего смотреть в Chrome 43.4.1», но тогда это было довольно распространенным явлением. Теперь у нас больше браузеров, но меньше проблем с совместимостью. Почему? Из-за jQuery. jQuery удовлетворил потребность в стандартной общей библиотеке, которая позволяла вам писать код JavaScript, который манипулирует DOM, не беспокоясь о том, как он будет работать в каждом браузере и в каждой версии каждого браузера — настоящий кошмар в 2000-х. .
Современные браузеры могут манипулировать DOM как стандарт, поэтому потребность в такой библиотеке значительно уменьшилась в последние годы. jQuery больше не необходим, но мы все еще можем найти ряд чрезвычайно полезных подключаемых модулей, зависящих от него.Другими словами, веб-фреймворки могут и не понадобиться, но они достаточно полезны, чтобы быть популярными и широко использоваться. Это общая черта большинства популярных веб-фреймворков, от React, Angular, Vue и Ember до моделей стилей и форматирования, таких как Bootstrap.
Почему люди используют фреймворки
В веб-разработке, как и в жизни, всегда удобно иметь быстрое решение. Вы когда-нибудь делали роутер на JavaScript? Зачем проходить болезненный процесс обучения, если можно решить проблему с помощью npm-install front-end framework? Время — это роскошь, когда клиент хочет, чтобы все было сделано вчера, или вы наследуете код от другого разработчика, разработанный для определенной платформы, или если вы интегрируетесь с командой, уже использующей данную платформу. Посмотрим правде в глаза — фреймворки существуют не просто так. Если бы они не приносили пользы, ими бы никто не пользовался.
Каковы же некоторые преимущества и уникальные свойства использования среды веб-разработки?
Время — деньги. Когда вы разрабатываете проект, а клиенту все равно, какой фреймворк вы используете — более того, он, вероятно, даже не знает, что вы используете, — его волнует только получение результатов, и чем быстрее, тем лучше. Установленные фреймворки позволяют с самого начала создать мгновенное ощущение прогресса, которого клиент жаждет с первого дня. Кроме того, чем быстрее вы разрабатываете, тем больше денег вы зарабатываете, поскольку время, высвобожденное фреймворком, можно перенаправить на выполнение большего объема работ. проекты.
Все дело в сообществе. При выборе фреймворка это очень важный момент — кто вам поможет, если вы застряли в какой-то задаче? Мы оба знаем, что когда-нибудь это произойдет. Вы достигнете момента, когда вам нужно будет сделать что-то, для чего фреймворк не предназначен, или к чему фреймворк никогда не был разработан, чтобы предоставить вам доступ, поэтому наличие сообщества, поддерживающего вас, имеет важное значение. Разработка, особенно фриланс, может быть сложной, так как вы погружаетесь в виртуальный мир, и если вы единственный веб-разработчик в команде, это означает, что вы единственный, у кого есть опыт и знания, чтобы найти решение. Но если интерфейсная платформа, которую вы используете, имеет надежную поддержку, на другом конце света обязательно найдется кто-то, кто столкнулся с той же проблемой и может помочь вам.
Стандарты прекрасны. Вы когда-нибудь замечали, что, когда вы смотрите на старый фрагмент собственного кода, вы можете довольно легко перемещаться по нему? Или, по крайней мере, проще, чем кусок кода, написанный кем-то другим? Вы думаете определенным образом, и у вас есть свой собственный способ называть вещи и организовывать код. Это стандарт. Мы все следуем им, даже если они предназначены только для нас самих. Мы склонны есть на завтрак одно и то же, просыпаться в определенное время и каждый день класть ключи в одно и то же место. И действительно, если бы мы каждый день меняли свой распорядок, жизнь была бы намного сложнее только из-за накладных расходов на выяснение того, как что-то делать. Вы когда-нибудь теряли ключи, потому что клали их не в то место, где обычно? Стандарты упрощают жизнь. При работе в команде или сообществе разработчиков они становятся абсолютно незаменимыми.
Фреймворки обеспечивают стандарт с момента их установки, помогая вам мыслить и кодировать определенным образом. Вам не нужно тратить время на создание стандарта с вашей командой; вы можете просто следить за тем, как все делается во фреймворке. Это облегчает совместную работу. Легче искать функцию, когда вы знаете, что функция должна быть в определенном файле, потому что она построена для добавления маршрута в SPA, а в вашем фреймворке все маршруты помещаются в файл с таким именем. Люди с разными уровнями навыков могут работать вместе, если у вас есть такой уровень стандартизации, потому что, хотя продвинутые программисты знают, почему все делается именно так, даже начинающие разработчики могут следовать самому стандарту.
Когда фреймворки терпят неудачу
Несколько лет назад, говоря что-то вроде "Я не использую фреймворки — я не вижу в них никакой реальной пользы", к вашей двери приходили бы люди с факелами и вилами. Но сегодня все больше и больше людей задаются вопросом: «Зачем мне вообще использовать фреймворк? Они мне действительно нужны? Без них настолько сложно программировать?»
Я, безусловно, один из них — я никогда не был фанатом какой-либо конкретной платформы и всю свою карьеру программировал без них. Если у меня есть выбор в этом вопросе, я всегда выбираю «Нет, спасибо». Я много лет занимался разработкой на JavaScript, а до этого — на ActionScript. Я программировал на Flash, когда большинство людей уже считали его мертвым. (Знаю, знаю… но я делал много анимаций, а анимация в простом HTML сложна.) Итак, если вы один из многих, кто никогда не задумывался о программировании без фреймворков, позвольте мне показать вам некоторые причины, по которым у вас могут возникнуть проблемы.
«Один размер подходит всем» — это ложь.Могли бы вы представить себе написание одной программы, которая может делать все, чего вы достигли в своей карьере? Это одна из основных проблем фреймворков веб-разработки. У вашего проекта очень специфические потребности, которые мы стараемся решить, добавляя библиотеки, плагины или надстройки для расширения возможностей фреймворка. Ни один фреймворк не предлагает 100 % того, что вам нужно, и ни один фреймворк не состоит на 100 % из того, что вам может пригодиться.
Слишком много кода, который вы не используете, может привести к задержке загрузки вашего сайта, что становится все более важным с каждым дополнительным пользователем. Другая проблема заключается в том, что мышление «один размер подходит всем» приводит к неэффективному коду. Возьмем, к примеру, $(‘sku-product’).html(’SKU 909090’); , представляющий собой код jQuery, который, как мы все знаем, в конце концов будет переведен во что-то вроде document.getElementById('sku-product').innerHTML = 'SKU 909090'; .
Такая разница в одной строке может показаться неважной, но изменение содержимого определенного элемента страницы как раз и является достоинством React. Теперь React выполняет процесс создания представления DOM и анализа различий в том, что вы пытаетесь отобразить. Не проще ли с самого начала настроить таргетинг на контент, который вы хотите изменить?
В зарослях сорняков, по которым вы идете, растут шипы. Вы когда-нибудь были в ситуации, когда вы используете свой фреймворк и пытаетесь добавить к нему библиотеку, просто чтобы понять, что нужная вам версия библиотеки не работает с версией фреймворка, которую вы используете? Иногда требуется больше усилий, чтобы заставить два фрагмента кода работать вместе, чем просто написать код самостоятельно. А поскольку используемые вами фреймворки и библиотеки часто построены на других фреймворках и библиотеках, которые могут иметь скрытые несовместимости, которые вы даже не можете предвидеть, проблема может экспоненциально усложняться, достигая точки, когда они невозможно управлять, если вы хотите, чтобы проект продолжал расти.
Не отставать от Джонсов — это важно. Вы когда-нибудь работали над проектом на AngularJS только для того, чтобы узнать, что вам нужно что-то, чего не было до выхода Angular 4? Вы вообще знали, что вышел Angular 5? Это еще одна огромная проблема; даже если вы придерживаетесь одного внешнего фреймворка, когда выходит новый крупный релиз, все может измениться так сильно, что код, над созданием которого вы так усердно работали, даже не будет работать в новой версии. Это может привести к чему угодно: от раздражающих небольших изменений, которые необходимо внести во множество файлов, до полного переписывания вашего кода.
Следить за последними сборками фреймворка сложно, но в то же время другие фреймворки страдают, когда обновления полностью прекращаются и они не успевают за остальными технологиями. В 2010 году впервые были выпущены и AngularJS, и Backbone. Сегодня Angular находится на своей пятой основной версии, а Backbone совершенно не в центре внимания. Семь лет кажутся долгим сроком. Если вы создаете веб-сайты, они, вероятно, полностью изменились в эстетическом и функциональном плане. Если вы создаете приложение, ставка на неверный фреймворк может поставить компанию в трудную и дорогостоящую ситуацию позже, когда придется что-то переписывать.
Когда у вас есть только молоток, все выглядит как гвоздь. Если вы часто использовали фреймворки для веб-разработки, это, вероятно, случалось с вами, когда одна кодовая база определяет форму кода, который вы будете использовать в будущем, даже если он связан только периферийно. Допустим, вы собираетесь создать такую платформу, как YouTube, и хотите использовать Framework X. Может быть момент, когда, даже если это звучит нелепо в наши дни, вы решите использовать Flash для видео, потому что это то, что приходит. встроен в фреймворк.
У фреймворков есть мнения, и они сильны; Например, React заставляет вас использовать JSX определенным образом. Вы можете видеть, что код используется таким образом повсюду. Есть ли альтернатива? да. Но кто его использует? Это не всегда плохо, но если вам нужно выполнять сложную анимацию, вам может понадобиться только фреймворк для анимации, а не весь React. Я видел, как люди делали сумасшедшие вещи, например, добавляли jQuery на страницу только для того, чтобы добавить узел к элементу, что-то, что можно было бы сделать в ванильном JS с помощью document.getElementById('id_of_node').appendChild(node); .
Eval — это зло, но .innerHTML — это макиавеллизм
Я хочу уделить время отдельному изучению этого момента, потому что я думаю, что это одна из причин, по которой все больше людей не пишут код без фреймворков. Когда вы увидите, как работает большая часть кода при попытке добавить что-то в DOM, вы обнаружите кучу HTML-кода, внедренного свойством .innerHTML. Кажется, мы все согласны с тем, что eval плохо запускает код JavaScript, но я хочу обратить внимание на .innerHTML. Когда вы вставляете HTML-код в виде простой строки, вы теряете все ссылки, которые у вас могли быть на любой из созданных вами узлов.Это правда, что вы можете вернуть их, используя getElementsByClassName или назначив им идентификатор, но это менее практично. При попытке изменить значение одного из узлов вы обнаружите, что снова отрисовываете весь HTML.
Это хорошо, когда вы начинаете программировать. Вы можете легко сделать много простых вещей без особого опыта. Проблема возникает из-за сложности современных веб-сайтов, которые, как правило, больше похожи на приложения — это означает, что нам нужно постоянно менять значения наших узлов, что является дорогостоящей операцией, если вы делаете это, повторно присоединяя всю структуру. через .innerHTML . React эффективно решает эту проблему с помощью теневого DOM, а Angular решает ее, используя привязку как простой способ изменить значение, отображаемое на странице. Тем не менее, ее также можно довольно легко решить, отслеживая создаваемые вами узлы и сохраняя те, которые будут повторно использоваться или обновляться в переменных. Есть и другие причины избегать использования .innerHTML в целом.
Самые большие мифы о программировании без фреймворков
Время — деньги. Да, я возвращаю эту концепцию из более ранней. Многим людям кажется, что если они перестанут использовать популярную веб-инфраструктуру, мы мгновенно перейдем к Интернету 90-х, когда это был всеми любимый тег, вращающиеся GIF-файлы на сайте Geocities были модными и резкими, а Alta Vista была популярной для Интернета. поисковые запросы и счетчики посещений были распространены повсеместно.
С веб-фреймворками ваши первые строки кода, кажется, значительно экономят время, но в какой-то момент успехи оборачиваются потерями. Вы тратите свое время на чтение о том, как заставить фреймворк делать то, для чего он не создан, как интегрировать библиотеки и сделать так, чтобы они хорошо взаимодействовали с фреймворком, и выясняете, что код, который вы создали, следуя стандартам фреймворка, не работает. работать вообще, и теперь вам нужно переписать его. Когда вы делаете что-то без фреймворка, вы начинаете медленнее, но постепенно продвигаетесь вперед. В конце концов, все зависит от того, где вы хотите, чтобы была легкая часть. Это не будет иметь большого значения в общем времени.
Мой код будет длиннее Великой стены. Писать без фреймворка — это как покупать фильм вместо подписки на стриминговый сервис. Вы не получаете мгновенный доступ к сотням фильмов, которые хотите посмотреть, но вам также не нужно тратить деньги на тысячи других фильмов, которые вы даже не подумали бы скачать из магазина. Вы можете просто написать то, что вам нужно.
Полезен ли посредник? Конечно. Но обычно это не необходимо. Каждая написанная вами строка кода имеет большее значение, поскольку вам не нужно адаптироваться к требованиям фреймворка. Может показаться, что вы пишете больше кода на чистом JavaScript, потому что способ создания элементов DOM требует строк для создания элемента, присоединения его к DOM и, возможно, добавления класса для стиля, в отличие от вызова одной строки код в JSX. Но если вы сравните код, использующий такую библиотеку, как jQuery или React, ванильный JS может быть очень похожим по длине. Иногда он длиннее, но иногда и короче.
Нет необходимости изобретать велосипед. Мантра профессоров компьютерных наук во всем мире. И это правда — это просто не обязательно означает конкретно фреймворки. Например, отправка Ajax-запроса для загрузки или сохранения данных требуется почти в каждом веб-приложении, но отсутствие фреймворка не означает, что вам нужно каждый раз писать код заново. Вы можете создать свою собственную библиотеку или кодовую базу или извлечь код из других источников. Чем он меньше, тем проще его изменить или настроить по мере необходимости, поэтому он пригодится, когда вам нужно что-то конкретное для проекта. Легче изменить 100–200 строк кода, чем перемещаться по горам файлов, которые могут содержаться в сторонней библиотеке или фреймворке.
Это будет работать только для небольшого проекта. Это очень распространенный миф, но совсем не соответствует действительности; в настоящее время я работаю над целой системой для управления всеми аспектами компании в Интернете в одном месте, включая модуль, похожий на Google Диск. Будь то с фреймворками или без них, я прохожу очень похожие шаги и сталкиваюсь с очень похожими проблемами. Разница незначительна. Однако без фреймворков весь мой код меньше, и им легче управлять.
Я ХОЧУ ДОКАЗАТЕЛЬСТВА
Хорошо. Давайте прекратим говорить о теории и перейдем к реальному примеру. Несколько дней назад мне нужно было показать список брендов с логотипами для магазина. Первоначальный код использовал jQuery, но у него была проблема, когда при загрузке в Mozilla он показывал значок сломанного изображения для брендов, у которых еще не были загружены логотипы. Мы не можем допустить, чтобы магазин выглядел незавершенным только потому, что компания X еще не закончила свою часть работы, но функция, необходимая для запуска.
В следующем коде используется jQuery-эквивалент .innerHTML :
Не вдаваясь слишком глубоко в плюсы и минусы jQuery, проблема здесь в том, что у нас нет никаких ссылок на изображения, которые мы создали.Хотя есть решения, которые не требуют изменения кода, давайте воспользуемся этой возможностью, чтобы посмотреть, как это можно сделать вообще без какой-либо библиотеки:
Исходный код jQuery состоял из шести строк, тогда как ванильное решение JS занимало двенадцать. Чтобы решить эту проблему, скрытие каждого изображения до его загрузки требует в два раза больше времени для кода. Итак, рассмотрим альтернативу. Можно ли это решить и в jQuery? Проверьте это:
С парой дополнительных строк кода разница между jQuery и vanilla теперь составляет всего три строки, но в jQuery вы можете видеть, что строка img_out быстро становится очень сложной, до такой степени, что вы нужно сделать паузу и хорошенько подумать о том, что вы делаете. Кодирование DOM напрямую с использованием функций узла для добавления атрибутов, функций и т. п. может оказаться более длительным, но каждая строка имеет более четкое и точное значение, что облегчает чтение и поддержку в будущем.
Давайте посмотрим на React:
Эта версия явно неоптимальна. Код не короче, чем в ванили, и мы еще даже не дошли до решения проблемы и скрытия ссылок до тех пор, пока не загрузится изображение внутри них.
Для каждого примера результаты будут разными. Иногда jQuery будет короче. Иногда React побеждает. Бывают случаи, когда ванильный JS может быть короче, чем они оба. В любом случае, целью здесь было не доказать, что одно по своей сути превосходит другое, а продемонстрировать, что нет существенной разницы между использованием vanilla JS и использованием фреймворка, когда речь идет о длине кода.
Заключение
Как и в любой реальной проблеме, нет ничего черного или белого. Кодирование без фреймворков веб-разработки может быть лучшим решением для одних ваших проектов и кошмаром для других. Как и в случае с любым инструментом, ключ заключается в том, чтобы научиться не только тому, как его использовать, но и тому, когда и каковы преимущества и недостатки его использования. Кодирование на чистом JavaScript ничем не отличается от любого другого фреймворка: для его освоения требуется время, прежде чем вы почувствуете себя комфортно в нем.
Но ключевое отличие, по крайней мере для меня, заключается в том, что фреймворки приходят и уходят, и даже если фреймворк популярен в течение длительного времени, он может сильно меняться от одной версии к другой. Чистый JavaScript будет использоваться гораздо дольше, пока он полностью не перестанет быть актуальным и не появится какой-то другой язык. Даже тогда будет больше концепций и стратегий, которые вы можете напрямую перенести с одного языка на другой, чем вы можете с данной структурой на другой. Поскольку время и усилия примерно эквивалентны, когда речь идет об одном проекте, снижение износа знаний и уроки, которые вы можете взять с собой для решения следующей задачи, являются очень важными факторами, которые следует учитывать.
Видите ошибку HP Software Framework? Вот как это быстро исправить.
Если у вас есть ноутбук или настольный компьютер HP, вы могли столкнуться с ошибкой «HP Software Framework не установлена или не запущена». Эта ошибка часто появляется при использовании функциональных клавиш (Fn) для выполнения таких задач, как регулировка громкости, яркости или перевод компьютера в спящий режим.
При появлении этого сообщения название может быть «Поддержка HP Hotkey» или «Служба HP Hotkey UWP». Оба относятся к драйверам, которые предварительно устанавливаются на компьютеры HP и позволяют запускать горячие клавиши.
Вот как исправить ошибку.
Что такое горячие клавиши?
Существует множество сочетаний клавиш Windows, которые могут облегчить вам жизнь, если вы проводите много времени перед экраном, особенно если вам не нравится пользоваться мышью. Ярлыки экономят время и повышают производительность, и горячие клавиши не исключение.
В сочетании с клавишей Fn горячие клавиши – это клавиши, которые позволяют выполнять специальные функции, не заходя в настройки.
Например, вы можете использовать Fn + F6 для увеличения яркости, Fn + F10 для отключения микрофона и Fn + F4 для переключения между внешними дисплеями. Эти клавиши имеют рамку вокруг символа, слова или цифры, чтобы выделить их специальную функцию.
Функции и расположение горячих клавиш различаются на разных моделях, поэтому обратитесь к руководству пользователя, если вы не знаете, что делают ваши горячие клавиши.
Обычно драйверы горячих клавиш предварительно устанавливаются и запускаются автоматически при запуске, но иногда они неожиданно перестают работать, и их необходимо переустановить. Это то, что вызывает ошибку HP Software Framework, которую вы видите выше.
Это может произойти при обновлении драйверов или установке новых программ, а также во время автоматических обновлений Windows. К счастью, это легко исправить. Вам даже не нужно предварительно удалять старый драйвер.
Способ 1. Установите HP Support Assistant
Когда появится сообщение об ошибке, вам будет предложено установить HP Software Framework по предоставленной ссылке. К сожалению, эта ссылка не работает. Хорошей новостью является то, что HP Support Assistant будет работать вместо него.
Перейдите на страницу HP Support Assistant. Нажмите кнопку Загрузить HP Support Assistant для установки.
После установки файла перезагрузите компьютер, и ваши горячие клавиши снова заработают.
Способ 2. Установите драйвер поддержки горячих клавиш HP
Если ваши горячие клавиши по-прежнему не работают должным образом, найдите определенные файлы драйверов на веб-сайте HP: HP Hotkey Service и HP Hotkey Service UWP.
Чтобы найти правильный драйвер для вашего компьютера, вам необходимо найти точную модель вашего устройства. Если номер модели нигде не напечатан на вашем корпусе, вы можете легко найти его в информации о вашей системе.
Выполните поиск информации о системе в меню «Пуск» и откройте соответствующий результат. В этом новом окне найдите номер своей модели.
Найдя номер модели своего компьютера, перейдите на веб-сайт поддержки HP, чтобы найти нужный драйвер. Прокрутите вниз, чтобы определить свой продукт, и введите номер модели. Затем перейдите на вкладку «Программное обеспечение, драйверы и микропрограммы». Появится список драйверов, совместимых с вашим устройством.
Нажмите «Программные решения». Найдите поддержку горячих клавиш HP и щелкните Загрузить. Следуйте инструкциям на экране, чтобы установить программное обеспечение.
Когда установка файла будет завершена, перезагрузите компьютер, и ваши горячие клавиши должны снова работать.
Есть ли причина, по которой мне не следует загружать поддержку горячих клавиш?
Некоторые пользователи считают программы HP Framework Support и Hotkey Support вредоносными программами или ненужными программами, установленными на их компьютерах, и могут захотеть избавиться от них. HP не рекомендует удалять эти драйверы, поскольку в противном случае ваша система может работать неправильно. Если вы считаете, что программное обеспечение поддержки HP замедляет работу вашего устройства, вы можете запретить его открытие при запуске. Таким образом, он по-прежнему доступен, если вам это нужно.
Вот как вы можете изменить параметры запуска:
- Введите Services в строке поиска Windows, чтобы открыть соответствующий результат.
- Найдите и щелкните правой кнопкой мыши службу HP Hotkey UWP.
- Нажмите "Свойства".
- В раскрывающемся меню "Тип запуска" выберите "Отключено".
Если вы отключили поддержку горячих клавиш, но позже хотите снова включить ее, просто выполните первый и второй шаги, затем щелкните правой кнопкой мыши службу HP Hotkey UWP и выберите Пуск.
Простое решение для сообщений об ошибках с горячими клавишами HP
Если ваши горячие клавиши внезапно перестали работать или вы видите ошибки HP Hotkey Support или HP Hotkey UWP Service, загрузка соответствующих драйверов должна восстановить работу горячих клавиш всего за несколько минут.
Андреа Кьярелли
Старший юрист-разработчик
Последнее обновление: 15 октября 2021 г.
Андреа Кьярелли
Старший юрист-разработчик
Последнее обновление: 15 октября 2021 г.
Auth0 Marketplace
Откройте для себя и активируйте интеграции, необходимые для идентификации личности
Единая платформа
Конечно, создание этой единой платформы потребовало значительных усилий и реорганизации внутренней архитектуры. Несколько функций были удалены из основного набора API, как вы увидите позже, но общая производительность платформы улучшилась.
Отправить твит
Утверждения верхнего уровня
Среди новых функций одной из самых примечательных является введение операторов верхнего уровня. Чтобы узнать, что это такое, взгляните на следующую классическую минимальную программу:
Чтобы вывести на консоль одну строку, вам нужно определить пространство имен, класс и статический метод Main(). Теперь вы можете избавиться от этой инфраструктуры кода и просто написать следующее:
Типы записей
Еще одна интересная новая функция — типы записей. С записями вы можете объявить неизменяемый ссылочный тип, т. е. тип на основе класса, который нельзя изменить после его создания. Примером встроенного неизменяемого ссылочного типа является System. Класс струн. После создания экземпляра System . String , вы больше не можете изменить его значение.
Рассмотрите следующее объявление типа записи:
Вы можете создать экземпляр записи Person так же, как и класс, но вы не можете изменить его свойство FirstName:
Однако вы можете сравнить два экземпляра записи Person аналогично примитивным значениям:
Настройка инициализации
Этот класс определяет человека со свойствами LastName и FirstName, которые можно инициализировать, но нельзя изменить. Свойство Address можно изменить в любое время:
Поддержка однофайловых приложений
Конечно, вы также можете указать эти параметры в конфигурации вашего проекта:
Ознакомьтесь с документацией, чтобы узнать больше об этом типе развертывания.
Технологии больше не поддерживаются
Веб-формы
Однако у вас есть несколько альтернатив для создания веб-интерфейсов.Если вы создаете традиционные веб-приложения, Razor Pages — одна из таких альтернатив. Если вы хотите создавать одностраничные приложения, вы можете использовать Blazor.
Фонд связи Windows (WCF)
Альтернативой WCF, рекомендованной корпорацией Майкрософт, является переход на gRPC. Но если вы испытываете ностальгию по WCF или хотите подготовиться к плавному переходу, вы можете попробовать проект с открытым исходным кодом CoreWCF.
Фонд рабочих процессов Windows
Обзор
В ASP.NET Core вам нужно создать API на панели управления Auth0 и изменить несколько вещей в коде. Чтобы создать API, вам необходимо зарегистрировать бесплатную учетную запись Auth0. После этого вам нужно перейти в раздел API панели инструментов и нажать «Создать API». В показанном диалоговом окне вы можете установить Имя вашего API как "Книги", Идентификатор как "http://books.mycompany.com" и оставить Алгоритм подписи как "RS256".
После этого необходимо добавить вызов в службы. AddAuthentication() в методе ConfigureServices() класса Startup следующим образом:
В тело метода Configure() класса Startup также необходимо добавить вызов app. UseAuthentication() и app. Используйте авторизацию ( ), как показано ниже:
Убедитесь, что вы вызываете эти методы в указанном выше порядке. Это необходимо, чтобы все работало правильно.
Наконец, добавьте следующий элемент в appsettings . файл конфигурации json:
Примечание. Замените заполнители YOUR_DOMAIN и YOUR_AUDIENCE фактическими значениями домена, который вы указали при создании учетной записи Auth0, и идентификатора, назначенного вашему API.
< /цитата>Андреа Кьярелли
Старший советник разработчиков
Андреа Кьярелли
Старший советник разработчиков
Ричард — старший редактор The New Stack. Он ведет еженедельную колонку о тенденциях в веб-разработке и разработке приложений. Ранее в 2003 году он основал ReadWriteWeb и превратил его в один из самых влиятельных в мире новостных и аналитических сайтов о технологиях.
Спойлер: нет, не может! Тем не менее, появляется все больше причин не использовать веб-фреймворк.
«Я больше никого не учу создавать приложения с помощью Rails», — написал Кехо в длинной статье, описывая то, что он называет «способом без стека». Вместо этого он теперь сосредоточен на том, чтобы помогать людям создавать веб-приложения и веб-сайты, используя «новейшие функции, встроенные в веб-браузеры».
Среды веб-приложений популярны с 1990-х годов, когда были запущены Adobe ColdFusion и Microsoft Active Server Pages (ASP). Это продолжалось и в 2000-х, когда появились такие фреймворки, как Ruby on Rails (о котором я говорил в колонке на прошлой неделе) и Django. Затем, в 2010-х годах, фреймворки JavaScript получили особенно широкое распространение. В лучшем случае фреймворки упрощают разработчикам создание сложных веб-приложений. Так что же Кехо с ними не так?
Кехо утверждает, что сегодня команды инженеров "обременены слишком большой сложностью" и что "крупные, сложные, иерархические и монолитные организации создают большие, сложные, иерархические и монолитные программные системы". Он хочет вернуться к тому, что Тим Бернерс-Ли и W3C однажды назвали правилом наименьшей мощности: «Используйте наименее мощный язык, подходящий для выражения информации, ограничений или программ во всемирной паутине».
По словам Кехо, настало время для "безстекового" подхода к веб-разработке, основанного на недавних улучшениях как в веб-стандартах, так и (что более важно) в том, как ведущие производители браузеров внедрили эти стандарты.
Бесстековые технологии
В основе подхода Кехо лежат три ключевые веб-технологии:
- Модули ES6. JavaScript ES6 может поддерживать модули импорта, которые также поддерживаются браузерами.
- CDN модулей: модули JavaScript теперь можно загружать из сторонних сетей доставки контента (CDN).
- Пользовательские элементы HTML. Теперь разработчики могут создавать собственные HTML-теги с помощью веб-компонентов.
Возможность модульного разделения кода и разметки стала поворотным моментом для Кехо.
Модули JavaScript впервые были представлены ECMA, органом по стандартизации JavaScript, в 2015 году в версии ECMAScript 6 (ES6). Но только в сентябре 2017 года он стал должным образом поддерживаться в ведущем на рынке браузере Google Chrome.
Чтобы внедрить модульный HTML, потребовалось немного больше времени, но Кехо считает, что веб-компоненты, которые стали полностью поддерживаться в Chrome и Firefox в 2018 году, наконец-то позволили это сделать. Он написал на своем сайте:
«Раньше нам требовались фреймворки для разработки веб-приложений, потому что не было возможности писать модульный код или обращаться к базам данных на устаревших HTML и JavaScript. Теперь пользовательские элементы позволяют писать модульный HTML».
Mozilla определяет веб-компоненты как «набор различных технологий, позволяющих создавать повторно используемые настраиваемые элементы — с их функциональностью, изолированной от остального кода — и использовать их в своих веб-приложениях».
Веб-компоненты часто позиционируются как альтернатива веб-стандартам популярных библиотек и фреймворков JavaScript, таких как React, Angular и Vue. Идея состоит в том, что веб-компоненты можно повторно использовать на всех платформах и платформах и, таким образом, они рассчитаны на будущее, тогда как (например) компоненты React можно повторно использовать только в средах React.
Пока рано для веб-компонентов, но после того, как браузер Microsoft Edge добавил их поддержку в январе 2020 года, импульс набрал обороты. Алекс Рассел из Google недавно сказал, что «12% страниц, загружаемых в Chrome, используют веб-компоненты». Если Дэниел Кехо добьется своего, разработчики без стеков со временем увеличат это число.
Недостатки подхода без фреймворка
Кехо первым признал, что его подход не подходит для любой ситуации. Действительно, в его пятистраничном обзоре «пути без стеков» одна целая страница посвящена «препятствиям».
Во-первых, он пишет, что инструменты сборки нужны для больших сайтов и для управления производительностью. Такие фреймворки, как Angular и Vue, стали популярными отчасти потому, что они упростили создание масштабируемых приложений и веб-сайтов. Angular даже утверждает на своей домашней странице, что он «дает вам контроль над масштабируемостью». Кехо просто отмечает, что «к сожалению, опыт работы с JavaScript и инструменты сборки по-прежнему необходимы для предоставления программного обеспечения в масштабе, в первую очередь для оптимизации производительности».
Управление состоянием — еще одна важная часть крупномасштабных веб-приложений, которую не может обеспечить бесстековый способ. «Если вам нужно SPA [одностраничное приложение], используйте структуру и примите сложность», — пишет Кехо.
Есть и другие проблемы, в том числе то, что подход без фреймворка все еще очень нов, и поэтому не хватает примеров приложений и сайтов, на которых можно учиться.
Фреймворки никуда не денутся. И все же…
Как я уже говорил, полагаясь на ванильный JavaScript и веб-компоненты, вы далеко не продвинетесь. Но даже несмотря на то, что фреймворки по-прежнему являются лучшим решением для крупномасштабной веб-разработки, подход Дэниела Кехо к основам вызывает восхищение.
Во-первых, это показывает, насколько далеко мы продвинулись в области браузерных технологий и веб-стандартов за последние несколько лет. С появлением модульного JavaScript и (в последнее время) веб-компонентов в ведущих браузерах теперь вы можете создавать удивительно сложные приложения, не обязательно нуждаясь в фреймворке. Как говорит Кехо:
«То, что было возможно только с помощью фреймворков и инструментов сборки, теперь можно выполнить с помощью функций, встроенных в браузер. Поэтому я предлагаю, если в этом нет крайней необходимости, не использовать фреймворк в качестве платформы для разработки. Браузер сам по себе является вашей платформой; используйте платформу».
По крайней мере, подход без стеков — это хороший способ заново ознакомиться с современной веб-платформой.
Читайте также: