CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

WebApp : Choix des technos

Pseudo supprimé
Pseudo supprimé 02 novembre 2015 à 23:53:30

Salut les gens,

J'ai décidé de me lancer dans une petite webapp toute simple, à base de Google maps. Les objectifs sont simples :

  • Les utilisateurs peuvent voir des markers déjà posés et consulter les informations qu'ils contiennent
  • Les utilisateurs peuvent noter les markers en question
  • Les utilisateurs peuvent ajouter leurs propres markers

Jusque là, du très basique ; c'est limite maps.js qui fait tout.
Des ajouts pourraient être envisagés par la suite :

  • Gestion de "groupes" d'utilisateurs
  • Messagerie entre groupes

Donc jusque là, je me prend Gmaps, et je commence mon JS, avec pour objectif de faire du full-ajax : aucun rechargement de page ne sera toléré. L'objectif est la réactivité de l'app, même s'il doit y avoir 500 000 markers (bon, je sais qu'on n'en arrivera pas là) stockés en BDD à afficher.

Mais en y réfléchissant, je me dis qu'il est largement temps que je me penche sur quelque chose de plus pointu ; et c'est là que je m'interroge. Après tout, ce genre de choses, ce serait pas précisément le but des frameworks comme Angular ou Ember ? Je suis surtout intégrateur, et il faut que je me penche vraiment sur le dev front-end "moderne" ; jusqu'à présent, je n'ai pas touché à tout ça.

Adonc, sur ce genre d'app, qu'est-ce qui serait le plus judicieux ?

  • Je m'interroge déjà sur l'intérêt d'un Framework php. S'agissant d'une seule page, il n'y aura pas franchement besoin de routing. Par contre, c'est toujours sympa d'avoir un ORM... Et je pense aux évolutions futures, notamment la messagerie pour laquelle je réfléchis à l'usage du Markdown...

Auquel cas, je pensais à Slim + Eloquent, pour la réactivité et la simplicité du Framework. Lumen est mieux benchmarké, mais on est déjà sur quelque chose de plus lourd, et ça rentre dans du back-end, où je ne suis pas sûr de gérer davantage... Et je ne sais pas comment ces frameworks se comportent avec Angular...

  • Côté JS, je pense me tourner vers Angular parce que c'est celui pour lequel je trouve le plus de ressources, et qu'il ne nécessite pas jQuery en dépendance... Mais n'ayant jamais vraiment utilisé ni celui-ci ni un autre, je ne sais pas vraiment si l'un répond plus à mes besoins qu'un autre (comme Zend et Slim ne répondent pas au même besoin en PHP). Et encore une fois, est-il bien simple de concilier Frameworks php et JS ? Et est-ce que l'utilisation est raccord avec l'idée de performance ?
  • Et dans les deux cas, je me demande si tout ça est bien nécessaire, ou si c'est prendre de la dynamite pour ouvrir une porte... Je veux dire, à priori l'app est très simple (le plus lourd reste le nombre potentiel de markers à afficher), et l'idée de déployer autant de moyens pour quelque chose de très basique.

Voilà mes doutes du soir. Si quelqu'un a envie de partager ses expériences sur le sujet, ou de déconseiller une association (Slim + Backbone, par exemple, pour X ou Y raisons), ou bien de me proposer une toute autre alternative, je suis preneur.

Merci !

Message édité le 02 novembre 2015 à 23:57:27 par Pseudo supprimé
ShiningDuck
ShiningDuck
Niveau 5
03 novembre 2015 à 18:49:24

Je sais que je dis ça souvent, mais perso je te conseille d'utiliser du NodeJS avec Express pour ton côté serveur, idéal pour faire du REST; et côté client je te conseille angular qui est vraiment agréable à utiliser : Je le quitte plus depuis que je l'ai découvert ! :)

Pseudo supprimé
Pseudo supprimé 03 novembre 2015 à 19:31:13

@Darkangel: Ouep, mais j'ai vraiment du mal à envisager comment gérer Angular + Slim, par exemple... Je n'ai globalement exploré que le côté front-end de Slim, sa simplicité à gérer des routes (que je peux gérer en Angular, pour avoir des changements sans chargement)...

Merci pour ton retour sur Backbone !

@ShiningDuck: Oui, j'ai pensé à NodeJS aussi. Je ne me suis pas penché dessus et ce serait l'occasion, c'est vrai ; mais je n'ai aucune base à ce niveau (même si au final ça reste du JS), donc pas simple à appréhender...

LECROU
LECROU
Niveau 10
03 novembre 2015 à 20:33:10

A ta place, je partirais sur un framework basé sur node (à moins que tu ne veuilles faire du php !).
Si tu veux monter ta web-app rapidement, je te conseille fortement le framework Meteor qui va te permettre de très vite avancer de part sa facilité d'apprentissage.

Je suppose que t'es déjà calé en JS, ça va se faire tout seul :ok: En plus ce framework est vraiment super à l'utilisation, je l'utilise à plein temps à mon boulot depuis 7 mois et je suis conquis.

Pseudo supprimé
Pseudo supprimé 03 novembre 2015 à 20:59:10

@Lecrou Ah oui, je suis tombé dessus par hasard récemment... Je vais voir ce qu'il en est. D'un point de vue ressources, ça ne pose pas de soucis d'avoir un serveur Node qui tourne en plus d'Apache + Nginx ?

Après, je ne dirais pas que je suis calé en JS, non. J'utilise JS, voilà... Sans prétention aucune, à part la volonté de m'améliorer.

Pseudo supprimé
Pseudo supprimé 03 novembre 2015 à 21:09:30

@Darkandgel merci pour cet exemple ;)

ShiningDuck
ShiningDuck
Niveau 5
03 novembre 2015 à 21:22:12

Tiens voila un exemple d'api REST en Nodejs et express ^^


var express = require('express');
var app = express();
var bodyParser = require('body-parser')

app.use(bodyParser.urlencoded({   
  extended: true
})); 
app.use(bodyParser.json());


var products = 
[
{
	name:"Pain",
	price:"100"
},
{
	name:"Jambon",
	price:"300"
},
{
	name:"Fromage",
	price:"250"
},
{
	name:"Cacahuettes",
	price:"400"
}
];


//=====================================================================
// API endpoints

app.get('/products', function (req, res) {
  res.json(products);
});

app.get('/product/:id', function (req, res) {
	console.log(req.params.id);
  res.json(products[req.params.id]);
});

app.post('/newproduct/:name/:price', function (req, res){
	console.log(req.params);
	if(req.params.name && req.params.price){
		var name = req.params.name,
        price = req.params.price;
    	products.push({name:name,price:price});
    	res.json({success:"Added product", name:name, price:price});
	}
	else{
		res.json({error:"Missing field"});
	}
	 
});

app.delete('/product/:id', function (req, res){
	if(req.params.id){
		var id = req.params.id;
		products.splice(id-1,id);
    	res.json({success:"Deleted product"});
	}
	else{
		res.json({error:"Missing field id"});
	}
});

//=====================================================================
// Server info

var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('API running at http://%s:%s', host, port);
});

Au final ca ressemble à ce qu'a fait Darkangel :)

Pseudo supprimé
Pseudo supprimé 04 novembre 2015 à 02:27:46

Je suis en train de regarder quelques trucs avec Meteor et j'aime bien, notamment la possibilité d'intégration très simple avec Angular.

Mais ma question, c'est l'efficacité de la chose : Par défaut, meteor gère la BDD en Json. Est-ce que, dans l'idée (toujours hypothétique puisque ça ne sera pas le cas) 500 000 markers avec localisation, nom, contenu textuel, etc. à stocker ne vont pas poser de légers soucis de taille et donc de performances ?

LECROU
LECROU
Niveau 10
04 novembre 2015 à 08:42:10

De base, Meteor utilise mongoDB. Ça a des défauts (beaucoup) mais un des avantages est que ça scale très bien.
De grosses applis avec un contenu énorme l'utilisent (genre Kadira).

Pour stocker un grand nombre de marqueurs ça me fait pas spécialement peur :)

Pseudo supprimé
Pseudo supprimé 04 novembre 2015 à 09:51:00

Effectivement, j'ai passé la nuit dessus et c'est vraiment cool. Donc je vais effectivement partir sur ça, avec le package Angular je pense.

Bon, j'ai pas encore réussi à faire ce que je voulais, mais Meteor est vraiment puissant et complet (et ça, j'aime). Me reste à appréhender correctement ce tout nouveau monde.

Actuellement j'ai déjà des soucis de Collections qui ne veulent pas se remplir quand je fais un insert, bref c'est parti pour du dev.

Merci les gens !

LECROU
LECROU
Niveau 10
04 novembre 2015 à 11:36:40

Content que tu aies choisi cette solution :)
Si t'as des soucis je serais ravi d'essayer de t'aider.

Bon dev !

Pseudo supprimé
Pseudo supprimé 04 novembre 2015 à 16:30:56

Ne dis pas ce genre de choses, je risque de te prendre au mot, et tu vas te retrouver noyé de questions. :ok:

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment