zoukankan      html  css  js  c++  java
  • 技术规格说明书

    技术规格说明书

    项目 内容
    课程:北航-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 实现响应的数据绑定和组合的视图组件,且具有以下特性:

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

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

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

    界面和实现的分离

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

    • 前端

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

    • 后端

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

    应对变化的灵活性

    页面扁平化管理

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

    统一的设计格式

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

    数据库的独立性

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

  • 相关阅读:
    从零打造树莓派智能助手(一)——让树莓派说话
    以np.concatenate为主题,谈谈numpy数组按维度合并的问题
    树莓派apt报错:E: 'Release' 这个值对 APT::Default-Release 是无效的,因为在源里找不到这样的发行
    我遇到的一些Git问题汇编
    在Mac平台用Sublime编辑器使用Git并连接github
    LeetCode108——Convert Sorted Array to Binary Search Tree
    LeetCode122——Best Time to Buy and Sell Stock II
    LeetCode686——Repeated String Match
    Python爬虫 — 百度翻译
    HTTP 协议
  • 原文地址:https://www.cnblogs.com/GOOD-CODEING-BUAA-SE/p/12662729.html
Copyright © 2011-2022 走看看