Содержание
App Store: JavaScript Recipes
Описание
Справочник типовых, часто используемых операций на языке JavaScript ES9 и запросов SQL
• JavaScript:
— Как получить подстроку?
— Как объявить обобщенный метод?
— Как реализовать паттерн «Стратегия»?
— Как выполнить запрос к базе данных?
• SQL:
— Как объединить несколько таблиц в одном запросе?
— Как отсортировать результат группировки данных?
— Какие типы данных есть в СУБД SQL Server?
В приложении доступны эти и еще более 300 примеров кода по каждому языку.
• В программе отобраны лучшие примеры кода из книг и специализированных интернет ресурсов. Для поиска оптимального решения в интернет можно затратить часы рабочего времени. В приложении содержаться готовые и проверенные «рецепты» кода.
• Не знаете какой язык программирования выбрать? Приложение поможет сравнить синтаксис каждого из примеров на разных языках программирования и принять взвешенное решение при выборе языка.
• Отличная помощь тем, кто часто использует несколько языков программирования: приложение сокращает время, необходимое для переключения на другой синтаксис.
• Приложение является хорошим пособием при сдаче экзамена или подготовке к собеседованию, т.к. содержит справочник типовых, часто используемых операций на разных языках программирования.
• Приложение содержит приемы объектно-ориентированного проектирования (примеры паттернов проектирования), изучение которых способствует повышению навыков владения языком и повышает уровень профессионализма разработчика.
• Быстрый поиск нужного примера по коду или названию топика. Поделитесь найденным «рецептом» примером с коллегами.
• Я, как разработчик, сам использую данную программу, когда нужно быстро вспомнить как реализовать возникшую задачу на том или ином языке программирования.
Если сможете помочь с переводом названий топиков на ваш язык, прошу связаться со мной по электронной почте.
В приложении бесплатно доступны основные (базовые) примеры по всем языкам программирования. Примерно 45% примеров доступны за дополнительную плату.
Версия 2.15
Это обновление включает исправления ошибок и улучшение производительности.
Оценки и отзывы
Оценок: 2
Отличное приложение!
Надеюсь не останется без поддержки
Спасибо разработчику!
Начал изучать JS и очень обрадовался, что есть такое полезное приложение. Купил сразу весь комплект. Очень надеюсь, что сможете и будете осуществлять поддержку. Очень помогает во время поездок. Спасибо Вам за приложение.
Здравствуйте, спасибо! Рад, что приложение вам помогает в работе 👍🏻
Стоит потраченных денег
Отличный справочник! Спасибо)
Спасибо большое, очень приятно 🤝
Разработчик Fedor Obraztsov указал, что в соответствии с политикой конфиденциальности приложения данные могут обрабатываться так, как описано ниже. Подробные сведения доступны в политике конфиденциальности разработчика.
Сбор данных не ведется
Разработчик не ведет сбор данных в этом приложении.
Конфиденциальные данные могут использоваться по-разному в зависимости от вашего возраста, задействованных функций или других факторов. Подробнее
Информация
- Провайдер
- Fedor Obraztsov
- Размер
- 1,3 МБ
- Категория
Инструменты разработчика
- Возраст
- 4+
- Copyright
- © Obraztsov Fedor Alexandrovich
- Цена
- Бесплатно
Сайт разработчика
Поддержка приложения
Политика конфиденциальности
Поддерживается
Другие приложения этого разработчика
Вам может понравиться
JavaScript, CSS, Web Development» в Apple Podcasts
Выпусков: 278
Your weekly celebration of JavaScript and the web. This show records LIVE on Thursdays at 1pm US/Eastern time. Panelists include Jerod Santo, Feross Aboukhadijeh, Kevin Ball, Amelia Wattenberger, Nick Nisi, Divya Sasidharan, Mikeal Rogers, Chris Hiller, and Amal Hussein. Topics discussed include the web platform (Chrome, Safari, Edge, Firefox, Brave, etc), front-end frameworks (React, Ember, Angular, Vue, etc), Node.js, web animation, SVG, robotics, IoT, and much more. If JavaScript and/or the web touch your life, this show’s for you. Some people search for JSParty and can’t find the show, so now the string JSParty is in our description too.
Recreating Node.js from scratch
Recreating Node.js from scratch
Node core committer Erick Wendel joins Jerod & KBall to talk us through how he created his own JS runtime using V8, Libuv & more. Along the way we learn from his learnings, wrap our heads around the differences between Node, Bun & Deno, and talk about creating awesome content for developers… whether they like it or not!
The future of React
The future of React
Dan Abramov & Joe Savona from the React Team join Jerod & Nick for a wide-ranging discussion about React’s place in the frontend ecosystem. We cover everything from React competing with React, their responses to SPA fatigue and recent criticisms, to Server Components and the future of the framework.
Celebrating Eleventy 2.0 🎉
Celebrating Eleventy 2.0 🎉
Zach Leatherman returns to the show to discuss his progress over the last year since going full-time on Eleventy, including Eleventy 2.0, the release of WebC, and the state of static site generators.
Tauri brings Rust to the JS Party
Tauri brings Rust to the JS Party
KBall and Nick interview one of the leaders of the Tauri project about this next generation app bundling toolkit: the security, size, and performance features that make it special (and dare we say, better than Electron?), and what’s coming next.
Frontend Feud: CSS Podcast vs @keyframers
Frontend Feud: CSS Podcast vs @keyframers
Una & Adam from The CSS Podcast defend their Frontend Feud title against challengers David & Shaw from the keyframers. Let’s get it on!
Web development’s lost decade
Web development’s lost decade
Amal sits down for a one-on-one with Alex Russell, Microsoft Partner on the Edge team, and former Web Standards Tech Lead for Chrome, whose recent post, The Market for Lemons, stirred up a BIG conversation in the web development community. Have we really lost a decade in potential progress? What happened? Where do we go from here?
Отзывы покупателей
Оценок: 4
Топ подкастов в категории «Технологии»
Запуск завтра
libo/libo
Радио-Т
Umputun, Bobuk, Gray, Ksenks, Alek. sys
Lex Fridman Podcast
Lex Fridman
Podlodka Podcast
Егор Толстой, Стас Цыганов, Екатерина Петрова и Евгений Кателла
Как поступить в IT?
ФИИТ
Дизайн Такой
Никита Лакеев, Роман Нургалиев
Познакомьтесь с CKTool JS — WWDC22 — Видео
Больше видео
Узнайте, как управлять контейнерами iCloud и автоматизировать их с помощью CKTool JS. Мы покажем вам, как настроить CKTool JS для управления схемами ваших контейнеров, с легкостью изменять записи и манипулировать данными на лету. Мы также рассмотрим, как вы можете интегрировать CKTool JS в свои рабочие процессы автоматизации и инструментов.
Чтобы получить максимальную отдачу от этого занятия, мы рекомендуем ознакомиться со схемами CloudKit, JavaScript и npm.Ресурсы
Похожие видео
WWDC22
WWDC21
Скачать
— Привет! Меня зовут Кент, и я инженер в команде CloudKit. Я рад представить новую библиотеку, которую вы можете использовать для доступа к CloudKit. Сначала я расскажу, как настроить эту новую библиотеку. А затем вы узнаете, как управлять своей схемой, а также как получить доступ к пользовательским данным с помощью CKTool JS. Давай начнем! CloudKit — это технология сохранения, которая позволяет хранить данные вашего приложения в iCloud в контейнерах. Используя CloudKit в своем приложении, вы также можете поддерживать актуальность данных на всех устройствах и в Интернете.
Для создания приложений вы можете получить доступ к хранилищу iCloud с помощью инфраструктуры CloudKit на платформах Apple или CloudKit JS в Интернете. Для реализации автоматизации и инструментов Xcode предоставляет cktool для использования в macOS. И теперь у вас есть новый способ автоматизировать изменения и взаимодействовать с iCloud, используя CKTool JS.
CKTool JS позволяет выполнять те же операции, что и утилита командной строки cktool, представленная в Xcode 13, и поддерживает аналогичные варианты использования. Фактически, CKTool JS используется для реализации функций в консоли CloudKit, таких как добавление типов записей и запрос к записям.
С помощью CKTool JS вы можете управлять контейнерами приложений и выполнять операции со схемой, такие как сброс и применение обновлений к вашей схеме. Это то, что вы не могли сделать из JavaScript раньше.
CKTool JS позволяет извлекать существующие записи, используя их уникальный идентификатор или с помощью сложных запросов. И это позволяет создавать новые записи и обновлять их. CKTool JS поставляется со строгими определениями типов для TypeScript. Эти определения типов включают проверку во время компиляции, которая указывает на неправильное использование клиентской библиотеки, и позволяет выполнять автодополнение кода в поддерживаемых IDE. Благодаря этому вам будет легче редактировать код CKTool JS.
Кроме того, эта новая библиотека поставляется с поддержкой как Node.js, так и браузеров из коробки. CKTool JS распространяется в виде набора пакетов npm, что позволяет интегрировать его как часть конвейера сборки JavaScript. Это позволяет использовать такие функции, как встряхивание дерева и связывание. Вы также можете отслеживать обновления этих пакетов, потому что история их выпусков прозрачно доступна из npm.
Следующие пакеты являются частью дистрибутива CKTool JS. Обратите внимание, что эти пакеты входят в область действия @apple и следуют соглашению об использовании cktool. в начале имени. Основной пакет, который вы будете использовать, это cktool.database. Чтобы включить связь с iCloud, вам также потребуется использовать еще один пакет для вашей целевой платформы, cktool.target.nodejs для Node.js или cktool.target.browser для веб-браузеров.
cktool.database автоматически загружает еще три пакета — cktool.core, cktool.api.base и cktool.api.database. Так как CKTool JS взаимодействует напрямую с iCloud, его необходимо предварительно авторизовать. В зависимости от операции, которую вы хотите вызвать, вам потребуется либо токен управления, либо токен пользователя. Оба типа токенов можно получить из консоли CloudKit.
Маркеры управления используются для доступа к операциям управления и относятся к группе и пользователю. К таким операциям относятся включение импорта и экспорта схемы, проверка схемы и сброс контейнера в рабочую среду. Токены пользователей привязаны к командам и контейнерам и обеспечивают доступ к личным данным пользователей в этих контейнерах. Чтобы узнать, как получить эти токены авторизации, а также непрерывную интеграцию с CloudKit, ознакомьтесь с разделом «Автоматизация тестов CloudKit с помощью cktool и декларативной схемы» на WWDC21.
Каждый раз, когда вы хотите использовать CKTool JS в своих сценариях, вам сначала нужно настроить его для использования. Но прежде чем я углублюсь в настройку CKTool JS, я сделаю краткий обзор того, что составляет схему CloudKit. В CloudKit данные хранятся структурированным образом. Данные с одинаковыми значениями хранятся вместе в виде записей. Записи — это экземпляры типов записей, а свойства записи, описываемые типом записи, называются полями. В дополнение к вашим пользовательским полям CloudKit добавляет системные поля, такие как имя записи, которое является идентификатором записи. Я буду использовать примеры из приложения для сбора монет, над которым я работал. Я хочу хранить набор стран, поэтому у меня есть тип записи, описывающий, какие свойства мне нужно хранить для них. Я сохраняю имена и коды ISO и называю тип записи «Страны». Коды ISO однозначно идентифицируют страну, поэтому важно включить их в мой тип записи.
Я создаю несколько записей типа Country для хранения этой информации вместе с их именами.
У меня также есть тип записи для монет определенных стран, и я хочу связать их друг с другом. Тип записи Coins хранит отношение монеты к ее стране.
Типы записей и отношения объединяются в схему. Я могу считать текущее состояние этих элементов текущей версией моей схемы. По мере разработки приложений вы будете развивать свою схему, и в течение срока службы вашего приложения у вас, вероятно, будет несколько ее версий.
В то время как схема моего приложения описывает структуру данных, которые я хочу хранить в iCloud, контейнер моего приложения — это место, где хранятся эти данные. Контейнер имеет уникальный идентификатор и связан с командой разработчиков. При работе с CloudKit следует помнить о двух средах. Среда разработки — это безопасное место для внесения изменений, не нарушая работу пользователей. Здесь вы должны тестировать и разрабатывать изменения в вашей схеме. Когда пользователи взаимодействуют с вашим приложением, они будут взаимодействовать с производственной средой. Рабочая среда содержит оперативные данные для вашего приложения. Теперь, когда я рассмотрел, как CloudKit хранит данные, я расскажу, как настроить CKTool JS. Поскольку CKTool JS взаимодействует с iCloud, вам необходимо собрать несколько фрагментов информации, чтобы он знал, как работать с нужным контейнером, и чтобы ваш сценарий был авторизован для этого.
Вам потребуется идентификатор вашей команды и идентификатор контейнера, с которым вы хотите работать. Вам понадобится токен управления для работы со схемами, и если ваш сценарий будет получать доступ к данным, вам также понадобится токен пользователя. Все эти значения можно получить из консоли CloudKit. Вам также нужно будет указать, в какой среде, разработке или производстве будет работать ваш скрипт. В дальнейшем я буду использовать разработку в качестве примера. Каждый раз, когда вы настраиваете CKTool JS для использования, вам понадобятся эти значения. Для своих примеров я пишу скрипты для Node.js. Вы импортируете объекты и функции из CKTool JS, чтобы использовать их. В этом случае вы можете импортировать эти символы, используя операторы require CommonJS. Собрав информацию о конфигурации, вы создадите объекты для хранения этой информации. Чтобы хранить ваши токены аутентификации, вы создаете объект для хранения вашего токена управления и, если он у вас есть, вашего пользовательского токена. Поскольку teamId, containerId и environment являются общими значениями, которые передаются в CKTool JS, вы можете создать объект для хранения этих значений. Вы создаете экземпляр объекта Configuration, который сообщает CKTool JS, как взаимодействовать с iCloud, используя фабричную функцию createConfiguration. createConfiguration зависит от платформы. В этом случае он вернет соответствующую конфигурацию для Node.js, поскольку эта функция была импортирована из целевого пакета. Затем вы передаете объект конфигурации и объект безопасности, объявленный ранее, для инициализации объекта API. Объекты API содержат асинхронные методы, которые позволяют вам общаться с iCloud. Вы выполнили шаги по использованию CKTool JS в своих скриптах. Давайте узнаем, как вы можете использовать CKTool JS для управления схемой вашего контейнера. В своем приложении я хочу хранить такую информацию, как американский десятицентовик, выпущенный в 2007 году. Эта монета состоит из меди и никеля, а ее стоимость составляет 1/10 американского доллара. Подумав, как хранить эти данные, я решил хранить информацию о составе монеты в виде записей отдельно от других сведений о монете. Поэтому я сохраняю процентное содержание меди для десятицентовой монеты и процентное содержание никеля в отдельных записях.
Я определил два типа записей, которые мне нужны в схеме моего контейнера. Монеты, в которых хранится ссылка на страну, год выпуска и номинальная стоимость. И тип записи Components, в котором хранится ссылка на описываемую монету, а также материал и его процентное содержание в монете. Теперь, когда я определил схему для своего приложения, я могу создать текстовый файл на языке схемы CloudKit, чтобы описать его. Соглашение состоит в том, чтобы использовать расширение .ckdb для вашего файла схемы.
Дополнительные сведения о языке схемы CloudKit см. в статье документации «Интеграция текстовой схемы в ваш рабочий процесс».
Файл схемы, который вы создаете для своего контейнера, можно применить с помощью CKTool JS. Прежде чем применить новую схему, вы обычно сбрасываете схему разработки контейнера, чтобы она соответствовала рабочей схеме. Вы можете сделать это с помощью метода resetToProduction. Вы вызываете этот метод, передавая объект defaultArgs, который вы объявили ранее. Если ваша схема не используется в рабочей среде, все типы записей удаляются. В противном случае это вернет схему разработки в состояние производственной среды. Обратите внимание, что это асинхронный вызов, поэтому этот метод возвращает объект обещания.
CKTool JS имеет методы, позволяющие экспортировать и импортировать схему вашего контейнера. Методы exportSchema и importSchema позволяют это сделать и называются с точки зрения контейнера. Таким образом, вы загружаете схему для экспорта из контейнера с помощью exportSchema и загружаете схему для импорта в контейнер с помощью importSchema. Вместе они позволяют вам управлять эволюцией вашей схемы.
Вы можете создать функцию справки, чтобы применить схему к контейнеру. Сначала импортируйте объект File из CKTool JS, затем импортируйте модули fs и path из Node.js. Теперь определите асинхронную функцию, которая будет делать следующее: Она считывает содержимое файла схемы в буфер Node. js. Он создает экземпляр файла CKTool JS для загрузки. Наконец, он загружает содержимое файла на сервер, используя importSchema. Обратите внимание, что объект defaultArgs, объявленный ранее, передается в importSchema. Теперь вы можете собрать его вместе. Поскольку resetToProduction и вспомогательная функция, используемая для импорта схемы, являются асинхронными, необходимо убедиться, что они выполняются в правильном порядке. Для этого вы связываете обещания. В случае ошибки обещание будет отклонено. Помимо возможностей управления, которыми обладает CKTool JS, он также позволяет работать с чтением и записью данных. Значения полей, которые используются в записях CKTool JS, проверяются по типу и диапазону на стороне клиента, прежде чем они отправляются на сервер. Если переданное значение не соответствует типу значения или находится за пределами допустимого диапазона значений, будет выдано исключение. Для больших чисел, которые не могут быть представлены в JavaScript изначально, вместо них используются типы CKTool JS. Например, чтобы привести число к CKTool JS Int64, вы используете функцию toInt64. Чтобы привести число к значению Double с плавающей запятой, вы используете функцию toDouble. Если вы пишете TypeScript, компилятор отметит неправильное использование типов значений, если эти функции приведения не используются.
Значения полей в записях CKTool JS создаются с использованием функций фабрики значений полей. Для монеты, выпущенной в 2007 году, я бы передал это значение фабричной функции makeRecordFieldValue.int64, чтобы создать значение поля записи, содержащее Int64. В общем, если фабричная функция не может создать значение поля записи из переданного значения, она выдает исключение.
Здесь я создал объект для хранения общих значений, которые я отправляю методам, работающим с записями. Поскольку часто требуются containerId, environment, databaseType и zoneName, я включаю их в этот объект databaseArgs. Для запроса записей я использую метод queryRecords. Чтобы упростить задачу, я создал вспомогательную функцию, которая находит страну, соответствующую ее уникальному трехсимвольному коду ISO. В этом случае я передаю содержимое объекта databaseArgs в дополнение к телу, содержащему запрос. Для объекта запроса я указываю значение recordType, а также один объект фильтра. Объект фильтра описывает запрос, в котором isoCode3 страны равен тому, который ищет эта функция. В случае успеха коллекция найденных записей будет находиться в свойстве response.result.records. Я возвращаю первый объект из этой коллекции.
Чтобы преобразовать необработанные значения в значения полей, которые может использовать createRecord, у меня есть вспомогательная функция makeCoinFieldValues для этого. Для каждого необработанного свойства моей монеты, которое я хочу преобразовать в значения поля, я вызываю соответствующую фабричную функцию RecordFieldValue. Однако для поля страны мне нужно создать ссылку. Я использую переданное имя записи о стране, чтобы сделать ссылку из этой записи о монете на соответствующую запись о стране.
Здесь я создаю вспомогательную функцию, которая принимает значения полей записи о монетах и отправляет запрос createRecord на сервер. В этой функции я передаю содержимое базы данных, объявленное ранее, и тело. Словарь тела содержит значение типа записи и поля. В случае успеха возвращается response.result.record.
Перед вызовом вспомогательной функции мне нужно получить правильную запись страны, на которую будет ссылаться эта монета. Я использую функцию запроса страны, определенную ранее. Затем я вызываю coinCreateRecord, передавая ему словарь значений полей, созданный с помощью вспомогательной функции makeCoinFieldValues, которую я написал ранее. Необработанные значения монет передаются этой вспомогательной функции. Это асинхронно создаст запись и вернет новую запись.
Чтобы обновить запись, используйте метод updateRecord. Я создаю вспомогательную функцию, которая обновляет монету, соответствующую имени записи, с полями, переданными этому помощнику. Затем я вызываю updateRecord с содержимым объекта databaseArgs, recordName и телом, которое содержит тип записи и значения поля новой записи. В случае успеха обновленная запись будет находиться в свойстве response. result.record, которое я возвращаю из вспомогательной функции.
Чтобы обновить созданную ранее запись о монетах, я вызываю эту вспомогательную функцию, передавая имя записи и значения полей для обновления. Значения полей создаются с помощью makeCoinFieldValues.
Чтобы удалить запись, я вызываю асинхронный метод deleteRecord для объекта API. Я передаю содержимое объекта databaseArgs, а также имя записи для удаления. Надеюсь, вам понравилось знакомство с CKTool JS. Попробуйте сами: настройте CKTool JS для автоматизации и инструментов. Сбрасывайте и импортируйте свои схемы, а также читайте и записывайте свои данные с помощью JavaScript. Для использования CKTool JS в сценариях непрерывной интеграции ознакомьтесь с образцом репозитория CloudKit на GitHub. А для получения более подробной документации ознакомьтесь с CKTool JS на сайте developer.apple.com. Спасибо, что присоединились ко мне сегодня, и наслаждайтесь остальной частью WWDC22.
Ищете что-то конкретное? Введите тему выше и сразу переходите к интересным материалам.
Яблоко | NextAuth.js
Документация
https://developer.apple.com/sign-in-with-apple/get-started/
Конфигурация
https://developer.apple.com/account/resources /identifiers/list/serviceId
Опции
Apple Provider поставляется с набором параметров по умолчанию:
- Параметры Apple Provider
Вы можете переопределить любой из параметров в соответствии со своим вариантом использования.
Создание секрета
Apple требует, чтобы секрет клиента был JWT. Чтобы сгенерировать его, вы можете использовать следующий скрипт: https://bal.so/apple-gen-secret.
Для получения дополнительной информации см. документацию Apple
Затем вы можете вставить результат в свой файл .env.local
под APPLE_SECRET
, поэтому вы можете ссылаться на него из своего кода:
import AppleProvider from "next-auth/providers/apple";
. ..
провайдеров: [
AppleProvider({
clientId: process.env.APPLE_ID,
clientSecret: process.env.APPLE_SECRET
})
]
...
TeamID расположен вверху справа после вход в систему.
KeyID находится после создания ключа. Ищите его перед загрузкой файла k8.
Тестирование на сервере разработки
Apple требует, чтобы все сайты работали по протоколу HTTPS (включая локальные экземпляры разработки).
Apple не разрешает использовать localhost в доменах или поддоменах.
Разрешение имени хоста
Отредактируйте файл хоста и укажите адрес своего сайта 127.0.0.1
.
Linux/macOS
echo '127.0.0.1 dev.example.com' | sudo tee -a /etc/hosts
Windows (запустите PowerShell от имени администратора)
Add-Content -Path C:\Windows\System32\drivers\etc\hosts -Value "127.0.0.1 dev.example.com "-сила
Дополнительная информация: Как отредактировать мой хост-файл?
Создать сертификат
Создать каталог сертификатов
и добавить файлы сертификатов localhost. key
и localhost.crt
, которые вы создаете с помощью OpenSSL:
Linux/macOS
-newkey rsa:2048 -nodes -sha256 \
-subj «/CN=localhost» -extensions EXT -config <( \
printf «[dn]\nCN=localhost\n [req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth»)
Windows
Исполняемый файл OpenSSL распространяется с Git для Windows. После установки вы найдете файл openssl.exe в C:\Program Files\Git\mingw64\bin
, который вы можете добавить в системную переменную среды PATH, если это еще не сделано.
Добавить переменную среды OPENSSL_CONF=C:\Program Files\Git\mingw64\ssl\openssl.cnf
req -x509 -out localhost.crt -keyout localhost.key \
-newkey rsa:2048 -nodes -sha256 \
-subj "/CN=localhost"
Развертывание на сервере
Вы можете создать server.