OVH Cloud OVH Cloud

Questions de debutant

3 réponses
Avatar
Philippe Dhondt
Bonjour





Nouveau venu dans le monde Java, j'ai quelques petites questions :



Je souhaite développer une appli boursière

Celle-ci est construite autour d'une base de données.

Chaque jour l'appli se connecte à un serveur est donwload les data «
brutes » (pour chaque titre : cours d'ouverture , cours de clôture, plus
haut, plus bas et volumes).

Les data sont incorporées à la DB

Un outil de calcul est alors lancé sur ces « data brutes » et produit des
« data corrigées » (indicateurs d'analyse technique, ...)

Un outil d'arbitrage est ensuite lancé sur ces « data corrigées » et permet
de gérer un (des) portefeuille de titres.

Un site web sera egalement connecté à la DB

Il permettra , entre autre, à ses abonnés de visualiser les graphiques des
data corrigées.





Donc, cette appli doit essentiellement faire

1.. Des calculs
2.. Des graphiques




L'aspect « Performances » est de toute première importance

1.. Performances pour les calculs :
Le nombre de calculs effectués est impressionant (+ de 6000 titres, + de 100
indicateurs, + 10 dérivés par indicateur ...)

Pour chaque calcul, on va chercher les data dans la db, on calcule, on
sauvegarde le résultat dans la db.

Comme on download chaque soir, il serait sympa que l'apppli ait terminé son
travail pour l'ouverture du lendemain J

De plus, si les résultats escomptés sont vérifiés, l'appli pourrait passer
en « temps réel » (on download toutes les 5 minutes)

2.. Performances pour les graphiques
Ceux-ci sont donc construits à partir de data qu'on va chercher dans la Db
et le temps d'affichage doit être minimisé au maximum.



Quels choix conseillez-vous ?

1 IDE : Eclipse ou NetBeans ?

2 DB : PostgreSQL ou ... ?

3 Quel outil pour les Graphiques (essentiellement de type « chandelier »)

4 L'étape UML est-elle indispensable ?



Les premières questions :

1 Java a parfois une réputation de « lenteur », qu'en est-il ?

2 Utiliser C++ changerait-il quelque chose en terme de performances ?



Enfin, quelles sont les bonnes lectures avant de se lancer dans un tel
projet ?



Dernière remarque, je ne suis pas informaticien, mais l'appli en question
existe bel et bien aujourd'hui. Je l'ai développé avec ... Access, Excel,
VBA et VB6 (et une centaine de titres seulement) . Elle est constituée d'un
nombre « déprimant » de « modules » (on appelle cela une usine à gaz je
pense)

C'est pour pouvoir continuer à la faire évoluer que je repars à 0 et qu'il
me semble que l'approche « objet » et intéressante. Tous les commentaires
sont les biens venus.



Merci à vous



Philippe Dhondt

3 réponses

Avatar
Fabien Bergeret
Philippe Dhondt wrote:
Bonjour



De meme


Quels choix conseillez-vous ?

1 IDE : Eclipse ou NetBeans ?



A priori, Eclipse car plus ouvert, plus de plugins

2 DB : PostgreSQL ou ... ?


ou MYSQL, avec des tables MyISAM afin de pouvoir gerer les transactions
proprement, ainsi que les contraintes foreign key entre les tables


3 Quel outil pour les Graphiques (essentiellement de type « chandelier »)


J'ai utilise Cewolf (http://cewolf.sourceforge.net/new/index.html) sans
trop de difficulte


4 L'étape UML est-elle indispensable ?



L'etape UML n'est jamais indispensable ; elle est juste conseillee : le
temps passe dans cette etape est tres generalement gagne par la suite ...



Les premières questions :

1 Java a parfois une réputation de « lenteur », qu'en est-il ?



Pour ce genre de projet, c'est la base de données qui donne les
performances globales du systeme, donc Java ou C++ ou php, ca ne change
pas grand chose d'un point de vue performances


2 Utiliser C++ changerait-il quelque chose en terme de performances ?



Enfin, quelles sont les bonnes lectures avant de se lancer dans un tel
projet ?




Ouf ! Vaste question : penser en Java (http://penserenjava.free.fr/)
pour les generalites Java, comment ca marche
(http://www.commentcamarche.net/) pour plein de choses sur UML, Java, le
web ...


Dernière remarque, je ne suis pas informaticien, mais l'appli en question
existe bel et bien aujourd'hui. Je l'ai développé avec ... Access, Excel,
VBA et VB6 (et une centaine de titres seulement) . Elle est constituée d'un
nombre « déprimant » de « modules » (on appelle cela une usine à gaz je
pense)

C'est pour pouvoir continuer à la faire évoluer que je repars à 0 et qu'il
me semble que l'approche « objet » et intéressante. Tous les commentaires
sont les biens venus.


Bonne chance. N'hesite pas a poser d'autres questions ...


Avatar
Christophe Tela
Quels choix conseillez-vous ?

1 IDE : Eclipse ou NetBeans ?
Monsieur aime les trolls... Moi, je conseille un bon éditeur de texte, genre

JEdit...

2 DB : PostgreSQL ou ... ?
Monsieur aime beaucoup les trolls... Perso, je trouve PostgreSQL très

puissant. J'aime également beaucoup FirebirdSQL mais que je limite à des
bases de petite taille (< à 1 Go). Et pour les petites bases de données
embarquées, j'aime beaucoup McKoi (java pur).

3 Quel outil pour les Graphiques (essentiellement de type « chandelier »)
JFreeChart est pas mal du tout.


4 L'étape UML est-elle indispensable ?
Non. Mais une étape d'analyse et de validation auprès de tes futurs

utilisateurs (si tu en as) sont elles totalement indispensables. En ce qui
me concerne, je trouve UML mal fichu, barbare, pédant, et surtout
totalement inadapté à sa vocation initiale.

1 Java a parfois une réputation de « lenteur », qu'en est-il ?
Pour du calcul brut, et notamment sur des nombres à virgule flottante, cela

peut être pénalisant. Mais par rapport à un programme en Access, Excel...,
rien à voir, cela devrait aller beaucoup, beaucoup plus vite.

2 Utiliser C++ changerait-il quelque chose en terme de performances ?
Oui, car C++ génère du code qui exploite directement les capacités de

calculs du processeur sans avoir à se préoccupper de l'ordonnancement des
octets (par exemple).

Cela dit, rien ne t'empêche d'écrire les parties sensibles en C/C++ et tout
le reste en java. Je te conseillerais de tout écrire en Java, et de voir
ensuite si tu as vraiment un problème de perf.

Enfin, quelles sont les bonnes lectures avant de se lancer dans un tel
projet ?
Un bon bouquin sur le SQL et sur le SGBDR que tu auras choisi. Si tu

t'appuies sur un SGBDR fort en calcul, tu pourras presque tout faire avec
lui, le Java n'étant alors plus utilisé que pour l'IHM (interface
homme-machine).

Egalement, un bon bouquin sur le java, et surtout un bon bouquin sur la
finance si tu n'es pas encore expert dans ce domaine.

C'est pour pouvoir continuer à la faire évoluer que je repars à 0 et qu'il
me semble que l'approche « objet » et intéressante. Tous les commentaires
sont les biens venus.
L'approche objet n'est pas la solution universelle à tout. Elle apporte des

solutions élégantes à certains problème, mais pour la partie calcul pur, il
ne faut pas attendre de miracle du fait que tu passe à de l'objet.

Avatar
jlp
Bonjour





Nouveau venu dans le monde Java, j'ai quelques petites questions :



Je souhaite développer une appli boursière

Celle-ci est construite autour d'une base de données.

Chaque jour l'appli se connecte à un serveur est donwload les data «
brutes » (pour chaque titre : cours d'ouverture , cours de clôture, plus
haut, plus bas et volumes).

Les data sont incorporées à la DB

Un outil de calcul est alors lancé sur ces « data brutes » et produit des
« data corrigées » (indicateurs d'analyse technique, ...)

Un outil d'arbitrage est ensuite lancé sur ces « data corrigées » et permet
de gérer un (des) portefeuille de titres.

Un site web sera egalement connecté à la DB

Il permettra , entre autre, à ses abonnés de visualiser les graphiques des
data corrigées.





Donc, cette appli doit essentiellement faire

1.. Des calculs
2.. Des graphiques




L'aspect « Performances » est de toute première importance

1.. Performances pour les calculs :
Le nombre de calculs effectués est impressionant (+ de 6000 titres, + de 100
indicateurs, + 10 dérivés par indicateur ...)

Pour chaque calcul, on va chercher les data dans la db, on calcule, on
sauvegarde le résultat dans la db.

Comme on download chaque soir, il serait sympa que l'apppli ait terminé son
travail pour l'ouverture du lendemain J

De plus, si les résultats escomptés sont vérifiés, l'appli pourrait passer
en « temps réel » (on download toutes les 5 minutes)

2.. Performances pour les graphiques
Ceux-ci sont donc construits à partir de data qu'on va chercher dans la Db
et le temps d'affichage doit être minimisé au maximum.



Quels choix conseillez-vous ?

1 IDE : Eclipse ou NetBeans ?

2 DB : PostgreSQL ou ... ?

3 Quel outil pour les Graphiques (essentiellement de type « chandelier »)

4 L'étape UML est-elle indispensable ?



Les premières questions :

1 Java a parfois une réputation de « lenteur », qu'en est-il ?

2 Utiliser C++ changerait-il quelque chose en terme de performances ?



Enfin, quelles sont les bonnes lectures avant de se lancer dans un tel
projet ?



Dernière remarque, je ne suis pas informaticien, mais l'appli en question
existe bel et bien aujourd'hui. Je l'ai développé avec ... Access, Excel,
VBA et VB6 (et une centaine de titres seulement) . Elle est constituée d'un
nombre « déprimant » de « modules » (on appelle cela une usine à gaz je
pense)

C'est pour pouvoir continuer à la faire évoluer que je repars à 0 et qu'il
me semble que l'approche « objet » et intéressante. Tous les commentaires
sont les biens venus.



Merci à vous



Philippe Dhondt






Projet interessant.

Je pense que ce projet peut se réaliser sur une plate-forme Java J2EE :
Servlets + Frame work de présentation (Struts JSP ou JSF ou autres (
Echo) )+ JFreeChart ( graphique) + Objets Façades + POJOS + Mapping O/R
( Hibernate ou JDO) + Database (Postgres, la V8 se rapproche de plus en
plus de la référence ;-) )
Le mapping O/R va te servir à insérer tes données à travers les batch
ainsi que d'acceder à ces données pour les mettre à disposition des
utilisateurs à travers des pages HTML et des graphiques ( JFreeChart
permet de créer des images JPEG insérables dans les pages HTML (
générées à partir des pages JSP).
Je ne suis pas fan des EJB 2.x
Comme j'ai l'impression que tu es débutant en Java, il te faudra d'abord
travailler le langage ( JDK / J2SE ), puis comprendre le fonctionnement
d'une plateforme J2EE partie Servlet ( WAS).
pour la partie WAS ( Container de servlets) , tu peux utiliser TOMCAT ou
tout WAS intégrant TOMCAT, je te conseille JONAS ( www.objectweb.org).
Pour le Mapping O/R, Hibernate est l'un des plus utilisé et est sous
licence LGPL.

Pour la modelisation multi-couche, je te conseille d'utiliser le modele
de la société IMPROVE
URL de départ :
http://www.application-servers.com/articles/multicouches/index.1_0.html

Le principe du modèle 5 couches, est le découplage maximal de chaque
couche par rapport à l'autre. Le dialogue inter-couche se fait en
utilisant le Design Pattern DTO ( Data Objetc Transfert ). Ce qui peut
permettre de changer par exemple la couche présentation (
HTML/Servlet/Frame-work de présentation) par un client lourd sans
toucher aux autres couches.

Bon courage