热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

机房收费合作版总结

机房合作版到了尾声,看着我们每天的记录,有太多的成长。不知道是不是大家的通病,在一件事情开始之前,总把它设想成多么艰难,自己绊着自己的脚,渐渐相信了原来恐惧本身才是最恐惧的事情,之前看他们合作使用的工具,高大上,给人一种不容易接近的感觉,

机房合作版到了尾声,看着我们每天的记录,有太多的成长。不知道是不是大家的通病,在一件事情开始之前,总把它设想成多么艰难,自己绊着自己的脚,渐渐相信了原来恐惧本身才是最恐惧的事情,之前看他们合作使用的工具,高大上,给人一种不容易接近的感觉,

机房合作版到了尾声,看着我们每天的记录,有太多的成长。不知道是不是大家的通病,在一件事情开始之前,总把它设想成多么艰难,自己绊着自己的脚,渐渐相信了原来恐惧本身才是最恐惧的事情,之前看他们合作使用的工具,高大上,给人一种不容易接近的感觉,一旦自己经历才有资格说和别人感同身受。这次合作感触很多,不管对我的学习和交流都是一种提高。

这是我们合作的第一个项目,作为组长不知道是我的幸运还是不幸,开始真的压力山大,虽然个人重构也是结束没多久,现在可是三人合作共同去完成,还是无从下手,不知道第一步要干什么,SVN视频看完了也还很模糊,开始总是很沉重的,但日子还是要继续,就去找师父,知道谁合作完了就和他们交流每个阶段都注意些什么。于是制定了第一个计划(11月4号-12月4号),计划每天晚上着手合作的事情,发现四五天过去了,没什么进展,7号晚上第一次开会只是将计划说了一下,分了一下工,我负责画用例、类图和时序图,金博负责设计数据库,然后代码就负责D层,春阳负责原型图,加上U层代码,最后B层就分配到了我,可是发现画图时一些类的方法的参数不知道如何定义,这时才感觉需求分析真的很重要,也很必要,我们拿出一晚上时间把每个功能用到的方法、方法传递的参数和返回的类型还有数据库中用到的每张表,每张表的字段和类型讨论了一下,然后我在画类图的时候不再用纠结,后来一次和文康师哥聊天,指导了我们每个阶段注意的问题,稍改变了一下计划,合作的事情不能这么拖着,团结起来一口气完成,挺有道理的,于是修改了计划,接着之前,制定了10天的计划(画图3天,代码实现3天,调试3天,补充文档1天),安排每个人每天任务,我主要还是画图,金博负责数据库设计,春阳负责研究设计模式的使用。

大概用了1天半,不过完善类图差不多用了2天,这里最大的感悟就是为人民服务绝不是口号,合作框架还是三层思想,但这次每层的类都是EA自动生成,看着生成后的类,知道有了表头、类、方法、参数等着这些注释才舒服些,真的是画图时如果细腻些,组员就会减少一些工作量,这也是应该的,画时序图大概用了1天多,类图定义好的话,时序图相对容易很多,不过对于一些逻辑判断自己也拿不准,这次我很幸运当了组长,又很幸运负责B层代码,个人重构验收时师哥说我三层理解有问题,不会抽象,我当时真的不理解,也不知道自己问题出在哪里,通过这次画图,我明白了B层调用工厂创建接口,还要调用接口的方法,其实就是调用D层方法,而之前我直接返回接口就完事了,然后在U层调用接口的方法,直接和数据库打交道,没有达到解耦的目的,终于对逻辑判断有了一点点理解,记得个人重构总结时说一些遗留问题等到合作时来弥补,有些东西是到了一定阶段才慢慢理解。这个阶段金博主要建立数据库和使用的一些存储过程、视图的编写,春阳主要查资料我们使用的策略、职责链、模板、抽象工厂、外观等模式如何使用,如何体现在类图上,当然原则上每天开会,不过有时有问题也随时交流去解决。

有了EA生成的类图,建立好项目,这些类要包含在项目中,系统框架就成型了,他们看着图和文档,写代码简直是太容易的事情了,写代码大概用了2天时间,中间也遇到很多事情,SVN使用不熟练,有时一个人在修改文件,另一个更新提交就会出现冲突,只能退回到之前版本,在工具的使用上,也请教了不少同学,在这里除了了解SVN的更新和提交代码功能,还代码随时备份的思想。我负责的B层代码,最纠结的应该算是设计模式的添加了,个人重构时下机没有使用策略,这次我们决定一定要加上,再加上职责链的使用,每个类中的方法不知如何下手,跟春阳也讨论了不止一两次,也搜了很多他们博客,等实现以后走一遍代码发现其实也就那么一回事,很难说一个人的潜力有多大。

调试代码在我看来是最有意思的阶段了,如果不是自己亲眼看到绝对不会相信是自己写出来的,最容易出现问题的几乎是D层SQL语句拼错,参数没有赋值,也有命令类型错误等,还有就是U层有时没有赋值,也有一些思路的差别,比如充值之前要返回一个卡的金额,充值之后也要返回一个金额显示,开始是写到B层充值方法里面,后来发现返回的类型U层满足不了,不得已将卡的判断返回到U层,然后再充值。调试阶段也是很好的交流机会,你可以看到他们思考问题的方式,春阳比较善于思考,思路很灵活,而我就是很依赖网络,比如下机计算消费时间,出错了就去网上找方法,而不是自己先去思考,这也是一种习惯吧,之前总是说靠自己,原来靠自己是先靠自己大脑,然后再借助巨人肩膀,这样应该会更加深刻;金博很有耐心,很会为知识结网,而且他学习一个东西比较踏实。毕竟是三个人写的代码,调试中各种问题,调试也是时间最长的。总之,相信自己,更要相信代码。

这次合作,让我看到之前自己漏掉的东西,比如画图的规范,比如策略模式,比如如何在B层逻辑判断,而且现在是三个人一起完成,我所做的就不能只考虑一个人,你在一个团队中,领导一个团队,交流沟通很重要,自主去付出更重要。只要去做总会进步的。


推荐阅读
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
author-avatar
万超英先生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有