lundi 19 mars 2012

Apllication Web et HTML5



Actuellement on entend de plus en plus parler d'application Web.

Mais qu'elle est donc cette chose? Et quelle est la différence avec un site web?

A l'origine les sites internet n'étaient utilisés que pour partager les connaissances.
Grâce au HTML qui est un langage de mise en forme de document on pouvait alors depuis n'importe quel ordinateur accéder aux documents qui avaient une mise en forme spécifique (Titre, couleur, lien vers d'autres documents...).

Puis la création de langage serveur comme PHP, ASP a permis un affichage dynamique des pages. C'est a dire que pour une même page, mais avec des arguments spécifiques on pouvait afficher différents types d'informations. Par exemple une même page pouvait afficher plusieurs articles selon l'identifiant passé dans l'url.

On pouvait aussi envoyer des email, effectuer des calculs, enregistrer des informations en base de données ...

Toutes ces évolutions ont permis de créer tous types de sites internet, du site vitrine, aux sites de e-commerce en passant par les réseaux sociaux ....

L'arrivée du web 2.0 et de l'AJAX a permis de rendre les sites encore plus dynamiques, interactifs et simple d'utilisation.

Avant ces évolutions la navigation se faisait page par page et pour effectuer une action il fallait à chaque fois recharger la page (C'est-à-dire envoyer le formulaire, reconstruire la page, renvoyer toutes les données au navigateur qui lui reformatait le document).

Alors que maintenant on peut rafraichir qu'une partie de document et aussi effectuer des actions sans tous recharger, ce qui est plus agréable pour l'utilisateur et aussi plus rapide.

Parrallèlement dans le milieu des entreprises cela a permis de créer des intranet (Ce sont des sites internet installés sur un serveur de la société ) .

Cela permet aux salariés de se connecter et d'utiliser l'application n'importe où. C'est donc pour cela que ce type de site sont plus des apllication web que des sites internet.

Grâce à ces technologies, ces applications formées de contrôles riches, d'interactions en AJAX permettent alors de créer des applications aussi fiables, fluides et fonctionnelles que des applications de bureau.

L'autre réel avantage est que les utilisateurs n'ont alors plus que besoin d'un navigateur pour l'utiliser et n'ont alors pas d'installation à faire sur leurs postes. Cela facilite alors grandement les évolutions et les mises à jour.

L'Arrivée du HTML5 va permettre encore de renforcer cela et de créer d'autre type d'application et surtout il va faciliter la programmation.

Je ferais prochainement un billet sur les principales nouveautés apportées.

mercredi 14 mars 2012

Pourquoi un os Virtuel?



Le post d'aujourd'hui définira l'utilité d'un os virtuel.

Si vous êtes un peu informaticien, il vous est peut-être arrivé de devoir réinstaller windows. Ce n'est pas toujours évident et cela peut prendre du temps.

Sauvegarder ces données, réinstaller windows, retrouver et réinstaller tous les pilotes.

C'est dans ce sens là qu'un bureau virtuel est utile. L'accès se fait par un simple navigateur type IE, Firefox ou chrome et depuis n'importe quel terminal. Depuis votre ordinateur personnel, un cyber café, un téléphone portable, une tablette tactile ...

Vous profitez toujours des nouvelles fonctionnalités, pas besoin de mises à jour, de s'ennuyer à essayer d'installer des logiciels et les pilotes pour les faire fonctionner.

Vos données sont sécurisées, étant donné que vos documents sont sur un serveur vous ne risquez pas de les perdre en cas de panne, de vol ...

Pas de risque d'avoir de mauvaises surprises comme des virus informatiques qui infestent tous vos documents.

L'évolution des langages web comme le HTML et le javascript permettent aujourd'hui d'avoir des applications internet d'aussi bonne qualité que des applications de bureau.

Ces applications sont appelés des applications internet riches car elles possèdent tous les éléments des applications de bureau (contrôles évolués, accès à des bases de données, des messageries ...).

Voici en quelque lignes les principaux avantages de cette solution, je reviendrais dessus et sur les applications qui seront bientôt disponibles dans les prochains messages.

lundi 5 mars 2012

Trouver des associées


Construire et développer un projet c'est bien, mais quand on est plusieurs c'est encore mieux. Le but est de trouver des associés dont les compétences sont opposées mais complémentaires.

Un beau projet ne peut aboutir si l'on ne met pas toutes les chances de son coté et que le produit n'est pas finalisé correctement sur tous les aspects. Un site internet peut-être très performant, bien conçut et très technique mais s'il n'est pas ergonomique et un minimum esthétique, les gens ne s'y intéresseront pas et passeront peut-être à côté du produit qu'il cherchais.
. J'ai souvent entendu des gens se plaindre de site internet, car ils ne comprenaient pas son fonctionnement et se perdaient dans les multiples pages.

Le plus gros défaut en temps que développeur est de s'éloigner de la partie programmation et arriver à réaliser une application fonctionnelle et facilement utilisable pour la majorité des personnes.

De même une fois le projet prêt et finalisé si on ne possède pas les compétences pour le faire connaitre, pour le vendre on risque de passer à côté du projet.

En fouillant sur internet j'ai trouvé ces deux sites : teamizy et wizzby Le premier est très axés start up, il donne des informations pour trouver l'associé idéal. Le deuxième est plus un réseau social d'étudiant, mais il permet de rencontrer des personnes intéressantes et qui souhaitent s'investir dans un projet.

J'ai pu grâce à eux faire des rencontres intéressantes. Cela permet aussi de se créer son réseau de contact.

Si je publie ce post aujourd'hui c'est parce que petit à petit le projet voit le jour et avance, mais aujourd'hui il me manque certaines compétences complémentaires, mais aussi le temps de gérer le projet dans sa globalité. Parceque chaque partie est importante et représente une charge considérable de travail.

Mon point fort est le développement. Je suis développeur depuis des années et suis à l'écoute des dernières évolutions. La programmation est d'abord une passion et me pousse à toujours sans cesse vouloir innover et inventer de nouvelles choses. J'ai commencé à créer un framework PHP. Celui-ci permet de concevoir des sites Internet en n'écrivant que du php. Puis je me suis dit que ce framework pouvait encore évoluer et c'est en partie de là que m'est venu cette idée et ce projet.

Aujourd'hui je souhaite partager cette aventure avec d'autres personnes.

J'ai donc les compétences pour le développement et toute la partie technique du projet, il me manque les compétences suivantes:

- Graphismes : être capable de faire des design Web2, mais aussi des dessins, des logos et à l'avenir des images et animations de jeux vidéo.

- Community manager : aujourd'hui pour faire connaitre un projet seul le référencement naturel ne suffit pas. Depuis l'émergence des réseaux sociaux (Facebook, twitter ...), une partie du marketing et de la publicité se fait grâce a ces réseaux. Il faut donc avoir une bonne maitrise de ces sites et savoir les alimenter et faire vivre ces communautés.

- Comercial : ce projet est vaste et pourra alors proposer plusieurs types d'offres. Le tout sera d'établir les stratégies, définir les offres, les prix, comment vendre ces produits.

Bref trouver les associées idéaux n'est pas simple car en plus des compétences complémentaires il faut qu'il y ait une bonne ambiance et que chacun trouve sa place.

Pour terminer, si vous avez une de ces compétences et que vous souhaitez participer au projet n'hésitez pas à me contacter voici mon email :jerome.oliva@gmail.com.

Je serais heureux de vous en dire plus sur le projet.

jeudi 1 mars 2012

Etablir une analyse technique



Une fois le cahier des charges et l'analyse fonctionnelles réalisés il est bien de le compléter par une analyse technique.
Pourquoi?
La rédaction de cette analyse vous permettras de détailler et d'analyser la façon dont vous développerez votre programme. Vous pourrez alors établir toutes les briques techniques dont vous aurez besoin.
Que doit-elle comporter ?
En se basant sur votre l'analyse fonctionnelle, elle doit la compléter et apporter toutes les notions techniques de votre application.
Comment vais-je structurer mon programme ?
Comment je vais nommer mes classes ?
Quelles seront les classes utilitaires dont j'aurai besoin ?
Comment vais-intégrer mes librairies tierces ?
Comment vais-je dialoguer avec ma base de données ?
Qu'elles seront mes classes parentes, mes classes filles ?

Ce travail vous permettras d'anticiper les développements que vous aurez à faire. Mais aussi vous permettras de ne pas dupliquer du code. Par exemple vous ferez une classe Date qui gérera les dates et l'appellerez dans vos écrans plutôt que d'écrire deux fois la même fonction.

Schematiser votre application


Réaliser des schémas de votre application permet de voir comment s'articule votre programme. Qui fait quoi? Commment les modules discutent entre eux? Dans cette analyse vous pouvez inclure des diagrammes d'objet. Des schémas de communications..

La suite

Une fois le cahier des charges, l'analyse fonctionnelle, l'analyse technique réalisés vous avez toutes les cartes en mains pour commencer les développements.

Etablir une analyse fonctionnelle



Une fois le cahier des charges réalisé il est bien de le compléter par une analyse fonctionnelle. Pourquoi?
La rédaction de cette analyse vous permettras de commencer à réflechir au moyen à mettre en oeuvre pour réaliser votre projet. Cela apportera les premières briques fonctionnelles qui deviendrons les briques techniques.
Que doit-elle comporter ?
En se basant sur votre cahier des charges elle doit le compléter et apporter toutes les notions fonctionnelles de votre application.

Comment vais-je structurer mon programme?
Qu'elles sont les classes à développer?
Qu'elles sont les protocoles de communications à utiliser?
Comment mon application va dialoguer avec les autres programmes, les utilisateurs?
Qu'elles sont les contraintes?
Quelles seront et ou seront stocké mes données?

Le fait de se poser et décrire ces questions permet de faire la moitié du travail. Un programme qui a été bien réfléchit, bien structuré n'en sera que plus fiable et plus miantenable. Une description détaillée de chaque écran et fonctionnalité permet de commencer à réaliser et poser les bases de l'application. De plus c'est souvent dans ces moments que l'on ajoute des éléments importants que l'on avait oubliés.

Règles de gestion

C'est dans cette analyse que vous pourrez définir les règles de gestion.
Lorsque je clique sur ce bouton ...
Je ne peux pas quitter cet écran si ...
Seul les administrateurs ont accès à ...
C'est bien de la faire ici, car quand vous développerez votre application vous vous y reporterez et les intégrerez.

La suite

Une fois celle-ci établit, le mieux est de réaliser une analyse technique. Elle sera son complément et apporteras tout le côté technique de l'application. Une fois ces documents réaliser vos idées seront claires et définies sur le travail à effectuer et vous pourrez commencer la programmation en toute sérénité.

Etablir un cahier des charges


Dans le post de ce jour j'expliquerais l'utilité et le besoin de réaliser un cahier des charges.

Programmer c'est bien, mais avant de se lancer dans un projet il faut établir un cahier des charges.

Pourquoi?

Selon la nature et l'ampleur de votre projet il est toujours mieux de préparer ce document avant. En effet si l'on fonce tête baissée dans un projet et que l'on commence tout de suite la programmation, la tâche n'en sera que plus difficile et ardue. Vous commencerez par coder quelque chose, puis de nouvelles idées apparaîtrons vous obligeant à revoir votre code ou faire des "pansements". Et-ce qui en ressortiras sera un code pas facilement maintenable, des évolutions difficiles à mettre en place.
C'est pour cela qu'il vaut mieux l'établir et préparer cela avant.

Que doit-il comporter ?

Tous d'abord vous devez définir le besoin.

Que doit faire mon programme?
Qu'elle est l'interaction avec l'utilisateur?
Comment va tourner mon programme?
Faut-t-il tout écrire ou pourrais-je utiliser des librairies tierces?
Qu'elles sont les contraintes?
Quel langage de programmation utiliser?
Le fait de se poser toutes ces questions permet de dégrossir le travail et de commencer à réfléchir aux solutions à mettre en place.
Bien sûr cette partie doit d'écrire de manière fonctionnelle le projet à réaliser. Vous pouvez aussi inclure dans ce cahier des charges quelques copies d'écrans. Le fait de les faire vous permettras de visualiser les choses et de ne pas oublier certaines fonctionnalitées importantes.

Suivre le cahier des charges!
Une fois celui-ci établit, il doit être votre guide pour programmer votre application.Si il est suffisamment complet et précis vous pourrez le suivre facilement dans les différentes étapes de votre projet.
Vous devrez peut-être aussi le retoucher au fur et a mesures des évolutions. Mais si vous avez pris le temps de le faire, de le relire normalement une fois terminé vous aurez établi toutes les clés pour avancer dans votre projet.

Autre document liés au cahier des charges

En général une fois celui-ci établit d'autres documents peuvent venir en supplément pour compléter et affiner les tâches à réaliser :
Une analyse fonctionnelle : Celle-ci doit décrire le fonctionnement (sans rentrer dans le technique) de votre application.
Une analyse technique : Celle-ci doit d'écrire de manière précise tout les éléments techniques de votre programme.
Des copies d'écrans : De bon outils existe pour réaliser des écrans.
Des diagrammes d'objets : Ceux-ci permettent d'établir les objets dont vous aurez besoin ou que vous devrez développer
Des diagrammes de base de données : si votre application communique avec une base de donnée il est bien d'avoir un schéma des différentes tables
Un planning : Cela permettras de se fixer des objetcifs.
Enfin tout document et un plus à votre cahier des charges . A plus celui-ci est étoffé et complet à plus la programmation en sera facile.