学生-社团匹配程序

项目流程:

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. JVM笔记10-性能优化之高级特性

    一.垃圾回收器配置和 GC 日志分析 1.堆典型配置: 32位的操作系统限制堆大小介于1.5G到2G,64位操作系统无限制,同时系统可用虚拟内存和可用物理内存都会限制最大堆的配置. 堆空间分配典型配置 ...

  2. leetcode — letter-combinations-of-a-phone-number

    import java.util.*; /** * Source : https://oj.leetcode.com/problems/letter-combinations-of-a-phone-n ...

  3. js中的模块化

    前阵子一直忙着找实习,发现已经有一段时间没写博客了,面试很多时候会被问到模块化,今天就让我们一起来总结下把 一.什么是模块化 在js出现的时候,js一般只是用来实现一些简单的交互,后来js开始得到重视 ...

  4. RockChip RK3326 系统编译问题总结

    1. 序言 本文主要记录了RK3326平台系统编译过程中遇到的各种问题,并加以解决! 环境: 宿主Linux:Ubuntu 16.04 目标机:RK3326 (64bit) Toolchain:gcc ...

  5. Maven deploy 部署 jar+pom 到 Nexus 私服

    经验之谈 工作中,我们常常需要将基础架构部门的 jar 包提供给业务部门的同事使用,那么,需要将 jar 包 deploy 到 nexus 私服上,网上资料不是很多,这里说一下具体细节. 首先,是打 ...

  6. APiCloud学习

    端API调用 核心模块在 window.api 对象下,默认提供该模块,不需要单独引用. 扩展模块在相应的模块对象下(例如:文件系统模块在fs对象下),需要require引入(var fs = api ...

  7. elasticsearch6.7 05. Document APIs(9)Bulk API

    8.Bulk API 可以把多个index或delete操作放在单个bulk API中执行.这样可以极大地提高索引速度. /_bulkAPI使用如下的JSON结构: action_and_meta_d ...

  8. 【Java并发编程】15、ReentrantLock实现原理深入探究

    原文已经写得非常详细了,直接把大神的文章转发过来了  https://www.cnblogs.com/xrq730/p/4979021.html 前言 这篇文章被归到Java基础分类中,其实真的一点都 ...

  9. 【读书笔记】iOS-xib,自动布局(二)

    我们紧接着上面的文章来写. 一,此时没有选择自动布局的时候 . 二,选中Use Auto Layout.如下图所示. 三,自动布局与不自动布局最明显的区别是右下角多了4个按钮.如图所示. 四,设置On ...

  10. ArcGIS Arcade

    ArcGIS Arcade http://127.0.0.1/Resource/JavaScript/arcgis_js_api/sdk/4.10/latest/guide/arcade/index. ...