Bonjour, Bonsoir !

Ce n'est pas tout à fait un problème mais surtout une demande d'aide pour voir comment améliorer la solution que j'ai actuellement.

Grosso modo, je souhaite mettre en place une application web qui permettra à n'importe qui de chercher un véhicule (par marque, modèle, année, ...) et d'obtenir des informations sur sa consommation de carburant. J'utilise Laravel pour faire ça mais je poste dans PHP car la solution n'est pas en lien avec le framework.
Aussi l'application sera open source, elle a déjà son repo github, accessible ici.

Ce que je fais

Lien direct vers le fichier

L'application se connecte à l'URL et récupère des fichiers CSV que je stocke dans mon storage local.
Je lis ensuite chacun de ces fichiers afin d'extraire les infos ligne par ligne et les ajouter dans ma base de données que j'ai, pour le moment, divisé simplement en trois tables : véhicules, marque, type (camionnette, suv, coupé, etc.)

Ce que je veux

J'aimerai en fait qu'on analyse mon code et qu'on me dise ce que je fais mal ou qui pourrait être amélioré.
C'est pour l'instant un premier jet, j'ai codé tout ça en 2-3h. J'aimerai pouvoir arranger le côté récupération de données et que ce soit super stable et facilement modifiable à l'avenir.

Ce que j'obtiens

Pour l'instant, mon script récupère bien les données mais il plante arrivé à un certain fichier (2014 Fuel Consumption Ratings (2016-10-21).csv) alors qu'il a les mêmes règles que les autres (cad. lorsque j'arrive sur une ligne où l'année est vide c'est que je suis rendu au bout du fichier et que j'arrive aux explications du ministère qui ne m'intéressent pas, donc je fais un break; [GrabDataController@enregistrementDonnées:l.140])

Merci pour votre temps !

Bon codage! ;)

2 réponses


Bonjour.

C'est pour l'instant un premier jet, j'ai codé tout ça en 2-3h.

Tu as fais ton codage en 2-3 heures et tu voudrais que nous t'aidions à l'améliorer sans que tu n'aies passé plus de temps dessus toi même ?
Je trouve que c'est un peu abusé quand même.

Pour ce qui concerne le plantage, c'est peut être tout simplement un problème de mémoire du serveur, si tu fais lire à ton serveur plus de fichiers qu'il ne peut lire et donc saturer la mémoire (par rapport à leurs taille/poids par exemple), il ne continuera pas plus loin.
Tu devrais donc je pense vérifier cette piste.

rash
Auteur

Salut Lartak,

Désolé si c'est mal formulé, je cherche pas nécessairement une solution toute faite mais des pistes. L'idée est avant tout d'apprendre et surtout d'améliorer ma façon de faire.

Je vais voir si enregistrer en BDD la liste des fichiers à télécharger, pour permettre à Laravel de passer à travers un cron ou quelque chose de ce genre peut régler le problème.

En vérité ce que je recherche surtout c'est une critique de mon code, qu'est ce qui est mal foutu et qui pourrait me poser des problèmes à l'avenir.

Merci pour ton temps.