范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

创业CTO来分享如何让技术人员写好开发文档?

  前言
  对于如何让技术人员写好开发文档,这是一个很常见的问题。
  本次不过多分享理论,而是通过分享我们团队新成员编写的第一份真正的开发文档,作为成例,给大家参考和借鉴。
  对于新人,一开始就明确高标准、提高专业要求,是很有价值的。需求背景
  有一天,有位YesDev的企业客户和我们提到:"黄总, 上次说的客户管理的流程下,手工选择发送【反馈信息】,方式为短信,企业微信,钉钉,邮件。 四种方式的配置信息和客户管理进行 关联配置。 发送后有发送记录可以进行管理,检索和导出。 发送内容可以根据需求自动生成。 其中短信可以进行模板管理和分配,短信发送接口配置(建议阿里云短信)。"
  于是,我们产品经理整理并设计了以下的产品方案和PRD。
  以下,则是对应的技术开发人员在完整需求开发的同时,编写整理的开发文档。内容包含:开发分支、单元测试、SQL数据库变更、核心流程的时序图、新增的API接口、单元测试覆盖率报告、新增的配置文件等。使用的研发协同工具
  YesDev,一款更友好的研发协同工具。开发文档成例分享需求背景
  用户需要一个可以管理自己客户及客户联系人的功能,并且在需求需要反馈时,可以选择发短信或者邮件进行通知仓库地址https://codeup.aliyun.com/xxxxxxx/yesinew/yesinew_www.git 使用的是codeup云效。后端开发分支mxh_test实现思路用户需要可以配置短信和邮箱服务的后台录入功能用户需要进行客户名单的管理,包括但不限于客户分组、客户管理、客户联系人等功能,并且对以上的功能可添加、编辑、删除以及查看前端需增加反馈功能模块,用户可以获取录好的客户名单,进行邮件/短信通知,并且记录反馈通知信息用户可以查看某个需求的发送给客户的反馈列表,也可以在企业管理后台,进行发送反馈记录的查看和导出记录新增接口(基于PhalApi开源接口框架)Platform.Customer_Customer.AddCustomer 添加客户Platform.Customer_Customer.AddCustomerContacts 新增客户联系人Platform.Customer_Customer.AddCustomerGroup 添加客户分组Platform.Customer_Customer.DeleteCustomer 删除客户Platform.Customer_Customer.DeleteCustomerContacts 删除客户联系人Platform.Customer_Customer.GetContactsListByCustomerId 根据客户ID获取联系人列表Platform.Customer_Customer.GetCustomerDetailLeftSideMenu 客户详情页左边栏Platform.Customer_Customer.GetCustomerGroupList 获取客户分组列表Platform.Customer_Customer.GetCustomerGroupOption 获取客户分组选项,用于select标签Platform.Customer_Customer.GetCustomerList 获取客户列表(用于分组下的客户名单管理)Platform.Customer_Customer.GetFeedbackContactsList 发送反馈时用到的客户联系人列表Platform.Customer_Customer.GetOneCustomer 获取单个客户Platform.Customer_Customer.GetOneCustomerContacts 获取单个客户联系人Platform.Customer_Customer.GetOneCustomerDetail 获取单个客户详情(用于客户详情页)Platform.Customer_Customer.UpdateCustomer 编辑客户Platform.Customer_Customer.UpdateCustomerContacts 编辑客户联系人Platform.Customer_Customer.UpdateCustomerGroup 编辑客户分组Platform.Customer_Feedback.GetFeedbackList 获取反馈列表(用于前端需求页面)Platform.Customer_Feedback.GetFeedbackListForAll 企业后台获取反馈列表Platform.Customer_Feedback.GetFeedbackListForAllExportData 反馈列表导出Platform.Customer_Feedback.GetFeedbackListForAllExportUrl 企业后台获取反馈列表导出链接Platform.Customer_Feedback.SendFeedback 发送反馈信息接口Platform.Sms_Sms.AddSmsConfig 添加短信配置Platform.Sms_Sms.AddSmsTemplate 添加短信模板Platform.Sms_Sms.DeleteSmsTemplate 删除单个短信模板Platform.Sms_Sms.GetOneSmsConfig 获取短信配置Platform.Sms_Sms.GetOneSmsTemplate 获取单个短信模板Platform.Sms_Sms.GetSmsTemplateDetailByMoudleId 根据短信模板ID和模块ID,来获取替换后的短信文本Platform.Sms_Sms.GetSmsTemplateList 获取短信模板列表Platform.Sms_Sms.GetSmsTemplateListByOpen 获取已开启的短信模板Platform.Sms_Sms.GetSmsTemplateParam 获取短信模板变量列表Platform.Sms_Sms.SendSmsTest 发送短信测试Platform.Sms_Sms.UpdateSmsConfig 修改短信配置Platform.Sms_Sms.UpdateSmsTemplate 更新单个短信模板Platform.Customer_Feedback.GetFeedbackList 获取反馈列表(用于前端)Platform.Customer_Feedback.GetFeedbackListForAll 企业后台获取反馈列表Platform.Customer_Feedback.GetFeedbackListForAllExportData 需求导出Platform.Customer_Feedback.GetFeedbackListForAllExportUrl 企业后台获取反馈列表导出链接Platform.Customer_Feedback.SendFeedback 发送反馈信息修改的接口Platform.Notes.CreateNewNote 添加新备注Platform.Notes.GetNoteListMoreInfo 获取备注列表Platform.AppSiteConfig_AppSiteConfig.AddOrUpdateAppSiteConfig 添加app配置设置文件变更(基于PhalApi开源接口框架)config/sms.php                                   |  22 +++ data/phalapi_pro.sql                             | 101 ++++++++++ src/app/Common/Api.php                           |  17 +- src/base/Common/Sms.php                          |  70 +++++++ src/base/Common/ToolUtil.php                     |  67 +++++++ src/base/Common/UrlUtil.php                      |   5 + src/base/Domain/AppSms.php                       |  73 ++++++++ src/base/Domain/Base.php                         |   8 +- src/base/Domain/Customer.php                     | 348 ++++++++++++++++++++++++++++++---- src/base/Domain/CustomerFeedback.php             | 350 +++++++++++++++++++++++++++++++++++ src/base/Domain/Notes.php                        |  11 +- src/base/Domain/Sms.php                          |   2 +- src/base/Domain/SmsConfig.php                    | 243 ++++++++++++++++++++++++ src/base/Model/Customer.php                      |   5 +- src/base/Model/CustomerContacts.php              |   5 +- src/base/Model/CustomerFeedback.php              |  72 +++++++ src/base/Model/CustomerGroup.php                 |   6 +- src/base/Model/SmsConfig.php                     |  11 ++ src/base/Model/SmsTemplate.php                   |  11 ++ src/platform/Api/AppSiteConfig/AppSiteConfig.php |   6 +- src/platform/Api/Customer/Customer.php           | 218 +++++++++++++++++++++- src/platform/Api/Customer/Feedback.php           | 150 +++++++++++++++ src/platform/Api/Notes.php                       |  11 +- src/platform/Api/Sms/Sms.php                     | 184 +	 数据库变更(使用MySQL数据库)  DROP TABLE IF EXISTS `pp_sms_config`;   CREATE TABLE `pp_sms_config` (     `id` int(11) NOT NULL AUTO_INCREMENT,     `access_key` varchar(255) NOT NULL DEFAULT "" COMMENT "短信服务商的access_key",     `access_secret` varchar(255) NOT NULL DEFAULT "" COMMENT "短信服务商的access_secret",     `config_status` tinyint(2) NOT NULL DEFAULT 0 COMMENT "邮箱状态:1-开启  0-关闭",     `admin_id` int(11) NOT NULL DEFAULT "0" COMMENT "管理员ID",     `add_time` datetime DEFAULT NULL COMMENT "创建时间",     `app_key` varchar(100) NOT NULL DEFAULT "公司标识",     `created_staff_id` int(11) NOT NULL DEFAULT "0" COMMENT "创建员工ID",     PRIMARY KEY (`id`)   ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT = "短信配置表";     DROP TABLE IF EXISTS `pp_sms_template`;   CREATE TABLE `pp_sms_template` (     `id` int(11) NOT NULL AUTO_INCREMENT,     `sms_sign` varchar(255) NOT NULL DEFAULT "" COMMENT "短信签名",     `template_code` varchar(255) NOT NULL DEFAULT "" COMMENT "短信模板Code",     `template_detail` text COMMENT "短信模板详情",     `template_status` tinyint(2) NOT NULL DEFAULT 0 COMMENT "邮箱状态:1-开启 0-关闭",     `admin_id` int(11) NOT NULL DEFAULT "0" COMMENT "管理员ID",     `add_time` datetime DEFAULT NULL,     `app_key` varchar(100) NOT NULL DEFAULT "",     `created_staff_id` int(11) NOT NULL DEFAULT "0" COMMENT "员工ID",     PRIMARY KEY (`id`)   ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT = "短信模板表";    DROP TABLE IF EXISTS `pp_customer_group`;   CREATE TABLE `pp_customer_group` (     `id` int(11) NOT NULL AUTO_INCREMENT,     `group_name` varchar(100) NOT NULL DEFAULT "" COMMENT "分组名称",     `customer_num` int(10) NOT NULL DEFAULT 0 COMMENT "分组下的客户人数(冗余)",     `admin_id` int(11) NOT NULL DEFAULT "0" COMMENT "管理员ID",     `add_time` datetime DEFAULT NULL COMMENT "创建时间",     `app_key` varchar(100) NOT NULL DEFAULT "公司标识",     `created_staff_id` int(11) NOT NULL DEFAULT "0" COMMENT "员工ID",     PRIMARY KEY (`id`)   )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT = "客户分组表";    DROP TABLE IF EXISTS `pp_customer`;   CREATE TABLE `pp_customer` (     `id` int(11) NOT NULL AUTO_INCREMENT,     `customer_name` varchar(255) NOT NULL DEFAULT "" COMMENT "客户名称",     `customer_level` varchar(20) NOT NULL DEFAULT "A" COMMENT "客户等级,A-E",     `group_id` int(10) NOT NULL DEFAULT 0 COMMENT "分组ID",     `feedback_num` int(10) NOT NULL DEFAULT 0 COMMENT "反馈次数(冗余)",     `customer_status` tinyint(1) NOT NULL DEFAULT 1 COMMENT "客户状态:1-开启 0-隐藏",     `customer_remark` text COMMENT "客户备注",     `admin_id` int(11) NOT NULL DEFAULT "0" COMMENT "管理员ID",     `add_time` datetime DEFAULT NULL COMMENT "创建时间",     `app_key` varchar(100) NOT NULL DEFAULT "公司标识",     `created_staff_id` int(11) NOT NULL DEFAULT "0" COMMENT "员工ID",     PRIMARY KEY (`id`)   )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT = "客户表"; 注意事项新增了./config/sms.php,第71行 ./config/sms*.php  新增模块客户反馈,需要在两个表配置权限INSERT INTO `pp_operation`(`id`, `project`, `path`, `title`, `white_list`) VALUES (440, "platform", "/customer", "主模块 - 客户管理", NULL); INSERT INTO `pp_operation`(`id`, `project`, `path`, `title`, `white_list`) VALUES (441, "platform", "/customer/list", "客户管理模块 - 客户列表", NULL); INSERT INTO `pp_operation`(`id`, `project`, `path`, `title`, `white_list`) VALUES (442, "platform", "/customer/detail", "客户管理模块 - 客户详情", NULL); INSERT INTO `pp_operation`(`id`, `project`, `path`, `title`, `white_list`) VALUES (443, "platform", "/customer/feedback", "客户管理模块 - 客户反馈记录", NULL); INSERT INTO `pp_operation`(`id`, `project`, `path`, `title`, `white_list`) VALUES (444, "platform", "/service-config/sms", "服务配置 - 短信服务配置", NULL);单元测试(使用PHPUnit)
  邮件/短信发送的时序图(使用ProcessOn等工具可在线制作UML)
  最终实现的效果截图(在YesDev可免费体验和真实使用)
  登录后选择你的研发团队,
  在企业管理后台,录入客户信息,
  配置短信通道和通知文案,
  最后,在前台可以进行邮件通知反馈,
  也可以进行短信的通知反馈。

连续2天卫视台收视第一,湖南台甩出压箱底的王炸头条创作挑战赛2022年余额不多了,能在今年开播的电视剧更是少之又少。不久前,湖南卫视常年霸占收视第一的头把交椅被北京卫视用促醒者拿走,也算是让北京卫视在第四季度抬了一把头。可是作女星红毯生图大PK满面油光皱纹密布痘痘粉刺,藏都藏不住嘿,这里是辣条金鸡奖闭幕,红毯仪式是最受关注的。相信大家都已经看到了,众多参与女星的营业美图,那么她们现场生图是什么样的呢?没有了滤镜和美颜,展现的才是最真实的,你会发现打开了新世金龟子女儿被求婚,龟婿身世背景曝光,住金龟子楼下,王宁很满意少儿节目伴随着我们度过了童年最快乐的时光,主持人金龟子也是很多人的童年回忆,童年匆匆而过,金龟子也到了中年,一转眼女儿王逸宸已经长大,到了谈婚论嫁的年纪。近期,金龟子还宣布了一个好爱上美女街拍第62卷,露出你的小蛮腰艺术来源于生活!美丽来源于生活!人人都爱小蛮腰,那么小蛮腰一词出自哪里?估计许多人都不知道,今天我们就来普及一下,小蛮腰原指白居易的家姬小蛮的腰,(白居易指家姬小蛮的腰像杨柳)。后欧米茄海马PlanetOcean600mGMTMasterChronometer腕表虽然超霸仍然是欧米茄最成功的腕表,特别是自最近更新该系列以来,该系列的另一个重要支柱当然是海马。过去几年,该品牌主要关注Diver300M。然而,还有另一款潜水表值得关注,它是一款深扒溅不起水花的克莱,到底怎么了?水花独舞,克莱落寞。很难想象,卫冕冠军勇士在本赛季会如此艰难。5胜7负,西部第11,落后于摆烂的马刺和年轻的国王,仅好于雷霆森林狼和老大难的湖人和火箭。很难想象,克莱在本赛季会如此法甲巴黎VS欧塞尔,世界杯即将到来的时刻,球星还会拼尽全力?生活如此疲惫,唯有足球令人陶醉,狼堡客场果然拿下了守住了对手!在霍芬海姆先入一球的情况下,狼堡并没有慌乱,先是制造卡巴克的乌龙扳平,而后又利用鲍库的劲射完成逆转!今天让我们把目光投马不停蹄!国乒即将转战泰国,出征亚洲杯,林高远将接受外战挑战北京时间11月12日晚,为期十天的2022年全国乒乓球锦标赛圆满落下了帷幕,七项冠军全部有了归属,其中有4人收获两个冠军,分别是樊振东获得男团和男单冠军林高远获得混双和男双冠军王艺人到中年,长相年轻,是因为这五点年轻是什么?诗人塞缪尔厄尔曼曾这样写道青春不是桃面丹唇柔膝,而是深沉的意志,恢宏的想象,炙热的恋情青春是生命的深泉在涌流。有的人二十岁,死气沉沉尽显一副老态有的人八十岁,精神抖擞,男篮换帅?中国男篮真的能走向正轨吗?塞尔维亚媒体爆料称前塞尔维亚主教练乔尔杰维奇将担任中国男篮主教练近日,塞尔维亚媒体曝出,前塞尔维亚主教练乔尔杰维奇将担任中国男篮主教练,13日篮球记者宋翔消息称,乔尔杰维奇将带领体2022昆明高原半程马拉松开跑吸引数千名选手参与图为活动现场赵伟摄中新网昆明11月13日电(陈静)13日上午9时,2022昆明高原半程马拉松在昆明会堂鸣枪起跑。此次赛事共设置男女半程马拉松(21。0975公里)组中国体育彩票10
重新上架的陪玩app,真的抛弃了陪玩吗?去年9月,因为陪玩平台泛滥的灰色交易,应中央网信办的要求,包括Hello语音小鹿陪玩比心在内的7款热门陪玩APP被下令整改。时隔9个月,这些app又重新上架了。重新上架的App分别黑鲨5Pro成性价比之王,黑鲨4史无前例沦为百元机,网友后悔买早黑鲨5Pro采用了全新的TouchControl触摸主控方案,重构了触摸算法架构,触摸计算能力提升20,触摸响应速度提升15。有效按压面积进一步增加16,结合肩键可以轻松实现六指操飞机擦顶而过!希腊惊险网红景点一男子被吹入大海近日,希腊热门旅游目的地斯基亚索斯岛发生一起事故。一架飞机在降落时,巨大的涡轮机气体将一名79岁的老人吹入海中。根据当地媒体的报道,事故发生在19日中午12时左右。这名老人当时正在鹤山东古玥湖酒店,畅游千方泳池自助早晚餐,网友去过都说好仅需599抢鹤山东古玥湖酒店豪华房,2大1小海鲜自助晚餐早餐,畅游室外泳池,看园林灯光秀,音乐喷泉水幕电影!点开我的头像,再点底部活动资讯,搜索关键词东古下单预定明媚的夏日正是出游社会人穿搭图鉴火了!网友爆笑你让穿豆豆鞋的男人怎么办最近,这套社会人穿搭图鉴火了。如果豆豆鞋有感情,看到自己被粗暴分类为社会人标配单品,一定会破防。要知道,豆豆鞋在男生心目中的分量,不亚于拖鞋之于广东人的地位。大街小巷,地铁,商场,华晨宇新恋情再添实锤,张碧晨却曝出怀孕照,疑似宣示主权?华晨宇新恋情再被曝光,与新女友染同发色,前女友却曝出孕照引言。6月20日,有网友曝光了华晨宇和别人约会的视频。在网友所曝光的视频中,华晨宇带着王悦伊与友人相聚,两个人的发色都染成了作秀?李玉成炖大排骨吃肉,马玉琴喝汤嘴馋,网友嚼不动吃啥李玉成和马玉琴自从在一起后,马玉琴几乎就没有休息时间,以前是出去跳舞商演赚钱,现在走不动了坐在家里,吃饭也被李玉成拍成视频发到网上,每天晒马玉琴吃的啥好吃的,展示自己对马玉琴的好。这五位明星的新闻下总会有他怎么还活跃在娱乐圈的评论娱乐圈之大,无奇不有。有些观众认为被封杀的明星,实际上一直活跃在娱乐圈。有些被认为演技精湛的演员,却无戏可演。有些人明明演一部亏一部,却片约不断。总有那么一位明星,观众看到之后会说韩国将发射世界号火箭,媚外网友承认差距韩国原定于6月15日发射世界号,但发射时间因遭遇大风天气被推迟一天。之后,由于数据异常,原定于16日的发射计划再次被推迟,最后敲定世界号的发射时间可能为21日下午4点。这个消息一出被烧掉的圆明园到底有多美?来看看英国曝光的复原照片震惊!圆明园被毁前的照片泄露,价值XX万!震惊!圆明园被毁前照片出现在XX,美若仙境。每当看到这样的标题,等我们点进去后,总是会看到各种各样的圆明园复原图,根本没有圆明园被毁前的照李湘晒面纱特效照,肤白貌美满脸笑容,戴顶级珍珠项链又炫富近日,主持人李湘深夜晒出了一段古城风面纱特效照,配文闲的,引发不少网友热议。照片中,李湘身穿白色衬衣,一头长发披肩,脖子和耳朵上都戴着珍珠项链,再配上水汪汪的大眼睛,显得十分冻龄。