|
|
|
|
|
|
17
|
|
17
|
|
|
18
|
| Track Event | Policies to review |
|
18
|
| Track Event | Policies to review |
|
|
19
|
|:------------|:-----------------|
|
19
|
|:------------|:-----------------|
|
|
20
|
-| Exercise added | [Prefer instance methods](#prefer-instance-methods); [Starter implementations](#starter-implementations); [Ignore noninitial tests](#ignore-noninitial-tests) |
|
|
|
|
21
|
-| Exercise updated | [Ignore noninitial tests](#ignore-noninitial-tests); [Multiple file submissions](#multiple-file-submissions) |
|
|
|
|
22
|
-| Track order changed | [Starter implementations](#starter-implementations); [Multiple file submissions](#multiple-file-submissions) |
|
|
|
|
|
|
20
|
+| Exercise added/updated | [Prefer instance methods](#prefer-instance-methods); [Avoid using final](#avoid-using-final); [Adhere to best practices](#adhere-to-best-practices); [Starter implementations](#starter-implementations); [Ignore noninitial tests](#ignore-noninitial-tests); [Multiple file submissions](#multiple-file-submissions) |
|
|
|
|
21
|
+| Track rearranged | [Starter implementations](#starter-implementations); [Multiple file submissions](#multiple-file-submissions) |
|
|
23
|
| New issue observed in track | [Good first patches](#good-first-patches) |
|
22
|
| New issue observed in track | [Good first patches](#good-first-patches) |
|
|
24
|
| "Good first patch" issue completed | [Good first patches](#good-first-patches) |
|
23
|
| "Good first patch" issue completed | [Good first patches](#good-first-patches) |
|
|
25
|
| Installing Java instructions updated | [Simple onboarding](#simple-onboarding) |
|
24
|
| Installing Java instructions updated | [Simple onboarding](#simple-onboarding) |
|
|
|
|
|
|
|
40
|
|
39
|
|
|
41
|
References: [[1](https://github.com/exercism/java/issues/178)], [[2](https://github.com/exercism/java/pull/683#discussion_r125506930)]
|
40
|
References: [[1](https://github.com/exercism/java/issues/178)], [[2](https://github.com/exercism/java/pull/683#discussion_r125506930)]
|
|
42
|
|
41
|
|
|
43
|
-### Minimize initial complexity in user-facing code
|
|
|
|
|
|
42
|
+### Avoid using final
|
|
44
|
|
43
|
|
|
45
|
-> Minimize (within reason) the number of Java language constructs a user is exposed to simultaneously at the beginning of the track. Instead, introduce those constructs with examples and hints in an appropriate later exercise. Specific applications of this policy include:
|
|
|
|
46
|
-> - avoiding use of the `public` keyword in user-facing class declarations, method signatures, and parameter signatures;
|
|
|
|
47
|
-> - avoiding use of the `final` keyword in user-facing class declarations, method signatures, and parameter signatures.
|
|
|
|
|
|
44
|
+> Avoid using `final` in user-facing code. Liberal use of the `final` keyword remains controversial. It adds little value to test suites, and if included in starter implementations, places implicit restrictions on user solutions.
|
|
|
|
45
|
+
|
|
|
|
46
|
+### Adhere to best practices
|
|
|
|
47
|
+
|
|
|
|
48
|
+> Ensure that all Java code adheres to the best practices listed below:
|
|
|
|
49
|
+> - minimize the accessibility of classes and members ([Effective Java, item 13](http://jtechies.blogspot.com/2012/07/item-13-minimize-accessibility-of.html))
|
|
48
|
|
50
|
|
|
49
|
### Ignore noninitial tests
|
51
|
### Ignore noninitial tests
|
|
50
|
|
52
|
|