[Tutor] Looking for some direction

Cameron Simpson cs at cskk.id.au
Sat May 11 18:59:26 EDT 2019


On 11May2019 14:59, Cranky Frankie <cranky.frankie at gmail.com> wrote:
>I'm a long time IT professional trying to teach myself object-oriented
>programming. As such I want to build a traditional PC app using MVC (Model
>- View - Controller) architecture. Just want to make sure I'm heading about
>this in the best way so I'm looking for some direction.
>
>For the Model or persistence layer I want to use SQLite.

That's reasonable. I'm trusting you're aware of SQL injection issues and 
will be constructing your SQL with '?' parameter placeholders to avoid 
this?

>For the View or
>GUI I want to use wxPython. For the Controller I want to of course use
>Python. I'm also planning on using Git for source control.

All reasonable.

>1) For the IDE I'm most comfortable with Netbeans/Java, but I'm forcing
>myself to try and get comfortable with PyCharm. Is it worth sticking it out
>with PyCharm, or should I go with the Python module in Netbeans? Or is
>there another IDE I should look at?

I haven't an opinion about IDEs except that unless the IDE doesn't work 
with Python for whatever reason, there's no reason to switch IDEs unless 
you want to learn a specific new IDE.

Several of us don't really use IDEs and just use editors and terminal 
windows, though that is less common in the Windows world.

Just use what already works unless there's some feature elsewhere which 
you need.

[...]
>3) For the O-O part, I'm comfortable with Inheritance and Composition. 
>Do I
>need to worry about any of the more advanced design patterns? This app will
>be for vehicle ownership - tracking maintenance, etc. Nothing fancy.

I wouldn't worry. Python mostly does inheritance; I suppose mixin 
classes (inherits) are like composition.

The biggest change you'll find coming from Java is likely the typing: 
Python _values_ are strongly typed, but the variables are not - they can 
refer to a value of any type. And there aren't really Java interfaces.

However, there are lint tools to look for issues like this.

Oh yes: more than one class per Python source file - group them by 
package/module/topic.

Cheers,
Cameron Simpson <cs at cskk.id.au>


More information about the Tutor mailing list