机房合作版到了尾声,看着我们每天的记录,有太多的成长。不知道是不是大家的通病,在一件事情开始之前,总把它设想成多么艰难,自己绊着自己的脚,渐渐相信了原来恐惧本身才是最恐惧的事情,之前看他们合作使用的工具,高大上,给人一种不容易接近的感觉,
机房合作版到了尾声,看着我们每天的记录,有太多的成长。不知道是不是大家的通病,在一件事情开始之前,总把它设想成多么艰难,自己绊着自己的脚,渐渐相信了原来恐惧本身才是最恐惧的事情,之前看他们合作使用的工具,高大上,给人一种不容易接近的感觉,一旦自己经历才有资格说和别人感同身受。这次合作感触很多,不管对我的学习和交流都是一种提高。
这是我们合作的第一个项目,作为组长不知道是我的幸运还是不幸,开始真的压力山大,虽然个人重构也是结束没多久,现在可是三人合作共同去完成,还是无从下手,不知道第一步要干什么,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层逻辑判断,而且现在是三个人一起完成,我所做的就不能只考虑一个人,你在一个团队中,领导一个团队,交流沟通很重要,自主去付出更重要。只要去做总会进步的。

MySQL触发器是与表相关联的自动执行的存储过程,用于在特定数据操作时执行一系列操作。1)触发器定义与作用:用于数据校验、日志记录等。2)工作原理:分为BEFORE和AFTER,支持行级触发。3)使用示例:可用于记录薪资变更或更新库存。4)调试技巧:使用SHOWTRIGGERS和SHOWCREATETRIGGER命令。5)性能优化:避免复杂操作,使用索引,管理事务。

在MySQL中创建和管理用户账户的步骤如下:1.创建用户:使用CREATEUSER'newuser'@'localhost'IDENTIFIEDBY'password';2.分配权限:使用GRANTSELECT,INSERT,UPDATEONmydatabase.TO'newuser'@'localhost';3.修正权限错误:使用REVOKEALLPRIVILEGESONmydatabase.FROM'newuser'@'localhost';然后重新分配权限;4.优化权限:使用SHOWGRA

MySQL适合快速开发和中小型应用,Oracle适合大型企业和高可用性需求。1)MySQL开源、易用,适用于Web应用和中小型企业。2)Oracle功能强大,适合大型企业和政府机构。3)MySQL支持多种存储引擎,Oracle提供丰富的企业级功能。

MySQL相比其他关系型数据库的劣势包括:1.性能问题:在处理大规模数据时可能遇到瓶颈,PostgreSQL在复杂查询和大数据处理上表现更优。2.扩展性:水平扩展能力不如GoogleSpanner和AmazonAurora。3.功能限制:在高级功能上不如PostgreSQL和Oracle,某些功能需要更多自定义代码和维护。

MySQL支持四种JOIN类型:INNERJOIN、LEFTJOIN、RIGHTJOIN和FULLOUTERJOIN。1.INNERJOIN用于匹配两个表中的行并返回符合条件的结果。2.LEFTJOIN返回左表的所有行,即使右表没有匹配。3.RIGHTJOIN与LEFTJOIN相反,返回右表的所有行。4.FULLOUTERJOIN返回两表中所有符合或不符合条件的行。

MySQL在高负载下的性能与其他RDBMS相比各有优劣。1)MySQL通过InnoDB引擎和优化策略如索引、查询缓存和分区表在高负载下表现良好。2)PostgreSQL通过MVCC机制提供高效并发读写,Oracle和MicrosoftSQLServer则通过各自的优化策略提升性能。通过合理的配置和优化,MySQL可以在高负载环境中表现出色。

InnoDBBufferPool通过缓存数据和索引页来减少磁盘I/O,提升数据库性能。其工作原理包括:1.数据读取:从BufferPool中读取数据;2.数据写入:修改数据后写入BufferPool并定期刷新到磁盘;3.缓存管理:使用LRU算法管理缓存页;4.预读机制:提前加载相邻数据页。通过调整BufferPool大小和使用多个实例,可以优化数据库性能。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。 MySQL以其高性能、可扩展性和跨平台支持着称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

Dreamweaver CS6
视觉化网页开发工具