[robocheck-dev] Ping

Andrei Tuicu andrei.tuicu at gmail.com
Tue Oct 20 20:04:56 EEST 2015


2015-10-20 19:25 GMT+03:00 Constantin Mihalache <mihalache.c94 at gmail.com>:

> On 20 October 2015 at 08:38, Laura Vasilescu <laura at rosedu.org> wrote:
> > On Tue, Oct 20, 2015 at 12:04 AM, Andrei Tuicu <andrei.tuicu at gmail.com>
> wrote:
> >> @Laura: I would suggest giving Constantin commit and merge rights for
> the
> >> repository. I haven't wrote much Python ever since this project and I
> feel
> >> like I'm slowing things down here rather than helping. While I still do
> >> encourage that he submits pull requests, so we can discuss things from a
> >> functional perspective, or design choices, something missing, etc., I
> think
> >> his contributions show that he can handle the responsibilities that come
> >> from such great power. :) Also, a big plus is that he helped Theodor
> Stoican
> >> make his first contribution. What do you think?
> >
> > Sure! I'll do this right away! :)
> >
> > Laura
>
> First of all, thank you for trusting me with merge & commit rights to
> the Robocheck repo. As Andrei said, I'll continue to contribute via
> pull requests, so that we could discuss the design issues that may
> arise.
>
You've earned it! :)


Secondly, the test driven development style sounds appropriate, but
> before starting to add new features, I remember we talked about
> implementing a kind of common interface for the tools using
> AbstractBaseClasses. If you agree this is the next step, my only
> question is whether there should be only one interface - AbstractTool
> - or three - AbstractTool, AbstractDynamicTool and Abstract StaticTool
> - to emphasize the difference between the two types of tools.
>

Well, I would incline for the 3 class hierarchy, where AbstractDynamicTool
and AbstractStaticTool extend AbstractTool and then each individual tool
would extends one of the two derived classes. Here, I think you should be
careful so that the core and the core utils (especially the modulehandler,
which looking back could've been named more suggestively) only know about
AbstractTool. So, I think that it's important that nowhere in the code
appears something like if (isDynamicTool) ... else if (isStaticTool).
Bassically,  they should respect the Liskov Substitution Principle (which
is a fancy way of saying no ifs like those from above :) ). Please let me
know when you have a design in place with all the methods, fields, etc. for
the classes. I would love to check it out.

Also, please give me a ping when you have the full documentation for the
Windows installation.

I've been looking at the repo a bit, and as far as things nice to have, I
could add the following (these are not in any way things that should be
addressed immediately, but we should keep them in mind for future
development):

1. Beside the installation scripts for Windows and Linux which should be
platform specific, we should consider making the other ones platform
independent at some point (aka Python), otherwise we will have duplicated
code in bash and batch for each individual script. So from now on anything
that can be made platform independent should be implemented in this way
from the begining. At some point we should rewrite the unit testing script
in Python. Sorry, this was my mistake, I should've thought about this from
the beginning. The one wrote by me, if we don't find a real use to it
(because it was poorly written from the beginning) we could simply remove
it.

2. For integration with VMChecker purposes, we should make a script that
can create an archive like the one that Robocheck requires
from the one that VMChecker receives. This will be a little tricky, because
as far as I know that there is no general format for a VMChecker archive.
So this is something open for discussion, maybe a template script that the
TA will need to complete with the specifics for individual homeworks?

3. Move all the ideas from the discussion list to a wiki page in GitHub, so
they don't get lost in a thread from the discussion list named Ping. :)

Cheers,
Andrei

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rosedu.org/pipermail/robocheck-dev/attachments/20151020/df7d2134/attachment.html>


More information about the robocheck-dev mailing list