Open Bug 278579 (bz-majorarch) Opened 20 years ago Updated 4 years ago

Major Architectural Improvements for Bugzilla Codebase

Categories

(Bugzilla :: Bugzilla-General, enhancement, P2)

2.19.1
enhancement

Tracking

()

People

(Reporter: mkanat, Unassigned)

References

(Depends on 17 open bugs, )

Details

(Keywords: meta)

We've made a LOT of progress sicne 2.16 in cleaning up Bugzilla's codebase from
very strange things that were thrown in all over the place. :-)

This bug is a meta-bug to keep track of all the changes that we want to make to
Bugzilla's architecture. For the most part, these will not be user-visible
changes, but will improve the stability, readability, and maintainability of
Bugzilla.

The major sorts of changes that need to be done are:

1) Implement our current coding standards universally across the current 
   codebase.
2) Eliminate code duplication by using modules and subroutines.
3) Consolidate useful subroutines scattered around Bugzilla into modules.
4) The database schema should be as fully normalized and as generally organized 
   as possible. Code that accesses the database, like Search.pm or 
   checksetup.pl, should do it in some orderly fashion.
5) Fully separate presentation from actual perl code.

Generally, the idea is to move toward being more and more object-oriented, so
that whenever I the programmer want to do something, I can just find the right
module and call the right function, or use the right method on the right object.

(This bug is assigned to me at the moment because I've been working on this sort
of stuff lately, and I didn't want it to look like nobody's working on it by
assigning it to nobody or general@bugzilla.bugs.)
Depends on: bz-deprecateddb
Depends on: bz-versioncache
Depends on: 115796
Depends on: 139559
Depends on: 150049
Depends on: bz-template
Depends on: 261181
Depends on: 155628
Depends on: 280122
Depends on: 281590
I'm adding a URL to this bug of an essay that I wrote, which I think is relevant
to why these Architectural Improvements are important.
Depends on: 278032
Depends on: 282130
Depends on: 282145
Depends on: 282632
This fellow has some good things to say about code clarity that I hadn't thought
about, even though he's talking about C++:

http://blogs.msdn.com/ajenner/
And since we're talking about code formatting, let me chime in with an opinion 
of my own: http://www.heikniemi.net/hc/archives/000103.html (yes, I know at 
least Max read that already).
Depends on: 283244
Alias: bz-majorarch
Depends on: 283582
Depends on: 225221
Depends on: 281354
Depends on: 283876
Depends on: 84876
Depends on: bz-field_descs
Depends on: 286351
Depends on: 286509
Depends on: 286512
Depends on: 287311
Depends on: 288296
No longer depends on: 286351, 286512
Priority: -- → P2
Depends on: 225818
Depends on: 297104
Depends on: 297382
Depends on: 294160
Depends on: 298931
Depends on: 301447
Depends on: 303662
Depends on: 328642
Depends on: 329377
Depends on: 300410
*** Bug 104690 has been marked as a duplicate of this bug. ***
Depends on: bz-object
Depends on: bz-template-logic
Depends on: 399371
Depends on: 412083
Depends on: 449161
Depends on: 452525
Depends on: 460293
Depends on: bz-moose
Depends on: 472217
No longer depends on: 150049
Depends on: bz-plugin-vote
Depends on: 472219
Depends on: 395744
Depends on: bz-branch
Depends on: bz-url-extension
Depends on: 430014
Depends on: bz-rpc-any
Depends on: 490551
Depends on: bz-controller
Depends on: 539865
Depends on: 546324
Assignee: mkanat → general
You need to log in before you can comment on or make changes to this bug.