结对编程项目的总结与思考

如果说这次项目在什么方面给了我最大的收获,我一定会说是合作交流方面。当然个人能力也有了很大的提高,审美方面也有提高,但那些只是次要的。我想,真正能完成一个结对编程项目的,都是那些有着极佳默契的人,当然默契也不只是一次性培养出来的。

在经历过一次次的版本更替与意见反馈,通过一次次的交流和探讨,最终产生的是让我能为之振奋的东西。在这里,特别的要感谢刘至臻同学在此过程中给予我的强大的支持与自信,在我最困难的时候给我想法,让我顺利完成了UI的设计与优化。所以,这篇博客将回顾我们项目的主要历程以及对项目的总结与思考。

确定项目+分工:前后端分离

在上一篇博客中曾经提到过,我是非常欣赏刘至臻同学的代码的,虽然他的界面存在一些小问题,但经过一些修改并无大碍。经过商量,我们决定我做前端,完成页面的设计,而至臻做后端,完成功能。前端的页面设计与个人项目几乎无关,但部分页面之间的逻辑还是有用的,比喻说登录后跳转到选择进入系统页面,进入系统后可以选择难度,之后可以出题,最后出正确率,这个逻辑还是一样的。

遇到的第一个问题:页面设计

可以说,做UI设计的最大杀手就是页面设计,每个部件的规划以及实现对整体的格局非常重要,在此过程中我曾经常晚上会睡不着觉,因为我想着怎样可以使我们的页面更加的漂亮,想着想着我就开始自己动手画了。

                      (初稿)

因为没有学过设计,只能把想法画个大概的出来,然后组建,因为之前只在Java程序设计课程中简单的了解过,所以只能从网上找些例子学习,然后自己拼装,当时想的是用JPanel填充空格来达到将组件填到对应的位置。此时大概弄出来了一个大概的页面,因为设计了九个页面,所以没有一次性放上面来。

             (登录界面的初设计)

遇到的第二个问题:UI太难看

虽然页面按照最初的样子设计了出来,但也只是保证工整而已,并不能得到很好的视觉感受。此时,至臻也已经将后端代码写好,在拼接时他什么也没说,然后发给了我一张其他网站的登录界面,那天我想了很久(因为之前设计九个页面也花了不少时间,几天没怎么休息我也很累了,然后当时截至时间还是一周之前,我也很急),最后我用询问的语气问他是否要搞优化,他语气坚决的表示要,他说他知道没多少时间了,但是不管怎么样,毕竟是我们的第一个工程,不管收不收都要搞,后来时间也幸运的延迟了,也给了我一些时间。这段时间里,我们俩找了很多好看网站的页面分析学习配色以及背景的调色,通过setBackGround(new Color(255,255,255))来改变背景,通过改变排版以及原本字的颜色来改变视觉感受。最终经过一星期的调色,终于把UI变得稍微好看了。

                (修改后与修改前的对比)

之前的问题都转化为现在的经验,我也能独立设计一些其他的创意了

这之后我还加上了一些其他的功能,比喻修改密码后会显示当前信息失效,密码错误后会显示密码错误

显示当前页面失效使用了线程来控制页面出现的时间,具体代码如下:

public static void NewFrame() {  
            JFrame jf = new JFrame(){  
                @Override  
                public void paint(Graphics g){  
                    super.paint(g);  
                    Graphics2D graphics2d = (Graphics2D) g.create();  
                    ImageIcon ii1 = new ImageIcon("./img/login.jpg");  
                    graphics2d.drawImage(ii1.getImage(),0,0,290,223,null);  
                }  
            };  
            jf.setUndecorated(true);  
            jf.setBounds(610,275,279,223);  
            jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);  
            jf.setVisible(true);  
            Thread t = new Thread(new Runnable() {  
                @Override  
                public void run() {  
                    try {  
                        Thread.sleep(750);//该线程睡眠0.75秒  
                        jf.dispose();  
                    } catch (InterruptedException ex) {  
                    }  
            }  
        });  
        t.start();//启动线程  
    } 

效果如下:

           (页面失效,重新登录)

另附注册页面提示错误时的显示:

        (密码错误,手机号错误)

 参与前端的同时与至臻交换身份互相学习互相找bug使我提升

在此过程中,我也和至臻互相测试以及改正对方代码的问题,在此过程中我们两个也因为对方的代码闹过矛盾。我的主要问题是命名问题,至臻觉得我的命名让他看的很烦,的确,UI因为组件过多以及排版和背景设计,会显得代码特别多;而至臻给我写的后端代码最开始是在main里面实现功能的,当时我提出要让他生成对应功能的函数,他最后也照做了。虽然期间有过不愉快,但是最后成品出来的一刹那还是挺快乐的。

通过这次结对编程,真心感觉收获巨多。

猜你喜欢

转载自www.cnblogs.com/sky-bug00/p/11603973.html