Hi everyone,

In order to get our QtWebEngine changes into OpenLP, we've needed to do some refactoring. This weekend, I decided to try to refactor smaller parts at a time and get them into trunk before WebEngine hits trunk in order to make the set of changes smaller. Unfortunately, this means that I ended up shaving the yak[0] for most of the weekend.

There are tons of circular (or cyclic) imports, and a number of incorrect imports (e.g. importing "translate" from "lib" instead of "common" where it was defined).

With this in mind, I've started a page on the wiki to explain, track and discuss how we should be doing things: https://wiki.openlp.org/Development:Structure

A quick overview of some of the changes I made:

- no more imports into openlp.core.common. If you need Registry, get it from openlp.core.common.registry, if you need Settings, import it from openlp.core.common.settings - translation/internationalisation code has been (somewhat) centralised into openlp.core.common.i18n - check_directory_exists(), which was basically a "mkdir -p" has been changed to "create_paths" and can take multiple Path objects. It has also been moved to openlp.core.common.path

I have a few more refactors up my sleeve.

Also, I ran into a LOT of tests that were mocking objects incorrectly or in the wrong places. Some tests were not being run due to naming conventions or duplicated names, and some tests just made no sense at all and weren't actually testing what they claimed to be testing. If you are in any way unsure of how to test something, or what to test, PLEASE talk to me. I'm more than happy to explain how to mock, how to write tests, what good tests look like and and help you figure out how to test what you want tested.


[0] https://www.hanselman.com/blog/YakShavingDefinedIllGetThatDoneAsSoonAsIShaveThisYak.aspx

--
Raoul Snyman
+1 (520) 490-9743
[email protected]
_______________________________________________
openlp-dev mailing list
[email protected]
https://lists.openlp.io/mailman/listinfo/openlp-dev

Reply via email to