Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Software > Calibre > Development

Notices

Reply
 
Thread Tools Search this Thread
Old 01-26-2017, 01:01 AM   #1
erjcan
Junior Member
erjcan began at the beginning.
 
Posts: 6
Karma: 10
Join Date: Mar 2016
Device: kindle
what is the design pattern(s) behind Calibre?

hi, what is the design pattern(s) or the logical layout, framework of Calibre?
on what design principle is it built?

like diamond, callback etc? I realize there is no single pattern that can describe it precisely.

But can you say
  • "preferences folder uses the composite/decorator/facade pattern",
  • "the ebook conversion functionality classes are organized in a iterator design pattern"

I m looking for something like that, i would be glad to see if i could decompose it this way.
erjcan is offline   Reply With Quote
Old 01-26-2017, 01:29 AM   #2
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 43,776
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
calibre is huge, almost a million lines of code, you will find an example of pretty much every design pattern somewhere in its codebase.

On the other hand, no calibre developers I know of use formal design patterns when writing calibre code. So there is no easy list of

X uses Y pattern

to create.

The primary guiding principle of code design in calibre is modularity. code must be as modular as possible, with well defined interfaces that should be as stable as possible over time.
kovidgoyal is offline   Reply With Quote
Advert
Old 02-15-2017, 09:00 AM   #3
ApK
Award-Winning Participant
ApK ought to be getting tired of karma fortunes by now.ApK ought to be getting tired of karma fortunes by now.ApK ought to be getting tired of karma fortunes by now.ApK ought to be getting tired of karma fortunes by now.ApK ought to be getting tired of karma fortunes by now.ApK ought to be getting tired of karma fortunes by now.ApK ought to be getting tired of karma fortunes by now.ApK ought to be getting tired of karma fortunes by now.ApK ought to be getting tired of karma fortunes by now.ApK ought to be getting tired of karma fortunes by now.ApK ought to be getting tired of karma fortunes by now.
 
Posts: 7,310
Karma: 67564074
Join Date: Feb 2010
Location: NJ, USA
Device: Kindle
Quote:
Originally Posted by kovidgoyal View Post
calibre is huge, almost a million lines of code,
For comparison sake, that's twice as many lines of code as it took to run Jurassic Park in the novel, and half as many as in the movie.

ApK is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Calibre doesn't detect Alex Spring Design 1.6 Guigo Devices 3 02-12-2013 11:20 PM
Ended Oberon Design Classic Nook Cover (Green Celtic Hounds Design) apastuszak Flea Market 2 12-12-2011 09:11 AM
Calibre Needs to make a sewing pattern database please! spktme Calibre 2 11-08-2011 10:51 AM
After K3 Design are you underwhelmed with the KDGX Design & Features? brecklundin Amazon Kindle 20 07-30-2010 05:36 PM
Newbie need help: Spring Design Alex cannot read ePUB converted by Calibre! quangtrung31 Calibre 2 07-26-2010 03:38 AM


All times are GMT -4. The time now is 06:04 PM.


MobileRead.com is a privately owned, operated and funded community.