[JAVA/OO] Commentaar/advies gevraagd

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo allen,

Ik wil binnenkort als hobby-project een webapp bouwen. Het basis-idee is heel simpel, ik zit namelijk te denken aan een webbased database browser. Het idee hierbij is dat een gebruiker dmv klikken en selecteren (zonder enige SQL of wat dan ook), data uit een tabel op het scherm gepresenteerd krijgt. Verder moet het voor de gebruiker mogelijk zijn om in een nieuwe een tab een connectie te maken naar een andere database en data uit een tabel te selecteren en bekijken. En uiteraard mag de gebruiker ook meer dan 2 tabs aanmaken om meerdere tabellen tegelijkertijd te bekijken.
Ik zal een MVC framework gebruiken om de frontend van de processing laag te ontkoppelen. Op basis van de selectie/klik waarden van de gebruiker zal de processing layer een SQL query moeten genereren waarmee de gevraagde data opgehaald wordt. De processing layer delegeert deze taak naar de SQL generator die met een factory methode gecreerd wordt. Dit laatste omdat de SQL generator vendor specfieke queries zal moeten maken. De SQL generator is tevens het enige punt in het systeem wat vendor aware is en ook vendor details bevat. Frontend, processing layer en SQL generator worden middels interfaces aan elkaar gekoppeld en de processing layer wordt mbv dependency injection in de frontend geinjecteerd, en zoals gezegd de processing layer creert mbv een factory methode de juiste SQL generator (afhankelijk van de onderliggende type database). Ik twijfel nog of ik van iedere SQL generator een singleton moet maken die steeds hergebruikt wordt of dat ik iedere keer een nieuw object creer, graag hierover jullie mening.

De twee belangrijkste punten van dit design zijn flexibilteit en schaalbaarheid. Ik wil namelijk makkelijk ondersteuning voor een andere type database en nieuwe funtionaliteit kunnen toevoegen. Verder moet het design geen performance bottleneck zijn/worden en gemakkelijk opschalen naar gelang het aantal gebruikers/requests. Graag jullie op of aanmerkingen.

Verder nog het verzoek voor tips een ideen voor libraries of iets dergelijks welke ik kan gebruiken om een mooie frontend te kunnen maken zodat de gebruiker de data op een mooie manier gepresenteerd krijgt.

Acties:
  • 0 Henk 'm!

  • Canard
  • Registratie: Oktober 1999
  • Laatst online: 08-09 12:57
Ik krijg een beetje het idee dat je een opdracht moet uitvoeren voor school en dat je deze hier hebt neergezet. Je hebt het plan vrij duidelijk uitgeschreven en op sommige punten vrij gedetailleerd, zelfs zo gedetailleerd dat ik eigenlijk niet begrijp waarom je de volgende stap niet zou kunnen.

Wat is je huidige kennis en ervaring van Java, MVC, OO en SQL?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Canard schreef op maandag 28 december 2009 @ 19:37:
Ik krijg een beetje het idee dat je een opdracht moet uitvoeren voor school en dat je deze hier hebt neergezet. Je hebt het plan vrij duidelijk uitgeschreven en op sommige punten vrij gedetailleerd, zelfs zo gedetailleerd dat ik eigenlijk niet begrijp waarom je de volgende stap niet zou kunnen.

Wat is je huidige kennis en ervaring van Java, MVC, OO en SQL?
Hahaha....ik kan je verzekeren dat schooltijd alweer enige tijd geleden is.
Het is ook niet dat ik niet weet wat ik moet doen, anders zou ik niet een heel design hebben. Ik kan nu direct beginnen met code schrijven, maar als je mijn post leest dat vraag ik om op of aanmerking op het (simpele) design wat ik heb proberen uit te leggen en of het wel zo flexibel is als ik denk en of misschien wel een performance bottlenecks bevat die ik ove het hoofd heb gezien. En je opinie of jij zou gaan voor een singleton of object creatie voor wat de SQL generator betreft. Kort samengevat zijn dit de vragen of verzoeken van mijn post en niet om mij uit te leggen hoe ik de applicatie moet bouwen.
Hoe dan ook, bedankt voor je reactie.

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 12-09 23:07
Waarom zou die SQL Generator een singleton moeten zijn ?
Antwoord op de vraag: ' Kan je maar één SQL generator in je systeem hebben', en je hebt je antwoord.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Canard
  • Registratie: Oktober 1999
  • Laatst online: 08-09 12:57
Ok, nu begrijp 't beter.

Uit je post kan ik niet direct lezen hoe je SQL-laag gaat werken, hiermee zou je kunnen suggereren dat je een eigen SQL-laag schrijft en geen ORM framework zoals Hibernate/EclipseLink wilt gebruiken?

Wat betreft een singleton; in het algemeen is het steeds opnieuw aanmaken van een object kostbaar qua resources en tijd, dus zou je zeggen doe een singleton, maar bij een singleton dient je wel weer rekening te houden met synchronisatie over meerdere threads. Er is dus niet één antwoord op singleton ja of nee. Dit hangt af van je kennis en de applicatie en kan ik niet over oordelen.

Heb je zelf al libraries/frameworks gevonden die van toepassing zouden kunnen zijn?

[ Voor 6% gewijzigd door Canard op 28-12-2009 22:08 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
whoami schreef op maandag 28 december 2009 @ 20:50:
Waarom zou die SQL Generator een singleton moeten zijn ?
Antwoord op de vraag: ' Kan je maar één SQL generator in je systeem hebben', en je hebt je antwoord.
Er kunnen meer SQL generatoren zijn, met ieder verantwoordelijk voor de generatie van queries voor een bepaald type database (MySQL, Oracle, SQL server, etc., etc.), maar dat zegt nog niets over of voor singelon of object creatie moet gaan.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Canard schreef op maandag 28 december 2009 @ 22:07:
Ok, nu begrijp 't beter.

Uit je post kan ik niet direct lezen hoe je SQL-laag gaat werken, hiermee zou je kunnen suggereren dat je een eigen SQL-laag schrijft en geen ORM framework zoals Hibernate/EclipseLink wilt gebruiken?
Helaas kan ik geen ORM gebruiken omdat een ORM ervan uit gaat dat je het onderliggende database schema reeds kent en zodoende de tabellen op Java object van te voren in je mapping opgeeft. Dit is in deze situatie niet het geval, omdat ik verschillende schema's en tabellen wil kunnen browser zonder dat ik deze van te voren ken.
Wat betreft een singleton; in het algemeen is het steeds opnieuw aanmaken van een object kostbaar qua resources en tijd, dus zou je zeggen doe een singleton, maar bij een singleton dient je wel weer rekening te houden met synchronisatie over meerdere threads. Er is dus niet één antwoord op singleton ja of nee. Dit hangt af van je kennis en de applicatie en kan ik niet over oordelen.
Een SQL generator zal niet van class/instance variabelen gebruik maken om state bij te houden (alleen locale variabelen worden gebruikt), dus synchronisatie zal geen issue zijn. Indien ik zou kiezen voor singelon, is er dan een verschil tussen het creeren van 1 instance die steeds door de factory geretouneerd wordt en het static maken van de class en zijn methoden?
Heb je zelf al libraries/frameworks gevonden die van toepassing zouden kunnen zijn?
Zit te denken aan DisplayTag om de inhoud van tabellen te tonen en jQuery om tabbladen te maken en AJAX calls te doen. Iemand die betere opties kent?
Pagina: 1