展开

关键词

首页关键词功能设计

功能设计

相关内容

云服务器

云服务器

腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。
  • QQ Mac版 Touch Bar功能设计

    方案设计 我们选取了几个典型场景来进行Touch Bar的功能设计。 1.通用场景通用场景是指主面板无焦点的场景,比如刚登陆时。
    来自:
    浏览:343
  • 跨境电商海外仓:WMS的出库功能设计

    前言上一篇和大家分享了海外仓WMS的入库功能设计的一些细节和容易踩坑的点,今天这篇接着上文,继续来谈谈关于出库功能的设计有哪些需要注意的细节和坑。海外仓出库对效率要求很高,很多时候系统功能设计的差异会对操作的效率影响巨大。
    来自:
    浏览:473
  • 广告
    关闭

    云+社区杂货摊第四季上线啦~

    攒云+值,TOP 100 必得云+社区定制视频礼盒

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到
  • 小程序·云开发

    例如电商秒杀活动 直播节目实时投票等 在一瞬间内涌入海量用户 借助云开发弹性伸缩的计算能力 为应用保驾护航 创造营 直播互动 基于云开发搭建线上发布会互动系统 实现活动议程管理 抽奖活动发布等场景的功能设计例如电商秒杀活动 直播节目实时投票等 在一瞬间内涌入海量用户 借助云开发弹性伸缩的计算能力 为应用保驾护航 创造营 直播互动 基于云开发搭建线上发布会互动系统 实现活动议程管理 抽奖活动发布等场景的功能设计
    来自:
  • 标准与认证

    现已代表腾讯云云数据库通过多项国家或国际认证,包括但不限于: 软件著作权ISO22301认证ISO27001认证ISO20000认证ISO9001认证可信云服务认证信息安全等级保护STAR认证 MariaDB 部分功能设计标准参考
    来自:
  • 微服务架构:搭建网站扫码登录的功能设计

    模块功能设计根据《微服务架构:如何用十步解耦你的系统?》
    来自:
    浏览:290
  • 服务概述

    了解漏洞代码原理代码审计重点关注代码中是否存在功能设计不合理问题,发现风险代码后,还可提供相应的安全开发经验作为参考。
    来自:
  • 后台 配置页面功能设计

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https:blog.csdn.netu011415782articledetails71750893 背景: 每个网站开发中,多多少少会需要一些默认的配置项,相对而言一条条的手动添加是极为繁琐的,要分类各种图片、文字、文件、单选、多选按钮等,在此提供一种设计思路,记不清从哪里参考而来的,个人认为比较方便,也有很大的扩展性... 一.数据库设计 1.数据库设计截图 ? 2.数据库SQL创建语句 CREATE TABLE `xx_conf` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ID标记, `tag` varchar(20) DEFAULT NULL COMMENT 缩写标签, `title` varchar(50) DEFAULT NULL COMMENT 配置项标题, `value` text COMMENT 配置项的 取值, `type` varchar(20) DEFAULT NULL COMMENT 类型, `tip` varchar(50) DEFAULT NULL COMMENT 配置项提示信息, `sort` int(11) DEFAULT NULL COMMENT 排序, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; 3.数据库信息参考 ?二.前端设计 1.添加页面展示 ?? 2.核心代码参考 ?三.后台代码设计 1.ConfigController.class.php 代码 private $confModel; public function __construct() { parent::__construct(); $this->confModel = new ConfModel(); } ** * 基本配置界面 * public function index(){ if(IS_POST){ $updateTag = $this->confModel->updateConfData(); if($updateTag){ $this->success(修改成功,U(Configindex),2); }else{ $this->error(修改失败,U(Configindex),2); } }else{ $confData = $this->confModel->getConfData(); $this->assign(confData,$confData); $this->display(); } } ** * 配置项的添加 * public function add(){ $tag = $this->confModel->addConfigData(); if ($tag){ $content = 配置项添加成功; }else{ $content = 配置项添加失败; } $this->success($content,U(Configindex),1); } 2.ConfModel类内部核心代码参考 注意一点,对于如下关于图片上传的代码,请参考上一篇文章的介绍,涉及到的主要代码都可以直接参考,此处不做赘述。 public function addConfigData(){ $postData = $_POST; $tag = $this->db_conf_mi ->add($postData); return $tag; } ** * 更新配置信息 * public function updateConfData(){ $postData = $_POST; foreach ($postData as $key => $value){ $save = array( value => $value, ); $this->db_conf_mi ->where(tag = .$key.) ->save($save); } file文件数据更新 foreach ($_FILES as $key => $value){ $img = handleImg($key); $furl = C(REMOTE_ROOT).$img; if ($img){ ftp_upload($furl,$img); $saveData = $img; $this->db_conf_mi ->where(tag = .$key.) ->save($saveData); } } return 1; } 四.实现效果截图 ? ?五.附录 1.补录 可建议自行添加配置项排序功能 如果时间允许,建议将不同类型的配置项进行剥离处理,方便统一页面设计,美观适用性增强。 2.源代码下载 >>>
    来自:
    浏览:1971
  • 振兴杯试题功能设计(准备)

    ## 前言 ## 我会根据自己所掌握的知识 尽量从基础开始一步步实现整个比赛试题功能,这会是一个漫长的过程,为了帮助学院新鲜血液能过通过实际项目一步步掌握相关知识,我会不断将整个过程更新在该bolg里,也许会有知难而退的人,但我相信也有想努力拼搏的人。 因为我也没有完全掌握试题所涵盖的知识层面,如有补充或者建议欢迎评论留言,我会及时更正。 该文章主要讲解tomcat的准备 和eclipse的配置 以及基本语法的使用。 实现一个不需要数据库简易的登陆界面。 整个过程思路都是依据个人分析(见:第15届振兴杯题目分析(一))准备工eclipsetomcat(我使用的是9.0版本)jdk环境变量和eclipse安装稍后会发布一个视频进行描述tomcat下载:点我下载1.打开apache-tomcat-9.0.26 将文件解压至一个方便找到的目录(推荐解压至除C盘的其他盘)就比如安装在D盘,那就解压出来放在D盘下就行,里面的文件名不要改动,或者放在D盘某一文件夹下,路径不要包含中文和特殊字符! ?2.右键我的电脑(or此电脑),点击属性,高级系统设置,高级,环境变量然后点新建(注意是系统变量里的新建)如图所示:?特别注意:在变量值中填写路径;路径就是你解压后Tomcat的文件夹路径,就如上述,那么路径就是: D:apache-tomcat-9.0.26若解压到了其他盘符,如C盘,那就是 C:apache-tomcat-9.0.26放在了某个文件夹下那路径就是 :盘符: 某文件夹 解压后的tomcat整体文件夹(这里是apache-tomcat-9.0.26,看看你解压的文件夹名是什么)千万别整错了!!!!!!!(感觉自己好啰嗦,这是和小白说的,新手配置要注意了)好了,现在点击这个确定,就添加进去了?之后再找到系统变量中的Path(不要说没有,好好找找,绝对有)?之后再点击编辑文本?如图,在最后面追加 %CATALINA_HOME%bin;(小提示:你可以直接按电脑上的 End 键 到最后)分号结尾,第一个%前面若没有分号,请手动打上去分号,分号是英文状态下输入的,特别注意 ? 然后点确定退出(一直点不要直接关闭窗口) 最后打开你的tomcat文件夹进入bin目录找到startup.bat双击运行如果出现如下图所示信息tomcat就配置成功了?eclipse安装web插件(这里提供网上步骤照做就行):传送门安装完成之后就可以进行Java Web项目的开发了新建我的第一个项目关闭eclipse的欢迎界面点击左上角File,New,Project,在输入框输入WEB,点击Dynamic Web Project?在Project Name后输入项目名字(随便写,我们就写一个test)请检查一下窗口中其他地方信息是否与图中相同项目创建完毕后可在左侧导航栏找到该项目,打开是这样的 ?WebConent下是我们放文件的地方,右键Webconet,New,File,在FileName后输入index.jsp完成创建到了这一步 接下来可以敲代码了,但是我们还没有将tomcat服务器部署至eclipse中,先部署一下tomcat服务器点击顶部导航栏的window按钮,点击preferences在窗口中找到Sever并点击,再点击Runtime Enivronments ,点击Add ?选择tomcat9.0 点击finish,再点击apply and Close部署完成了,通过左侧导航栏找到index.jsp将编码改为utf-8 login 将代码写入 中先讲解一下要用到的几个代码 form 标签用于为用户输入创建 HTML 表单。 表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。 表单还可以包含 menus、textarea、fieldset、legend 和 label 元素。 表单用于向服务器传输数据。 标签用于搜集用户信息。 根据不同的 type 属性值,输入字段拥有很多种形式。输入字段可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等等如果你看到里不懂没关系,我抽空会录制视频对代码进行针对性讲解先不追求美观,写入以下代码 login 用户名:密码: 一个很简单的初始界面就制作完毕了,最后右键代码部分点击 Run As运行程序看看 总结配置及部署tomcat编写第一个Jsp程序制作简单的登陆界面
    来自:
    浏览:126
  • 点赞功能设计与实现

    点赞业务本身并不复杂,无非是对数据的update,但是点赞本身是无意识行为,并且同一个用户可对博文进行点赞取消点赞,如果直接操作数据库,无疑会增加数据库io操作。 方案:缓存+异步推送 缓存+定时任务优点:降低对数据库的操作提高点赞的效率缺点:redis挂掉,或者mq延迟使数据库数据与redis数据不一致(正在发生)解决方案:定时同步redis与数据库数据丢失数据解决方案:MQ挂掉,不解决 ?数据库设计 CREATE TABLE `user_thumb` ( `like_detail_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 点赞信息ID, `info_id` bigint(8) DEFAULT NULL COMMENT 图文ID, `like_create_time` datetime(0) DEFAULT NULL COMMENT 时间, `like_user_id` bigint(8) DEFAULT NULL COMMENT 点赞人ID, PRIMARY KEY (`like_detail_id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 点赞记录表 ROW_FORMAT = Dynamic; 实现思路1.方案一redis数据结构采用hash或者set都可,前缀自定义,后缀使用图文消息的id key-value------>{“prefix:图文id” : “用户id”}2.大key类型拆分 即便是一万用户,频繁操作最大值也是非常大的,对key进行hash取值, String key = RedisConstants.getLike(infoId%6);boolean flag = redisService.isMember(key, userId); 3.是否点赞枚举,1:点赞,2:取消点赞 public enum ThumbEnum { THUMB(1,点赞), CANCELTHUMB(2,取消点赞), private String MessageName; private Integer type; public String getType(Integer type) { return type; } public void setMessageName(String messageName) { MessageName = messageName; } ThumbEnum(String messageName) { MessageName = messageName; }} 4.接口实现根据是否存在key判断是点赞还是取消点赞,所以接口写一个即可 Json thumbOrCancel(Long infoId,Long userId);impl String key = RedisConstants.getLike(infoId.toString()); String userIdstr = userId.toString(); 是否已经点过赞 boolean flag = jedisService.isMember(key, userIdstr); ThumbVo vo = ThumbVo.builder() .infoId(infoId) .likeCreateTime(new Date()) .userId(userId) .build(); Map map = new HashMap(); if (flag) { 已点过赞则为取消赞操作 redisService.srem(key, userIdStr); vo.setType(2);1点赞2取消赞 map.put(isLike, 1);1未点赞2已点赞 } else { 记录点赞用户 redisService.sadd(key, userIdStr); vo.setType(1); map.put(isLike, 2); } 发送消息 userThumbProducer.senduserThumbUp(vo); resultMap.put(likeCount, redisService.scard(key)); return Json.newInstance(resultMap);mq异步去消费调用数据库即可,如果做定时任务去查redis是否有数据,持久化到mysql。 按理说读取与写操作应该分为两个redis,但是点赞统计的是评论数,大key进行拆分后,无需对其读写分离。
    来自:
    浏览:969
  • 误码检测单元的功能设计

    来自:
    浏览:97
  • 高并发下收藏功能设计

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https:blog.csdn.netqq_32534855articledetails101678077 最近公司要做个文章收藏功能,说说自己的想法问题:用户可能频繁点击收藏按钮(防止连点)频繁点击(收藏,不收藏)按钮高并发下触发设计: 接口前添加限流方案,推荐通过用户id限流。1秒可执行2条左右。然后客户端显示(收藏成功,收藏失败)。防止用户快速点击 存储记录前用redis拦截一下。判断是否收藏过具体做法 用redis的set结构,缓存key=cache:key:+数据id判断是否收藏过用sismember方法。sismember(key,用户id)如果sismember返回的true,说明收藏过。然后去查询该记录,并删除。反之新增 如果设计2想再快点。就可以在查询数据库的中间添加消息队列等
    来自:
    浏览:380
  • 商品SKU功能设计与优化

    商品的SPU和SKU 首先我们来了解下商品SPU和SKU的概念,可能很多没有接触过电商的朋友都不了解。SPU(Standard Product Unit ):指的是标准商品单位,商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个商品的特性;SKU(Stock Keeping Unit):库存量单位,是物理上不可分割的最小存货单元。举个例子:比如说现在有个手机商品叫小米8,小米8有不同的属性,比如有它有黑色和蓝色的,有32G和64G版本的。此时小米8就是一个SPU,而小米8黑色64G就是一个SKU。?商品的SKU设计 以前的设计商品的SKU信息是存储在pms_sku_stock表中的,使用sp1、sp2、sp3这三个属性来存储商品的销售属性,这样做很不灵活,也难以扩展。?这种做法也带来了后续的问题,比如我们的购物车和订单都会需要存储销售属性,这样的话都会需要添加sp1、sp2、sp3的属性。??改进后的设计由于商品的销售属性是动态的,没法确定到底有多少个,此时我们可以改用JSON格式来存储,在pms_sku_stock表中添加了sp_data字段。?sp_data存储的就是一个JSON数组,比如颜色为黑色,容量为32G的手机存储信息如下。这样修改以后,在原来的购物车表oms_cart_item和订单商品表oms_order_item中就都可以用JSON格式来存储销售属性了,使用的是product_attr字段。商品关联SKU的修改 以前的做法商品的SKU信息作为商品的关联信息,在修改商品信息时会同时进行修改。以前的做法是直接删除该商品的所有SKU信息,再重新添加。这样就会导致商品SKU中的ID被修改,由于在购物车和订单商品中关联了商品SKU的ID,就会导致原来的ID失效的问题。下面是原来修改商品中SKU信息的代码。** * 商品管理Service实现类 * Created by macro on 2018426. *@Servicepublic class PmsProductServiceImpl implements PmsProductService { @Override public int update(Long id, PmsProductParam productParam) { 省略若干代码... 删除该商品关联的SKU PmsSkuStockExample skuStockExample = new PmsSkuStockExample(); skuStockExample.createCriteria().andProductIdEqualTo(id); skuStockMapper.deleteByExample(skuStockExample); handleSkuStockCode(productParam.getSkuStockList(),id); 插入传入的所有SKU relateAndInsertList(skuStockDao, productParam.getSkuStockList(), id); }}改进后的做法首先我们需要和前端约定下,新增的商品SKU信息不传ID,要修改的商品SKU信息传ID,删除的直接不传SKU信息。然后我们可以根据传入的SKU信息来确定需要新增、修改、删除的SKU信息,这样就可以做到在更新商品SKU信息时,不改变原来商品SKU的ID了,具体流程如下。?具体代码实现如下:** * 商品管理Service实现类 * Created by macro on 2018426. *@Servicepublic class PmsProductServiceImpl implements PmsProductService { private void handleUpdateSkuStockList(Long id, PmsProductParam productParam) { 当前的sku信息 List currSkuList = productParam.getSkuStockList(); 当前没有sku直接删除 if(CollUtil.isEmpty(currSkuList)){ PmsSkuStockExample skuStockExample = new PmsSkuStockExample(); skuStockExample.createCriteria().andProductIdEqualTo(id); skuStockMapper.deleteByExample(skuStockExample); return; } 获取初始sku信息 PmsSkuStockExample skuStockExample = new PmsSkuStockExample(); skuStockExample.createCriteria().andProductIdEqualTo(id); List oriStuList = skuStockMapper.selectByExample(skuStockExample); 获取新增sku信息 List insertSkuList = currSkuList.stream().filter(item->item.getId()==null).collect(Collectors.toList()); 获取需要更新的sku信息 List updateSkuList = currSkuList.stream().filter(item->item.getId()!=null).collect(Collectors.toList()); List updateSkuIds = updateSkuList.stream().map(PmsSkuStock::getId).collect(Collectors.toList()); 获取需要删除的sku信息 List removeSkuList = oriStuList.stream().filter(item-> !updateSkuIds.contains(item.getId())).collect(Collectors.toList()); handleSkuStockCode(insertSkuList,id); handleSkuStockCode(updateSkuList,id); 新增sku if(CollUtil.isNotEmpty(insertSkuList)){ relateAndInsertList(skuStockDao, insertSkuList, id); } 删除sku if(CollUtil.isNotEmpty(removeSkuList)){ List removeSkuIds = removeSkuList.stream().map(PmsSkuStock::getId).collect(Collectors.toList()); PmsSkuStockExample removeExample = new PmsSkuStockExample(); removeExample.createCriteria().andIdIn(removeSkuIds); skuStockMapper.deleteByExample(removeExample); } 修改sku if(CollUtil.isNotEmpty(updateSkuList)){ for (PmsSkuStock pmsSkuStock : updateSkuList) { skuStockMapper.updateByPrimaryKeySelective(pmsSkuStock); } } }}总结 如果我们要在数据库中存储一些格式不固定的属性时,可以采用JSON的形式进行存储。对于关联属性的修改,可以通过一些逻辑操作来实现不改变原有ID的修改。
    来自:
    浏览:648
  • GPU 云服务器

    腾讯GPU 云服务器是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景……
    来自:
  • FPGA 云服务器

    腾讯FPGA云服务器是基于FPGA硬件可编程加速的弹性计算服务,您只需几分钟就可以获取并部署您的FPGA实例。结合IP市场提供的图片,视频,基因等相关领域的计算解决方案,提供无与伦比的计算加速能力……
    来自:
  • 专用宿主机

    专用宿主机(CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
    来自:
  • 黑石物理服务器2.0

    腾讯黑石物理服务器2.0(CPM)是一种包年包月的裸金属云服务,为您提供云端独享的高性能、无虚拟化的、安全隔离的物理服务器集群。使用该服务,您只需根据业务特性弹性伸缩物理服务器数量,获取物理服务器的时间将被缩短至分钟级。
    来自:
  • 容器服务

    腾讯云容器服务(Tencent Kubernetes Engine ,TKE)基于原生kubernetes提供以容器为核心的、高度可扩展的高性能容器管理服务。腾讯云容器服务完全兼容原生 kubernetes API ,扩展了腾讯云的云硬盘、负载均衡等 kubernetes 插件,为容器化的应用提供高效部署、资源调度、服务发现和动态伸缩等一系列完整功能,解决用户开发、测试及运维过程的环境一致性问题,提高了大规模容器集群管理的便捷性,帮助用户降低成本,提高效率。容器服务提供免费使用,涉及的其他云产品另外单独计费。
    来自:
  • 弹性伸缩

    腾讯弹性伸缩(AS)为您提供高效管理计算资源的策略。您可设定时间周期性地执行管理策略或创建实时监控策略,来管理 CVM 实例数量,并完成对实例的环境部署,保证业务平稳顺利运行。弹性伸缩策略不仅能够让需求稳定规律的应用程序实现自动化管理,同时告别业务突增或CC攻击等带来的烦恼,对于每天、每周、每月使用量不停波动的应用程序还能够根据业务负载分钟级扩展。
    来自:
  • 云函数

    云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。SCF 是实时文件处理和数据处理等场景下理想的计算平台。
    来自:

扫码关注云+社区

领取腾讯云代金券