New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Se feedback 6 #125
Merged
Merged
Se feedback 6 #125
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
| | | | ||
|------|------------| | ||
|Group | Rubber Duck Debuggers | | ||
|Assignment|Sprint 6| | ||
|Date|04/06/16| | ||
|TA|Bastiaan Reijm| | ||
|
||
#Sprint Feedback | ||
Feedback and Grades for Sprint 6. | ||
|
||
Total: **9.35** | ||
|
||
| User Story | Score | | ||
|------------|-------| | ||
| definition | 10 | | ||
| splitting | 10 | | ||
| responsibility | 10 | | ||
|
||
| Learning from History | Score | | ||
|-----------------------|-------| | ||
| estimation | 9 | | ||
| prioritisation | 10 | | ||
| reflection | 8 | | ||
|
||
## Notes | ||
* Several unfinished tasks (like bug fixes) aren't explained | ||
* Task #64 | ||
* Estimated effort is 0 but cost 3 hours? Not very good estimation | ||
* Thanks for fixing the layout problems and for keeping things clear | ||
|
||
#Code Evolution Quality Feedback | ||
|
||
Total: **9.37** | ||
|
||
| Architecture | Score | | ||
|------------------------------------|-------| | ||
| Changes | 8 | | ||
| Architecture Design Document (ADD) | 9 | | ||
|
||
| | Score | | ||
|---------------------|-------| | ||
| Code Change Quality | 8 | | ||
|
||
| Code Readability | Score | | ||
|------------------|-------| | ||
| Formatting | 10 | | ||
| Naming | 10 | | ||
| Comments | 10 | | ||
|
||
| Continuous Integration | Score | | ||
|------------------------|-------| | ||
| Building | 10 | | ||
| Testing | 10 | | ||
|
||
| | Score | | ||
|---------|-------| | ||
| Tooling | 10 | | ||
|
||
| Pull-based Development | Score | | ||
|------------------------|-------| | ||
| Branching | 10 | | ||
| Code Review | 10 | | ||
|
||
##Notes | ||
* ADD | ||
* 1.1 Reliability - how does an adapter ensure a reliable connection? | ||
* 1.1 Securability - have these security options been implemented (username encryption etc)? | ||
* also the database still works on http, so how secure is this tool? | ||
* Diagrams make the flow through the extension much clearer, thanks | ||
* Good work on the test coverage report! | ||
* MessageSendDatabaseAdapter | ||
* (copy-pasting is bad, mmkay), lol - good to keep in mind | ||
* `postKeystroke` - `postWindowResolution` | ||
* contain identical code except for the type value, include the type in the event and pass a generic Event | ||
* makes the switch in the `MainController` smaller as well | ||
* `URLHandler` | ||
* contains only public static functions but isn't singleton? | ||
* Good job handling the feedback from last time |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@breijm
URLHandler
does not maintain state. We made it an abstract utility class, much like theMath
class in Java.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Java Math class is a final class (not abstract) and a Singleton. Please see http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Math.java
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, but in Typescript one cannot be final (see this issue). And the
Math
class is not really a Singleton since it cannot be instantiated at all, just like ourURLHandler
. The only difference is that ourURLHandler
can be subclassed since Typescript does not allow thefinal
keyword.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems to be a language deficiency that will be fixed in TS 2. In general, singletons should not be open to subclassing since you cannot guarentee that the subclasses will also be Singleton.
Singleton simply means that there is one such entity. In the Math example, it means that every Math.xxxx call or attribute always refers to the same Math entity. You cannot create more because of the final class and private constructor.
Does that also mean that the other Singletons you have in your system also allow subclassing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, the other singletons do not allow subclassing. I just tried compiling
class SubStatus extends Status { }
, which fails because the classnameStatus
is shadowed by the global variableStatus
because of the special Singleton construction we use (var Status = new (class Status { ... })();
, see this StackOverflow answer).To get back to why
URLHandler
is not a Singleton, I have thought of another reason. In general, a method that does not use instance variables, can be static (or at least WebStorm tells me so). As none of the methods inURLHandler
use instance variables, they can all be static. In case you agree with me, I'll add a comment to this class thatURLHandler
should be final, but Typescript does not support this yet.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Btw, with "Math entity" you mean the class? Because
Math
itself is not an instance you can pass around to other classes (something you can do with Singletons).There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok good that your other classes do not have this problem.
With regards to the "is it a Singleton or not" discussion, I agree you should add the comment and I'm willing to agree to disagree what it's exactly called; there are more important things to do.