Ave 概要¶
Aveとは, Achievements Visualization in programming Education の略で,実績によるコード品質の可視化システムのことです. 2018年度の情報科学演習Dに取り入れられています.
Aveの実績には,以下の2種類があります:
- 段階が設けられている実績
- 単発的な実績
段階が設けられている実績では,Lv.1 ~ Lv.3までの3段階が存在し,それぞれ定められた基準値を上回った(下回った)際に実績が獲得できます.
また, Accum. Lines of Code , Commit , Off-time Commit 以外の実績は,各課題の Complete 実績を獲得しないと
(Jenkins上での動作確認にパスしないと)獲得することができません.
実績一覧¶
| 実績 | タイトル | 参照ページ |
|---|---|---|
| Complete | XXX Completed! | Complete |
| Lines of Code | Too many cooks spoil the broth
Good seed makes a good crop
The fewer, the better fare
|
Lines of Code |
| Nest | Be in a fog
Third time's the charm
One-depth-liner
|
Nest |
| Cyclomatic Number | Cycle circle
Roundabout
Quintuple measure
|
Cyclomatic Number |
| Naming | Start from the style
In name and in reality
Names and natures often agree
|
Naming Conventions |
| Style Consistency | From start to finish
Carrying out original intention
Stylishest
|
Style Consistency |
| Coverage | Judge a code by it's cover
Lookers-on see most of the game
End up catching both
|
Coverage |
| Casl | A house of cards
Qui se ressemble s'assemble
Can also strengthen look
|
Casl |
| Switch | Highest branch isn't safest roost | Switch |
| Unused / Useless / Unnecessary | Beating the air | Unused / Useless / Unnecessary |
| Empty | Empty sack cannot stand upright | Empty |
| Simplify | Better be single | Simplify |
| Finalize | Put all your eggs in one basket | Finalize |
| Declaration | Talk the talk | Declaration |
| Import | Reliance upon others | Import |
| Indentation | Do as the Romans do | Indentation |
| Magic Number | No more magic | Magic Number |
| Null / Equals | Nail in the bran | Null / Equals |
| Accum. Lines of Code | Many a little makes a mickle
Rome was not build in a day
Quantity over quality
|
Accum. Lines of Code |
| Commit | Hello, Git World!
"Git" Gud
SSIA
|
Commit |
| Off-time Commit | Hello, "Remote" Git World!
git remote add origin
SOHO Committer
|
Off-time Commit |
使用ツール¶
コード品質の計測には, PMD と Checkstyle を用いています.
また,スタイルの一貫性を測る実績( Style consistency )には,Format Feature Extractor を用いています.