ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

技术规格说明书

2020-04-08 21:02:30  阅读:283  来源: 互联网

标签:标签 技术 用户 规格 说明书 user exp id 表情


技术规格说明书

项目 内容
课程:北航-2020-春-软件工程 博客园班级博客
作业要求 技术规格说明书
我们在这个课程的目标是 提升团队管理及合作能力,实践软件工程开发
这个作业在哪个具体方面帮助我们实现目标 介绍团队项目,定义项目技术规格和相关特性

产品概述

这是一个基于聊天软件一个表情管理小程序。我们提供了以下功能:管理自己的表情,搜索查找平台上的表情,识别表情并分组,制作表情。

技术栈

本节将详细介绍本项目开发的技术栈结构。

前端框架

  • 底部设置tabBar导航栏,设置3-5个tab来与主要功能页面一一对应。
  • 目前与tabBar绑定的功能页面为:主页,自动推荐表情、提供搜索功能、分类显示表情;本地管理页面,通过用户授权访问本机相册、提供上传与下载功能;商店页面,显示用户信息、金币系统管理、创作激励模块。
  • 另设若干页面,实现细分功能。以上述与tabBar绑定的页面之中的功能按钮、图片等组件为入口,跳转到细分功能页面,实现查看图片、编辑图片、查看收藏等具体功能。

后端框架

首先对用户模型,表情模型,标签模型在云数据库上来建立相应的数据库集合,然后利用云函数实现对于数据库集合的相关操作(增,删,查,改等),提供相应的功能接口给前端使用。

数据库

主要建立用户,表情和标签三大类集合,集合的每个单独的数据都有唯一的id辨识符,每个用户拥有自己所收藏表情的容器,每个表情有其对应的描述以及对应标签,每个标签包含其名称(字符串)。

云环境

当前云环境:小程序云开发所提供的云环境,提供大量服务于小程序的深度包装的API接口,且仅能在小程序中使用。

后期的机器学习

  • 引导用户输入描述一个表情的文本。
  • 通过分词提取该文本中的标签。
  • 引导用户根据这些标签评分。
  • 最终得到表情关于每个标签的权重

接口规格(暂定)

用户相关请求

# 用途 请求方法 返回信息
1 通过用户信息获取用户id
2 通过用户id获取用户的表情库 user_id images[]
3 给用户添加表情 user_id,exp_id success
4 给用户删除表情 user_id,exp_id success
5 展示特定用户的所有收藏表情 user_id images[]

表情相关请求

# 用途 请求方法 返回信息
1 通过表情id获取url user_id str
2 上传表情文件并分配id 客户端所选择的image exp_id
3 给用户添加表情 user_id,exp_id success
4 给用户删除表情 user_id,exp_id success
5 给表情标签添加权重 user_id,weight success

标签相关请求

# 用途 请求方法 返回信息
1 给所用表情增加标签 tag success
2 通过一个标签获取相关表情 tag exp_id[]
3 通过一组标签获取相关表情 tag exp_id[]
4 给特定的表情添加标签 exp_id,tag success
5 给特定的用户,特定的表情添加标签 exp_id,user_id,tag success

抽象&模块化

开发软件时,为了减少工作量、防止过度冗余,这就需要我们把代码封装起来,实现"抽象化"、"模块化";

1.分层,我们的软件结构遵循经典的三层模型(展现层、逻辑层、数据层),每一层主要关注本层相关的信息,简化了整个系统的设计;

2.每个函数只负责一个任务,符合单一职责原则,做好抽象、模块化;

3.争取实现开放封闭原则,当需求改变时,可以扩展模块以满足新的需求(开放);扩展时,不需要修改原模块(封闭);

4.在编程之前,做好技术说明书,针对每个任务、函数,定义好各个框架之间的输入、输出关系,实现模块化编程,既便于分工,又便于调试、编写。

海量数据适应性

  • 存储

    对象存储(COS):能够存储海量数据的分布式存储服务,用户可随时通过互联网对大量数据进行批量存储和处理;利于共享且存储读写快。

  • 加载

    内容分发网络(CDN):提供的静态内容(如网页样式、图片、小文件)加速分发处理能力,极大地缩减了站点响应时间,实现复杂内容快速加载。

信息封装和隐藏

只提供必要入口。

  • 前端 微信小程序前端框架

    与React,Vue相似,通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件,且具有以下特性:

    • 打包后进行审核发布;
    • 具有全套的开发工具。
  • 后端 面向对象

    采用面向对象的思想,对于外部只提供对应访问和修改的接口:

    • 敏感数据设置私有方法;
    • 给予公开函数修改和访问指定数据。

界面和实现的分离

为方便团队进行分工,实现界面和实现(前后端)分离。

  • 前端

    提出需求,与后端结合设定接口。

  • 后端

    设计算法及功能实现,简单编写前端界面方便交接时展示功能。

应对变化的灵活性

页面扁平化管理

所有的页面都放在一个文件夹中,通过路径管理,因此增删页面非常方便。

统一的设计格式

界面设计格式同一设计,保证了更改的灵活性和设计的统一性。

数据库的独立性

单独的云函数,同一个后台更新这些云函数,和前端无关

标签:标签,技术,用户,规格,说明书,user,exp,id,表情
来源: https://www.cnblogs.com/GOOD-CODEING-BUAA-SE/p/12662729.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有