|
Sweet Home 3D Forum » List all forums » » Forum: Developers » » » Thread: How to join the developer team? » » » » Post: Re: How to join the developer team? |
Print at Dec 20, 2025, 8:24:02 AM |
| Posted by Puybaret at Mar 24, 2012, 9:38:51 PM |
|
Re: How to join the developer team? So it seems that I first have to make a useful plugin before I can contribute to the project. I think it's one of the best way to learn how the program works without entering in the details of its architecture, nothing more.But can you tell me what the exact prerequisites are to join the project as a developer? Even if many people contributed to translations, 3D models, documentation and plug-ins, I'm still the only Java developer working on the code of Sweet Home 3D. Thus, I never really thought about the prerequisites required for developers to join the project. The minimum would probably be to:- have a real identity (the first name: 076 and last name: 0475 of your profile is definitively not ok ) - accept that I can refuse some code because of its poor quality, or because the feature it brings don't match the purpose of Sweet Home 3D - accept to transfer the rights on your contribution to me. As I sell also a few licenses of Sweet Home 3D to companies that want to create derived versions distributed under a proprietary license, you'll understand that managing copyrights retribution would become too complicated if I had to grant a part of the license price to contributors. So am I right that the program has 9 main namespaces with code namespace isn't really a word used in the Java world, but it's not a problem. Sweet Home 3D uses a 3 layers design along with a MVC design:- com.eteks.sweethome3d.model package for the business layer - com.eteks.sweethome3d.io package for the persistence layer - com.eteks.sweethome3d.viewcontroller, com.eteks.sweethome3d.swing and com.eteks.sweethome3d.j3d packages for the View-Controller presentation layer - com.eteks.sweethome3d package for the assembly of the application version - com.eteks.sweethome3d.applet package for the assembly of the applet version - com.eteks.sweethome3d.plugin package to manage plug-ins - com.eteks.sweethome3d.tools package for a few common non graphic tools. The most important thing to understand is there's no two way dependency among the packages, to fight against Spaghetti code, something checked by the PackageDependenciesTest JUnit test. is the code relatively complex or not? As of today, the program counts 67100 lines of source code + 5300 lines of test code (counting only lines of real code). This is not huge but not so small too. ![]() The big chance of this program is that it was first a study case of a French book about Java / Swing I wrote in 2006, so I took great care to make its architecture and its code as clear as possible for readers, and kept the same direction since that time (even if I had to adjust a few things time after time). ---------------------------------------- Emmanuel Puybaret, Sweet Home 3D creator |
|
|
Current timezone is GMT Dec 20, 2025, 8:24:02 AM |