Changes between Version 11 and Version 12 of Nl:DevelopersGuide/StyleGuide
- Timestamp:
- 2017-05-13T12:58:54+02:00 (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Nl:DevelopersGuide/StyleGuide
v11 v12 1 [[TranslatedPages(revision=3 2)]]1 [[TranslatedPages(revision=33)]] 2 2 = Richtlijnen voor ontwikkelen = 3 3 … … 5 5 6 6 * zorg er voor dat de code compatibel is met Java 8 7 * '''Documenteer''' uw code met behulp van commentaar op de regel en javadoc. Vele mensen zullen u daarvoor danken :) 8 * Probeer publieke velden te vermijden 9 * JOSM heeft heel veel hulpmethoden in de klassen `Utils`, `GuiUtils`, `Geometry` .... Gebruik ze als u ze nodig hebt. 10 * Controleer parameters. U kunt `Objects.requireNonNull` gebruiken. 11 * Schrijf niet voor de uitvoering - schrijf voor leesbaarheid. Gebruik `Stream`s, `Function`s en andere objecten van Java 8 als dat de code beter leesbaar maakt. 12 13 === Threading / Vergrendeling === 14 15 * JOSM gebruikt verschillende mechanismen om te vergendelen, afhankelijk van het object. 16 * De gegevenssets worden beschermd door een RW-vergendeling. Sommige methoden vergrendelen niet automatisch om redenen van uitvoering. Zorg er voor de vergrendelingen aan te roepen die voor uw wijzigingen nodig zijn. 17 * Componenten van de GUI zouden alleen moeten worden aangepast in de EDT-thread 18 * Gebruik bij voorkeur `SwingUtils.invokeLater` indien u iets moet uitvoeren in de UI-thread 19 * Veel listeners worden al uitgevoerd in de EDT-thread (laagwijzigingen) of hebben een centrale beheerder die u toestaat listeners te registreren die worden uitgevoerd in de EDT (wijzigingen in gegevensset, wijzigingen in selectie). 20 21 == Hoe uw opmaak eruit zou moeten zien == 22 7 23 * zorg er voor dat er geen witruimte achter staat 8 24 * gebruik niet meerdere lege regels achter elkaar 9 25 * JOSM gebruikt 4 tekens voor inspringen en geen tabstops (Als u Notepad++ gebruikt kunt u de standaard inspringing wijzigen in de "Instellingen" -> "Voorkeuren" -> "Language" -> "Tab settings" -> selecteer "Omzetten in spaties" (dit is permanent) of met de knop "Instellingen insprong wijzigen" in de werkbalk door het vinkje te verwijderen bij "Tabs gebruiken" (dit is een tijdelijke instelling).) 10 * Documenteer uw code '''uitvoerig'''. Veel mensen zullen u daar dankbaar voor zijn :)11 26 * voeg gekrulde haken toe voor elke {{{if}}}, tenzij die wordt gevolgd door een {{{return}}} (of misschien een {{{throw}}}) 12 * controleer uw wijzigingen vóór patch/commit: `ant checkstyle` en controleer `checkstyle-josm.xml`; indien u vindt dat het uitvoeren van checkstyle te lang duurt voor alle bestanden, voer het dan alleen uit op de gewijzigde bestanden:27 * U zou '''checkstyle''' moeten gebruiken vóór patch/commit: `ant checkstyle` en controleer `checkstyle-josm.xml`; indien u vindt dat het uitvoeren van checkstyle te lang duurt voor alle bestanden, voer het dan alleen uit op de gewijzigde bestanden: 13 28 14 29 {{{ … … 21 36 * De [https://www.oracle.com/technetwork/java/javase/documentation/index-137868.html#styleguide Oracle Javadoc style guide] wordt gebruikt als gids voor de basis 22 37 * {{{@since}}} wordt gebruikt voor publieke klassen en methoden (zichtbaar voor de ontwikkelaars van invoegtoepassingen) met de revisie van JOSM waarin het element werd geïntroduceerd. Voorbeeld: {{{@since 5408}}} 23 * {{{@since}}} wordt bijgewerkt als een handtekening van een publieke methode wijzigt of indien een klasse een andere naam krijgt 38 * {{{@since}}} wordt bijgewerkt / toegevoegd als een handtekening van een publieke methode wijzigt of indien een klasse een andere naam krijgt 24 39 * {{{@since}}} kan worden weggelaten voor publieke methoden en velden die tegelijkertijd met de klasse worden geïntroduceerd, vooropgesteld dat zij niet zijn gewijzigd en de klasse juist is gedocumenteerd. 40 * Er kunnen meerdere tags {{{@since}}} zijn, bijv. voor het toevoegen van interfaces aan een klasse. De reden voor deze tags zou moeten worden toegevoegd. Voorbeeld: {{{@since 12345 @FunctionalIterface werd toegevoegd}}} 41 * Indien u een patch indient en u weet de revisie niet, voeg dan toch {{{@since xxx}}} toe. Het kan dan worden vervangen bij het samenvoegen van uw patch. 25 42 * {{{@throws}}} heeft de voorkeur boven {{{@exception}}} 26 43 * controleer uw wijzigingen vóór patch/commit door het genereren van javadoc: `ant javadoc`, blader door de uitvoerberichten; indien u vindt dat het uitvoeren van javadoc te lang duurt voor alle bestanden, voer het dan alleen uit op de gewijzigde bestanden: