Pair Programming 2
学生-社团匹配程序
项目流程:
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的更多相关文章
- Pair programming
Pair programming is an agile software development technique in which two programmers work together a ...
- [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 ...
- Crystal Clear Applied: The Seven Properties of Running an Agile Project (转载)
作者Alistair Cockburn, Crystal Clear的7个成功要素,写得挺好. 敏捷方法的关注点,大家可以参考,太激动所以转载了. 原文:http://www.informit.com ...
- iOS项目分析及优化
iOS项目分析及优化 来源:吴白的简书 从代码看一个程序员的笔力 从代码的整洁度上就可以看出一个程序员的实力,规范其实就是让你养成一种良好习惯的标杆,在此面前我们应该顺从.本篇我们以OC为例,统 ...
- 哪些问题是面试官经常问Java工程师的问题 ? --- 转自quora
Which are the frequently asked interview questions for Java Engineers ? Vivek Vermani, www.buggybrea ...
- 招聘.NET开发人员(截止于2015-06-15)
文章更新 2015-06-15 01:00AM: 感谢各位的支持,简历和解决方案接收截止.2015-06-08 08:30AM: 已经收到一些简历和解决方案,正在筛选中.职位仍然开放,欢迎发送简历及解 ...
- 关于分工的思考 (Thoughts on Division of Labor)
Did you ever have the feeling that adding people doesn't help in software development? Did you ever ...
- 《Continuous Integration》读书笔记
Trigger a Build whenever a change occurs. it can help us reduce assumptions on a projecvt by rebuild ...
- 大家是怎么做Code Review的?
先说说我们公司现在的做法,一个团队被人为地分为两个阵营:Senior Developers和Junior Developers,比例差不多是1:1,Senior Developers就担负着对Juni ...
随机推荐
- 【精】EOS智能合约:system系统合约源码分析
系统合约在链启动阶段就会被部署,是因为系统合约赋予了EOS链资源.命名拍卖.基础数据准备.生产者信息.投票等能力.本篇文章将会从源码角度详细研究system合约. 关键字:EOS,eosio.syst ...
- ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)
ProxySQL是灵活强大的MySQL代理层, 是一个能实实在在用在生产环境的MySQL中间件,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行 cache,支持动态加载配 ...
- Maven教程(3)--Maven导入工程常见问题(编码、MavenArchiver、Lifecycle Mapping、maven install 没有反应)
常见错误: 常见错误一:These projects must be migrated to correctly function in this version of MyEclipse 需要修改编 ...
- RocketMQ的broker启动失败解决
RocketMQ的broker用如下命令启动: nohup sh bin/mqbroker -n localhost:9876 & 使用jps查看,系统非常卡顿,broker的名字也未显示.使 ...
- python学习笔记01--基础
一.解释型语言 python是一门解释型语言,这意味着: l 编写过后的代码不用编译连接即可运行,节约调试时间 l python的解释器在大多数系统中都有很好实现,所以编写的代码可以运行在任何系统 ...
- js判断字符串是否在数组中
先加一个扩展函数: Array.prototype.contains = function (obj) { var index = this.length; while (index–) { ...
- linq left join ,inner join ,crossjoin
inner join : linq 默认使用Inner Join的链接方式,如下面的表达式一样: Left Join: 左链接返回左表的全部数据,以及右表中满足链接条件和不满足链接条件的数据,不满足的 ...
- Java文件编译出现 “编码 GBK 的不可映射字符”
俗话说,温故而知新.本打算用dos回忆一下基础知识,没想到把自己绊倒了. 用Dos,当然就要回归原始,用记事本啦.下面用一个小练习,演示我遇到的绊脚石.之后,解决了简直笑死. 报错: Java文件编译 ...
- 【读书笔记】iOS-解析JSON
JSON相比XML最显著的优点是不需要使用重量级的解析库,因为其本身就是面向数据的,而且非常容易转换成哈希字典.除此之外,JSON文档相比同样的XML文档更小.在网络宽带有限的情况下,你很容易在Iph ...
- Html/Css 初步认识笔记
1.什么是 HTML ? HTML(HyperText Markup Language) 的学名是超文本标记语言. 标记用来表示网页内容要如何显示,自身不显示 .<我就是标记> 标记成对出 ...