링크
회원의 자매 결연을 통해 학습에 주목 :
1 -1 반 반 주석 Xiaosong 가오 지안
쌍 블로그의 회원을 연결 :
https://www.cnblogs.com/maxilong/p/11729323.html
코드 검토
코드 검토 체크리스트 (가오 지안) | 후 Xiaosong의 그룹에 의해 완료 | |
---|---|---|
1. 요약 섹션 | ||
1)에 맞춰 코드 요구 사항 및 사양을 준수? | 그것은이다 | |
2) 코드 디자인 사려 깊은 여부? | 포괄적 인 | 일관성 및 기능 요구 사항 |
방법 3) 코드의 가독성? | 일반 | |
4) 쉽게 코드를 유지하기 위해? | 쉽게 | |
5) 코드의 각 라인은 아직 확인? | 그것은이다 | |
2. 디자인 사양 | ||
여부 1) 알려진 디자인이나 프로젝트 모드에서 일반적인 패턴을 따라 설계? | 그것은이다 | |
2) 어떤 하드 코딩 또는 문자열 / 숫자 등의 존재를 없다? | 그것은이다 | |
3) 코드는 이식의 미래에 영향을 미칠 것인지, 특정 플랫폼에 의존하지? | 아니오 | |
4) 4. 개발자들은 새로운 코드의 기능에 라이브러리 / SDK / 프레임 워크를 기존 달성 할 수 쓰기? 모두를 다시 구현하지 않고도 호출 할 수있는이 프로젝트에서 비슷한 기능이 있는지 여부? | 그것은이다 | |
5) 5. 사용되지 않은 코드가 삭제되지 않을 수있다? | 아니오 | |
3. 코드 사양 | ||
1) 물건의 표준과 스타일에 맞춰 코드의 일부를 수정? | 그것은이다 | |
4. 상세 코드 부 | ||
1) 처리 오류가 없다? 외부 함수 호출의 경우, 반환 값 또는 예외 처리를 확인? | 아니오 | |
2) 오류없이 전달되는 매개 변수 문자열의 길이 또는 문자 바이트의 길이 (시작 카운트 횟수 0 또는 1이다 개시) 싱글 / 더블 바이트 수있다? | 0 | |
3) 어떻게 경계 조건을 처리하기 위해? 어떻게 기본 지점 스위치 문을 처리? 이 무한 루프는 루프 수 있습니까? | 아니오 | 지점에서 점프 문을 기입 |
4) 아무 소용이 주장 (어설는) 우리가 정말 생각 같은 조건이 충족 없도록있다? | 아니오 | |
5) 자원의 사용은 어디 어디 해제, 적용하는 것입니다? 그것은 자원 누출 (메모리, 파일, 다양한 GUI 자원, 데이터베이스 액세스 연결 등)이 발생할 수 있습니까? 그것은 최적화 할 수 있습니까? | 그것은이다 | 이 때문에 수도,하지만 반드시 과도한 처리, 일회성 프로그램이 데이터를 생성 일부 누수 |
6) 이하의 데이터 구조 요소는 없다? | 아니오 | 데이터는 유휴 데이터의 데이터의 실제 부재를 사용하여 정의됩니다 |
5. 효과 | ||
어떻게 성능 1) 코드? 최악의 경우는 무엇입니까? | 고정 된 패턴에 따라 프로그램의 실행, 좋고 나쁨의 부재 | |
사이클의 명백한 부분은 최적화 될 수있다 2) 코드는 특히 거기 (C ++ 반복) C # 1의 StringBuilder 캐릭터 동작이 최적화 될 수 있는지, 클래스를 생성? | 아니오 | |
6. 가독성 | ||
방법 1) 코드의 가독성? 충분한 의견이 있습니까? | 코드의 빈약 한 가독성은 충분히 의견은 코드의 의미를 이해하기 | |
7. 테스트 용이성 | ||
1) 1. 코드 업데이트하거나 새로운 유닛 테스트를 작성해야합니까? (등 데이터베이스, 웹 페이지, 멀티 스레딩, 등) 특정 지역에 대한 개발, 당신은 특별한 체크리스트를 구성 할 수 있습니다. | 코드는 새로운 테스트 장치를 만들 수 있지만, 반드시, 너무 많은 테스트를하지 않고, 하나의 코드를 제공 할 수 있습니다 |
코드 검토 체크리스트 (후 Xiaosong) | 가오 지안의 그룹에 의해 완료 | |
---|---|---|
1. 요약 섹션 | ||
1)에 맞춰 코드 요구 사항 및 사양을 준수? | 그것은이다 | |
2) 코드 디자인 사려 깊은 여부? | 포괄적 인 | 일관성 및 기능 요구 사항 |
방법 3) 코드의 가독성? | 명확한 | |
4) 쉽게 코드를 유지하기 위해? | 그것은이다 | |
5) 코드의 각 라인은 아직 확인? | 그것은이다 | |
2. 디자인 사양 | ||
여부 1) 알려진 디자인이나 프로젝트 모드에서 일반적인 패턴을 따라 설계? | 그것은이다 | |
2) 어떤 하드 코딩 또는 문자열 / 숫자 등의 존재를 없다? | 그것은이다 | |
3) 코드는 이식의 미래에 영향을 미칠 것인지, 특정 플랫폼에 의존하지? | 아니오 | |
4) 4. 개발자들은 새로운 코드의 기능에 라이브러리 / SDK / 프레임 워크를 기존 달성 할 수 쓰기? 모두를 다시 구현하지 않고도 호출 할 수있는이 프로젝트에서 비슷한 기능이 있는지 여부? | 그것은이다 | |
5) 5. 사용되지 않은 코드가 삭제되지 않을 수있다? | 아니오 | |
3. 코드 사양 | ||
1) 물건의 표준과 스타일에 맞춰 코드의 일부를 수정? | 그것은이다 | |
4. 상세 코드 부 | ||
1) 처리 오류가 없다? 외부 함수 호출의 경우, 반환 값 또는 예외 처리를 확인? | 아니오 | |
2) 오류없이 전달되는 매개 변수 문자열의 길이 또는 문자 바이트의 길이 (시작 카운트 횟수 0 또는 1이다 개시) 싱글 / 더블 바이트 수있다? | 0 | |
3) 어떻게 경계 조건을 처리하기 위해? 어떻게 기본 지점 스위치 문을 처리? 이 무한 루프는 루프 수 있습니까? | 아니오 | 분기에 채워진 휴식 |
4) 아무 소용이 주장 (어설는) 우리가 정말 생각 같은 조건이 충족 없도록있다? | 아니오 | |
5) 자원의 사용은 어디 어디 해제, 적용하는 것입니다? 그것은 자원 누출 (메모리, 파일, 다양한 GUI 자원, 데이터베이스 액세스 연결 등)이 발생할 수 있습니까? 그것은 최적화 할 수 있습니까? | 그것은이다 | 이 때문에 수도,하지만 반드시 과도한 처리, 일회성 프로그램이 데이터를 생성 일부 누수 |
6) 이하의 데이터 구조 요소는 없다? | 아니오 | 데이터는 유휴 데이터의 데이터의 실제 부재를 사용하여 정의됩니다 |
5. 효과 | ||
1)代码的效能如何?最坏的情况是怎样的? | 数据控制在一定的范围内,按照固定模式执行,不存在好坏情况 | |
2)代码中特别是循环中是否有明显可优化的部分(C++中反复创建类,c#中string的操作是否能用StringBuilder来优化)? | 否 | |
6.可读性 | ||
1)代码可读性如何?有没有足够的注释? | 代码的可读性不好,由于从c平台移植到Java所有的功能均在主类中实现 | |
7.可测试性 | ||
1)1.代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库,网页,多线程等),可以整理专门的核查表。 | 代码可以创建新的测试单元但是没有必要,代码的功能单一,无需过多的测试 |
结对编程
代码编写基本规范
源代码文件以文件内容中的最顶层的Java类命名,而且大小写敏感,文件扩展名为 .java,同时,文件的编码格式统一为UTF-8。类的命名遵循大驼峰命名法UpperCamelCase,而方法名和变量名的命名遵循小驼峰命名法lowerCamelCase。常量名使用大写字母表示,单词之间以下划线分隔.jsp的文件名全部小写。、一个程序文件最好不要超过2000行。不用的代码和引用删除。请合理运用空行。空行可以用来隔开相对独立的代码块,有利于阅读和理解。为不容易理解类变量注释。注释代码段,注释逻辑选择。对成员方法,不要轻易采用public的成员变量。主要的修饰符有public, private,protected。避免过多的参数列表,尽量控制在5个以内,原则上关系密切的行应对齐,对齐包括类型、修饰、名称、参数等各部分对齐。另每一行的长度不应超过屏幕太多,必要时适当换行,换行时尽可能在","处或运算符处,换行后最好以运算符打头,常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾。
结对编程感受
与一个人编程相比较,结对编程有很多优点。比如我自己写代码时不太注意编程规范,所以代码风格不是很优秀,再次读自己写的代码时就像看天书一样,可读性很差,但是两人结对编程的话两人可以互相商量变量命名等事宜,一个人也可以提醒代码规范的问题。结对编程时还能减少bug,“驾驶员”长期盯着屏幕,很容易疲劳而犯一些小错误,这时“领航员”便可轻松的指出错误以减少bug的产生,同样的,调试bug的速度也变快了。总之结对编程虽然降低了一些效率,但是写出的代码错误率更低,代码质量更高,也未尝不是一种补偿。但是结对编程并不是适合所有人,有的人就是喜欢一个人编程,两人结对编程的效率一部分取决于两个程序员的熟悉程度,所以两个人刚开始结对编程时需要一段时间来适应。可以不断从别人那里学习,提高自己的水平。这次结对编程,我们互相学到了很多,比如良好的代码风格,清晰的编码思路,以及熟练的调试技巧等通过两个人的讨论,更好的解决问题。
结对场景照片
新增的需求
github连接
https://github.com/maxilong258/NM-L
考虑数据异常处理问题,如在输入题目生成范围的数据时,输入了“abc“等字符数据,程序如何处理。
增大算式生成数的范围(如整数存不下的数),程序如何处理。
异常处理,当输入非法字符时,报错,并告知用户,输入非法,然后将打印默认数据。
如果算术式增大范围,整数存不下,报错,并告知用户输入范围有误,然后改为最大范围
链接
在学习通上注明结对的成员对:
1班胡晓松-1班高健
结对成员的博客连接:
https://www.cnblogs.com/maxilong/p/11729323.html
代码复审
代码复审核查表(高健) | 由一班胡晓松完成 | |
---|---|---|
1.概要部分 | ||
1)代码符合需求和规格说明吗符合? | 是 | |
2)代码设计是否考虑周全? | 周全 | 功能和要求相符 |
3)代码可读性如何? | 一般 | |
4)代码容易维护么? | 容易 | |
5)代码每一行都检查过了吗? | 是 | |
2.设计规范部分 | ||
1)设计是否遵循从已知的设计模式或项目中常用的模式? | 是 | |
2)有没有硬编码或字符串/数字等存在? | 是 | |
3)代码有没有依赖于某平台,是否会影响将来的移植? | 否 | |
4)4.开发者新写的代码能否用已有Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? | 是 | |
5)5.有没有无用的代码可以清除? | 否 | |
3.代码规范部分 | ||
1)修改的部分符合代码标准和风格嘛? | 是 | |
4.具体代码部分 | ||
1)有没有对错误进行处理?对于调用外部函数,是否检查了返回值或处理了异常? | 否 | |
2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? | 0 | |
3)边界条件如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? | 否 | 在分支中填入跳转语句 |
4)有没有使用断言(Assert)来保证我们认为不变的条件真的满足? | 否 | |
5)对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存,文件,各种GUI资源,数据库访问的连接,等等)?有没有可能优化? | 是 | 有些泄露的可能,但是没有必要过度的处理,因为这是生成一次性数据的程序 |
6)数据结构中有没有用不到的元素? | 否 | 所定义的使用的数据均为实用数据不存在闲置的数据 |
5.效能 | ||
1)代码的效能如何?最坏的情况是怎样的? | 程序按照固定模式执行,不存在好坏情况 | |
2)代码中特别是循环中是否有明显可优化的部分(C++中反复创建类,c#中string的操作是否能用StringBuilder来优化)? | 否 | |
6.可读性 | ||
1)代码可读性如何?有没有足够的注释? | 代码的可读性不好,注释足够,能读懂代码的含义 | |
7.可测试性 | ||
1)1.代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库,网页,多线程等),可以整理专门的核查表。 | 代码可以创建新的测试单元但是没有必要,代码的功能单一,无需过多的测试 |
代码复审核查表(胡晓松) | 由一班高健完成 | |
---|---|---|
1.概要部分 | ||
1)代码符合需求和规格说明吗符合? | 是 | |
2)代码设计是否考虑周全? | 周全 | 功能和要求相符 |
3)代码可读性如何? | 清晰 | |
4)代码容易维护么? | 是 | |
5)代码每一行都检查过了吗? | 是 | |
2.设计规范部分 | ||
1)设计是否遵循从已知的设计模式或项目中常用的模式? | 是 | |
2)有没有硬编码或字符串/数字等存在? | 是 | |
3)代码有没有依赖于某平台,是否会影响将来的移植? | 否 | |
4)4.开发者新写的代码能否用已有Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? | 是 | |
5)5.有没有无用的代码可以清除? | 否 | |
3.代码规范部分 | ||
1)修改的部分符合代码标准和风格嘛? | 是 | |
4.具体代码部分 | ||
1)有没有对错误进行处理?对于调用外部函数,是否检查了返回值或处理了异常? | 否 | |
2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? | 0 | |
3)边界条件如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? | 否 | 在分支中填入break |
4)有没有使用断言(Assert)来保证我们认为不变的条件真的满足? | 否 | |
5)对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存,文件,各种GUI资源,数据库访问的连接,等等)?有没有可能优化? | 是 | 有些泄露的可能,但是没有必要过度的处理,因为这是生成一次性数据的程序 |
6)数据结构中有没有用不到的元素? | 否 | 所定义的使用的数据均为实用数据不存在闲置的数据 |
5.效能 | ||
1)代码的效能如何?最坏的情况是怎样的? | 数据控制在一定的范围内,按照固定模式执行,不存在好坏情况 | |
2)代码中特别是循环中是否有明显可优化的部分(C++中反复创建类,c#中string的操作是否能用StringBuilder来优化)? | 否 | |
6.可读性 | ||
1)代码可读性如何?有没有足够的注释? | 代码的可读性不好,由于从c平台移植到Java所有的功能均在主类中实现 | |
7.可测试性 | ||
1)1.代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库,网页,多线程等),可以整理专门的核查表。 | 代码可以创建新的测试单元但是没有必要,代码的功能单一,无需过多的测试 |
结对编程
代码编写基本规范
源代码文件以文件内容中的最顶层的Java类命名,而且大小写敏感,文件扩展名为 .java,同时,文件的编码格式统一为UTF-8。类的命名遵循大驼峰命名法UpperCamelCase,而方法名和变量名的命名遵循小驼峰命名法lowerCamelCase。常量名使用大写字母表示,单词之间以下划线分隔.jsp的文件名全部小写。、一个程序文件最好不要超过2000行。不用的代码和引用删除。请合理运用空行。空行可以用来隔开相对独立的代码块,有利于阅读和理解。为不容易理解类变量注释。注释代码段,注释逻辑选择。对成员方法,不要轻易采用public的成员变量。主要的修饰符有public, private,protected。避免过多的参数列表,尽量控制在5个以内,原则上关系密切的行应对齐,对齐包括类型、修饰、名称、参数等各部分对齐。另每一行的长度不应超过屏幕太多,必要时适当换行,换行时尽可能在","处或运算符处,换行后最好以运算符打头,常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾。
结对编程感受
与一个人编程相比较,结对编程有很多优点。比如我自己写代码时不太注意编程规范,所以代码风格不是很优秀,再次读自己写的代码时就像看天书一样,可读性很差,但是两人结对编程的话两人可以互相商量变量命名等事宜,一个人也可以提醒代码规范的问题。结对编程时还能减少bug,“驾驶员”长期盯着屏幕,很容易疲劳而犯一些小错误,这时“领航员”便可轻松的指出错误以减少bug的产生,同样的,调试bug的速度也变快了。总之结对编程虽然降低了一些效率,但是写出的代码错误率更低,代码质量更高,也未尝不是一种补偿。但是结对编程并不是适合所有人,有的人就是喜欢一个人编程,两人结对编程的效率一部分取决于两个程序员的熟悉程度,所以两个人刚开始结对编程时需要一段时间来适应。可以不断从别人那里学习,提高自己的水平。这次结对编程,我们互相学到了很多,比如良好的代码风格,清晰的编码思路,以及熟练的调试技巧等通过两个人的讨论,更好的解决问题。
结对场景照片
新增的需求
github连接
https://github.com/maxilong258/NM-L
考虑数据异常处理问题,如在输入题目生成范围的数据时,输入了“abc“等字符数据,程序如何处理。
增大算式生成数的范围(如整数存不下的数),程序如何处理。
异常处理,当输入非法字符时,报错,并告知用户,输入非法,然后将打印默认数据。
如果算术式增大范围,整数存不下,报错,并告知用户输入范围有误,然后改为最大范围