MISRA C: Quasi standard non seulement pour l’industrie automobile

contenu
  1. MISRA C: Quasi standard non seulement pour l'industrie automobile
  2. conclusion
  3. lire sur un côté
MISRA C: Quasi standard non seulement pour l'industrie automobile

La norme de programmation MISRA C prend en charge les programmeurs C pour développer des applications avec la plus haute qualité. aide également que les règles sont dans la nouvelle norme MISRA C: 2012 plus clairement définis et expliqués ainsi que leur utilisation respective sont plus fondées.

Karl Marx suit la connaissance philosophique vient de: "Être détermine la conscience." Maintenant, on pourrait penser aux penseurs de Trèves, tout ce que vous voulez. Appliqué au développement de logiciels dans une norme de codage tels que MISRA cela fait une différence si vous devez dépendre en tant que développeur après ses restrictions souvent étroites et étranglées. Ou que ce soit sur une table d'opération en tant que patient, entouré d'une grande variété d'appareils avec des logiciels embarqués complexes et les délivre à la merci de l'espoir que cette composantes salvateurs seront effectivement travailler à l'aide du logiciel.

MISRA a été initialement développé pour l'industrie automobile. La norme devrait veiller à ce que fourni par différents fabricants avec des composants logiciels embarqués fonctionnent correctement - et sinon, que les erreurs peuvent être résolus rapidement. Pendant ce temps, MISRA est devenu une norme de facto qui va bien au-delà de l'industrie automobile. Si elle vie à la sécurité ou applications critiques va, on trouve de plus en plus fréquent que MISRA règles de codage standard: dans la technologie médicale où il est souvent une question de vie ou de mort d'une personne, dans l'avionique, où les gens non seulement un pilote la confiance, mais aussi sa technologie aéronautique, de la production industrielle, où les investissements peuvent être compromis par un logiciel défectueux ou même détruits. Code MISRA-testé est plus sûr, plus facile à maintenir, plus cohérente, vérifiable et a moins de défauts.

Ainsi, le sens de MISRA est évidente: pour éviter les problèmes logiciels juste où il peut être dangereux et coûteux. Cependant, pour les programmeurs C qui veulent utiliser pleinement profit de ce langage de programmation, la norme signifie beaucoup de frustration amère. Parce que souvent, ce sont les caractéristiques les plus pertinentes de C, pour faciliter la programmation des travaux d'une part, mais d'autre part, d'interdire leur utilisation avec précision les règles de MISRA C. Juste au moment où vous pourriez faire face à des obstacles dans la programmation de logiciels C élégant, il y a le risque d'être arrêté par MISRA C en elle.

MISRA C: Règles de 2012 sans exception

"Les progrès du peuple doit la insatisfait"Dit un proverbe. Et puis il y a une raison majeure pour l'élaboration de normes publiées l'an dernier MISRA C: 2012 dans les commentaires des utilisateurs qui ont pu acquérir de l'expérience dans leur travail quotidien avec les règles et les ajouts et améliorations ont été proposées. MISRA C a été initialement développé en 1998 et a été introduit pour C90. Une version révisée a été ensuite 2004. pas 2004 l'art antérieur: Mais même alors correspondu MISRA C. Parce qu'il a exigé que le code doit être conforme C90, bien que cette version a ensuite été déjà remplacée par C99. En effet, en 2004, quelques outils et compilateurs pris en charge des fonctionnalités C99. L'ancien groupe de travail est allé avec leur décision de C90 façon prudente sécurité maximale.

MISRA C: 2004MISRA C: 2004En comparant MISRA C: 2004 et MISRA C: 2012 règles obligatoires sont dans la nouvelle norme (impératif des règles maintenues) ont été ajoutés en tant que nouveau groupe. De plus, il y a maintenant 16 directives qui peuvent ne pas être définies par rapport aux règles assez précises. En comparant MISRA C: 2004 et MISRA C: 2012 règles obligatoires sont dans la nouvelle norme (impératif des règles maintenues) ont été ajoutés en tant que nouveau groupe. De plus, il y a maintenant 16 directives qui peuvent ne pas être définies par rapport aux règles assez précises.


Mais C99 conformité ne représente qu'un aspect parmi d'autres, ce qui explique pourquoi il était nécessaire de MISRA C: 2012 pour remplacer son prédécesseur. Les règles sont en MISRA C: 2012 plus clairement définis et expliqués. Leur application respective est également mieux justifiée. De plus, il y a maintenant trois ans au lieu des deux précédentes classes de règles: prochain "recommandé" (Règles consultatifs) et "nécessaire" Règles (règles obligatoires) est maintenant disponible "absolument nécessaire" Règles (règles obligatoires). Avec MISRA-C: 2004 Code conforme doit être structuré de telle sorte que les règles nécessaires ont été respectées - à moins que des exceptions justifiées fait une dérogation aux règles nécessaires. Avec l'introduction des règles impératives de cette liberté est limitée. Les règles obligatoires ne sont pas négociables, des écarts de norme de codage ne sont pas autorisés. MISRA-C: L'équipe de projet 2012 a ces règles obligatoires définies comme telles parce qu'il actuellement des situations sont envisageables, qui justifierait une transgression des règles.

C ++: Directives de base Interfaces I

Les interfaces sont un accord entre le fournisseur de services et l'utilisateur du service. Les C ++ de base Lignes directrices mis sur 20 règles pour ce contrat parce que "interfaces est probablement l'aspect le plus important de l'organisation du code",

C ++: Directives de base Interfaces I

Avant de présenter les règles, il y a une vue d'ensemble compact ici.

Je ne peux pas imaginer en détail les règles. Il y a trop. Je vais donc écrire cet article sur les dix premiers et de me consacrer à la prochaine les dix autres. Allons-y.

I.1: Faire des interfaces explicites

Dans cette règle, il est sur la précision. Cela signifie que les hypothèses sur la fonctionnalité d'une fonction dans l'interface doivent être exprimées. Si cela ne se produit pas, ces hypothèses peuvent être facilement négligés et le code est difficile à tester.

rond int (double d)
{
retour (round_up)? ceil (d): d; // ne pas: "invisible" dépendance
}

Par exemple, la fonction ronde supprime pas exclu que leur résultat de la variable globale dépend round_up.

I.2: Évitez les variables globales

La règle est bien sûr évidente, mais il parle explicitement de l'évolution des variables globales. constantes globales sont problématiques parce qu'ils injectent des dépendances dans une fonction et ne peut causer des conditions de course.

I.3: Évitez singletons

Singletons sont déguisées, les objets globaux. , Vous devez donc les éviter.

I.4: Faire des interfaces et fortement typés PRÉCISION

La raison est généralement très convaincante: les types de données sont la documentation la plus simple et la plus explicite, ont une vérification sémantique bien définie et sont automatiquement par le compilateur.

Voici un exemple:

draw_rect vide (int, int, int, int); // grandes opportunités pour les erreurs
draw_rect (p.x, p.y, 10, 20); // qu'est-ce que 10, 20 signifie?

draw_rectangle vide (de top_left Point, bottom_right Point);
vide draw_rectangle (point de top_left, Taille height_width);

draw_rectangle (p, point {10, 20}); // deux coins
draw_rectangle (p, Taille {10, 20}); // un coin et un (hauteur, largeur) paire

Avec quelle facilité il peut arriver, la fonction draw_rect mal à utiliser? Comparez la fonction draw_rectangle avec la fonction. Le compilateur garantit qu'il ne peut être utilisé avec des objets Point ou taille.

Vous devez donc rechercher des fonctions qui utilisent beaucoup de types de données intégrés comme argument dans votre processus de nettoyage de code; ou pire, qui utilisent le vide de type de données * comme argument.

I.5: conditions de l'État (le cas échéant)

Si possible, vous devriez conditions préalables à votre fonction x ne peut pas être négatif dans le double sqrt (double x), formulé en assurances.

Merci à la fonction prend () de la bibliothèque de soutien de ligne directrice (GSL), vous pouvez exprimer directement vos conditions.

deux sqrt (double x) {Se attend (x >= 0); / * ... * /}

Les contrats comprenant des conditions préalables, post-conditions et garanties sont l'une des caractéristiques que nous pouvons espérer 20 en C ++. Voici la proposition officielle: p03801.pdf.

I.6: Je préfère () pour Se attend exprimer des conditions préalables

Cette règle est la précédente relativement similaire, mais met son accent sur un autre aspect. Tu (Se attend) et non, par exemple, si des déclarations, des commentaires ou assert () - instructions d'utilisation, de fournir les conditions dans votre code.

zone int (int hauteur, largeur int)
{
Attend (hauteur > 0 && largeur > 0); // bon
si la hauteur ( <= 0 || largeur <= 0) my_error (); // obscur
// ...
}

L'expression Se attend () est facile à identifier et peut être vérifié avec 20 C ++, selon toute probabilité.

I.7: conditions de poste Etat, I.8: Je préfère Garantit () pour exprimer postconditions

Selon les arguments d'une fonction, vous devez vous faire réflexions sur leur valeur de retour. Les règles des post-conditions sont semblables à celles des conditions préalables vient d'être décrit.

I.9: Si à l'interface est un modèle, documenter ses paramètres à l'aide des concepts

Avec une forte probabilité que nous allons obtenir avec 20 concepts C +. Les concepts sont prédicats pour les paramètres du modèle, qui peuvent être évalués au moment de la compilation. Un tel concept peut réduire le montant des arguments qui peuvent être utilisés pour un paramètre de modèle. Je l'ai déjà écrit quatre articles sur les concepts, car ils n'ont pas beaucoup plus à offrir.

La règle des concepts est très évidente: Tu simplement utiliser.

modèle
exige InputIterator && EqualityComparable>, Val>
Iter find (iter première, charge iter, Val v)
{
// ...
}

Les appels place de l'algorithme générique, qui est ses paramètres de modèle Iter un itérateur d'entrée et sa valeur sous-jacente EqualityComparable. Si vous trouvez interroges avec un argument de modèle que ces conditions ne sont pas remplies, vous recevrez un message d'erreur lisible et facilement compréhensible.

I.10: Utiliser des exceptions pour signaler un défaut d'exécution d'une tâche requise

Voici le raisonnement: "Il ne devrait être possible d'ignorer dans l'erreur parce que cela pourrait quitter le système ou un calcul pour état indéfini (ou inattendu)."

La règle a un mauvais et un bon exemple de la cité "Non défini (ou unexpecead) État" sur.

int printf (const char * ...); // mauvais: retour négatif si la sortie échoue

modèle
// bon: jeter system_error si incapable de démarrer le nouveau fil
fil explicite (F&& f, Args&&... args);

En mauvaise application, vous pouvez ignorer, ce qui rend votre programme non défini exceptionnel comportement.

Si vous ne pouvez pas utiliser les exceptions, vous devez retourner des paires de valeurs. Merci à la fonctionnalité de liaison structurée 17 C ++, vous pouvez mettre en œuvre cette règle élégante.

auto [val, error_code] = do_something ();
if (error_code == 0) {
// ... gérer l'erreur ou de sortie ...
}
// ... utiliser val ...

Quelle est la prochaine?

Dans le prochain article, je regarde les autres règles de pointeurs, l'initialisation des variables globales, les paramètres de la fonction et l'ABI (Application Binary Interface) de près. Dans C ++ moderne, il y a beaucoup à apprendre pour une bonne conception de l'interface.

Java Pays 2017: Les organisateurs ravis de participation record

Java Pays 2017: Les organisateurs ravis de participation record

Fried Saacke a ouvert la conférence Java devant une foule record.

Dans la quatrième édition de la Conférence Java terre, les organisateurs ont pu accueillir 1.655 participants - à 1.220 l'an dernier, un nouveau record. Dans le cas contraire, le temps ensoleillé qu'invoquent les visiteurs dans le parc d'attractions Phantasialand un sourire sur votre visage.

Dans le cadre de l'accueil était aussi au revoir: Markus Eisele, précédemment responsable du programme de conférences, continuera d'effectuer d'autres tâches. Pendant quatre années de programmation, il a reçu des cadeaux de la ligne de conférence, la première Java pays pour toujours Fried Saacke, un billet de saison pour les prochaines éditions. Cette fois équipe avait Eisele la tâche de compilation de plus de 400 entrées d'un programme avec plus de 100 sessions et autres activités. Traditionnellement bien l'accent est mis sur la variété des haut-parleurs - des haut-parleurs de renommée internationale, jusqu'à nouveaux arrivants de la communauté. Donc, environ trois quarts des conférences en allemand, les autres se déroulent en anglais. En tant que service spécial dans le Silverado Theater une cabine de traduction a été mis en place: Si nécessaire, les participants ont pu suivre via un casque en allemand ou en anglais lectures en option.

et caractéristiques communes avec le DOAG (groupe Oracle utilisateur allemand) et le iJUG, le groupe d'intérêt de Java germanophone User Group, organisateur de la conférence Java Land.

Comme l'année dernière, les JavaLand4Kids ont eu lieu la veille. La petite soeur de la conférence Java est orienté leur attention aux programmeurs de demain. Dans la troisième édition des enfants environ 30 participants une quatrième année d'école primaire en trois ateliers appris connaître la programmation ludique.

Architecture, Java EE et Java SE définis comme sujets

Dans le premier de deux discours liminaires Jean-Jacques van Oosten a parlé du rôle de la CDO en tant que propriétaire chef de produit. Pour veiller à ce qu'aucun problème technique a été défini, mais une organisation. Le directeur général numérique de Rewe Group a rapporté sur son travail en tant que chef de serviteur et a donné comme message, ne pas compromettre. Au début, cela était intéressant, divertissant et une contribution importante parce que la transformation numérique est une question clé pour de nombreuses entreprises. Malheureusement glissé vers la fin de la keynote d'un événement de recrutement pour son entreprise. Le recrutement a aussi inventé la salle des exposants où de nombreux exposants principalement courtisé développeurs - manque de compétences de première main.

Dans le second discours - par Martin Thompson - ont également joué Java comme la langue n'a pas d'importance, mais elle est allée avec le thème "À l'écoute des pressions de conception" plus vers l'architecture. Cela découlant de la pression des exigences non fonctionnelles, qui appelle Thompson préfèrent la qualité des services - en particulier pour la performance, la facilité d'utilisation et la sécurité.

Comment les développeurs se sont intéressés au niveau local à l'architecture logicielle salles en partie complètes ont montré cela. En particulier, Carola Lilienthal leurré la communauté et a causé des chambres débordantes. Et même si elle a tenu que prévu dans une pièce plus grande de ses conférences.

Carola Lilienthal la foule architecturer Carola Lilienthal la foule architecturer

Cependant, les pourparlers de sécurité, ont été visités moins comme l'an dernier. Peut-être à cause de la structure des visiteurs: Pour beaucoup, ce fut la première visite du congrès, il était donc plus sur la programmation et l'architecture. Sécurité prennent autant vrai que comme une question de côté fastidieux. Les experts en sécurité peuvent également visiter des événements spécialisés - un exemple similaire, commence co et fonctions à l'automne.

Au cours de l'année dernière à plusieurs reprises l'arrêt d'Oracle a été critiqué pour Java EE, la question a repris à nouveau la vitesse. Les visiteurs ont répondu mixtes: Certaines séances de Java d'entreprise de la grande salle était à peine à moitié plein. Un framework MVC, une partie précédemment prévue de Java EE 8, Oracle a retiré de la spécification. Certains membres du Groupe d'experts conduisent le développement activement poussé. Le transfert juridique des Ivar Grimstadt devrait être proche de la fin. L'état actuel, il a présenté en même temps que Christian Kaltepoth. La présentation a montré l'existence continue d'intérêt dans ce cadre fondé sur l'action. Les deux orateurs ont demandé au public d'exprimer à fournir des commentaires ou même participer au développement, mais pourrait nommer encore une date de sortie.

Bien que la recherche sujet ne fait pas partie directement à Java EE. Combiné avec Hibernate Rechercher le chien top ElasticSearch repose sur les technologies Java EE (ORM) et permet ainsi une utilisation relativement facile. Une salle de ausgebuchter témoigne de l'énorme intérêt pour ElasticSearch.

Au début des adaptateurs Area Manager Project Ed Burns, célébré avec certains membres du JSF du Groupe d'experts, "JSF 2.3 Release Party", Ainsi, l'une des premières parties de Java EE 8 est prêt. Le passage de MVC à la communauté a été citée comme un modèle pour JSF: Cela permet de vivre des cycles de libération plus courts si nécessaire, tel que défini par Java EE.

JSF 2.3, le premier morceau de Java EE 8 JSF 2.3, le premier morceau de Java EE 8

Mais non seulement Java EE 8 est à venir, et Java SE 9. A cet effet, ont également offert des conférences, même si dans un premier temps dans un nombre limité. Ils ont été la plupart du temps très fréquentés, et il a probablement besoin d'être devin pour identifier les questions clés relatives à la prochaine conférence Java Land. Non seulement de nouvelles fonctionnalités linguistiques ont été discutées. Plutôt Sander a montré que Mak applications de chemin de classe peuvent être convertis en base de modules. L'ensemble dépend de la quantité d'une application existante utilise les fonctions internes plus parlé qui sont encapsulées différemment sous la modularisation de la langue de base. Dans le cas le plus simple, le programme fonctionnera sans modification. mais il peut aussi être une voiture ou d'un module configuré modularisation bien sont nécessaires pour convertir les logiciels existants à Java. 9

La Conférence de la Communauté

Comme l'an dernier Micro Services et Docker étaient parmi les problèmes principaux. Cela montre que ce n'est pas seulement un battage médiatique, mais sans doute il y aura un changement fondamental. Bienvenue est la combinaison des services Micro et Docker. Mais les négociations sur les services Micro avec Java EE ont assuré des espaces entièrement occupés. On ne peut qu'espérer que soutiendra activement le projet Profils Oracle Micro. Insatisfait avec le développement récent compte tenu de l'inactivité Oracle avait rejoint plusieurs entreprises pour développer la soi-disant Profils Micro l'année dernière, un sous-ensemble de Java EE pour développer Microservice-, applications cloud et conteneurs.

Malgré sa taille, la Conférence Java Terre n'a pas oublié la communauté. Encore beaucoup d'espace les activités du Java User Group a obtenu. Les participants au café JUG pourraient rencontrer des représentants de leurs communautés. Ou groupes d'utilisateurs individuels ont présenté leurs actions. était actif par exemple, la ville d'or JUG, qui a présenté son Java flipper. Il est une auto-construction: construit en bois, équipé de divers capteurs, l'appareil d'un programmé en Java Raspberry Pi est contrôlé.

Markus Karg du JUG Gold City montre le flipper Java. Markus Karg du JUG Gold City montre le flipper Java.

conclusion

Au cas où l'augmentation du nombre de visiteurs continue à la prochaine édition de la conférence des développeurs Java pourrait briser la marque de 2000 participants. L'espace est limité: par exemple, une salle avec un espace beaucoup plus grand que le précédent pour les keynotes et plusieurs autres conférences a été utilisé cette année avec le Silverado Theater.

Dans l'ensemble, la Conférence Java Terre a su plaire. Elle a offert des conférences différents niveaux, de sorte que les débutants et les développeurs expérimentés ont obtenu leur argent. L'année prochaine, elle a lieu du 20 au 22 Mars.

Michael Müller
est responsable du développement de logiciels InEK GmbH responsable des projets dans le Web, les environnements Java et .NET. De plus, il est actif en tant que rédacteur pigiste et écrit des articles sur diverses questions de développement, ainsi que des critiques de livres.

Future Music: PHP 8.0 se nouveau moteur JIT

Future Music: PHP 8.0 se nouveau moteur JIT

Les développeurs Zend ont commencé à travailler sur un nouveau moteur JIT qui finira probablement en PHP 8.0.

Il se pourrait bien que PHP est obtenu avec la version 8.0, un nouveau moteur JIT (Just-In-Time). Au moins, les développeurs de la société PHP Zend récemment publié comme cible. Jusqu'à ce que PHP 8.0 apparaît, mais un certain temps se déplacera dans le pays. Auparavant disponible une seule fois à la sortie de PHP 7.1, qui est prévue pour le mois prochain; La fin de 2017 devrait alors suivre PHP 7.2.

Les développeurs Zend doivent néanmoins déjà commencé à travailler sur le moteur JIT. Pourtant, ils ne sont pas dans la situation de pouvoir identifier les améliorations de performance spécifiques. Mais ce qui était déjà en place, est une personne travaillant sous Linux x86 / x86_64 infrastructure JIT. L'objectif est en outre que le générateur de code JIT doit être petit et simple, les développeurs tentent toujours d'évaluer différents concepts le long du chemin. (ANE)

Langages de programmation: C ++ 17 est techniquement prêt

C ++ 17 est techniquement prêt

Comité technique a complété la norme linguistique - sur sa réunion d'hiver du fait ISO C ++. Le seul changement significatif est l'enregistrement des octets de fond de type std ::.

La norme linguistique 17 C ++ est techniquement prêt. Ceci est d'un billet de blog du président du C ++ - en comité de normalisation Herb Sutter sur la récente réunion de l'Association à Hawaii avec plus de 100 participants. Donc, il n'y aura pas d'extension de fond plus, mais suit toujours le vote final C ++ 17 avant que les fabricants publient officiellement la norme.

Parmi les nouvelles fonctionnalités en C ++ 17 et fonctionnalités avaient déjà signalé la fin de 2016 dans deux articles scientifiques. Depuis lors, il doit être signalé aucun ajout significatif. Sur la réunion Hawaii, le comité, ni l'enregistrement de type std :: octet a décidé que, bien que basé sur unsigned char, mais d'abord, pour une meilleure lisibilité et de faire moins d'erreurs secondaires. Le nouveau type est explicitement prévu pour l'accès sage octet à la mémoire.

Selon la norme est supérieure à la norme

Au-delà des normes linguistiques, il y avait d'autres problèmes. Ainsi, les participants étaient sur les spécifications techniques (TS) de coroutines complètes et le module de presque unanime. En outre, il y avait le travail sur Parallélisme 2 TS. Même avant la réunion, les membres ont le réseau TS et TS en grande partie terminés Ranges.

Fondation standard C ++ Le ++ courant C - la feuille de route montre également diverses spécifications techniques en plus des normes linguistiques.(Image: Standard C ++ Foundation)

De plus amples détails peuvent être obtenus à partir du poste de blog de Herb Sutter et la page d'état du comité ISO. Après l'achèvement de la spécification C ++ 17, le comité ISO prévue pour l'évite réunion Juillet à Toronto à la conception de C ++ 20

Voir Heise Développeur:

(RME)

entrée facile dans la programmation .NET

Sur Microsoft Developer Network (MSDN) se trouve plus récemment le soi-disant "Centre d'apprentissage Débutant Developer", Ici, le géant du logiciel propose des tutoriels de programmation gratuits de langue anglaise pour les débutants qui apprennent à développer avec le framework .NET de Microsoft ou leurs connaissances ici de besoin.

La page est divisée en quatre zones tout d'abord principaux: Track Web pour le Web, Windows voie de développement pour les systèmes Windows, Aspriring Pro pour des projets ambitieux et le coin du Kid. De plus, le site est un autre point de téléchargement gratuit versions de Visual Studio Express de Microsoft.(ANE)

HANA Vora: Un nouvel outil SAP se connecte monde Hadoop avec HANA

SAP HANA

(Image: SAP)

HANA Vora fusionne les technologies Big Data telles que Hadoop et Spark avec SAP base de données en mémoire et SAP BW, Business Objects et ERP.

Sous le nom HANA Vora - dérivé de "vorace" (. Anglais glouton) - SAP a mis en place un nouvel outil qui devrait recevoir un pont entre les cadres Big Data Hadoop et Apache Spark et SAP HANA base de données en mémoire avec l'entreprise pour analyser leurs données.

Concrètement, cela est un moteur de requête Spark Apache, une open source, libérant le cadre de traitement en mémoire pour le calcul sur les clusters exploités et étendus à environ sources Big Data et IdO (Internet des objets) pour sauver l'analyse des données effectuée dans Hadoop. En outre, on peut utiliser en mémoire plate-forme de traitement pour SAP HANA de données distribué avec Vora.

informations contextuelles aux processus d'affaires

La technique permet des analyses similaires OLAP dans lequel les données scientifiques et les développeurs peuvent considérer la sémantique d'affaires de données de l'environnement Hadoop. devraient principalement bénéficier les organisations qui ont besoin d'analyser retirés de leurs processus d'affaires importants volumes de données qu'il contient.

Le géant allemand voit l'outil, par exemple, dans des secteurs tels que les services financiers, les télécommunications, les soins de santé et de la fabrication, où l'analyse de données interactive grandes dans le contexte des processus d'affaires sont un outil d'accueil pour la prise de décision. L'outil devrait être disponible en Septembre, en tant que version développeur de cloud computing gratuit sur Amazon Web Services, mais qui ne peut pas être utilisé dans productif, mais aussi sur une base d'abonnement comme Enterprise Edition avec soutien SAP.

Spark Shooting Star

Apache Spark est une source ouverte, la mise dans le cadre de traitement en mémoire pour le calcul sur les grappes, qui a son origine dans un projet de AMPLab UC Berkeley. Il a été lancé en 2009 et a publié un an plus tard sous une licence BSD. 2013 Spark est venu sous la Apache Software Foundation, où il a augmenté en Février 2014 pour le projet de niveau supérieur. Pendant ce temps, beaucoup voient dans Spark le successeur légitime du cadre Big Data Hadoop. (ANE)

.NET Core 2.0 et la gamme de produits connexes sont finis

.NET Core 2.0 et la gamme de produits connexes sont finis

Microsoft a fourni la deuxième version majeure de sa gamme de produits de base avec .NET, Core ASP.NET et Entity Framework de base. En parallèle, la troisième mise à jour a été publiée pour Visual Studio qui prend en charge les produits de base 2.0.

La version 2.0 de .NET fini, Core ASP.NET et Entity Framework Core est maintenant quelque chose de plus que l'annonce au Techwiese de Microsoft le 9 Août, 2017 suggéré. Par billet de blog Microsoft a annoncé aujourd'hui que les versions 2.0 RTM sont disponibles dès maintenant.

.NET Core 2.0

La plus grande nouveauté dans .NET 2.0 Core est la mise en œuvre de la spécification "Norme .NET 2.0"Microsoft avait seulement terminé la semaine dernière. Par rapport à .NET Core 1.1 2.0 réalisé .NET de base de sorte que d'environ 19 000 interfaces de programmation supplémentaires du cadre .NET d'origine. Non seulement la migration du code existant Core .NET est beaucoup plus facile, mais aussi courir beaucoup plus de composants existants de logiciels .NET avec .NET de base, qui ont été écrit pour le .NET Framework classique. Selon le directeur de programme Microsoft .NET Immo Landwerth 70% du disponible sur les paquets Nuget.org exécutent maintenant sous .NET 2.0 de base, en particulier depuis .NET Core peut maintenant se référer packages .NET framework directement. A également déclaré des classes mortes telles System.Data.DataSet trouvent ainsi dans le monde du .NET de base.

.NET de base utilise désormais la plus récente, célèbre et tristement célèbre dans la première version en raison de ses graves bogues juste à temps compilateur RyuJIT dans la version 32 bits au lieu de l'ancien JIT32. RyuJIT a été introduit pour les systèmes 64 bits dans .NET Framework 4.6 et utilisé dans 1.x Core .NET en mode 64 bits. Maintenant dans .NET 2.0 de base RyuJIT vient dans une version accélérée pour les applications 32 bits et 64 bits.

Les téléchargements de base .NET 2.0 (Runtime et SDK pour plusieurs systèmes d'exploitation) se trouvent sur GitHub et la page Microsoft .NET de base officiel. Aussi les images Docker basées sur des serveurs Linux et Windows Nano sont disponibles. Sauf sur les versions bien prise en charge Windows, Linux et MacOS .NET de base maintenant fonctionne également sur Fedora 25/26, Debian 9, Ubuntu 17.04, Linux Mint 18, Suse Linux Enterprise 12 SP2 + et MacOS 10:13 "High Sierra", Prise en charge des processeurs ARM32 reste pour l'instant au stade de prévisualisation.

.NET Core 2.0 peut 1.x existe sur un système en plus de .NET de base. Notez, cependant, que, après l'installation du SDK de base .NET 2.0 (voir la figure 1) dont les outils sont également pour les projets 1.x de base .NET utilisés automatiquement, si les développeurs ne sont pas globalement par une entrée dans le. fichier JSON du dossier du système de fichiers pertinents appliquer l'utilisation explicite de plus SDK. En plus de C # et F # Microsoft peut maintenant gérer pour le développement de base .NET avec Visual Basic .NET. Les modèles de projet, il ne fournit pas Microsoft, mais d'abord seulement pour les applications de la console et les bibliothèques pour les projets Web à ce jour.

Les développeurs utilisant Core .NET 1.0 ou été note 1.1 qui prennent en charge doit un maximum de courses au 27 Juin 2019. Il peut même se terminer plus tôt si Microsoft .NET 2.0 pour la version de base de soutien à long terme (LTS) a expliqué. Cela n'a pas encore eu lieu. A partir de cette déclaration d'état utilisateurs de 1.x Core .NET ont seulement un an pour passer à la version 2.0.

Installation du .NET Core 2.0 SDKInstallation du SDK .NET de base 2,0 (Fig. 1)

Visual Studio 2017 Mise à jour 3

Pour le développement avec .NET 2.0 de base Visual Studio 2017 est publié en parallèle Mise à jour 3 (voir la figure 2) est nécessaire. Il est la première version de Visual Studio, le fonctionnement en parallèle de plusieurs différents .NET SDK de base, .NET de base dans des conteneurs nano-Docker sur serveur Windows (auparavant Visual Studio toujours mettre uniquement des conteneurs Linux à), ainsi que le live-Unit prend en charge les applications de base .NET -Evaluation. Les développeurs ont encore besoin de l'unité en direct tester la version coûteuse entreprise de Visual Studio. .NET 2.0 de base peut également utiliser Visual Studio pour Mac dans la version nouvelle version 7.1.

Visual Studio set-up propose désormais la mise à jour. 3 à partir de la Visual Studio mise en place permet la mise à jour immédiate 3 (Fig. 2).

Noyau ASP.NET 2.0

Aussi pour le Webentwicklungsframework ASP.NET de base Microsoft a terminé la version 2.0. Contrairement à annoncé la publication de la première version de prévisualisation en cours d'exécution ASP.NET Core 2.0 maintenant non seulement sur .NET 2.0 de base, mais aussi continuer sur le .NET Framework classique (version 4.6.1). ASP.NET Core 2.0 est basé sur la norme et donc .NET 2.0 ne fonctionnera pas sur les anciennes versions de .NET Framework.

A partir de ASP.NET 2.0 de base Microsoft propose Microsoft.AspNetCore à un package Nuget qui fonctionne comme un méta-paquet tous les paquets NuGet créés par Microsoft pour ASP.NET noyau soit - y compris Entity Framework Core 2.0. À première vue, cela contredit les classes .NET de référencement minimum promu par Microsoft avec la stratégie de base .NET. Au deuxième coup d'œil, les outils de déploiement fournissent de base .NET à la fin restent seulement les paquets nécessaires. Microsoft documente le processus de migration des applications ASP.NET de base 1.x à la version 2.0.

ASP.NET Core offre des améliorations de performance fournissent maintenant un soutien pour la syntaxe C # -7,1 dans les vues ainsi que "Pages rasoir" Marqué des vues qui font entièrement sans contrôleur. ASP.NET 2.0 Vues de base peuvent désormais precompile - Microsoft a déjà intégré dans les versions bêta pour la version 1.0, mais élargi à nouveau. Le code de programme de démarrage d'ASP.NET, l'entreprise a dans la version 2.0 grandement simplifiée avec l'introduction de la méthode WebHost.CreateDefaultBuilder ().

Visual Studio 2017 offre récemment lors de la création de nouveaux projets web ASP.NET-core un choix entre .NET de base 1.0, 1.1 et 2.0, ainsi que de nouveaux modèles de projet, en plus du code de programme serveur directement code client angulaire (actuellement sur le stand 4.1.2) ou React (actuellement la version 15.5.0) (voir figure 3). Les nouveaux modèles sont également disponibles via l'outil ligne de commande dotnet nouveau disponible.

Plus de choix lors de la création de nouveaux projets Web ASP.NET de base dans Visual Studio 2017 Mise à jour 3 (Fig. 3) Plus de choix lors de la création de nouveaux projets Web ASP.NET de base dans Visual Studio 2017 Mise à jour 3 (Fig. 3)

L'extrait de code source ci-dessous montre un exemple d'un rasoir eingestreutem page code C # dans ASP.NET Core 2.0:

@page
{@fonctions
Format chaîne publique date (thetime datetime) {
retour theTime.ToString ("ré");
}
}


Temps sur le serveur:


@FormatDate (DateTime.Now)



Entity Framework Core 2.0

Entity Framework Core est également disponible en version 2.0 dans plusieurs packages NuGet pour les systèmes de gestion de bases de données Microsoft SQL Server, Microsoft SQL Server Compact 3.5 et SQL Server Compact 4.0, SQLite et le pilote en mémoire pour les tests unitaires. Mise à jour des pilotes d'autres fabricants suivront. La publication pour les pilotes de version 1.x ne sont pas compatibles avec la version 2.0, parce que Microsoft a une nouvelle fois changé la programmation dès la phase bêta de 1.x.

Entity Framework Core 2.0 est maintenant basée sur la norme .NET 2.0 et peut fonctionner sur toutes les plateformes qui prennent en charge cette norme API, donc .NET Framework, version 4.6.1, la version .NET Core 2.0, la version Xamarin.iOS 14,10, Xamarin Version 7.5 et .android version 3.8 Xamarin.Mac. Cela inclut, mais n'est pas actuellement la plate-forme Windows Universal (UWP) dans Windows 10. Ceci est seulement à l'automne avec le support de mise à jour de Windows 10 créateurs CASE pour .NET standard dans la version 2.0.

Entity Framework Core 2.0 reçoit de nouvelles fonctionnalités telles que les filtres de données globales qui sont définis dans le contexte de la classe et affectent toutes les requêtes, y compris les commandes de chargement Eager. Ainsi, les exigences multiclient et spéciales peuvent être comme un chiffon doux Supprimer (marquer une ligne comme supprimée plutôt que de supprimer réellement) à réaliser. Les instances du contexte Entity Framework peuvent désormais produire à l'avance et de gérer dans une piscine, de sorte que les applications Web peuvent accéder rapidement à des requêtes HTTP entrantes sur elle (avec AddDbContextPool). Lors de l'utilisation des requêtes SQL pour les développeurs peuvent désormais utiliser la syntaxe introduite dans d'interpolation de chaîne C # 6.0 pour assembler la commande SQL. Entity Framework de base assure qu'il peut être utilisé non pour des attaques par injection SQL, comme le code suivant à l'interpolation chaîne avec des commandes SQL dans Entity Framework Core 2.0 montre:

ville string = "Berlin";
en utilisant (var ctx = new WWWingsContext ())
{
ctx.Log ();
liste des vols IQueryable =
ctx.FlugSet.FromSql ($ @"Sélectionnez * d'où le départ du vol = {lieu}");
WriteLine (flugliste.Count ());
foreach (vol var dans la liste des vols)
{
WriteLine (vol);
}
}

Microsoft a dans certaines situations améliore la traduction de LINQ to SQL, et mène maintenant quelques commandes dans la base de données au lieu de RAM (cf .. Notes de version pour Entity Framework Core 2.0). Dans une première entité de test Framework Core 2.0 par opposition à la version 1.1 interroge maintenant en fait avec ToString (). Contient () et AddDays () a traduit correctement SQL. Malheureusement, cela ne concerne pas l'opérateur majeur GroupBy, qui continue d'inviter tous les enregistrements dans la RAM afin de les regrouper là, ce qui est souvent pas acceptable dans la pratique. Les utilisateurs sur GitHub répondent avec une grande incompréhension. Silveria Miranda a commenté: "Deux ans et presque deux versions plus tard cette fonction de base n'a pas encore été mise en œuvre, ni est-il dans les priorités. Le EntityFramework de base Shoulderstand tranquillement être en version bêta et ne va pas à la version 2.0",

Microsoft lui-même avait la traduction de GroupBy dans la feuille de route pour Entity Framework de base comme "caractéristique essentielle qui manque" mentionné. Un regard sur la feuille de route révèle que Microsoft n'a pas mis en œuvre de nombreuses autres fonctionnalités de cette liste dans Entity Framework Core 2.0, ce qui est surprenant étant donné que d'autres fonctionnalités mineures ont été réalisées. (Holger Schwichtenberg) /(RME)

Moteur de jeu: Unity 5.5 Beta fait des particules aux couleurs vives

Moteur de jeu: Unity 5.5 Beta fait des particules aux couleurs vives

(Photo: Unity)

Un ajout de nombre dans le système de particules et des améliorations lors de l'importation des textures pour faciliter les développeurs de jeux dans la version actuelle du travail de l'unité de moteur de jeu.

En avant-première de la version 5.5 du moteur de jeu Unity, est maintenant une version bêta disponible. La plate-forme principalement destiné à de développement de jeux fonctionne sur la mise à jour avec la version 4.4 du compilateur C # du Mono et par le travail par défaut avec l'API graphique 3D WebGL 2.0 pour de nouveaux projets gratuits.

À la charge incluse dans les améliorations actuelles de la version comprendra des travaux sur l'algorithme pour les lignes de dessin, à la fois en ligne et dans le sentier utilisé Renderer. Dans le système de particules nouvelles options pour la création d'effets visuels sont quant à lui à trouver. En tant que feux-module peut aider à fabriquer des particules faire la lumière sur leur environnement et les utilisateurs peuvent programmer le mouvement des particules à travers un nouveau module de bruit avec une qualité variable du bruit.

D'autres changements se rapportent à la Farbgradientensystem, qui va maintenant permettre à un plus grand contrôle, et avec l'autorisation des traces de particules génèrent un nouveau module de sentiers. De plus, les développeurs ont pu importer la texture, comme le découplage des options pour le format de texture et à la compression et à deux dimensions, des effets physiques, tels que les possibilités supplémentaires dans la détection de collision, d'améliorer.

Le moteur est à usage privé et des projets commerciaux qui génèrent moins de 100.000 dollars par an dans les ventes, gratuitement. Pour une utilisation professionnelle et le besoin de fonctionnalités supplémentaires que l'unité offre différents produits d'abonnement.(Dec)

Eclipse Smart Home est d’éviter la fragmentation dans la zone Smart Home

Non seulement est la version 1.5 du projet pour la domotique openhab disponible, le cadre de base est également basé sur Eclipse Smart Home, qui est d'encourager l'industrie à travailler ensemble dans le secteur de la maison intelligente.

fondateur openhab Kai Kreuzer a annoncé la disponibilité de la version 1.5 de l'Open Home Automation Hub et dans le processus indiqué sur le développement ultérieur prévu et le lancement du projet Eclipse Smart Home. Il utilise le cadre de base de openhab et devrait servir de base à la coopération entre les partenaires de l'industrie du secteur de la domotique.

Selon croiseur les aspects juridiques de nombreux projets open source sont souvent peu clairs. Pour le rendre plus facile pour les entreprises d'utiliser openhab dans leurs produits et de participer au développement, une gestion rigoureuse du projet coincé dans la propriété intellectuelle et des processus clairement structurés pour les employés étaient nécessaires. Tels que pourrait jeter les bases de la Fondation Eclipse, qui est la raison pour laquelle il a été décidé à l'étape de lui confier le composant principal de Smart Home.

De plus, ces développements comme l'entrée d'Apple pour voir la critique sur le marché pour l'automatisation de la maison et l'achat d'un nid de Google, ils peuvent rapidement conduire à un exemple bien connu de la serrure dans le marché des smartphones vendeur encore. L'échange entre les entreprises et leur coopération doit être encouragée par le projet, ce qui pourrait en fin de compte remédier à la fragmentation du marché.

Eclipse Cependant maison intelligente ne devrait pas signifier la fin de openhab. Au contraire, le projet va maintenant être pris en charge par une société spécialement créée est déjà représentée en tant que membre de l'Alliance EnOcean, AllSeen Alliance et la Fondation Eclipse. De plus, il a des comptes des développeurs officiels dans l'AppStore d'Apple et Google Play, les portes pour offrir des applications il openhab.

Dans l'avis à la version actuelle 1.5 fait croiseur à nouveau sur l'intérêt croissant pour openhab que, entre autres, le nombre élevé de nouvelles connexions et les nombreuses améliorations qui ont été incorporés dans les spectacles de libération. Avec elle vient une nouvelle, entièrement compatible avec iOS 7 app iOS qui peuvent être utilisés à distance et utiliser les notifications push permet entre autres.

Après déjà pu envoyer des messages à l'application lecteur multimédia open source XBMC avant, il y a maintenant une intégration complète. Ainsi, le joueur peut déclencher ou interroger son statut. De plus, d'intérêt pour les IRTrans de liaison sur l'utilisation des signaux infrarouges et un HomeMatic révisé de liaison pourrait être.

Bien que 1.x openhab est encore actuellement la branche principale de développement du projet, mais vous travaillez déjà sur openhab 2, l'accent sera mis sur la facilité d'utilisation (construit d'abord pour les développeurs est déjà disponible). De plus, cette branche pour une utilisation dans les systèmes embarqués à optimiser en série depuis viennent versions 1.x entre autres bibliothèques sont utilisées, qui ne sont pas nécessairement des raisons de ressources pour de tels environnements.

L'environnement d'exécution de base et les API diffèrent de la série 2.x significative de leurs prédécesseurs, de sorte que le référentiel des sources contient actuellement aucune connexion. Un faisceau de compatibilité est conçu pour permettre que 1.x add-ons peuvent être utilisés avec le nouvel environnement d'exécution, mais on peut aussi encourager les développeurs d'intégration déjà créés adapter aux nouveaux concepts.

Plus d'informations sur openhab et Eclipse Smart Home se trouve dans les notes de version et deux entrées du blog de Kai Kreuzer. Un regard sur les sites des projets d'une valeur au-delà. (Dec)

JAXB et Apache XMLBeans

contenu
  1. Les critères de sélection d'un "XML Data Binding"cadres
  2. Critères de comparaison 1
  3. Critères de comparaison 2
  4. JAXB & Apache XMLBeans
  5. BAD & JiBX
  6. conclusion

JAXB

En premier lieu JAXB est d'appeler (Java Architecture for XML Binding). pour ainsi dire, il est la solution standard, car il a Java 6 partie intégrante du Java SDK (Software Development Kit). Il fait également partie de Java EE 5, mais nécessaire pour exécuter au moins Java SE 5. Pendant ce temps JAXB est dans une version 2.x à maturité avant, mais il est pas nécessairement la meilleure solution. Cela est dû, entre autres, que JAXB repose en grande partie sur l'utilisation des annotations. Dans les environnements où Java ne peut pas être utilisé 5 (encore), JAXB donc exclu comme alternative.

Est un schéma XML avant, le compilateur liant JAXB peut utiliser pour générer du code Java pour ses types et éléments définis. Ce code est enrichi d'annotations appropriées. La bibliothèque d'exécution JAXB propose des méthodes pour différents (Un) variantes marshaling. Parmi les autres JAXB soutient l'utilisation SAX. Sinon, peut également fonctionner sans un générateur de code. Dans ce cas, les classes professionnelles doivent se mettre en œuvre et de les enrichir avec les annotations nécessaires. Ici JAXB offre beaucoup de flexibilité. Par exemple, peut être réglé via annotations si une propriété lors de la conversion en XML est mis en correspondance comme un élément ou un attribut. Avec une autre annotation est de déterminer comment un type Java particulier peut être mis en correspondance avec un type de schéma XML. Après la mise en œuvre des classes requises, le développeur peut générer le générateur de schéma JAXB un système approprié. Depuis la version 2.x JAXB fournit un support complet XML Schema.

Apache XMLBeans

Un cadre XML populaire ces dernières années est certainement Apache XMLBeans. Il a été développé en 2003 par BEA et un peu plus tard à la Apache Software Foundation (ASF) est passé. XMLBeans est inégalée dans de nombreuses disciplines aujourd'hui, alors qu'il semble être dépassé dans d'autres un peu des nouveaux développements techniques. L'un des points forts du cadre est le traditionnel bon support pour XML Schema. Bien que les cadres concurrents ont rattrapé le temps. En général, doit toutefois encore appliquer: Le schéma XML plus complexe, plus le nombre de cadres qui prennent en charge ce schéma fonctions utilisées. XMLBeans est dans les cas compliqués souvent le seul représentant qui mène au succès. De plus, le cadre reçoit lors de l'analyse du Infoset XML. Donc, ce n'est pas juste après l'exécution unmarshalling accessible, mais peut être produit en particulier à nouveau si une nouvelle conversion en XML est fait. Moins les points accumulés contraste de XMLBeans, de nombreux développeurs au niveau du code. Pour tous les types définis dans un schéma et les éléments XmlBeans génère à la fois une classe et une interface, chacune d'une classe (XMLObject) et une interface de la structure sont dérivés. Il y a donc des dépendances de code significatives entre les classes professionnelles et XMLBeans. En outre, la création et le remplissage des cas se sent hors du commun. Au lieu des nouvelles usines de l'opérateur, par exemple, être utilisé. propriétés complexes peuvent être remplies d'une méthode add.

En tant que XMLBeans de fonctions spéciales fournit trois API: En plus d'accéder à tous définis dans les éléments de schéma via un XMLObject XmlCursor, vous pouvez demander qui permet un accès efficace au infoset XML. Enfin SchemaType permet d'accéder aux méta-informations de schéma sous-jacent d'un objet. Par exemple, les valeurs autorisées d'une énumération sont dehors et faire un tour dans une boîte de sélection. XMLBeans ne nécessite pas Java 5 fonctionnalités du langage.

Entrée dans le développement d’applications Web avec Meteor

contenu
  1. Entrée dans le développement d'applications Web avec Meteor
  2. La première application
  3. Mécanismes et méthodes
  4. Sécuriser et distribuer
  5. conclusion
  6. lire sur un côté
Entrée dans le développement d'applications Web avec Meteor

JavaScript frameworks web il y a comme de la poussière sur la lune. Cependant, chacun est bon que dans la zone pour laquelle il a été créé. Meteor se considère comme une plate-forme qui combine une sélection des meilleurs cadres avec les développeurs MongoDB et Node.js et ainsi pourrait prendre les recherches combinées. Ses principales caractéristiques sont une base uniforme dans le code JavaScript pour le client et le serveur, la propagation automatique des changements de code et des données, une conception API relativement simple et l'emballage intelligent et le déploiement d'applications.

Meteor est une plate-forme JavaScript qui couvrirait tout de la base de données sur le serveur à un client et il met l'accent sur la mise à jour des données en temps réel sur tous les clients loin. Comme base de données MongoDB est utilisé alors que sur le serveur Node.js est utilisé - toutes les ressources peuvent par conséquent avec une seule utilisation de la langue.

De plus Meteor repose sur de nombreuses bibliothèques JavaScript populaires tels que Amplifier, AppCache, Backbone.js, guidons, jQuery et underscore.js, et les combine avec sa propre API. L'utilisation de CoffeeScript dans les applications Meteor est possible. À l'heure actuelle, le cadre est disponible en version 0.6.5, ne connaît pas encore la date exacte de la version 1.0. disent les développeurs eux-mêmes "plus d'un mois, moins d'un an"Ce qui les fait beaucoup de latitude.

suivre les principes

Les développeurs Meteor décrivent la plate-forme avec les sept principes suivants:

  1. Les données sur le filIl ne sera envoyé à travers le réseau, pas de HTML. De plus, le client ce qu'il fait avec les données et la façon dont il est de décider.
  2. une langue: JavaScript est utilisé comme la seule langue pour le code à la fois le client et dans les applications de serveur.
  3. Base de données partoutLa base de données est disponible pour le serveur et le client sont disponibles et vont tous deux avec une API unifiée pour elle.
  4. Latency Compensation: Simulations de présélection et de modèle sur le client permettent de simuler une connexion de base de données sans latence.
  5. Réactivité complète Stackdonnées en temps réel et la programmation réactive sont standard. Si possible, toutes les interfaces de la base de données des modèles de clients sont évènementielle conçu (adapté à: le Manifeste réactif).
  6. Embrassez l'écosystème: Meteor lui-même est open source et intègre d'autres frameworks open source, plutôt que de les remplacer ou les reproduire.
  7. La simplicité est égale à la productivitéLa simplicité est primordiale. La meilleure façon de faire quelque chose de regarder facile, est de le rendre simple. Ceci est réalisé grâce à des API légères et classiques. (Réminiscence d'un slogan publicitaire d'un opérateur de téléphonie mobile simple et est certainement la commercialisation lastigste tous les sept principes, mais vrai.)

Guide de démarrage rapide et échafaudage

À l'heure actuelle Meteor prend en charge les systèmes d'exploitation Mac OS X et Linux. Pour Windows, il existe des binaires non officiels, le soutien officiel est disponible pour le moment après la version 1.0 du plan. L'utilisation des versions précédentes peut encore conduire à des accidents. Par conséquent, on suppose dans les exemples d'un shell Unix suivants.

Pour utiliser Meteor, il est d'abord avec la commande

$ Curl https://install.meteor.com | / Bin / sh

à installer. Toutes les commandes commencent Meteor météorites avec le mot-clé, qui est suivi par la commande désirée. sont obtenus pour un aperçu de toutes les instructions disponibles

--help $ Meteor

Si vous accrochez cette commande le nom de la commande elle-même afficher des informations plus détaillées et des options possibles.

Le premier projet ("myapp") Peut être combiné avec

$ Meteor créer monapp

Créer. Meteor généré en tant que résultat d'un sous-répertoire appelé monapp et dans celui-ci .meteor un autre dossier qui contient les données de configuration de l'application.

V-play 2.6: moteur de jeu 2D multi-plateforme sur base Qt

V-play 2.6

(Photo: Vplay.net)

Le moteur de jeu V-play pour le développement 2D multi-plateforme utilisant le framework Qt simulé dans la version 2.6, l'interface utilisateur native d'iOS et Android sur le bureau.

V-Play est un moteur de jeu commercial pour créer des jeux sur les appareils mobiles et le bureau. Comme ils sont principalement destinées aux développeurs de jeux occasionnels, ils ne sont pas dans la même ligue que l'unité et Unreal. Il est limité aux graphiques 2D, mais a des plug-ins préconfiguré pour commercialiser les applications créées par des publicités ou en application achats.

la mis en place dans la programmation multi-plateforme Qt cadre sert de base. Convient à Qt Creator est l'environnement de développement. Plate-forme cible est les systèmes d'exploitation mobiles Android, iOS et Windows Phone ainsi que des systèmes de bureau Windows, Mac OS X et Ubuntu Linux.

Les développeurs peuvent modifier l'apparence de leur application entre les différents systèmes cibles lors de l'exécution sur le PC. Les développeurs peuvent modifier l'apparence de leur application entre les différents systèmes cibles lors de l'exécution sur le PC.(Photo: V-Play.net)

V-Play 2.6.1 développeurs peuvent modifier l'interface utilisateur des applications pendant la durée sur le PC, puis voir comment leur jeu a l'air sur les différentes plates-formes mobiles. Tout en même temps, la navigation de l'utilisateur adapte au système cible. Une autre innovation est l'intégration directe des exemples de projets dans Qt Creator. En plus du pur code source, les développeurs trouvent aide et des tutoriels.

Les parties intéressées peuvent télécharger à partir de la page du produit V-Play 2.6. Le kit de démarrage gratuit supporte toutes les plates-formes cibles, mais se passe du plug-in V-play sur le marché. Les licences commerciales coûtent par développeur en fonction de l'équipement et le soutien de chaque mois entre 39, - € et 199, - Euro.(RME)

Le fonctionnement et l’avantage de TDD Strict

Le fonctionnement et l'avantage de TDD Strictcontenu
  1. Le fonctionnement et l'avantage de TDD Strict
  2. processus TDD
  3. Cycliquement et de façon continue
  4. conclusion
  5. lire sur un côté

Bien que maintenant de nombreux développeurs comptent sur les tests automatisés, toujours juste pratiquer le développement piloté par les tests (TDD) sous forme pure. Ici, le strict suivant le processus apporte encore quelques avantages supplémentaires en plus du gain en toute sécurité. Donc, si vous avez déjà investi beaucoup de tests d'écriture de temps, le potentiel de TDD ne doit pas donner.

En règle générale, les clients attendent des logiciels de haute qualité. donc Classiquement, les testeurs exécuter des tests manuels avec le logiciel précédemment créé par et les vérifier contre la spécification. Afin de ne pas provoquer la mise en œuvre de nouvelles fonctionnalités comme un effet secondaire des erreurs dans les fonctions existantes doivent contrôler à nouveau par ce qu'on appelle les tests de régression. Les méthodes agiles ont besoin d'une fréquence d'horloge considérablement augmenté des rejets pour obtenir rapidement des commentaires et d'utiliser les fonctionnalités bientôt possibles de production. Ceci, cependant, les tests de régression manuels ne sont pas rentables, voire impossible, avec l'augmentation de la fonctionnalité.

Par conséquent, pour contourner ce dilemme de nombreux projets se tournent vers les tests de régression automatisée. Pour ancrer la qualité tôt dans le processus de développement, de plus en plus de développeurs utilisent parallèlement aux testeurs à des tests de développement automatisés. Habituellement, un serveur d'intégration continue comme Jenkins construit le logiciel à chaque enregistrement dans le système de contrôle de version, ou tout au moins une fois par nuit "nightly build", Ensuite, ils commencent les essais et les développeurs informer par courrier électronique, si elles échouent. Ainsi, les tests agissent comme un filet de sécurité pour préserver les fonctionnalités existantes du système.

De nombreux développeurs utilisent donc le développement croient déjà piloté par les tests [1] dans le projet, mais rester dans le banc d'essai automatisé et laisser les éléments essentiels de TDD out. C'est une honte, parce que TDD ne coûte pas plus que l'écriture déjà effectué des tests automatisés, mais peut faire plus. L'article met en évidence fonctionnement et l'avantage de "strict TDD"Tels que la réduction du code inutile, un feedback plus rapide, le travail plus ciblé et une meilleure conception.

Au début est le test

"classique" Les développeurs créent premier code productif et seulement après les essais ("charge d'essai"). Avec les premiers projets de la fin des années 90, où la méthode de développement agile "extrême programmation" (XP) [2] a été utilisé, était le soi-disant "des tests en premier" connu. Ici, les développeurs se tournent vers l'ordre: Vous avez déjà écrit avant la mise en œuvre effective d'un test qui échoue ("rouge"). Alors seulement, ont-ils créé le code de production pour que le test passe avec succès ("vert"). aide donc le premier test approche à une meilleure discipline lors de l'écriture des tests, car ils ne sont pas simplement laissés lorsque le temps est comme d'habitude vers la fin.

"Le premier test" aussi motivé plus que la dernière procédure de test. Le changement du rouge au vert développeurs a marqué une avancée dans les fonctionnalités créées. "Dernier test « cependant, est ennuyeux et a un caractère destructeur et décourageant. dans le "productif" on trouve une erreur en fait déjà terminé code implémenté cas (changement du vert au rouge).

Dans la pratique, une grande partie des fonctionnalités du logiciel par tout utilisateur est utilisé. Par conséquent, la discipline de l'ingénierie des exigences vise à réduire ces coûts de mise en œuvre inutiles. Mais les développeurs ont tendance juste le test de dernière approche du phénomène "yagni" (YAGNI): Vous développez le code, ne pas besoin du client. Cela peut être une méthode jamais appelé, mais aussi une caractéristique qui en effet, mais pas envisager de développer l'utilisateur réel serait utile.

De test pour le développement du comportement Driven

Le test premier principe exige d'être autorisés à écrire que le code de production lorsqu'il est utilisé pour faire un test au vert. Cela aide à se concentrer sur l'écriture que le code est vraiment nécessaire. Lors de la création d'un test avant la mise en œuvre, les développeurs doivent d'abord examiner de plus près afin, quelles sont les caractéristiques qu'ils devraient mettre en œuvre à tous, et donc être guidé par les exigences. Dans le test de dernière approche le seul test de la tâche de validation avait. à "Le premier test" tout d'un coup, il obtient un autre rôle: Il est la spécification du code à mettre en œuvre.

Cette observation Dan North a incité 2007. à lever du baptême du développement du comportement oriented (BDD), ce qui rend cette circonstance conceptuellement explicitement: Off "test" doit "comportement", le terme "test" est associée à la validation et une dernière procédure de test. un "spécification par exemple" Cependant, le comportement réactif avec un exemple concret décrit déjà avant la mise en œuvre du code existe, donc "Le premier test",

BDD s'est établi principalement au niveau des tests d'acceptation, même si l'idée tout aussi vrai pour les tests unitaires. Le focus se déplace afin de trouver et de documenter le droit pour les demandes de problème donné. , Mis en Idéalement, une "atelier de spécification" les différentes parties prenantes avec leurs différents points de vue sur les exigences ensemble à une table: les "trois amigos", Les clients, les développeurs et les testeurs pour développer une compréhension commune des critères d'acceptation ainsi que des exemples.

OpenID Connect

innhold
  1. OpenID Connect: Logg inn med OAuth, del 1 - Grunnleggende
  2. OpenID Connect
  3. Avansert Logg
  4. Konklusjon
  5. leste på en side

OpenID Connect svar

Den grunnleggende ideen om OpenID Connect er å implementere autentisering av en bruker som en forlengelse av OAuth 2.0 autorisasjonsprosessen. En OAuth-klient kan be OpenID forlengelse bare ved Scope verdi "OpenID" legger en autorisasjonsforespørsel. Informasjon om identiteten til brukeren, og den utførte autentiseringen blir deretter returnert i en ytterligere (OpenID spesifikk) token, kalt ID-brikke til klienten. Og dette token er igjen begrenset til innlogging på denne klienten, kan en annen klient ikke akseptere den tilhørende ID-token. I tillegg til en annen OAuth-beskyttede API tilgang til brukerdata, innføres den brukerinformasjon endepunkt.

Figuren illustrerer utvidelser til standard OAuth arkitektur, er forbedringene markert med grønt. Figuren illustrerer utvidelser til standard OAuth arkitektur, er forbedringene markert med grønt.

Som man kan se, er hver OAuth 2.0 autorisasjon serveren OpenID Connect (OP) implementert som en OpenID-leverandør som heter. Ifølge dvs. noen OAuth 2.0-klient, OpenID Connect brukes avhengig part (RP).

bare logge

Gjennomføring av en enkel logikk vil nå illustrere et eksempel og oversiktsvisning: Max bruker ulike tjenester (for eksempel e-post og medielagring) av byrået Fun Corp. Dette gir en sentralisert identitetsforvaltning, for å kunne tilby sine kunder ikke bare en enkelt brukerkonto, men også en SSO erfaring om de ulike portaler. Teknisk sett er det en OAuth autorisasjon serveren fungerer også som en OpenID-leverandør.

Max ønsker nå å logge på medietjeneste til å vise sine bilder. Mediene tjeneste implementerer innlogging ved hjelp av en autentiseringsforespørsel basert på OAuth Grant-type autorisasjonskode som følger:

HTTP / 1.1 302 Funnet
Sted: https://accounts.funcorp.com/oauth/auth?
response_type = kode
&Omfanget = Stemmer
&client_id = SDFGHJKLUZTREDFGHJ
&state = 30096545678909876567
&redirect_uri = https% 3A% 2F% 2Fmediaservice.funcorp.com% 2Flogin_cb

Denne forespørselen omdirigerer brukerens nettleser via HTTP redirect og sender en godkjenningsforespørsel til autorisasjons server. Den eneste forskjellen på en "ordinære" OAuth autorisasjonsforespørsel er omfanget verdi, "OpenID", Dette signaliserer serveren som klienten ønsker å hente identitetsdata for brukeren, og dermed muliggjorde OpenID Connect"maskiner", Som serveren autentiserer brukeren, er ikke spesifisert, og er beslutningen av OpenID-leverandør. Vanligvis er dette brukernavnet og passordet som brukes, men det kan også brukes andre mekanismer. Hvis du allerede har en økt på OP, er typisk for en viss tid ingen ny manuell pålogging kreves (SSO).

Det skal bemerkes på dette punkt at denne frikopling av anmodningen om identitetsdata og de nåværende måte å utføre autentiseringen er en viktig styrke OpenID. På denne måten kan OP bruke sterke og skiftende godkjenningsmetoder, og implementere avanserte sikkerhetstiltak mot angrep uten de ulike programmene må ta hensyn til dette, eller vil tilpasse seg.

Etter autorisasjon, autorisasjonsserveren program (for eksempel OAuth vanlig) en autorisasjonskode. Dette sendes via User Agent via HTTP viderekoble til medietjeneste.

HTTP / 1.1 302 Funnet
Sted: https://mediaservice.funcorp.com/login_cb?
kode = 287654789765678976556789
&state = 30096545678909876567

Denne meldingen tilsvarer OAuth 2.0-standarden og inkluderer ikke OpenID Connect detaljer. I tillegg til autorisasjonskoden inneholder verdien av staten parameter, hadde som ham media tjenesten sendes til godkjenning forespørsel. Tjenesten deretter byttet til autorisasjonskoden i symbolendepunktet av autorisasjonsserveren mot token.

POST / OAuth / token HTTP / 1.1
Host: accounts.funcorp.com
Content-Type: application / x-www-form urlencoded
Autorisasjon: Grunnleggende U0RGR0hKS0xVWlRSRURGR0hKOnRlc3QxMjM0
grant_type = authorization_code&
kode = 287654789765678976556789&
redirect_uri = https% 3A% 2F% 2Fmediaservice.funcorp.com% 2Flogin_cb

Denne forespørselen også uforandret, idet OAuth standard, er responsen fra autentiseringsserveren imidlertid inneholder det nye resultatet parameter "id_token":

HTTP / 1.1 200 OK
Content-Type: application / json
Cache-Control: no-butikken
Pragma: no-cache

{
"access_token": "IiwKICJleHAiOiAxMzExMjgxOTcwLAo".
"token_type": "bærer".
"expires_in": 3600,
"id_token": "eyJhbGciOiJub25lIn0.
eyJpc3MiOiAiaHR0cHM6Ly9hY2NvdW50cy5mdW5jb3JwLm
NvbSIsCiAic3ViIjogIjc4Njc2NzY3NyIsCiAiYXVkIjogIlNERkdISk
tMVVpUUkVERkdISiIsCiAiZXhwIjogMTM4ODcwMDM2MDAw
MCwKICJpYXQiOjEzODg2OTY3NjAwMDAsCiAiYXV0aF90aW1
lIjogMTM4ODY5Njc2MDAwMAogImFjciI6ICJ1cm46ZnVuY29
ycDpjb206bGV2ZWwtMSJ9."
}

Som navnet antyder, inneholder denne parameteren den nevnte ID-token. Den inneholder identitetsdata og informasjon om godkjenningsprosessen i form av en såkalt JSON Web Token. For å sikre seg mot denne endringen og andre angrep, kan det bli signere og kryptere. Hvilke metoder benyttes i et spesielt tilfelle, oppleves av klienten når den første delen av ID-token til den første separator '' Base64url-dekodet for å ekstrahere den såkalte spissen. I eksemplet gir følgende JSON objekt:

{"alg":"none"}

Dette emnet betyr at i eksemplet, er ingen signatur (og uten kryptering) anvendt. Dette er ikke absolutt nødvendig fordi klienten henter data fra OP gjennom en HTTPS-beskyttet kanal.

Den faktiske nyttelast av JSON- Web Tegnet kjøper kunden ved den andre delen av ID-token til den neste separator '' Base64url-dekodet:

{
"iss": "https://accounts.funcorp.com".
"sub": "786767677".
"aud": "SDFGHJKLUZTREDFGHJ".
"exp": 1388700360000,
"iat": 1388696760000,
"auth_time": 1388696760000
"acr": "urn: funcorp: com: level-1"
}

Som man kan se, er det i en JSON Web Token for en enkel å behandle JSON dokument med ulike felt, som hver inneholder en såkalt "krav" til brukeren eller til autentiseringsprosessen.

kravet "iss" (Utsteder) identifiserer OpenID-leverandør, i dette tilfellet, fullmakten serveren of Fun Corp. kravet "sub" (Emne) inneholder en bruker-ID for autentisert brukerkontoen i denne prosessen. Verdien av sub er stabil med hensyn på en bestemt klient og kan brukes til investering og gjenkjennelse av en konto hos kunden. Det er viktig å merke seg at "sub" alltid er unikt bare innenfor Utstedere. Klienter som bruker forskjellige operasjonssaler for innlogging, så bør bruke tuppel (ISS sub) for identifisering av de aktuelle kontoene.

kravet "aud" (Publikum) identifisere legitime mottakeren av token, i det enkleste tilfellet, den inneholder bare client_id sertifikatmottakeren. men han kan også ha andre mottakere. Som nevnt kan en ID-token kun brukes til å logge inn til de respektive klient og de ytterligere mottakere (som også kalles "publikum Restriction" heter). Ved denne forholdsregel skal det kapringen av identitetene av skadeprogrammer (substitusjon angreps) forebygges. For mer informasjon om substitusjons angrep kan gjøres til dette, og gjort dette dokumentet.

Det er derfor viktig at kunden kontrollerer at kravet "aud" inneholder sin client_id. Dette kravet er oppfylt i eksempelet (overraskende). Verdien av "aud" er den samme verdi som den har passert client_id i parameterne til klienten i den første autentiseringsforespørsel. Slik at kunden kan behandle påloggings resultat.

krav- "iat" (Utstedt til) og "exp" (Utgår At) gi informasjon med hensyn til når tokenet har blitt generert og til når den er gyldig. Mottakeren må ikke tegnet etter utløps mer
bruke. Vanligvis er det en forbindelse mellom gyldigheten og den kryptografiske beskyttelse av symbolet.

krav "auth_time" er OP informasjon om når brukeren er autentisert. Hvis OP SSO og muligens enda langlivede økter (slike møter også overleve lukke nettleseren) -støtte, kan denne tiden være betydelig i det siste. krav "acr" (Authentication Context ClassReference) kan lære hvilken metode (r) for brukerautentisering ble brukt av klienten. Verdien av "acr" er en abstraksjon av autentiseringsmetoder og helheten av de anvendte retningslinjer (som kontoadministrering, etc.). Hvis klienten har spesielle krav til timing og kvaliteten på godkjenning, kan han uttrykke dette ved flere parametere av autentiseringsforespørsler. Disse alternativene er beskrevet i følgende artikkel. ID token kan også brukes som en beholder for alle andre data, selv om dette tema undersøker den andre artikkelen.

Basert på dataene i ID-brikke av mediene tjenesten kan identifisere og logge brukeren på en sikker måte. I eksempelet med medietjeneste søker og finner kontoen med bruker-ID "786767677" og laster inn data.

Fremgangsmåten er vist i prinsippet med en hvilken som helst OAuth Grant kombinert type. Standarden definerer kartlegging for autorisasjonskode Implisitt Grant og oppdatere token. Når Implisitt Grant, som er beregnet spesielt for integrering av Javascript-applikasjoner, sender OAuth autorisasjon serveren resultatene av godkjenningsprosessen i en såkalt URL fragment av viderekoblingsnettadressen direkte til kunden. Ved bruk av denne type Grant i sammenheng med den OpenID ID-token vil sekvensielt bli sendt som et ytterligere element av viderekoblingene fra autorisasjons serveren til klienten som følger:

HTTP / 1.1 302 Funnet
Sted: https://client.example.org/cb#
access_token = SlAV32hkKG
&token_type = bærer
&id_token = eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso
&expires_in = 3600
&state = af0ifjsldkj

Dette har viktige forskjeller med autorisasjonskoden i forhold til sikkerheten av prosedyren. Siden ID token ikke utveksles på en direkte og sikker kanal mellom OP og RP men indirekte via brukerens nettleser, må ID-token være beskyttet av en digital signatur for modifisering. Ellers kan brukeren har logget inn med en bruker-ID på klienten. Videre må ID tegn for omspillingsforsøk beskyttes. For dette, er det en såkalt "nonce" bundet til en bestemt autentiseringsprosess.