TeamBlog——规范、高效的项目管理知识库
艺萨科技
千日千月
艺萨科技
千日千月
  • Guide
  • 数据库规范
    • 基础规范
    • 通用模型
  • Vue前端框架
    • Guide
    • 通用说明
    • Element-admin-web
    • Arco-Design-web
  • Java服务端框架
    • Guide
    • 通用说明
    • JPA的封装
    • jDaoMySQL的使用
    • jCoder代码生成
    • 应用配置文件
  • PHP服务端框架
    • Guide
    • schedule定时任务
    • 数据库表、字段的命名原则
    • 接口文档自动生成
    • 队列
    • 日志管理
    • 接口加密
    • 文件的处理
    • RBAC的权限控制(待补充)
    • 一些工具
    • 一些写法
    • env说明
    • 公共的方法
  • 通用能力
    • Guide
    • Web文件预览
    • 统计平台
    • KeyCloak
    • 综合工具平台
    • 内网穿透
    • IM能力
    • 安全扫描

希望通过互联网+TEAM BLOG 为团队建设综合底座,帮助小伙伴们快速学习、掌握方法、进入协作状态,为项目产能、质量双升奠定基础。

随着我们项目经验的积累,我们越来越深刻的认识到,技术团队对项目实施的影响是有限的,需求理解、产品设计、项目管理、测试工程等领域也对项目成败起到至关重要的作用——TEAM BLOG 是我们团队的纲领性文件。

我们的愿景

希望通过 TEAM BLOG 逐步积累经验、教训,形成制度、规范和方法,提升团队的项目实施效率。同时,也希望 TEAM BLOG 能够抛砖引玉,启发大家的思考。请注意,TEAM BLOG 不是我们团队的政治正确,它仅仅是我们现阶段对事物的理解,大家辩证来看,也欢迎质疑和讨论。

我是谁?

正式开始前,先问问自己几个问题吧

  • 我是技术人员,去看看技术团队痛点
  • 我是产品经理,去看看产品经理的期望
  • 我是前端开发,去看看优秀前端体验
  • 我是测试人员,去看看测试进阶指南
  • 我是项目经理,直接问 TerryQi 和婷婷

框架代码

TEAM-BLOG

vuepress 的技术规范文档,人人都可以参与编写

点击我下载代码

Java 开发框架

Java-Develop-Platform 是 Java 开发框架

点击我下载代码

Java 模板项目

Java 模板项目,下载即可用,数据库连接到测试环境上,目前包名叫做 demo,大家自己改下包名为自己的包名

点击我下载模板

项目背景

历史上,都是 TerryQi 负责构建初始化的项目,基本上都是从成熟的项目中,挑挑拣拣,把核心的功能提取出来。那么随着公司的发展,越来越多的项目产生,那么就需要一套模板项目,支持大家快速构建系统。Java 模板项目集成了 RBAC,基本的 Swagger 配置等,可以快速构建起项目基础,具体

https://gitee.com/qrqy/java-base-template.git

如何使用

下载项目后,你需要:

  1. 创建数据库,并初始化数据,/docs/sql/init/initdb.sql 就是初始化的数据,此外,你还需要手动创建视图,视图为 user_role_view.sql,因为导入的方式下,视图有时会创建失败,所以建议还是导入数据库后,手动创建下视图
  2. 修改一下配置文件,application-dev.yml 中,配置数据库连接地址、项目名称等
  3. 修改下包名,模板项目中,报名为 com.qrqy.demo,将 demo 改为你的项目名,同时要修改 Application.java 中的包名数据,即 demo 转换为你的包名
  4. 在项目下,有 settings.xml,maven 要配置私有仓库
  5. 可以从 test/init/InitAdminScript 下的 createAdmin()方法来初始化管理员,因为也许你需要将 sys_user、sys_account_login、sys_account_auth sys_user_role 等表给清空掉,那么第一个管理员用户可以通过这个方法创建
@SpringBootApplication(scanBasePackages = {"com.qrqy"})
@EntityScan(basePackages = {"com.qrqy.demo.dao.entity"})
@EnableJpaRepositories(
        basePackages = {"com.qrqy.demo.dao.repository"},
        repositoryFactoryBeanClass = BaseSqlRepositoryFactoryBean.class
)
@EnableJpaAuditing
@EnableAspectJAutoProxy(proxyTargetClass = true)
@RestControllerAdvice(basePackages = {"com.qrqy.demo.controller"})
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

以上如有问题,请 call TerryQi

php 模板项目

php 模板项目,下载即可用, Laravel 项目开发框架

点击我下载模板

WEB 框架——Element-vue-admin

管理后台框架,基于 vue-element-admin 封装的管理后台

点击我下载模板

WEB 框架——Arco Design

管理后台框架,基于 Arco Design,Vue3+TypeScript+Vite

点击我下载模板

代码地址

https://gitee.com/qrqy/vue-base-arc.git

如何使用

请注意,这套管理后台是配合 Java 的模板框架来实现的,其中:

  1. 要修改下配置文件和项目名称,更换下项目的 logo
  2. 接口在/src/api 下,那么你要使用综合工具平台来生成接口

修改项目信息

小程序框架

小程序目前使用 uniapp 框架

青青负责小程序的模板,目前我们通过 uniapp 来进行小程序的开发

点击我下载模板

清理脚本工具

clear.sh 是宝塔和/home/app/services 的清理脚本的工具

clear.sh


直接执行 bash ./clear.sh 就行

联系方式

大家有问题,可以随时 email 我,terryqi@yisa.art和qi.zang@qrqy.net,邮箱日日查,48 小时响应。

我是技术人员

先回答几个问题,你的痛点有哪些

你会复用别人的代码么?

大家很少或者根本不会复用他人的代码,原因是什么?

  • 不了解其他人的项目和业务,不知道哪里可以进行复用
  • 他人代码质量不高,读起来费劲,封装的不好
  • 没有文档支持,copy 不明白,还不如自己写
  • ...

我们总是需要重复写一样的代码么?

是的,每个人都在重复编写相同的功能,虽然业务有所不同,但一些基础模块我们应该有底座

  • 哪怕是登陆、注册这样通用的流程,不同的项目也不一样
  • 大家重新在编写相同的代码,质量低、交接能力差
  • 传递知识的成本高,团队难以形成合力
  • ...

我们团队的技术氛围友好么?

有一点点的友好,最起码有一些规范,但还有很大的提升空间

  • 新人来了应该有体系化的引导文档,让其了解我们的实施规范和一些协作经验
  • 技术团队的知识应该可以共享,当然,更重要的是大家独立的检索方法、解决问题的能力
  • 持续迭代和提升,深度思考能力不足,要考虑长远,做储备
  • ....

我们如何解决上述问题

客观的说,我们的项目绝大多数情况下都是应用级开发,本质上我们面临的不是技术问题,而是工程化问题,可以依靠持续的过程优化来提升,例如:

  • 我们做一些框架和组件,自动生成代码,提升效率和规范性
  • 我们封装一些标准化的 PAAS、SAAS 能力,为应用提供服务(例如实时消息能力、业务统计能力、文件预览能力等)
  • 我们进行技术培训、输出高质量项目供参考,安排专人负责实施提升工作

只要我们有提升的意识和愿景,我们就能持续提升!

我是产品人员

产品经理是团队的核心,直接影响项目的交付,同时,希望我们有一天找到一个方向,打造一款属于公司的优秀产品。

我是否认清工作职责?

实事求是的讲,公司对产品团队有很高的期待,产品团队是接下来的建设重点,也有很大的提升空间。

  • 产品经理是下限特别低,同时上限又特别高的一个职业。产品经理大约在 2014 年确立角色,以往叫做需求师,负责对接客户需求,由于逐步扩展职责、界面,因此催发出产品经理的职位,我们公司产品经理是核心,大家都要围绕产品经理来协作
  • 我们的产品经理大多数停留在需求记录员的角色上,往往是听取客户需求,协助实现原型,当然想做好这个角色也很不容易,但是还有更进一步的提升空间
  • 往往我们听到产品经理为自己粗糙的产品原型找借口——时间太紧张,担心给技术团队增加工作量。事实上,需求梳理不清晰是对技术团队最大的困扰
  • 产品经理更多的是对外,即与客户来协同,例如:初期和客户沟通需求;阶段性做汇报(例如完成某个核心需求),如果需求偏离尽快调整;项目交付前参与测试和验收;项目交付时做好收尾;维护期内定期做回访,获取优化点。
  • 产品经理绝对不仅仅是输出原型,在整个项目实施周期内,都应该是深度参与的状态,我们报项目成本,产品经理一定是满额参与全部项目生命周期的
  • 产品经理要关注客户服务,是公司对外服务的窗口,也是下一步团队提升的关键点
  • ...

总之,产品经理的职责是:准确把握客户需求、高质量交付项目、提升客户满意度。现阶段,产品经理是公司的核心价值,我们要着力提升产品团队的能力和意识

产品经理的交付物

往往一个事物我们要从源头来治理它,问题和风险就像水面的波纹,影响范围将逐步扩大。那么对于项目来说,产品设计工作就是水波中央,产品设计质量的高低直接关系到实施成本和效果。请注意,我们要求项目经理也要有产品意识,要协助产品经理把控产品设计

产品经理应该交付什么?

  • 产品原型

我们非常理解时间、成本和质量的关系,但产品经理要尽可能的提升原型质量。如果在项目初期比较紧张,那么实施过程中也可以逐步完善原型,要反复推敲自己的原型,那么给几个参考点:

  1. 产品原型是否完整?例如管理后台的原型,往往缺斤少两,比如导入功能,导入功能可能是系统中最复杂的设计点,导入表格是什么样子,整体导入的体验什么样,导入错误如何提示用户?往往我们接到的需求原型是导入按钮,没有其他逻辑说明...
  2. 产品设计是否自洽?产品经理有具备良好的逻辑思维能力,我们往往接到的产品原型是缺失的,包括数据上的缺失和流程上的缺失。例如电商业务在我的版块有一个我的积分功能,但积分怎么来的?如何消耗?都不知道,产品经理的答复是客户要求这里有一个积分...;流程上是否闭环,除了正向的流程,是否考虑了逆向的流程和异常情况
  3. 产品体验是否正确?一般情况下,移动端、WEB 端的产品体验不同,产品经理要了解当前主流的样式框架,例如 WEB 端是 ELEMENT UI、Ant Design,移动端是Vant UI、uView,我们经常会看到在移动端使用 select 的样式(一般移动端是 picker、actionSheet 等),同时 WEB 端、移动端的提醒方式也不一样,例如 WEB 端有 message、notification 等、移动端有 toast 等
  • 流程图、状态机...

原则上来讲,产品经理应当交付 PRD,原型是 PRD 中的一部分,PRD 还包括需求详述、流程图、状态机、业务规则等,那么要求产品经理提供核心业务的流程图、核心对象的状态机(例如订单的状态机)、核心业务规则的描述(例如计划任务,按照什么时间处理什么任务)

流程图、状态机、核心业务规则是难点,可以约项目经理一起设计,这里想不清楚就做不好项目

  • 产品使用手册

一般情况下,我们实施的项目都是 B 端的项目,B 端项目往往都需要培训。产品经理有义务进行产品宣讲、产品演示、产品配送和上线后的产品支持服务,我们非常深刻的理解产品经理的付出和价值,我们团队也会寻求一个有效的方法,当产品经理在非工作时间服务客户时进行补贴,确保劳有所得。

产品经理的提升

关于产品经理的提升,分享两点经验:

  • 业务知识的提升

产品经理的业务知识是最宝贵的,打开 BOSS 直聘,专项产品经理(汽车行业、医疗行业、金融行业...)的价值远远高于通用产品经理。 目前公司没有深耕某个领域,无法给大家提供深入学习业务知识的机会,那么大家需要自己去学习,学习什么?

通用的产品,例如 CRM、ERP、WMS、SaaS 电商...,这里的学习是深入学习,使用淘宝 APP 和梳理淘宝整体业务流程是两码事。怎么学习?打开悟空 CRM、ABC 诊所管家...,成名的 SaaS 平台都值得研究。

  • 综合素养的提升

作为一个产品人员的基础素养,在产品经理的交付物描述的体验样式属于应知应会。此外,产品经理是综合素质要求非常高的角色:

  1. 沟通能力:沟通力是基础,要主动开会、主动汇报、主动沟通,如果客户在本地,或者有条件,应该有意识的约时间拜访一次客户
  2. 管理意识:产品经理作为经理,要有一定的管理意识,或者说项目管理能力也是产品经理能力的重要组成部分。产品经理有业务与项目经理协同来管理团队,验收进度和质量
  3. 思辨能力:客观来讲,聪明人才能做好产品,脑子要快、对项目质量有追求,能否判断并决定产品的逻辑功能,有思辨和决策的意识。请放心,我们公司当前级别的项目,不存在决策风险,产品经理有权利指导所负责产品的走势
  4. 文字能力:文字能力是我们大多数人员欠缺的,无论是输出过程文档(周报、会议纪要..)、汇报材料还是交付物,如果在编写交付物时有困扰,请联系 TerryQi,尤其是编写标书、验收文档时
  5. 参与运营:本质上来讲,产品人员对商业模式、运营体系的理解,直接影响产品设计的高度,公司的 CEO 约等于是公司的产品经理。如果产品经理能够从商业模式、业务运营的角度来思考问题,那么将是更上一阶的提升

总而言之,产品经理团队是下一阶段公司重点建设板块,我们的目标是:以产品经理为核心,以项目实施为抓手,提升项目实施绩效和客户满意度

我是前端开发

前端人员要重视交互和体验,本小节是一个随笔,给出前端人员一些技巧和经验,前端人员要有体验意识,前端是客户最有感知的点,前端人员要对体验负责

前端的一些基本规范

  • 移动端感知时长是多久?300ms,如果一个接口 3s 没能返回数据,那就一定要找服务端优化,服务端有义务把接口效率提升
  • 前端如果缺少 UI,可以找产品输出,产品经理有义务协调设计输出细化的 UI
  • 前端页面永远不要出现 null、undefined,要考虑对象多层级属性的获取
  • 前端页面要考虑深层次的操作体验,例如移动端页面的触点,触点的引导等
  • 前端人员要注重页面效率,例如:WEB、H5 页面的图片要通过tinypng压缩一下;页面的 icon 和 logo 要换一下;小程序分包要设计一下;
  • ...

前端人员的发展

前端人员应该如何发展?哪位小伙伴有想法可以探讨,但是当前可以:

  • 多学点框架、多上 github 看点优秀代码,这些是基础级别
  • 之前推荐了vben Admin 框架,遭到了反对,的确这个框架的 ts 没有太大提升,但可以看看
  • 如果做游戏,cocos、unity3d、白鹭可以学习一下
  • 现在数字孪生比较有一定需求,可以学学 three.js
  • uniapp 实施 APP 质量不高,如果追求质量,可以试试 flutter
  • 像产品一样,去看看优秀的产品,优秀的产品体验做的都不错产品经理的提升
  • 前端人员要适当转向后端,要读懂数据模型、要理解后端的接口实现思路,要会看数据库,了解数据流转,要懂业务
  • ...

网上对高阶前端开发人员有定义叫大前端,我不能 get 到大前端的点,目前仅仅能够理解到就是对前端有深入理解,能够实施 web、小程序、公众号、混合 app 开发的人员,目前只有 xxx 项目中,使用了前端微服务的框架。

上述的大前端个人觉得并没有什么门槛,基本是项目经验级的要求,不能成为核心竞争力

我是测试人员

测试和产品经理很相像,都是底线很低,天花板又很高的一个角色,越是好项目,测试体系越发重要

测试人员的基本素养

  • 懂业务、懂产品,这个是做测试的基础,好的测试是半个产品,甚至到项目尾期(或转运营后)比产品经理更了解业务
  • 对质量有追求,页面不是点击点击,要注意体验、注意边界、异常情况
  • 有逻辑思维,能够透视流程、校验数据正确性,例如一条数据值的变迁过程,因此测试要和产品、前后端技术紧密交流,了解业务流程和规则
  • 有一定的方式、方法,例如编写测试用例,通过思维导图梳理测试过程

高阶测试的进化

本质上来说,项目实施质量是由开发团队负责的,测试团队存在的意义是进一步提升质量,项目质量出现问题,第一责任人是产品和技术,测试经理不背这样委屈的锅,但是我们要看到 coding 和 TAPD 中,有相应的缺陷提出,并且有高质量的缺陷提出,所谓高质量的缺陷——流程错误、数据错误级别的缺陷

我们共同的认知:找到问题比解决问题更重要。高阶测试社会非常稀缺,大部分情况下需要技术或产品来转,根本上讲已经是半挂技术、半挂产品的复合型人才:

  • 高阶测试往往挂一些技术,要能看懂数据模型,能够在数据库中排查数据正确性
  • 高阶测试一般要懂开发,能看懂日志,看得懂接口的请求报文和响应报文
  • 高阶测试可以使用一些工具,编制脚本,提升(回归)测试效率
  • 高阶测试甚至可以指导开发,协助开发人员 debug 问题

我最深刻的体会是在 xxx 项目中,虽然我是项目经理身份,但最后我对项目最大的产出是做测试,将问题定位到代码级别,综合从技术、产品、业务角度测试项目,最终整体提升了质量、提高了效率,在 xxx 项目中,我最大的贡献是深入到测试环节保证了交付质量

对测试人员的期望

很负责任的说,好的测试人员非常难找,也特别有价值,越是大业务、重要业务,越需要优秀的质量经理(做到这个级别已经是经理),总体上来说,无论测试、产品、技术都要打破自己的边界,思想意识上的提升是最大的提升,多找优秀产品、优秀团队学习,多思考、多总结、多探讨,希望大家有进步、有想法随时找 TerryQi 汇报(希望汇报有个 PPT,PPT 也是提炼思想的过程)。

结语

开始 TEAM BLOG 吧,公司经营任重道远,团队建设永不止步,我们要把价值放在第一位,为公司创造价值、为客户创造价值、为社会创造价值,这是我们的立足之本。


Last Updated:: 2/24/24, 10:40 PM
Contributors: TerryQi, mtt-Ada@yisa.art
Next
数据库规范