I have a question regarding generalization. I know when it is needed to be done, but is it worth having an extra class for 1 field?

e.g.:

StatisticsCustomer has fields: Customer customer and int projectCount
StatisticsCountry has fields: Country country and int projectCount

What is best in this situation? Creating an extra class just for projectCount or keeping it twice in the two classes?

As you mentioned in your question, people fork repositories when they want to make a change the code, because you
don't have write access to the original repository (unless you've been added as a collaborator by the owner of the repository).

In the forked repository they have write access and can push changes. They may even contribute
back to the original repository using pull requests.

I think there are multiple reasons why people fork repositories but don't change them:


they might fork a repository which looks cool, simply fork it (because it's easy (only one click)) and want
to make a change later (and then probably forget it/didn't have time to do so)
they fork a repository to make a change and then discover that the change is unnecessary and forget to delete
the own repository
they might fork a repository because one of the projects depends on an other repository (maybe via submodules) and
they want total control over the repository used as a dependency (the owners of the original repository might decide to move from github to google code etc.)
they might simply forget to push the commits

