1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/sword-code-practice-app

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Решения задач "Инструмент для указывания"

Инструмент для решения задач в сфере интернет-технологий, который поможет вам получить желаемую работу.
Просто решайте задачи | Без рекламы и платных услуг | Индивидуальные рекомендации | Автоматическая отправка задач каждый день | Многомерные знания в различных областях


Проект зародился как GitHub-репозиторий под названием Фронтенд-знания ежедневно 3+1. Этот замечательный проект с задачами послужил основой для создания нашего агрегированного репозитория задач. В нашем сообществе программистов большинство участников повышают свои навыки через решение задач, включая алгоритмы, бизнес-задачи и софт-скиллы. Однако, из-за различий в наших средах и акцентах, мы сталкиваемся с разными задачами. На рынке крайне мало проектов, которые предлагают агрегированный набор задач для разных сообществ. Проект "Решения задач 'Инструмент для указывания'" является отличным инструментом для этого.

Открытый и бесплатный проект, пожалуйста, следите за нашими новостями и репозиторием

沈昊Seho/InternetQuestionBank
Github — звезда проекта, выберите последнюю ветку при клонировании Dcloud — поддержите нас на рынке плагинов

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

Нажмите здесь, чтобы присоединиться к QQ-чату/DingDing-чату

Оглавление- Официальный сайт

  1. Объединяет лучшие открытые задачи; приложение для решения задач основано на технологии сообщества.
  2. В зависимости от ваших интересов будут отправлены актуальные задачи, вы больше не столкнетесь с бесполезными задачами.
  3. Мы связали приложение с WeChat сервисным номером, который ежедневно отправляет вам новые задачи, позволяя начинать новый активный день каждое утро.
  4. Приложение для решения задач без рекламы, без жёсткого продвижения, все доходы происходят через спонсорство/трафик официального сайта.
  5. У нас есть ещё много интересных возможностей для развития, таких как режим "мастер берёт новичков"; также мы планируем открыть каналы для университетов/корпораций, чтобы каждый студент/сотрудник мог повышать свои навыки в любое время.
  6. Проект открытых решений задач, от прототипов до мини-приложений, UI-диаграммы, UML, документация API, руководства по интеграции сторонних API, руководства по использованию — всё это будет доступно бесплатно, добро пожаловать к переиспользованию всем коллегам, чтобы сделать этот рынок лучше, мы будем помогать вам решать проблемы в области технологии.

Стек технологий

UML диаграммы

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

Диаграмма облачной службы/функциональной архитектуры

Классовая диаграмма основной базы данных

Получение задач

Дополнительно

Дополнительные материалы доступны здесь out/doc или Yuque-UML.

Обзор дизайна

Исходные файлы дизайна доступны здесь: Скачайте последнюю версию схемы. Примеры прототипов доступны онлайн: Просмотреть, если ссылка недействительна, свяжитесь с нами.# Проектирование API (разделение чтения и записи)

Разделение ответственностей чтения и записи (CQRS) — это модель, которая использует отдельные интерфейсы для запросов (queries) и команд (commands) данных. Uniapp's Unicloud действительно удобен, особенно его jql, который значительно улучшает опыт работы с базой данных для фронтенд-разработчиков. Однако мы используем CQRS, чтобы не использовать эти уже хорошо упакованные API.

  • Для чтения данных используется jql
  • Для записи используются облачные функции

Например, чтение списка данных:

const db = uniCloud.database();
const databaseName = 'testInit';
// Получаем список тестовых данных
export function getTestList() {
  return new Promise((resolve) => {
    db.collection(databaseName)
      .get()
      .then((res) => {
        // res - результат запроса к базе данных
        resolve(res);
      })
      .catch((err) => {
        // err.message - сообщение об ошибке
        // err.code - код ошибки
      });
  });
}

Мы выделили такие файлы в отдельные модули запросов, каждый из которых соответствует одной таблице данных (в данном случае это testInit). Все эти модули находятся внутри папки API.

Vue страницы будут вызывать данные таким образом, чтобы слой запросов API выполнял необходимую обработку данных, обеспечивая чистые данные для прямого использования Vue.```js import { getTestList } from "../../api/test"; const data = getTestList();


Запись данных будет осуществляться через HTTP-вызов облачной функции. Единственным отличием является то, что мы переопределили концепцию облачной функции как версию интерфейса.

В ходе нашего начального технического исследования было установлено, что официальный Uni не предоставляет пользователям фреймворка для разработки облачных функций. Однако мы нашли фреймворк под названием `explain`, который можно использовать для быстрой реализации облачных функций с RESTful стилем маршрутов [фреймворк для быстрого создания облачных функций Uni](https://ext.dcloud.net.cn/plugin?id=3312).

С версии v1.1.0 серверная часть была перестроена, используя TypeScript для проверки типов входных данных вместо наших собственных методов проверки параметров.

```js
import * as explain from 'explain';
import articleService from '../service/article';
import * as IArticle from '../../proto/article';

export = class ArticleController extends explain.service {
  private service: articleService;
  constructor(e: CloudData) {
    super(e);
    this.service = new articleService(this);
  }
  /**
   * @name Добавление/публикация статьи
   * @param IArticle.AddArticle
   * @return {*}  {Promise<unknown>}
   * @link https://www.yuque.com/mlgrgm/lmm8g4/kif3lf#g13V0
   * @memberof ArticleController
   */
  async addArticle(): Promise<unknown> {
    return await this.service.addArticle(this.event.data as IArticle.AddArticle);
  }
};

Вызов этой облачной функции с клиента:

await request({
  route: `api/article`,
  method: 'POST',
  data: params,
  checkLogin: true
});
```Для получения более подробной информации об API, обратитесь к нашей [документации по API](https://www.yuque.com/mlgrgm/lmm8g4/bgxcw3)

# Открытый API (OpenAPI) является новым содержанием в версиях 1.0.9 и выше. Мы выносим часть облачных функций за пределы системы, что позволяет пользователям получать свои уникальные общедоступные API через систему управления **[backend management system]**. Для каждого пользователя OpenAPI предоставляется бесплатно, но в настоящее время существует ограничение на количество вызовов в месяц. Начальная ежемесячная квота составляет 200 вызовов, которая обнуляется каждый месяц. По мере увеличения количества пользователей лимит вызовов также будет повышаться.

<img src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/cc4c191c-5306-4123-adfe-a4bd916bc3b8.jpg">

На изображении видно, что openapi и coreapi являются двумя облачными функциями. Основной целью является сохранение закрытости coreapi. Openapi связан с таблицей данных openapi, в которой определены несколько API для разработки, содержащие поля name, remark, info и т.д., которые представляют различные данные API. В административной панели администратор может контролировать эти API.Программа решения задач "剑指题解" использует постоянные токены, что является очень небезопасным. После версии 1.0 планируется ввести ограничение сроков действия токена. Двухфакторная аутентификация для OpenAPI состоит из токена и API ID; токен является постоянным (кроме случаев выхода из аккаунта в приложении, когда он уничтожается). В административной панели управления мы предоставили удобную кнопку «Копировать общие API», которая позволяет выполнять запросы согласно документации.

Программа решения задач "Решение указывающих задач" использует постоянные токены, что является очень небезопасным. После версии 1.0 планируется ввести ограничение сроков действия токена. Двухфакторная аутентификация для OpenAPI состоит из токена и API ID; токен является постоянным (кроме случаев выхода из аккаунта в приложении, когда он уничтожается). В административной панели управления мы предоставили удобную кнопку «Копировать общие API», которая позволяет выполнять запросы согласно документации.[Просмотреть документацию по общим API](https://www.yuque.com/mlgrgm/lmm8g4/axpewl)

## Административная панель управления

Роль административной панели управления включает: администратора, обычного пользователя, проверенного модератора (имеющего права публикации). Версия находится в процессе доработки. Она также использует unicloud для быстрого развития. При чтении данных мы не используем JQL, а вместо этого отрисовываем компонент client-db прямо на странице.

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

О том, как пользователи с существующими учетными записями WeChat Mini Programs могут войти в административную панель управления: [Перейти к этому документу](https://www.yuque.com/mlgrgm/lmm8g4/pg6t14)
Административная панель управления: http://sword.admin.yinzhuoei.com/#/pages/login/login
Исходный код: https://github.com/swordCodePractice/swordUserAdmin

# Авторы и участники проекта

Благодарю всех участников за вклад в этот замечательный проект.|![1018715564](https://avatars1.githubusercontent.com/u/35763284?s=460&u=018d91407ac17ac3b6abbd16cdca5b080b385b32&v=4)| ![maruichao52](https://avatars0.githubusercontent.com/u/41415464?s=460&u=4e8e3f255ba143921d7eb3489cdb1be0ee4cbf4c&v=4)|
|---|---|

Если вы хотите присоединиться к нашей очереди участников, [пожалуйста, свяжитесь с нами, здесь также есть информация о наших вкладчиках, которая может вам помочь](https://www.yuque.com/u509950/lmm8g4/bw6hgz).

- [@Seho: Отвечает за разработку фронтенда и бэкенда, продукт-дизайн, проведение маркетинговых исследований продуктов и поддержание сообщества](https://github.com/1018715564)
- [@maruichao52: Отвечает за разработку бэкенда, анализ данных бэкенда и поддержание сообщества](https://github.com/maruichao52)
- [@Maria ^敏: Отвечает за дизайн APPUI и других материалов, связанных с рекламой, если вас интересует сотрудничество в области дизайна, пожалуйста, свяжитесь со мной через WeChat: P309033661, укажите: 设计合作]

# Открытые материалы

- [Yuque](https://www.yuque.com/books/share/7825dfb4-e7d2-403a-b462-21eaf9d3017e?#)
- [Mockplus — продукт-дизайн, для получения прототипов обратитесь @seho](https://app.mockplus.cn/s/ceKIIx7cyes)

# Партнеры по банку вопросов

- [Frontend Interview 3+1 Open Question Bank](https://github.com/haizlin/fe-interview)
- [Guide's Java Question Bank](https://github.com/Snailclimb/JavaGuide)
- [Dada Frontend](https://github.com/webVueBlog/interview-answer)
- [Ling Feng-phpQ&A](https://github.com/colinlet/PHP-Interview-QA)
- [Best Practices for PHP Interviews in China](https://github.com/wudi/PHP-Interview-Best-Practices-in-China)

# Исходный код управления системой администрирования мобильного приложения- [Скачивание DCloud плагин рынка](https://ext.dcloud.net.cn/plugin?id=5404)
- [GitHub скачивание](https://github.com/swordCodePractice/swordUserAdmin/tree/master)

# Группы QQ и DingTalk

<div style="display: flex; justify-content: flex-start;">
<img width="30%" src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/6f5b6587-8efe-400f-8fcb-f277892a9854.png"/>
<img width="32%" src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/309debe7-7f2a-47ae-a415-875e5b1f4922.jpg"/>
</div>

Другие способы связи с нами: [Свяжитесь с нами](https://www.yuque.com/docs/share/92cb643e-b6a4-4dd9-8cb4-224556e4ccef)

# Дружественные открытые проекты

<table>
<tbody>
<tr>
<td style="text-align: center;">
<a target="_blank" href="https://ext.dcloud.net.cn/plugin?id=271">
<img width="80px" style="margin-top: 15px;" src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/7ede4b51-1574-49b9-a84d-0ad8b8bf65a8.jpeg"/>
</a>
<p style="font-size: 14px;">Qiuyun ucharts кросс-платформенная графическая библиотека</p>
</td>
</tr>
</tbody>
</table>

# Лицензия

Apache License © Решение задач из剑指题解

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Специально созданный для интернет-пользователей инструмент для решения задач — с ним работа в радость. Развернуть Свернуть
Apache-2.0
Отмена

Обновления (5)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/sword-code-practice-app.git
git@api.gitlife.ru:oschina-mirror/sword-code-practice-app.git
oschina-mirror
sword-code-practice-app
sword-code-practice-app
master