Homepage von Basti1012 = ,Hauptmenü
Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung

(Grafik: Shutterstock)

Corporate-Design-Manuals und Styleguides waren gestern. Heutzutage setzen Unternehmen stattdessen auf Designsysteme. Doch wie funktioniert es und wie setzt man eines auf?


Eine Marke, mehrere Touchpoints, unterschiedliche User-Interfaces: Ob Unternehmens-Website, Onlineshop oder Vertriebstool, die Darstellungsmöglichkeiten für eine Marke sind vielfältig und die meisten Unternehmen nutzen einen Großteil dieser Touchpoints, um mit ihren Kunden zu kommunizieren. Im Idealfall erreichen sie jeden Kunden an der für ihn relevanten Schnittstelle mit passendem Content sowie einem einheitlich gestalteten Markenauftritt. Allerdings: Jedes Touchpoint-Interface birgt in seiner Gestaltung und Programmierung eine Vielzahl möglicher Fehlerquellen ? und daraus resultierend ein inkonsistentes Design. Wofür früher ein Styleguide genügte, bedarf es im digitalen Zeitalter eines Designsystems. Denn Designsysteme sorgen für eine einheitliche Marken-Darstellung, eine effizientere, kreative Zusammenarbeit zwischen einzelnen Abteilungen sowie für eine zielgruppenspezifische Contentausspielung.

Für eine erfolgreiche Implementierung eines Designsystems gilt es folgendes zu beachten:

Standards definieren

Im Erscheinungsbild jeder Marke gibt es Regeln, Prinzipien und Einschränkungen etwa im Hinblick auf Farben, Tonalität, Typografie, Animationen, Datenvisualisierung oder der Wiederverwendbarkeit einzelner Elemente. Diese festen Vorgaben gilt es, im Vorfeld zu definieren oder via Corporate-Design-Manual oder Styleguide zur Verfügung zu stellen, denn sie dienen als Grundlagen eines jeden Designsystems. Nur so lassen sich Widersprüche im Markenauftritt vermeiden.

Den Styleguide zum Leben erwecken

In den meisten Unternehmen sind Designstandards längst definiert ? für digitale Anwendungen in der Regel in Digital Styleguides. Um ein Designsystem aufzusetzen, müssen Unternehmen daher nicht von vorn anfangen. Stattdessen gilt es, Digital Styleguides zu sogenannten Living Styleguides zu erweitern. Sie zeichnet aus, dass sie in die gesamte digitale Wertschöpfungskette integriert sind und mit teils automatisiertem Produktions- und Auslieferungs-Workflow funktionieren.

In atomare Strukturen überführen

Die Basis eines Designsystems bilden Atome, Moleküle und Organsimen als die kleinsten Design-Einheiten eines Markenbildes. Sie müssen digital erfasst und in einer Design- beziehungsweise Brand-Library gesammelt werden. Die im System enthaltenen Komponenten und Richtlinien sind auf alle Anwendungsfälle einsetz- und wiederverwendbar und stellen so eine gemeinsame Designsprache sicher ? über alle Produkte und Dienstleistungen hinweg und immer unter Berücksichtigung des eingesetzten Technologie-Stacks sowie des Service-, Business- und Nutzungskontexts der Ziel-Applikation. Design- und Entwickler-Teams können so die komplexen Aufgaben besser und schneller lösen. Diese Sammlung und ihre Verwendungsformen dienen als alleinige Informationsquelle, als ?Single Point of Truth? der Qualitätssicherung und zur Weiterentwicklung der Marke sowie sämtlicher digitaler Benutzerschnittstellen eines Unternehmens.

Sind Details an kleinsten Design-Einheiten zu ändern oder kommen neue hinzu, wird die Anpassung automatisch und global übernommen. Fertige Code- und Designregelwerke können nicht nur als Nachschlagesammlung, sondern als Endprodukt zur Verfügung gestellt werden.

Designsystem mithilfe einer Toolchain etablieren

Wie wird aus einem aus vielen Elementen gestalteter Screen ein fertiges Interface? Ein ganzheitliches Design-Management-System entsteht erst dann, wenn die vorgelagerte Design-Toolchain mit anderen Tools und Applikationen wie dem CMS oder einem Shop-Frontend verbunden ist, sodass Designänderungen automatisch und konsistent in alle Channels übernommen werden.

Gängige Software und Programme der Designsystem-Toolchain sind etwa Invision und Frontify als Brand-Management- und Prototypingtools, Sketch und Abstract zur Erstellung und Versionskontrolle von Designsystemen, Pattern Lab und Storybook als Styleguide- und Produktionswerkzeuge sowie GitLab als Versionierungs- und Deploymentsoftware. Weiterhin kommt Zeplin als Kollaborations-Werkzeug und als Bindeglied zwischen der Kreation und der Technik zum Einsatz. Mit dem JavaScript-Framework Vue.js entwickeln Programmierer das User-Interface anspruchsvoller Webanwendungen.

Datenrelevanz skalieren und Kontexte bestimmen

Websites sind bereits seit längerem in der Lage, zu erkennen, über welche Touchpoints der Konsument zur Seite gelangt ist und zu welcher Zielgruppe er gehört. Designsysteme schließen nun die Lücke zum Konsumenten, indem sie der Website ermöglichen, jede Inhaltsseite zielgruppengerecht, durch dynamisch erstellte Inhaltsbereiche, aufzubauen. In der Praxis muss dazu die Relevanz der zugrundeliegenden Daten im Vorfeld definiert und diese Informationen den konkreten Inhalten zugeordnet werden.

Das gilt ebenfalls für eine kontextbezogene Ausspielung von Content. Je genauer mögliche, von der Umgebung abhängige Bedürfnisse festgehalten und im Designsystem hinterlegt sind, desto variabler kann das System auf differenzierte Kontexte reagieren.

Designsysteme lassen Designer und Entwicklern deutlich effizienter arbeiten und sorgen gleichzeitig für konsistente Darstellungen und Codes. Die Vorteile liegen vor allem im längerfristigen Benefit. Ist die Design-Library erst einmal angelegt, können die Bausteine immer wieder verwendet und automatisiert an neue Gegebenheiten angepasst werden. Das spart nicht nur Kosten, sondern sorgt auch für eine bessere Customer-Centricity.



PHP 7 Migration

Nun war es also Zeit, diesen beschaulichen Server auf PHP7 zu heben.

Die Installation

… lief straight forward, wie man es gewohnt ist. Hier läuft ein Apache 2 mit mod_php auf (aktuell) Ubuntu 15.04, also das absolute Standardsetup. Da PHP7 standardmäßig noch nicht in ubuntu enthalten ist, müssen wir vom ppa von ondrej Gebrauch machen, welches sowohl PHP5.6 als auch PHP7 beinhaltet und regelmäßig aktualisiert wird.

apt-get -y purge php5 libapache2-mod-php5 php5 php5-cli php5-common
apt-get --purge autoremove
apt-get update
apt-get install python-software-properties
add-apt-repository ppa:ondrej/php-7.0
sudo apt-get install php7.0 php7.0-dev php7.0-mysql php7.0-gd php7.0-curl php7.0-sqlite php7.0-intl
php -v
service apache2 restart

Läuft, bei mir folgende Ausgabe:

PHP 7.0.1-4+deb.sury.org~vivid+1 (cli) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

Probleme & Fallstricke

Imagemagick

Da es noch kein php7.0-imagemagick gibt, war eine händische Installation nötig:

apt-get install imagemagick
cd /tmp
wget http://pecl.php.net/get/imagick-3.4.0RC2.tgz
tar xvzf imagick-3.4.0RC2.tgz
cd imagick-3.4.0RC2
phpize
./configure
make install
echo extension=imagick.so >> /etc/php/7.0/cli/php.ini
echo extension=imagick.so > /etc/php/7.0/apache2/conf.d/20-imagick.ini
service apache2 restart

mcrypt

Ursprünglich habe ich php7.0-mcrypt mitinstalliert, welches sich dann per Warning geäußert hat, dass es bereits geladen wurde.

Module 'mcrypt' already loaded in Unknown on line 0

Die Migration

WordPress 4.4 verträgt sich gut mit PHP7, zumindest gilt das für den Core. 2 Probleme gab es bei den Plugins:

w3 total cache (aktuell in Version 0.9.4.1) schmeißt einen Haufen Warnings und Fehler, sodass ich es erstmal deaktiviert habe.

Nicht so einfach gestaltete sich das zweite problematische Plugin CodeColorer, welches ich für das Syntax Highlighting verwende. Da es seit über 2 Jahren nicht mehr angepasst wurde, ist eine PHP7 Kompatibilität auch nicht direkt zu erwarten gewesen. Problem: Der /e Modifier in preg_replace ist seit PHP5.5 deprecated.

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in ...

Also frisch ans Werk und alle preg_replace-Vorkommen mit dem /e modifier auf das nun zu verwendende Callback-Format umgestellt:

Alt:

$content = preg_replace('#(\s*)(\[enlighter[^\s\]_]*(?:_[^\s\]]*)?[^\]]*\].*?\[/enlighter\1\])(\s*)#sie', '$this->PerformProtectComment(\'\\2\', $content, \'\\1\', \'\\3\');', $content);

Neu:

$content = preg_replace_callback('#(\s*)(\[enlighter[^\s\]_]*(?:_[^\s\]]*)?[^\]]*\].*?\[/enlighter\1\])(\s*)#si', function($matches)
{
	return $this->PerformProtectComment($matches[2], $content, $matches[1], $matches[3]);
}, $content);	

Relevante Änderungen in PHP7

Ich habe die relevantesten Änderungen in PHP7 in Präsentationsform für meine Lehrveranstaltung „Entwicklung webbasierter Anwendungen“ an der Hochschule Darmstadt zusammengefasst. Die Präsentation darf gerne verwendet werden (auf Anfrage schicke ich auch gerne die ppt).

Für mich sind das:

An weggefallenen oder nun veralteten Dingen ist eigentlich nichts von großer praktischer Relevanz.

Ganz lustig ist der „rant“ über das neue „division by zero“ Verhalten. Seit PHP7 ist das Ergebnis beim Teilen durch 0 „INF“ bzw. „-INF“. Eine Warning gibt es zusätzlich noch, vor PHP7 kam als Ergebnis „false“ heraus. Nach IEEE754 stellt sich die Sache aber nicht ganz so einfach dar. Da es die Warning nach wie vor gibt, sollte auch diese Umstellung keine großen Probleme verursachen.

In closing

Auf Arbeit fahren wir einen Multi PHP-Ansatz, um mehrere PHP Versionen mit Fast CGI parallel laufen zu lassen. Das ist sehr praktisch für eine schrittweise Migration. Symfony ist ja auch schon seit geraumer Zeit voll PHP7-fähig. Allein aus Gründen des gesunkenen Speicherverbrauchs und der besseren Laufzeitperformance ist man ja quasi schon zum Update gezwungen ;-).

Umwetter Warnumgen und Wetter vorschau


 Datenbank unwetter warnunngen aktualiesiert 22Datank unwetter optiion aktualiesiert