FOSS projects exhibiting clean/good OOP?

Discussion in 'Python' started by Phillip B Oldham, Jul 9, 2008.

  1. I'm wondering whether anyone can offer suggestions on FOSS projects/
    apps which exhibit solid OO principles, clean code, good inline
    documentation, and sound design principles?

    I'm devoting some time to reviewing other people's code to advance my
    skills. Its good to review bad code (of which I have more than enough
    examples) as well as good, but I'm lacking in finding good examples.

    Projects of varying sizes would be great.
    Phillip B Oldham, Jul 9, 2008
    #1
    1. Advertising

  2. Phillip B Oldham

    Tim Cook Guest

    On Wed, 2008-07-09 at 07:38 -0700, Phillip B Oldham wrote:
    > I'm wondering whether anyone can offer suggestions on FOSS projects/
    > apps which exhibit solid OO principles, clean code, good inline
    > documentation, and sound design principles?
    >
    > I'm devoting some time to reviewing other people's code to advance my
    > skills. Its good to review bad code (of which I have more than enough
    > examples) as well as good, but I'm lacking in finding good examples.
    >
    > Projects of varying sizes would be great.


    Of course 'I think' mine matches that description. :)

    In addition to the two links in the signature below where you can get a
    description and source code; there is an entry on Ohloh that says it is
    well documented code. http://www.ohloh.net/projects/oship

    I would appreciate your feedback.

    Cheers,
    Tim

    PS. The Launchpad and Ohloh repositories lag the openEHR SVN by several
    hours.

    --
    **************************************************************************
    Join the OSHIP project. It is the standards based, open source
    healthcare application platform in Python.
    Home page: https://launchpad.net/oship/
    Wiki: http://www.openehr.org/wiki/display/dev/Python developer's page
    **************************************************************************

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.7 (GNU/Linux)

    iD8DBQBIdNNP2TFRV0OoZwMRAgQVAKCv7b8SzTmaunZLfR9veoGhJvbLFACfaq51
    9H4N9T4ijG1eMfDVHxxHGyw=
    =zC/T
    -----END PGP SIGNATURE-----
    Tim Cook, Jul 9, 2008
    #2
    1. Advertising

  3. Phillip B Oldham

    Guest

    On 9 juil, 16:38, Phillip B Oldham <> wrote:
    > I'm wondering whether anyone can offer suggestions on FOSS projects/
    > apps which exhibit solid OO principles, clean code, good inline
    > documentation, and sound design principles?


    This is somewhat subjective... Some would say that Python's object
    model is fundamentally broken and crappy (not MHO, needless to say)
    that Python + "solid OO principles" is antinomic !-)

    More seriously:

    > I'm devoting some time to reviewing other people's code to advance my
    > skills. Its good to review bad code (of which I have more than enough
    > examples) as well as good, but I'm lacking in finding good examples.
    >
    > Projects of varying sizes would be great.


    I'd recommand at least FormEncode and SQLAlchemy.
    , Jul 9, 2008
    #3
  4. >> I'm wondering whether anyone can offer suggestions on FOSS projects/
    >> apps which exhibit solid OO principles, clean code, good inline
    >> documentation, and sound design principles?

    >
    > This is somewhat subjective... Some would say that Python's object
    > model is fundamentally broken and crappy (not MHO, needless to say)
    > that Python + "solid OO principles" is antinomic !-)
    >
    > More seriously:
    >
    >> I'm devoting some time to reviewing other people's code to advance my
    >> skills. Its good to review bad code (of which I have more than enough
    >> examples) as well as good, but I'm lacking in finding good examples.
    >>
    >> Projects of varying sizes would be great.

    >
    > I'd recommand at least FormEncode and SQLAlchemy.


    I'd object calling FormEncode a well-designed project. The classic
    dilemma has not been dealt with very well: should the software be
    uber-flexible and hence complex or more rigid but simple. Ideally,
    this dilemma is solved by being uber-flexible but the user (meaning
    developers using the code) experience is kept simple by hiding the
    complexity from developers who don't want to know about them but
    exposing it to advanced developers who do want to know about them.
    IMHO FormEncode is not a good example of this. But PIL definitely is!

    Cheers,
    Daniel
    --
    Psss, psss, put it down! - http://www.cafepress.com/putitdown
    Daniel Fetchinson, Jul 10, 2008
    #4
  5. On Jul 9, 9:26 pm, ""
    <> wrote:
    > This is somewhat subjective... Some would say that Python's object
    > model is fundamentally broken and crappy (not MHO, needless to say)
    > that Python + "solid OO principles" is antinomic !-)


    Really? Would you happen to be able to provide any further information
    on that?
    Phillip B Oldham, Jul 10, 2008
    #5
  6. Thanks all - lots to go through there! :D

    I'd heard previously that Trac was a nice example, or rather its core
    was, but I'd also heard that there were lots of problems with it and
    that they were redeveloping it from scratch?
    Phillip B Oldham, Jul 10, 2008
    #6
  7. Phillip B Oldham a écrit :
    > Thanks all - lots to go through there! :D
    >
    > I'd heard previously that Trac was a nice example, or rather its core
    > was, but I'd also heard that there were lots of problems with it and
    > that they were redeveloping it from scratch?


    Trac's plugin system is interesting, yes, but there were indeed quite a
    couple gotchas last time I used it (about 2 years ago).
    Bruno Desthuilliers, Jul 10, 2008
    #7
  8. Phillip B Oldham a écrit :
    > On Jul 9, 9:26 pm, ""
    > <> wrote:
    >> This is somewhat subjective... Some would say that Python's object
    >> model is fundamentally broken and crappy (not MHO, needless to say)
    >> that Python + "solid OO principles" is antinomic !-)

    >
    > Really? Would you happen to be able to provide any further information
    > on that?


    Well... Some people seems to think that an object model with no
    language-enforced access restriction, no implicit 'self' reference and
    the necessity to explicitely declare 'self' as first argument of methods
    is broken. You'll also find a couple guys complaining about Python not
    forcing you to put everything into classes, à la Java.
    Bruno Desthuilliers, Jul 10, 2008
    #8
  9. On Jul 9, 4:38 pm, Phillip B Oldham <> wrote:
    > I'm wondering whether anyone can offer suggestions on FOSS projects/
    > apps which exhibit solid OO principles, clean code, good inline
    > documentation, and sound design principles?
    >
    > I'm devoting some time to reviewing other people's code to advance my
    > skills. Its good to review bad code (of which I have more than enough
    > examples) as well as good, but I'm lacking in finding good examples.
    >
    > Projects of varying sizes would be great.


    I vote for the doctest module in the standard library.
    Michele Simionato, Jul 10, 2008
    #9
  10. Phillip B Oldham

    paul Guest

    Phillip B Oldham schrieb:
    > Thanks all - lots to go through there! :D
    >
    > I'd heard previously that Trac was a nice example, or rather its core
    > was, but I'd also heard that there were lots of problems with it and
    > that they were redeveloping it from scratch?

    They continually improve parts of it, but I don't know of any severe
    problems whatsoever. Yes people are moaning about lack of multi-project
    support but that was a design decision way back.

    From a programming POV, I highly recommend looking at the source. The
    component model looks simple but is very powerful. It's also a good
    example how code benefits from interfaces wrt. structuring and
    documentation.

    cheers
    Paul
    paul, Jul 15, 2008
    #10
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. antoine
    Replies:
    7
    Views:
    465
    Rhino
    Mar 3, 2005
  2. Python Baby
    Replies:
    0
    Views:
    269
    Python Baby
    Jan 28, 2004
  3. Darren Dale

    looking for a good introduction to OOP

    Darren Dale, Nov 13, 2004, in forum: Python
    Replies:
    4
    Views:
    311
    Neuruss
    Nov 24, 2004
  4. Replies:
    8
    Views:
    499
  5. Phillip B Oldham
    Replies:
    6
    Views:
    297
    Phillip B Oldham
    Nov 12, 2008
Loading...

Share This Page