По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Настроить бэкэнд-службу с нуля сложно. Для облегчения работы можно использовать Firebase, но это не единственное в своем роде решение. В данном материале рассмотрим альтернативные решения бэкэнда для веб-приложений и мобильных приложений. Что такое бэкэнд? Бэкэнд - это программное обеспечение, которое обрабатывает данные мобильного или веб-приложения. Он содержит всю логику доступа и управления данными, к которым обычные пользователи не могут получить доступ. Бэкэнд также отвечает за обработку веб-запросов и веб-ответов. Обычно он известен как часть приложения, которое скрыто от пользователя, и он взаимодействует с фронтэндом (то что пользователь видит), чтобы отобразить запрашиваемые данные. Для создания бэкэнд-решений можно использовать несколько языков программирования, таких как Python, JavaScript и PHP. В дополнение к этим языкам, вы можете использовать серверные фреймворки, такие как Django, NireJS и Laravel, которые обеспечивают «стандартный» способ построения сложных приложений. Чтобы создать пользовательское бэкэнд-решение, требуются хорошие навыки работы с некоторыми из упомянутых выше языков программирования, и, что более важно, много времени. Если вы хотите пропустить этот процесс и сосредоточиться на скорейшем завершении проекта, вы можете использовать готовое к использованию бэкэнд-решение или, если вы предпочитаете модный термин «бэкэнд как услуга» (Baas - Backend-as-a-service). Наиболее популярным сервисом является Firebase, консолидированный продукт, поддерживаемый Google, но у него есть некоторые недостатки: Ограниченная миграция данных Ограниченное хранение данных Больше нацелен на Android (большие улучшения на iOS в последние месяцы) Основная служба не является открытой Для хранения данных приложения и управления ими вы полагаетесь на внешнюю службу Firebase - отличный продукт, особенно если вы только начинаете, но, чтобы иметь выбор, важно знать некоторые альтернативы. 1. Appwrite Appwrite - это комплексное бэкэнд-решение практически для каждого веб- или мобильного приложения, о создании которого вы мечтаете. Он является решением с открытым исходным кодом, имеет нулевые зависимости и легко интегрируется (через SDK) с некоторыми наиболее популярными инструментами и языками. Appwrite - это автономный бэкэнд сервер, который поставляется в виде Docker-образа. Это означает, что ее можно установить в любой ОС, поддерживающей интерфейс командной строки Docker. Эта кроссплатформенная функциональность позволяет запускать Appwrite на локальном рабочем столе или на любом облачном сервере. Appwrite поставляется со встроенной панелью, которая позволяет управлять приложениями как проектами. Каждый проект может интегрироваться непосредственно с вашим приложением. Другие интересные особенности Appwrite: Простота Отличная документация Кроссплатформенность Нулевые зависимости (кроме Docker) 2. Supabase Supabase - это альтернатива Firebase с открытым исходным кодом, которая выполняет повторяющиеся операции CRUD и позволяет сосредоточиться на вашем продукте. Помимо возможности самостоятельного хостинга, Как и Appwrite, Supabase можно развернуть локально. Но в отличии от первого, Supabase также предлагается в облачном варианте. Он предоставляет все бэкэнд-услуги, необходимые для создания продукта. Вот основные: База данных Postgres Идентификация Хранение файлов Автоматически созданные API Вы можете создать учетную запись в GitHub, выбрать бесплатный план и создать приложение за считанные минуты. Supabase поставляется с панелью мониторинга, включающая редактор таблиц (аналогично электронной таблице), встроенный редактор SQL и управление пользователями. Имеется обширная официальная документация, которая позволяет быстро начать разработку приложения на этой платформе. 3. Parse Platform Parse Platform – это полный стек приложений. Его основным продуктом является сервер Parse - бэкэнд сервер с открытым исходным кодом и автономным хостингом, который может быть развернут в любой инфраструктуре, поддерживающей Node.js. Parse Server использует MongoDB или Postgres в качестве базы данных и позволяет использовать собственную инфраструктуру для развертывания внутреннего сервера. Если вы хотите разработать приложение локально, вы можете сделать это с помощью Node. ParseplatformIt имеет несколько SDK с открытым исходным кодом, которые позволяют интегрировать почти все существующие веб-приложения или мобильные приложения за пару команд. Самое интересное в Parse - это широкое сообщество. Они создали множество проектов для расширения функциональности Parse, таких как адаптер MySQL или Live Query for .Net. 4. Cloudboost Cloudboost - это полнофункциональный JavaScript бэкэнд, включающий все инструменты и инфраструктуру, необходимые для создания современных веб-приложений и мобильных приложений. При реализации основных функция вроде поиск или аутентификация пользователей, задачу целостности данных это решение берёт на себя. Все находится на одной платформе, поэтому вы экономите много времени и инвестируете в разработку своего приложения. Главный недостаток: он не является ни открытым, ни бесплатным. 5. Nhost Хотите использовать современный бэкэнд для создания современных приложений? Если да, Nhost то, что вам нужно. Вдохновленный от Firebase, это готовый к производству бэкэнд, который включает базу данных Postgres, Hasura, GraphQL, встроенную аутентификацию и хранилище. Как и в случае с каждым из представленных до сих пор бэкэнд-решений, оно предлагает набор SDK для интеграции вашего приложения. Это решение с открытым исходным кодом, но он предлагает облачную версию, которую вы можете начать использовать бесплатно и выбрать план после того, как вы попробуете его функции. Лучше всего в Nhost то, что у вас есть полный доступ к вашим данным (в отличии от Firebase), и вы можете экспортировать их в любое время. Nhost только становится, и вы можете наблюдать за их прогрессом и статистикой на их сайте. Заключение Backend-as-a-service позволяет делегировать базовае функции приложения и стандартные операции CRUD третьей стороне, чтобы сосредоточиться на создании наилучшего проекта за меньшее время.
img
Привет, мир! Рассказываем про 10 самых часто используемых команд nslookup. Что такое nslookup? Давайте для начала определимся, что такое nslookup. Это мощная сетевая утилита командной строки, доступная для большинства популярных ОС. Она используется для запросов в систему доменных имён (DNS) с целью выявления имен или IP-адресов, а также других специфических DNS записей. 1. Выявление A записи для домена A запись домена – это сопоставление доменного имени IP-адресу ресурса. Именно благодаря этому типу записи, когда вы набираете merionet.ru переходите на страницу нашего сайта. Чтобы определить IP-адрес ресурса (это может быть компьютер в вашей сети или же любой сайт в Интернете) нужно ввести следующую команду: nslookup merionet.ru 2. Определение NS-записей домена Когда вы набираете в адресной строке браузера адрес сайта, то компьютер обращается к DNS серверу, указанному в настройках сетевого интерфейса. А тот в свою очередь к более NS серверам, где хранятся записи о том, какой IP-адрес соответствует данному доменному имени. Утилита nslookup позволяет определять, какие NS –сервера использует тот или иной хост (сайт). Команда выглядит следующим образом: nslookup –type=ns merionet.ru 3. Определение SOA записи узла SOA-запись (Start of Authority) — начальная запись зоны, которая указывает местоположение эталонной записи о домене. Она содержит в себе контактную информацию лица, ответственного за данную зону, время кэширования информации на серверах и данные о взаимодействии DNS. SOA-запись создается автоматически. Для определения SOA записи используется команда: nslookup –type=SOA merionet.ru 4. Как найти MX-запись хоста Электронная почта сегодня используется повсеместно. Чтобы отправлять и получать электронные письма хост используется тип записи MX. В каждой MX-записи хранятся два поля: имя почтового сервера, который обслуживает домен порядковый номер, по которому определяется какой сервер первым будет обрабатывать запросы клиентов Для определения MX-записей хоста используется команда: nslookup –type=MX merionet.ru 5. Определение всех типов DNS-записей По умолчанию, команда nslookup отображает соответствие IP-адреса доменному имени. Но можно заставить утилиту вернуть все возможные записи для указанного хоста: nslookup –type=any merionet.ru 6. Явное указание DNS-сервера Утилита nslookup при сопоставлении имён, по умолчанию обращается к DNS-серверу, который установлен в настройках сетевой карты. Но утилите можно передать название или IP-адрес, который хотим использовать для сопоставления имён. nslookup merionet.ru dns2.yandex.ru Как видно из скриншота, ответ нам вернул уже сервер Яндекса. 7. Обратный DNS lookup Обычно утилита nslookup используется для определения IP-адреса переданного хоста. Но что если IP-адрес уже есть, но нужно найти доменное имя? И здесь можно использовать nslookup передав в качестве значения IP-адрес узла. 8. Изменение номера порта для запроса По умолчанию, для запросов DNS использует 53 (UDP) порт. Но это поведение тоже можно изменить, хотя особого необходимости в этом нет. nslookup –port=56 merionet.ru 9. Изменение интервала ожидания Бывают случаи, особенно при слабых Интернет соединениях, что ответа от сервера приходится ждать долго. По умолчанию, если ответ не приходит в течении 5 секунд, то запрос повторяется, увеличив время ожидания в два раза. Но можно вручную задать это значение в секундах: nslookup –timeout=10 merionet.ru Отработку этой команды увидеть сложно, но она может быть эффективна при соединениях с низкой скоростью. 10. Включение режима отладки Режим отладки позволяет получать более детальную информацию об узле. Для этого используется команда: nslookup –debug merionet.ru Заключение Когда утилита nslookup возвращает ответ, там указывается с какого сервера вернулся ответ. Эти сервера бывают authoritative и non-authoritative answer. Authoritative answer – это ответ, полученные непосредственно от сервера, который располагает информацией об указанном домене. В нашем случае – это dns2.yandex.ru. Non-authoritative answer – это ответ, полученный от промежуточного сервера. В нашем случае – это мой роутер.
img
Любое крупное приложение должно сопровождаться несколькими наборами тестов, с помощью которых можно проверить его стабильность и производительность.  Существует большое количество различных тестов, каждый из которых имеет свое назначение и охватывает определенные аспекты приложения. Именно поэтому, когда вы тестируете свое приложение, вы должны убедиться, что ваш набор тестов сбалансирован и охватывает все аспекты.  Однако есть один тип тестов, который разработчики часто предпочитают другим, и поэтому им часто злоупотребляют. Этот «сквозное тестирование» (E2E - end-to-end testing).  Что такое сквозное тестирование? Для тех, кто только начал штурмовать мир тестирования программного обеспечения, E2E-тестирование - это проверка вашего приложения от начала до конца вместе со всеми его зависимостями. При проведении E2E-тестировании вы создаете среду, которая будет идентична той, которую будут использовать реальные пользователи приложения. А затем вы тестируете все действия, которые могут выполнять пользователи в вашем приложении. С помощью сквозного тестирования вы проверяете весь рабочий поток целиком, например, вход на веб-сайт или покупку товара в интернет-магазине.   Если вы будете злоупотреблять E2Е-тестирование, то вы перевернете пирамиду тестирования. Я в такой ситуации был. В одном из своих проектов я планировал охватить большую часть приложения Е2Е-тестами или, что еще хуже, воспользоваться лишь один Е2Е-тест. К счастью, я передумал. Так вот, теперь я хочу поделиться с вами тем, что заставило меня передумать.  Почему не нужно пренебрегать пирамидой тестирования? Хаотично написанные тесты сначала могут показаться вполне пригодными, но в конце концов они таковыми не окажутся.  Мы пишем тесты для того, чтобы выиграть больше времени, и мы делаем это с помощью методы и средства автоматизации тестирования. Конечно, можно было бы самостоятельно открывать приложения и тестировать их вручную. Если бы это нужно было сделать однократно, то проблем не было бы. Но так бывает крайне редко.  Программное обеспечение постоянно обновляется. Поэтому необходимо проводить регулярные тестирования для того, чтобы оставаться в курсе последних событий. Вы, конечно, можете ежедневно запускать все тесты вручную при каждом обновлении приложения. Но если вы один раз напишите набор тестов, а затем будете его запускать каждый раз, когда нужно будет протестировать какой-то из аспектов приложения, то вы сэкономите много времени.  У каждого теста есть свое назначение. Если вы будете использовать их не по назначению, то они могут вам больше навредить, чем помочь. Это связано с тем, что в итоге вы потратите больше времени на то, чтобы написать эти тесты, и на их сопровождение, чем на разработку самого приложения. Иными словами, вы останетесь без одного из самых больших преимуществ автоматизированного тестирования.  Хорошее начало – придерживаться пирамиды тестирования. Она поможет вам определить правильный баланс в тестированиях. Эта пирамида является отраслевым стандартом и используется с середины 2000-х годов по сей день, так как все еще считается эффективной.  Значит ли это, что разработчики никогда не пренебрегают этой пирамидой? Не совсем. Иногда пирамида бывает перевернутой, где большую часть тестов составляют Е2Е, а иногда она бывает похожа на песочные часы, где очень много юнит- и Е2Е-тестов, но с очень мало интеграционных тестов.  Три уровня пирамиды тестирования Как правило, пирамида тестирования имеет три уровня: юнит-тесты, интеграционные тесты и сквозные тесты.  Юнит-тесты Юнит-тесты, или модульные тесты, делают акцент на самых маленьких единицах кода, таких как функции и классы.  Они короткие и не зависят ни от каких-либо внешних пакетов, библиотек и классов. В противном случае, в ход идет имитированная реализация.  Если юнит-тест дает сбой, то найти причину проблемы не так сложно. Они также имеют небольшой диапазон тестирования, что делает их простыми в написании, быстрыми в работе и легкими в сопровождении.  Интеграционные тесты Интеграционные тесты делают акцент на взаимодействии между двумя отдельными объектами. Как правило, они работают медленнее, потому что они требуют более серьезной настройки.  Если интеграционные тесты проваливаются, то найти проблему немного сложнее, так как диапазон ошибок больше. Они также более сложные в написании и сопровождении, в основном потому, что они требуют более продвинутое имитирование и расширенную область тестирования.  Сквозные тесты И наконец, сквозные тесты, или E2E-тесты. Они делают акцент на рабочих потоках, от самых простых до самых сложных. Эти тесты можно рассматривать как многоэтапные интеграционные тесты.  Они самые медленные, потому что они подразумевают сборку, развертывание, запуск браузера и выполнение действий внутри приложения.  Если сквозные тесты проваливаются, то найти проблему часто бывает очень сложно, потому что диапазон ошибок увеличивается до всего приложения. В принципе, по пути могло сломаться все что угодно. Это, безоговорочно, самый сложный тип тестов для написания и сопровождения (из трех типов, которые рассмотрели здесь) из-за огромного диапазона тестирования и из-за того, что они охватывают все приложение.  Надеюсь, теперь вы понимаете, почему пирамида тестирования была спроектирована именно таким образом. Снизу-вверх каждый уровень тестирования говорит о снижении скорости и увеличении диапазона и сложности и усложнении сопровождения.  Именно поэтому важно не забывать о том, что E2E-тестирование не может полностью заменить другие методы – оно лишь предназначено для расширения их возможностей. Назначение Е2Е-тестирования четко определено, и тесты не должны выходить за его границы.  В идеале тесты должны выявлять ошибки настолько близко к корню пирамиды, насколько возможно. Е2Е-тест предназначен для проверки кнопок, форм, изменений, ссылок, внешних процессов и вообще всех функций рабочего потока. Тестирование с кодом VS codeless-тестирование В целом, существует два типа тестирования: ручное и автоматизированное тестирование. Это значит, что мы можем проводить тестирования либо вручную, либо с помощью сценариев.  Чаще используют именно второй метод. Но и автоматизированное тестирование можно разделить на две части: тестирование с кодом и codeless-тестирование.  Тестирование с кодом Когда вы проводите тестирование с кодом, вы используете фреймворки, которые могут автоматизировать браузеры. Один из самых популярных инструментов – это Selenium, но я больше предпочитаю использовать в своих проектах Cypress (только для JavaScript). И тем не менее, работают они практически одинаково.  По сути, с помощью таких инструментов вы моделируете веб-браузеры и даете им указания для выполнения различные действия в вашем целевом приложении. После чего вы проверяете, отреагировало ли ваше приложение на соответствующие действия. Это простой пример имитации, взятый из документации Cypress. Я привел его, чтобы вы могли лучше понять, как работает этот инструмент: Давайте посмотрим, что тут происходит: Допустим, пользователь посещает сайт  https://example.cypress.io   Когда она нажимает на ссылку с пометкой type, URL-адрес должен добавить /commands/actions Если он вводит «fake@email.com» в поле ввода .action-email, тогда ввод .action-email принимает значение «fake@email.com». Codeless-тестирование В ситуации с codeless-тестированием вы используете фреймворки на базе искусственного интеллекта, которые запоминают ваши действия. И основываясь на некоторой дополнительной информации, они проверяют, отвечает ли ваше целевое приложение на действия должным образом.  Эти инструменты часто выглядят как малокодовые платформы для разработки, где вы перемещаете различные панели. Один из таких инструментов – TestCraft, codeless-решение, разработанное на платформе Selenium. Как правило, эти инструменты стоят дороже из-за того, то такие функции, как создание, сопровождение и запуск тестов выполняются с помощью простого перемещения панелей, а также из-за того, что для проведения тесто не нужно уметь писать программный код. Но я упомянул здесь про TestCraft, потому что у них есть бесплатная версия, которая включает в себя практически все.  Конечно, если речь идет о скорости и деньгах, то codeless-решение может оказаться вам больше по душе, но они все еще достаточно новые. Поэтому они пока не могут иметь ту сложность наборов тестов, которой можно достичь, написав код самостоятельно.  Если в целевом приложении есть очень сложные рабочие потоки, которые включают в себя несколько подвижных частей, то вам больше подойдет классический вариант тестирования. Но если сложных потоков нет, то вы можете воспользоваться codeless-решением.  Подведение итогов Написание тестов – обязательное требование для любого приложения. Если вы будете следовать всем правилам и писать наборы тестов исходя из их типов, то они только улучшат ваше приложение, а также их будет довольно просто написать и сопровождать.  Использовать сквозные тесты, как и любые другие, следует только для того, для чего они предназначены. Они предназначены для тестирования рабочего потока приложения от начала и до конца путем воспроизведения реальных пользовательских сценариев. Но помните, что большинство ошибок следует выявлять как можно ближе к корню.   
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59