发表于: 2017-10-29 23:20:06
1 743
一.今天完成的事情
1.完成后台跑批服务的相关配置
以上是配置好的项目目录,其中applicationContext-server.xml文件和server.composite的配置文件和之前的service的配置文件不同,需要做一些改动
跑批服务是通过开启线程执行的,其中
server代码为:
**
* 服务启动类
*
* @author
*/
public class Server {
private static Log log = LogFactory.getLog(Server.class);
private static SCANode node;
private BankEtl bankEtl = new BankEtl();
/**
* start account server.
*
* @throws java.io.IOException IOException
*/
public void start() throws Exception {
log.info("===> common-com.ptteng.etl.skill.service Start Begin");
node = SCANodeFactory.newInstance().createSCANode("META-INF/polyFinance-etl-service/server.composite");
node.start();
log.info("===>com.ptteng.etl.skill.service>>>>>>>>>>==");
}
/**
* exit system
*/
public void exit() {
System.exit(0);
}
public void run() throws InterruptedException {
while (true) {
bankEtl.test();
Thread.sleep(Long.MAX_VALUE);
}
}
/**
* 服务启动程序.
*
* @param args
* @throws Exception Exception
*/
public static void main(String[] args) throws Exception {
Server server = new Server();
server.start();
try {
server.run();
} catch (InterruptedException e) {
log.error("com.ptteng.etl.skill.service run error ", e);
}
}
}
执行结果为:
2.回听了老大的知乎live,对其中的前几个部分做了文字上的总结:
总结如下:
一. 为什么需要敏捷开发
敏捷开发解决什么问题
传统开发流程存在的问题:1,开发流程长,风险大2.开发出来的成品和需求不匹配3.成品做好的时候需求已经发生了大的改变,成品没有价值
敏捷开发的最大作用是如何在用户需求不断变更的情况下最大程度的保证开发的质量.其次是降低项目开发中每个环节的风险,确定项目延期应对措施,厘清各个角色的职责
二. 敏捷开发流程中有哪些工具可以使用
三大宝:禅道,wiki,邮件.
禅道是用来管理项目进度的工具
Wiki使用Confluence
邮件使用网易和腾讯企业邮箱
三.从零开始认识敏捷开发中的角色(产品经理/UI 设计师/后端工程师/前端工程师/测试工程师/运维工程师)
角色:产品经理,UI设计师,前端工程师,后端工程师(包括初级工程师和架构师),Android/IOS工程师,测试人员,运维人员,各个小组leader.
敏捷开发周期整体分为三个阶段:产品设计阶段,开发阶段,测试阶段
第一,产品设计阶段
产品设计阶段又可以细分为几个小的阶段:
1. 产品设计阶段:产品经理设计需求,涉及的角色是产品经理,要拆解story,制作PPT
2. 内部评审阶段:初步设计出来的需求在产品组内部进行初步评审,获取他人反馈,进一步完善需求,涉及的角色是负责该项目的产品经理和产品组所有成员.该阶段是以开内部评审会的方式进行,该阶段的成果要有三点:一是确定需求的大方向,二是考察产品的细节是否周全,三是统一整个产品的风格和细节规范
3. 真正的需求评审(非常重要):和该项目有利益相关的所有部门统一对需求进行讨论,最终确定需求.需求评审通过之后,其他人员不能再对需求有异议.如果在需求评审之后发现需求有问题,那么就是所有参加需求评审的人员的失职.参加需求评审的角色有:产品经理,产品部门,研发部门,运营部门,CTO等所有对该产品有决策权的人员,如果研发部门的leader来不了,那么研发部门下的各个小组的leader要参加.所有对产品设计的意见,都应该在需求评审中提出来,研发部门要确定需求是否合理,由谁来做,大概需要多长时间,需求讲解什么时候进行.所以参加需求评审的一般都是公司管理层,因为管理层的经验更加丰富,对于重大事务更有把控力,此时不推荐普通工程师参加需求评审.
4. 需求讲解(重要):产品经理向整个研发团队讲解需求,涉及到的人员有产品经理以及参与产品开发的所有研发团队成员.该阶段主要讲清楚为什么会有这个需求,整个产品的业务流程大概是什么样,除此之外,还要讲清楚原型如何跳转,细节如何交互等.研发团队此时的任务一是必须要准确理解需求,包括为什么这么做以及需求的细节是否考虑到,有不理解的及时与产品经理沟通,二是思考需求的大概实现方案,要求是第一时间判断需求能不能实现,实现时有哪些不确定的地方,需求有没有逻辑混乱的地方,需求是否合理.
第二阶段,开发阶段
5. 方案设计及评审:研发团队所有人员根据需求设计实现方案,包括定义接口,业务的实现逻辑,数据库表结构的设计等,设计好的方案在研发团队中进行方案评审.此时不推荐架构师一人设计项目架构,初级工程师只负责写业务逻辑代码,因为这对于工程师的成长非常不利,推荐做法是所有的工程师都设计实现方案,最后由架构师或者小组leader来判断方案是否合理.涉及到的角色有初级工程师和架构师或者小组leader.通过不断反馈的方式完善项目设计方案,同时提高初级工程师的技术水平.
6. 进入真正的开发阶段:此时要做的事情是拆解task,完成具体的开发,codereview,性能测试.此时研发团队中的每一个成员都是项目的owner,都对项目负主要责任.在开发过程中项目leader不用过多的介入开发人员的工作,但是当发现有延期风险时(通过查看每日晨报,迷你demo,燃尽图等方式)项目leade必须迅速介入,消除项目延期风险,所以项目leader其实是充当一个守护者的角色
7. 项目demo阶段:研发团队把成品交付给产品团队,具体标准是研发团队完完全全的把产品需求完成,可以交付验收了.涉及到的验收人员有,产品经理,研发团队小组leader,测试人员,甚至是技术总监.demo时由研发团队人员来讲做了哪些东西,将所有流程跑一遍.demo完毕,研发团队对该项目的开发周期就算结束,如果有bug,进入bug修复流程,进行修复,如果此时需求有变更,如果该需求三天内能完成,则算作bug流程,如果三天以上才能完成,则作为下一个周期的迭代
第三阶段:测试阶段
8. 测试阶段:涉及到的人员有运维,测试以及开发.运维人员按照开发人员的指示将代码部署到测试环境,测试环境要保证稳定,然后测试人员跑测试样例,对产品进行测试.标准是测试人员不仅要能够找出bug,确定bug优先级,还要负责追踪并推动bug解决.整个团队需要关注的是具体的线上发布时间.
9. 发布线上: 是一个非常重要的事情.涉及到的人员有运维,开发团队,项目leader,测试等所有和该项目有关的人员.
四.敏捷开发的流程有哪些
流程定义不同的人员在不同的时间节点中要做的事情以及评判事情好坏的标准.
整个项目开发的关键点
(1).产品经理拿到需求,对需求进行分析,设计产品,提供需求PPT,将需求在禅道上拆解成为一个个story
(2).需求内部评审
(3).需求评审(关键点)
(4).讲解需求story
(5).研发团队设计方案并评审
(6).进行codereview
(7)性能测试
(8)demo
(9)发布测试
(10)发布线上
敏捷开发流程整体分为三部分:开发流程,发布流程,Bug修复流程,开发前产品设计流程提现不明显,但是也有需要注意的细节规范.
开发流程:比较细的规范有要拆解好task,预估总估时,每天开晨会(晨会内容:昨天做了什么,今天计划做什么,遇到的问题,项目是否延期),性能测试流程,Codereview流程,Demo流程
发布流程:包括发布测试和线上
Bug修复流程
二.明天计划完成的事情
1.在跑批服务中链接数据库,获取数据库中的数据
2.开始跑批服务中第一个功能的实现
三.遇到的问题
暂时还不知道如何在跑批服务中连接数据库,明天再看看项目代码,参考真实项目中的相关配置和实现
四.收获
以上,敏捷开发的流程更加熟悉
五,项目情况
已经申请了第一次延期,可能还要继续延期
评论