Interested in contributing to LibreOffice GSOC 2016

Chris Sherlock chris.sherlock79 at gmail.com
Wed Mar 9 22:53:56 UTC 2016


> On 10 Mar 2016, at 6:07 AM, yeliz taneroğlu <yeliztaneroglu at gmail.com> wrote:
> 
> Hi Everyone,
> 
> I hope you are well. My name is Yeliz and I am a 3rd year student in a Computer Engineering program. I'm interested in "Refactor god objects" project for GSOC 2016. I read this https://wiki.documentfoundation.org/Development/GSoC/Ideas#Refactor_god_objects <https://wiki.documentfoundation.org/Development/GSoC/Ideas#Refactor_god_objects> .
> 
> My accepted patches for LibreOffice until now.
> 
> https://gerrit.libreoffice.org/#/c/19792/  <https://gerrit.libreoffice.org/#/c/19792/>
> https://gerrit.libreoffice.org/#/c/19671/  <https://gerrit.libreoffice.org/#/c/19671/>
> https://gerrit.libreoffice.org/#/c/21614/ <https://gerrit.libreoffice.org/#/c/21614/> 
> https://gerrit.libreoffice.org/#/c/21858/  <https://gerrit.libreoffice.org/#/c/21858/>
> https://gerrit.libreoffice.org/#/c/21888/ <https://gerrit.libreoffice.org/#/c/21888/>
> https://gerrit.libreoffice.org/#/c/21936/  <https://gerrit.libreoffice.org/#/c/21936/>
> https://gerrit.libreoffice.org/#/c/22020/ <https://gerrit.libreoffice.org/#/c/22020/> 
> https://gerrit.libreoffice.org/#/c/22940/  <https://gerrit.libreoffice.org/#/c/22940/>
> 
> I want to work in this project. Thank you so much for your time and I look forward to hearing from you. 
> 
> Kind Regards,
> _______________________________________________
> LibreOffice mailing list
> LibreOffice at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libreoffice

Welcome aboard Yeliz :-)

As it turns out, I’ve got an idea I’ve been toying with for ages, so I might as well put it out there. 

One of the issues with the VCL module as it currently stands is that the OutputDevice class is pretty massive. I would be good to be able to make a compilation firewall for this class, and at the same time split up the functionality into seperate classes. 

Some time ago I rearranged the OutputDevice source files into a more logical structure - they can be found here:

http://opengrok.libreoffice.org/xref/core/vcl/source/outdev/

My idea was that all these cxx files now logically group related functionality and could be converted into “Helper” classes, and we reference these as private member variables using a pImpl pattern. Public functions (that are indeed truly public) are then forwarded to the Helper classes. 

The advantages are mainly in compilation time and code flexibility, but also any of the other advantages to setting up a compilation firewall would apply also. 

If you’ve never heard of a Compilation Firewall, the description of my idea above is essentially what it achieves. However, I *really* recommend reading Herb Suttor’s article on the technique here:

http://herbsutter.com/gotw/_100/ 

Perhaps I should log an easy hack. 

Anyway, that would be something I think could be done - it’s a reasonable difficultly level, but not too difficult for someone who knows C++. I would really love to see unit tests of the helper classes, which would really help make the code robust. 

If someone else wants to chime in here, please feel free :-) However, I’m happy to chat on IRC - come to #libreoffice-dev on freenode; my nick is chris_wot

Chris 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20160310/fed8664f/attachment.html>


More information about the LibreOffice mailing list