NL:Potlatch/Development overview/vijf-minuten overview

From OpenStreetMap Wiki
Jump to navigation Jump to search

Hacken in de client code

De 3000+ regels code in ActionScript waaruit de Potlatch SWF bestaat zijn het belangrijke aandachtspunt van ontwikkeling.

Deze regels bevatten:

  • alle teken en wijzig logica
  • generieke user interface code (voor pull-down menus, etc.)

(De pictogrammen zijn getekend in Perl Ming primitives, in potlatch_assets.pl. Deze hoeven hoogstwaarschijnlijk niet aangepast.)

Het is niet nodig een commercieële Flash IDE te hebben om te kunnen compileren, alleen de Ming library.

De Potlatch ActionScript is erg hackerig. Als je een OO fundamentalist bent of als je niet van globale variabelen houdt is Potlatch misschien niet jouw ding. Het is beslist aan te raden Potlatch een tijd als gebruiker te leren kennen voor je erin gaat zitten rommelen.

Er zijn een paar hoofd objecttypes: ways, 'anker punten' (rode of blauwe nodes in geselecteerde ways), en POIs. Deze hebben methodes zoals redraw, select, load, save, delete. Ze zijn gemaakt in 'movieclips', wat betekent dat ze kunnen worden verplaatst, herschaald en herkleurd zoals alles in Flash. Het meeste werk gebeurt in deze functies, hetzij in een flinke hoeveelheid ondersteunende functies.

Raak niet in de war door de manier waarop de rest van OSM werkt. Nodes zijn geen objecten binnen Potlatch, tenzij het POIs zijn. (Neem het gegeven dat elke movieclip 1k overhead heeft, dan zou het bekijken van een grote stad de Flash player doen hangen als elke node een object was).

de code is redelijk gedocumenteerd, en ActionScript is erg makkelijk te leren (er is een online handleiding) voor een ieder met scripttaal ervaring.

De server code hacken

De server code (amf_controller.rb) is redelijk stabiel. Je hoeft er alleen in te duiken als je iets vooruitstrevends van plan bent, zoals het toevoegen van relatie ondersteuning. In alle andere gevallen, de way en point lezen/schrijven routines werken over het algemeen goed en hoeven niet veranderd te worden. Ze zijn gedocumenteerd in Server overview (Engels) en je zou een tijdje gespendeerd moeten hebben in de OSM db: als je meer info wilt, vraag Richard.

Een deel van de GPS code resideert op de server (in swf_controller.rb). Het SWF-generating stuk hiervan is nogal taai, maar de database query ligt erg voor de hand en zou makkelijk aanpasbaar moeten zijn.

Algemene punten

Mocht je overwegen Potlatch aan te passen, zijn hier 3 ontwerp principes om in het achterhoofd te houden:

  • Geen afhankelijkheden
  • eenvoudige gebruiker interface
  • Snel!

Er is een hoop te doen: zie de toekomst plannen en feedback pagina's. Potlatch kan ook sneller gemaakt worden in verschillende gebieden, zoals door het verminderen van het gebruik van _visible=false clips (die tijd nemen terwijl ze niet zichtbaar zijn), en door niet volledige wegen te hertekenen nadat een nieuwe punt is toegevoegd.