学生-社团匹配程序

项目流程:

1. 分析讨论

2. 分工合作

3. 代码规范

4. 编码实现

5. 模块结合

6. 测试修改

7. 数据样例

8. 心得体会

9. GitHub链接

结对队友:陈文举 031502109


1.分析讨论

(1)首先分析程序架构

分析结果如图:

(2)了解JSON后对我们编码的影响

JSON是一种数据交换格式,加载对应的6个jar包可以在JAVA上直接使用,所以在数据读入这一块的编码,选择JAVA会方便一些。

2.分工合作

如上图,我们把程序分成了 读写模块和 匹配算法模块

  • 读写模块

    读写模块需要用到JSON,很基础,算是必须要掌握的知识,但是是一项全新的知识,所以需要学习和接受新事物能力较强的人。
  • 匹配算法模块

    而匹配算法模块则需要逻辑思维和数学能力较强的人,所以我主动把这一项交给了我的“奖学金蝉联”队友。

3.代码规范

  • 因为这次我们采用了分开写模块的方式,最后还要拼合在一起才能完成一个完整的程序,之间肯定存在很多数据交换的联系,所以我们使用了一个叫 "TIM"的软件,它有在线多人编辑文档的功能,我们建立了一个“代码规范”文档,上面写了所有如第2点中提及的交换函数的命名以及对应的接口和返回值。

4.编码实现

由于这次Pair Work是在8天的国庆假期中进行的,所以放假前的游玩计划也都泡汤了,前三四天的确拿去玩了,以致于后期的编码工作中感到时间不够,又恰好队友宿舍多了一个空床位,就直接搬过去,开始了没日没夜的编码工作......

  • 几乎从零开始学JAVA

    在前期讨论完决定数据读写模块要用JAVA的时候其实内心已经有预想了,过程肯定是艰难的。在大二下学期期中有开始学习JAVA基础,JAVA对于面向对象的要求更高了,所以一开始学的很吃力,很多东西都理解不来。后来有因为学习数据库,就耽搁了...过了一个暑假几乎也全忘了...所以在开始学JSON之前还去恶补了一下JAVA,参考资料有(链接),还有最强大的即学即用的“百度”。

  • JSON格式、JSONObject、JSONArray

    JSON是一种轻量级的数据交换格式,与XML是同行。我学完之后的理解就是,它对于JAVA编码就相当于一样工具,它是JAVA里的一个类,实质上也是字符串,但跟String相比,比String多了处理“{}”、“[]”、“:”、“,”这些字符的能力,从而能方便我们从大量用JSON格式规范的数据里提炼出对象内容。

JSONObject是可实例化的类,如果一段有“{}”包裹着的JSON格式字符串,可以用JSONObject.fromObject("字符串")把字符串实例化成JSONObject对象。

public static void main(String[] args){
String str = "{\"string\":{\"zi\":\"fu\",\"chuan\":\"chuan\"}}";
JSONObject strobj = JSONObject.fromObject(str);

而JSONObject类里提供一个.getString("字符串")方法,可以提炼出“字符串”后的内容。

	System.out.println(strobj.getString("string"));
}

输出结果为:

{"zi":"fu","chuan":"chuan"}

而遇到有“[]”包裹着的JSON格式字符串,就可以把“[]”中的内容看做一个数组,用JSONArray.fromObject("字符串")把字符串当作实例存入到JSONArray类里。

5.模块结合

  • 实际上,这一步我们还在进行中,由于面向对象的思想还在学习中,很多应该独立出来的算法都没有独立出来,在模块的接口上也有很多没有对接好的地方,在具体的结合后也出现了很多bug,所以还在尽力完成中。

6.测试修改

测试修改目前只有我自己做数据读写模块的样例

7.数据样例

数据样例也只有我自己的

8.心得体会(本次作(aó)业(yè)学到的东西)

  • 之前

    在开始之前,有很多畏惧的东西,因为事情的复杂程度会让人心乱,看不到头就会觉得无比的难。来自某位大神的良言,如果觉得事情很难,那才有我们想挑战的动力,我们需要的是把大化小的能力,然后再想一想,并不觉得完成每一小步很难,差的就是开始做了。

  • 过程

  • 之后

    能用JAVA编码并且喜欢上了JAVA,学会了JSON,顺道知道了XML,结交了良友,多了一段日夜颠倒的奋战经历,离1W行代码又近了一小步,最重要的是知道了自己在这件事情上能花出多大的精力和热情,而且在面对很多人抱怨不喜欢自己所学专业的同时,我能说我并不后悔。

Pair Programming 2的更多相关文章

  1. Pair programming

    Pair programming is an agile software development technique in which two programmers work together a ...

  2. [tmux] Share a tmux session for pair programming with ssh

    By using ssh, you can share a tmux session, making pair programming much easier. We'll learn how to ...

  3. Crystal Clear Applied: The Seven Properties of Running an Agile Project (转载)

    作者Alistair Cockburn, Crystal Clear的7个成功要素,写得挺好. 敏捷方法的关注点,大家可以参考,太激动所以转载了. 原文:http://www.informit.com ...

  4. iOS项目分析及优化

    iOS项目分析及优化  来源:吴白的简书   从代码看一个程序员的笔力 从代码的整洁度上就可以看出一个程序员的实力,规范其实就是让你养成一种良好习惯的标杆,在此面前我们应该顺从.本篇我们以OC为例,统 ...

  5. 哪些问题是面试官经常问Java工程师的问题 ? --- 转自quora

    Which are the frequently asked interview questions for Java Engineers ? Vivek Vermani, www.buggybrea ...

  6. 招聘.NET开发人员(截止于2015-06-15)

    文章更新 2015-06-15 01:00AM: 感谢各位的支持,简历和解决方案接收截止.2015-06-08 08:30AM: 已经收到一些简历和解决方案,正在筛选中.职位仍然开放,欢迎发送简历及解 ...

  7. 关于分工的思考 (Thoughts on Division of Labor)

    Did you ever have the feeling that adding people doesn't help in software development? Did you ever ...

  8. 《Continuous Integration》读书笔记

    Trigger a Build whenever a change occurs. it can help us reduce assumptions on a projecvt by rebuild ...

  9. 大家是怎么做Code Review的?

    先说说我们公司现在的做法,一个团队被人为地分为两个阵营:Senior Developers和Junior Developers,比例差不多是1:1,Senior Developers就担负着对Juni ...

随机推荐

  1. Notyf - 超级简单、响应式的 JS 通知插件

    通知是网站的常用功能之一,可以用来显示消息.通告.提示等等.Notyf 是一款超级简单.响应式的 JS 通知插件,不依赖 jQuery 库,可以独立使用.赶紧试用一下吧! 在线演示      免费下载 ...

  2. java高级工程师开放面试题集<一>

    临近年关,不少人蠢蠢欲动,有童鞋问我java后端面试会面试什么? 作为一个java后端老鸟,跌打滚爬多次被面试和面试别人,总结了一些经验,希望对大家有所帮助. 特别说明,仅仅针对工作两年以上的java ...

  3. netty源码解解析(4.0)-2 Chanel的接口设计

    全名: io.netty.channel.Channel Channel内部定义了一个Unsafe类型,Channel定义了对外提供的方法,Unsafe定义了具体实现.我把Channel定义的的方法分 ...

  4. noip之后的一些感受

    你经历过绝望吗,那种希望完全破碎,眼前看不到光亮,不知道下一步怎么走,不知道接下来应该如何生活的那种绝望? 我经历过. 2018.11.12 下午 秦皇岛到石家庄的高铁上 听着同学兴高采烈的讨论,自己 ...

  5. [转]git操作指南

    [GIT上手篇]-1-基本操作(初始化仓库,添加.提交文件) 创建(初始化)一个GIT库 init 命令 说明:用于仓库的初始化 参数:--bare 创建一个纯仓库(不含缓存区和工作目录,服务器一般采 ...

  6. 《深入理解Java虚拟机》(二)Java虚拟机运行时数据区

    Java虚拟机运行时数据区 详解 2.1 概述 本文参考的是周志明的 <深入理解Java虚拟机>第二章 ,为了整理思路,简单记录一下,方便后期查阅. 2.2 运行时数据区域 Java虚拟机 ...

  7. [android] 手机卫士保存安全号码

    调用ListView对象的setOnItemClickListener()方法,设置条目的点击事件,参数:OnItemClickListener对象 使用匿名内部类实现,重写onClick()方法,传 ...

  8. LVOOP设计模式在路上(二)-- 策略模式

    前言 最近工作还挺忙的,连着好些周都是单休了,今天休息在家就来写写关于策略模式的理解和labivew的实现. 正文 1.什么是策略模式 定义是这样描述的:它定义了算法家族,分别封装起来,让它们之间可以 ...

  9. hive的本地安装部署,元数据存储到mysql中

    要想使用Hive先要有hadoop集群的支持,使用本地把元数据存储在mysql中. mysql要可以远程连接: 可以设置user表,把localhost改为%,所有可连接.记住删除root其他用户,不 ...

  10. 组件化和 React

    一,对组件化的理解 1,组件的封装 -视图 -数据 -变化逻辑(数据驱动视图变化) 例: import React, { Component } from 'react'; import List f ...