View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002382||Scribus||Internal||public||2005-08-03 16:08||2015-06-29 04:12|
|Platform||x86 Linux||OS||Fedora Core||OS Version||3|
|Summary||0002382: Metabug: Code quality, structure, readability|
|Description||There are some issues with code quality, readability and structure in Scribus. These are commonly recognisd on -dev, and I'm posting this bug as a general tracker for code quality related bugs.|
I think some of these issues are major problems for getting more contribution to Scribus, especially casual bug fixes and feature offers. 0002376 is an example.
THIS IS NOT A "SCRIBUS IS CRAP" COMMENT. I'm discussing limitations and problems, but that does not detract from the functionality and the cool stuff that works well.
Here's a 10,00 foot overview of random issues:
Broad categories of issue:
= Deep nesting
= huge classes and files
= Strong assumptions about order of execution that can make changes difficult. Results in heavy cross dependencies.
= direct member access all over the code; reliance on "changedBlah()" style calls rather than accessors emitting signals. This means that all code that modifies "blah" needs to know who to tell when it changed "blah" and when. Results in heavy cross dependencies.
= Sometimes very linear/procedural where event-driven/OO would be much better. Makes it hard to re-use code, introduces tight cross-dependencies.
= *LOTS* of mixing of GUI code with "core" code. Better separation would help quite a bit for some things. See mpalette.cpp for example.
- Quality. Error checking/handling/reporting. Assertions and sanity checks. Testing, especially automated testing. Test suites on critical facilities like PDF export.
- Readability. Few comments, structure issues already mentioned.
- UI and usability tweaks and touch-ups needed in many areas. Please DO NOT link those bugs here; file a separate metabug or just search the 'usability' and 'user interface' categories.
|Additional Information||See the whole list of metabugs: http://wiki.scribus.net/index.php/Metabugs|
|Tags||No tags attached.|
|related to||0002215||closed||jghali||Audit and fix text encoding handling|
|related to||0002260||acknowledged||Metabug: Long-running code that blocks the UI|
|related to||0002251||acknowledged||Metabug: Vanishing or silently disabled UI|
|related to||0002161||acknowledged||Re-examine copy/paste and drag & drop|
|related to||0001678||closed||fschmid||Picture Management dialog needs a rewrite|
|parent of||0001470||closed||cbradney||Comments on all classes and members in header files|
|parent of||0001653||confirmed||Convert all PageItem direct member access to use getters and setters|
|parent of||0001900||assigned||jghali||Convert PDFOptions, PDF dialog, and related to use enums not magic numbers|
|parent of||0001899||assigned||jghali||Clean up pdfopts.cpp / tabpdfopts.cpp|
|parent of||0002383||confirmed||ScribusView is too big to be comprehended by mortal minds|
|parent of||0002384||closed||avox||PageItem::DrawObj does lots of non-drawing tasks, gets very convoluted|
|parent of||0007609||new||In code: Replace constant numerical values with helpful named constants|
|has duplicate||0002376||closed||Source code requests|
|related to||0002438||acknowledged||Metabug: Cases of extreme memory use|
|Not all the children of this issue are yet resolved or closed.|
||Status||new => confirmed|
||Relationship added||has duplicate 0002376|
||Note Added: 0005874|
||Relationship added||parent of 0001470|
||Relationship added||related to 0001653|
||Relationship replaced||parent of 0001653|
||Relationship added||related to 0002215|
||Relationship added||related to 0002260|
||Relationship added||related to 0002251|
||Relationship added||related to 0001900|
||Relationship replaced||parent of 0001900|
||Relationship added||parent of 0001899|
||Relationship added||related to 0002161|
||Relationship added||related to 0001678|
||Relationship added||related to 0002383|
||Relationship added||related to 0002384|
||Relationship replaced||parent of 0002383|
||Relationship replaced||parent of 0002384|
||Relationship added||related to 0002438|
|2006-07-02 22:12||mhanski||Additional Information Updated|
|2014-07-09 15:46||Kunda||Status||confirmed => acknowledged|
|2015-06-29 04:12||Kunda||Relationship added||parent of 0007609|