Nous connaissons tous la chanson: Vous avez une (petite) modèle, vous devez persister, vous avez besoin d'une INTERFACE utilisateur pour qu'il (web, mobile, desktop, certains des anciens, tous d'entre eux).
C'est un processus répétitif que je ne peux pas aider mais se demander pourquoi nous sommes toujours coincés avec Pojo, OU cartographes, et le codage de l'Isu de la main (puisque la plupart de l'INTERFACE utilisateur "concepteurs" de ne même pas savoir à propos de l'héritage et vous avez besoin pour la construction de tout OK/annuler dialogue avec plus d'un domaine à partir de zéro). RAD tools/plates-formes promesse de corriger ça, mais je n'ai pas vu quelque chose de réel, pas encore. L'idée de ce wiki est de collecter tous les outils qui vous permettront de chair à partir d'une idée en quelques minutes et de construire à partir de là. Des choses simples (comme la création d'une simple INTERFACE utilisateur de votre modèle ou de le sauvegarder dans une base de données) doit être simple. L'attachement d'une assez complexe de l'objet à une boîte de dialogue pour modifier il devrait prendre une ligne de code ou de moins ;)
Donc, voici le défi: Ce RAD sont les outils qui permettent de construire une petite application que dans, disons, 8 heures. Pour vous donner une idée de ce qu'il devrait être en mesure de le faire, voici les spécifications:
Vous avez la "connaissance" nœuds. Chaque nœud a un nom et une description longue attachés (ligne unique et multi-ligne de chaîne)
Chaque nœud peut avoir un nombre quelconque de nœuds de connaissance que les enfants (de 1:* triés relation parent/enfant). Les nœuds enfants au maintien de l'ordre (c'est à dire utiliser une liste, pas un ensemble)
Chaque nœud peut avoir n'importe quel nombre de mots-clés attachés (1:* non triées de la relation entre les différents types)
Deux nœuds de connaissance peut être connecté avec n'importe quel nombre de relations (n:m parenté)
Il devrait être possible de charger/enregistrer le modèle de/XML et à partir de/dans une base de données avec peu d'effort
Les utilisateurs s'attendent à annuler/refaire aujourd'hui
L'INTERFACE utilisateur doit fournir le niveau des opérations: Créer, réorganiser et supprimer des nœuds de connaissance. La réorganisation devrait utiliser drag'n'drop. Il doit permettre à ajouter/supprimer des balises à partir de la connaissance des nœuds. Il devrait y avoir un moyen simple de connecter deux nœuds de connaissance par une relation (disons en faisant glisser le nœud sur les autres dans un mode spécial).
L'INTERFACE utilisateur devrait également permettre à la recherche pour les nœuds avec certains des balises ou des relations. Pour les points de bonus, il doit offrir un moyen simple de naviguer dans le rapport graphique.
Tout le défi? Comme d'habitude, OSS préféré.
Contexte: je suis le développement de logiciels depuis plus de 25 ans, maintenant. Encore, cette application simple qui prend plusieurs semaines, voire des mois à code dans une langue que j'ai rencontré jusqu'à présent: Groovy, Java, Python, Tcl/Tk, Graal, OpenOffice, MS Access, de la limite des Arbres, [TurboGears][10], [Enthought Traits][11], .net.
Quelques commentaires sur les prétendants. Notez que j'essaie de mettre en évidence le point principal dans une seule phrase, afin de prendre la section suivante avec un grain de sel, OK?
Groovy Beau langage, code compact. Fermer mais pas dans l'INTERFACE utilisateur département. Ils y travaillent, mais tout simplement pas là. Pour la persistance, seulement la sérialisation Java hors de la boîte.
Java Java est grand quand il est sorti il y a dix ans, mais elle n'a pas évolué tant que ça. C'est un vieillissement de la langue avec un vaste ensemble de bibliothèques, mais vous avez juste besoin de trop de code pour obtenir des choses faites et chaque ligne de code prend le temps d'écrire.
Python a Obtenu presque tout ce qu'il faut, mais pour une raison quelconque, il n'a jamais vraiment devenu mainstream comme, par exemple, Java. A obtenu une belle INTERFACE utilisateur de définir avec PyQt4, une chouette OU mapper avec SQLAlchemy , mais encore, nous ne la voyons pas de coups de pied de l'accélérateur à pleine vitesse un pull à l'avance. Seulement avec l'avènement des tests unitaires, il est devenu possible d'écrire des projets plus importants. Niveau trop bas pour la tâche.
Tcl/Tk Nice widget mais la langue suce quand le code de la taille dépasse un certain point. Montre son âge maintenant.
OpenOffice Depuis la version 2.0, OO livré avec un construit en base de données et un Accès "-comme" outil. C'est à ses balbutiements, mais ils vont y arriver ... éventuellement. Ne pouvais pas gérer les relations parent/enfant parce que l'INTERFACE ne permet pas de les préciser (voir le bug). Fixe en 3.1. Avec 3.1, vous pouvez créer le modèle, mais l'INTERFACE utilisateur serait encore prendre beaucoup de temps à écrire.
MS Access Presque tout ce que nous avions besoin, mais l'INTERFACE utilisateur les options sont assez limitées. Frustrant.
Limite de la zone arborée Aucun moyen de mettre en œuvre des relations et trop limité pour la plupart des autres cas d'utilisation (vous ne pouvez tout simplement pas faire beaucoup de chose avec elle)
.net je n'ai aucune expérience avec elle, principalement parce que c'est Windows uniquement. Je pense que cela pourrait être assez proche, mais avouons-le: Quel est le point de verrouillage, un quart de l'humanité?