https://entwickler.de/feed/rss2

People of Color in Tech Report 2020: ?Diverse Teams bedeuten bessere Ergebnisse? (20.10.2020 15:27:36)

Nicht nur Frauen haben es in der Tech-Branche schwer, auch People of Color sind unfairen Vorurteilen und latenten Aversionen ausgesetzt Wir sprachen daher mit Vinay Bhagat, Gründer und CEO von TrustRadius, über den People of Color in Tech Report 2020 und dessen wichtige Ergebnisse Vinay Bhagat erläutert im Interview, welchen Herausforderungen PoC sich in der Tech-Branche stellen müssen, wie Diversität verbessert werden kann und wie der Tech-Sektor sich in den kommenden Jahren verändern wird

JAXenter: Hi Vinay und danke, dass du dir die Zeit für das Interview genommen hast! TrustRadius hat gerade den People of Color in Tech Report 2020 veröffentlicht Was sind deiner Meinung nach die wichtigsten und interessantesten Erkenntnisse daraus?

Vinay Bhagat: Obwohl sich die Anzahl der People of Color PoC in der Tech-Industrie in den letzten zehn Jahren erhöht hat, sind sie in Management- und Führungsrollen weiterhin eher nicht zu sehen Die meisten Teilnehmer unserer Umfrage geben an, dass das Verhältnis von People of Color in leitenden Rollen ungefähr 4 zu 1 oder sogar noch schlechter aussieht In unserem Report haben wir daher einige Tech Leaders of Color vorgestellt, die nicht nur in ihrem Unternehmen etwas bewirken, sondern auch für zukünftige Generationen ein Vorbild sein wollen

Wir fanden heraus, dass People of Color, die in Tech-Berufen arbeiten, Schwierigkeiten haben, Mentoren zu finden Fast doppelt so viele schwarze oder afro-amerikanische Teilnehmer an unserer Umfrage hatten Probleme dabei, verglichen mit ihren weißen Kollegen Teilnehmer mit indigener oder lateinamerikanischer Herkunft hatten hingegen größere Probleme, als solche mit asiatischen Wurzeln Letzteres liegt vermutlich daran, dass diese in der Tech-Industrie stärker vertreten sind

Ein weiterer Punkt, der sehr deutlich ausfällt: 67%, also zwei Drittel unserer Befragten, finden, dass ihr Unternehmen mehr tun könnte, um die aktuell vorherrschende Ungleichbehandlung zu adressieren Unter PoC in der Tech-Industrie ist der Anteil noch höher

Obwohl noch keine besonders hohe Operationalisierung von Diversitäts- und Inklusionsinitiativen D&I vorherrscht weniger als die Hälfte der Befragten arbeiten in einem Unternehmen mit einer D&I-Abteilung oder einer bzw einem entsprechenden Beauftragten, glauben sehr viele Tech-Experten People of Color sowie Weiße, dass D&I einen großen Effekt haben könnte Interessanterweise sind CEOs und Gründer diejenigen, die am wenigsten an D&I-Programme und deren Erfolg glauben

Im Zuge unserer Umfrage haben sich dennoch einige sehr leicht umsetzbare Dinge herauskristallisiert, die Tech-Unternehmen in Augenschein nehmen könnten, um die Problematik in Angriff zu nehmen Die Verbesserung der Einstellungspolitik im Hinblick auf die Diversität ist etwa eines der Dinge, die People of Color sich von Arbeitgebern wünschen würden Hier bei TrustRadius arbeiten wir daran aktuell selbst

JAXenter: Gibt es einige unerwartete Ergebnisse im Report?

Dass 17% der weißen Umfrageteilnehmer denken, man tue bereits zu viel für die Gleichbehandlung, ist sehr enttäuschend

Vinay Bhagat: Es hat mich sehr erstaunt, dass ganze 15% der Teilnehmer angaben, dass ihr Unternehmen ihrer Meinung nach sogar ZU VIEL tut, um die Ungleichbehandlung zu bekämpfen Unter weißen Teilnehmern ist dieser Anteil sogar 17%, darüber komme ich nur schwer hinweg Ich denke, dass die Realität anders aussieht: Die Tech-Industrie als Ganzes und die Unternehmen müssten sehr viel mehr tun Die Mehrheit scheint ja mit mir darin übereinzustimmen, aber dass 17% denken, man tue bereits zu viel für die Gleichbehandlung, ist sehr enttäuschend

Überraschend fand ich auch die relativ große Anzahl an Befragten, die ihrer Angabe nach kein gutes Gefühl hätten, Diskriminierungen in ihrer Firma intern anzusprechen ? nicht einmal gegenüber der Personalabteilung Nur rund die Hälfte aller People of Color, die an unserer Umfrage teilgenommen haben, fühlen sich wohl damit, Themen, die die Ethnie oder rassistische Diskriminierungen betreffen, mit der Personalabteilung zu besprechen Darüber musste ich eine Weile nachdenken, denn das bedeutet ja, dass People of Color eventuell auf Probleme stoßen, von denen ich noch gar nichts wusste Bei TrustRadius hat Transparenz die höchste Priorität, allerdings ist diese Thematik besonders schwierig im Hinblick darauf Ich habe realisiert, dass wir mehr Wege brauchen, auf denen unsere Mitarbeiter und Kollegen Feedback und anonyme Bedenken einreichen können Dies dient vor allem denjenigen, die eventuell eine direkte Konfrontation oder Konversation scheuen

JAXenter: Welches sind die allgemein häufigsten Schwierigkieten, denen People of Color begegnen, wenn sie im Tech-Sektor Fuß fassen wollen?

Vinay Bhagat: Die häufigsten Hindernisse sind Vorurteile und latente Vorbehalte während des Bewerbungsprozesses Hinzu kommt natürlich die nicht gleichermaßen verfügbare Möglichkeit auf eine entsprechende Ausbildungs- und Weiterbildungsmaßnahmen Unternehmen tendieren leider dazu, Bewerber nur aus einem bestimmten Kreis auszuwählen: Man versucht Zeit zu sparen, indem man Networking betreibt Außerdem neigt man beim Checken der Lebensläufe und beim Bewerbungsgespräch dazu, Kandidaten zu bevorzugen, die einem selbst ähnlich sind Diese Dinge können einzeln betrachtet schon eine wachsende Diversität verhindern und sich desaströs auf PoC niederschlagen, die gerade erst versuchen, Fuß in der Industrie zu fassen Qualifizierte Kandidaten werden so schon, trotz ihrer guten Ausbildung wegen ihrem Hintergrund aussortiert So jedenfalls habe ich das wahrgenommen

JAXenter: Zeigen denn die Produkte der Tech-Industrie auch einen Mangel an Diversität? Und wenn ja, in welcher Weise?

People of Color wissen am besten, wie man gewisse Lösungen für ihre Communitys innovativ vorantreiben kann, überdies sind sie auch am motiviertesten, dies zu tun

Vinay Bhagat: Das ist tatsächlich in dem Sinne so, dass Ideen von People of Color nicht in einem angemessenen Rahmen gefördert werden PoC wissen am besten, wie man gewisse Lösungen für ihre Communitys innovativ vorantreiben kann, überdies sind sie auch am motiviertesten, dies zu tun In der Tech-Branche sind es Kapitalbeteiligungsgesellschaften, die entscheiden, welche Ideen eine Investition wert sind ? diese Projekte werden umgesetzt und haben die größte Chance auf Erfolg Doch diese Gesellschaften haben selbst ein Diversitätsproblem Daraus folgt, dass Gründer aus der PoC-Gemeinschaft es schwerer haben, überhaupt von solchen Kapitalgesellschaften gefördert zu werden Und wenn sie doch gefördert werden, dann mit weniger Mitteln als ihre weißen Kollegen

Auch in Sachen Design gibt es eine Menge zu beachten: Accessibility wird zu einem immer wichtigeren Faktor in der Tech-Industrie Ein zugänglicheres Design kann sich für alle Nutzer als vorteilig erweisen und gleichzeitig die Grundbedürfnisse von marginalisierten Nutzergruppen abdecken Für Nutzer mit eingeschränkter Sehleistung bedeutet dies zum Beispiel Farbschemata mit höherem Kontrast oder einer Verbesserung der Umwandlung von Text zu Sprache Ältere Nutzer könnten eventuell größeren Buttons oder ein einfacheres UI helfen Eine Sache, die besonders PoC betrifft, ist das Marketing von Produkten Stock-Fotografien neigen beispielsweise dazu, vor allem weiße Personen zu zeigen Wenn Marketingkampagnen von Weißen dominiert werden und die Produkte vorrangig von weißen Influencern promoted werden, kann das einen Mangel an Diversität hinter den Produkten, deren Machern und den Personen, für die sie gemacht werden, zeigen

JAXenter: Wie könnte die Situation insgesamt verbessert werden?

Vinay Bhagat: Wir brauchen nicht nur Entrepreneure aus der PoC-Gemeinschaft, sondern auch Designer und Engineers, die Technologien realisieren Die User Experience muss nicht nur durch weiße, sondern durch eine diverse Gruppe von Nutzern getestet werden, um die Funktionalität, aber auch die Sprache innerhalb der Benutzeroberflächen und die Beschreibung der Produkte zu prägen Außerdem brauchen wir dann natürlich auch Leute im Marketing und diese brauchen People of Color auf Stock-Fotographien, um ihre Kampagnen zu lancieren

Wir haben ein Problem mit Ausschließlichkeit und Mikroaggressionen in der Tech-Kultur

Wir haben herausgefunden, dass etwa die Hälfte der PoC in ihrem Unternehmen latente Vorurteile entdecken, wenn es um die Anheuerungspolitik geht Weniger als ein Drittel ihrer weißen Kollegen machen solch eine Angabe Der erste Schritt hier wäre zuzugeben, dass Vorurteile tatsächlich eine Rolle bei der Entscheidungsfindung spielen Wir haben außerdem ein Problem mit Ausschließlichkeit und Mikroaggressionen in der Tech-Kultur Ich habe beispielsweise aufgehört mit dem Begriff ?Cultural Fit?, also der kulturellen Übereinstimmung, zu arbeiten und nutze heute lieber einen Begriff wie ?Cultural Add?, spreche also lieber von einer Bereicherung der Unternehmenskultur

JAXenter: Wie glaubst du wird sich der Tech-Sektor in den kommenden Jahren entwickeln?

Vinay Bhagat: Die globale Pandemie hat den Tech-Sektor noch kompetitiver gemacht Sie erinnert uns an ökonomische Schwächen, die Notwendigkeit Kunden zu halten und ihren Erfolg zu gewährleisten sowie an die Wichtigkeit, talentierter und passionierter Angestellter, die sich mit dem Unternehmen identifizieren Ich denke, dass ein Investment in Diversity & Inclusion D&I sowie eine starke Position in Bezug auf politische und soziale Dinge, die unsere Mitarbeiter sowie Kunden betreffen, ein wichtiger und nicht verhandelbarer Faktor für Erfolg auf dem Markt werden wird

JAXenter: Was wünscht du dir für die 2020er Jahre?

Ich wünsche mir, dass wir mehr Investments in Startups von People of Color sehen werden

Vinay Bhagat: Nachforschungen haben ergeben, dass diverse Teams bessere Resultate erbringen Klar, im Unternehmen kann man das nur durch Ausprobieren sehen, aber wir brauchen mehr diverse Projekte, damit wir die Ergebnisse auch industrieweit sehen können Ich wünsche mir, dass wir mehr Investments in Startups von People of Color sehen werden Auch Übernahmen von Unternehmen, die von PoC geleitet werden und erfolgreiche IPOs im Hinblick auf diese Unternehmen wären wünschenswert, sodass dies eine Norm wird und keine Ausnahme Es könnte auch nicht schaden, einige People of Color in leitenden Funktionen anzustellen, gerade in den Unternehmen auf den Fortune-500- und Fortune-1000-Listen

Ein großer Wunsch von mir ist, dass Kinder der PoC-Gemeinschaft und aus niedrigeren sozialökonomischen Schichten, die vielleicht als erste in ihren Familien auf die Universität gehen, die Möglichkeit auf eine Ausbildung in STEM-Berufen oder in den freien Künsten wahrnehmen und schließlich Teil der Tech-Industrie werden können Sie haben wirklich aktuell Schwierigkeiten damit, es ist nicht leicht Aber es gibt einige sehr tolle Organisationen, die sie unterstützen, indem sie Coding-Trainings, Mentoring, bezahlte Praktika und mehr anbieten Eine solche Organisation ist etwa die von TrustRadius finanziell unterstützte Code2College, für die wir auch immer wieder Freiwillige finden Das ist im Übrigen ebenfalls etwas, wozu ich alle Größen der Tech-Branche aufrufe: Findet und unterstützt Organisationen, die euch bei der Ausbildung der nächsten Generation von People of Color für euer Unternehmen helfen

Vinay Bhagat conceived TrustRadius after experiencing challenges when buying enterprise solutions at his last company He founded Convio in 1999, the leading SaaS platform for nonprofits In April 2010, Convio became a public company, and was acquired in May 2012 for $325 million He holds an MBA from Harvard Business School where he graduated as a Baker Scholar, an MS Engineering Economic Systems from Stanford University, and a MA Engineering Information Sciences from Cambridge University with First Class Honors When he?s not working, Vinay loves playing with his kids, swimming and the occasional squash game

Der Beitrag People of Color in Tech Report 2020: „Diverse Teams bedeuten bessere Ergebnisse“ ist auf entwicklerde erschienen


PHP goes Hardware: Arduino an PHP (20.10.2020 12:00:28)

PHP direkt auf einem Mikrocontroller auszuführen, ist auch heute nur den schwer handhabbaren kombinatorischen Systemen wie dem ATM32MP1 aus dem Hause STMicroelectronics vorbehalten ? er kann auf seiner Linux-Partition eine PHP-Installation hosten Das bedeutet allerdings nicht, dass man nicht kreative Umwege gehen kann

Der Beitrag PHP goes Hardware: Arduino an PHP ist auf entwicklerde erschienen


Java 15 erschienen: Das sind die Neuerungen im OpenJDK 15 (20.10.2020 10:37:00)

Mit Java 15 erscheint nun bereits das sechste halbjährliche Java-Release in Folge Und das mal wieder genau im Zeitplan ? eine Eigenschaft, die man von IT-Projekten im Allgemeinen und früheren Java-Versionen im Speziellen so nicht gewohnt ist Laut der Ankündigung auf der Mailingliste gibt es neben Hunderten kleineren Verbesserungen und Tausenden Bugfixes insgesamt vierzehn neue Features In diesem Artikel werfen wir einen Blick auf die relevanten Änderungen

Die wichtigsten neuen Funktionen wurden wieder in Form von Java Enhancement Proposals JEP entwickelt Eine Auflistung inklusive Verlinkungen zu den einzelnen Projektseiten findet sich auf der Webseite des OpenJDK

  • 339: Edwards-Curve Digital Signature Algorithm EdDSA
  • 360: Sealed Classes Preview
  • 371: Hidden Classes
  • 372: Remove the Nashorn JavaScript Engine
  • 373: Reimplement the Legacy DatagramSocket API
  • 374: Disable and Deprecate Biased Locking
  • 375: Pattern Matching for instanceof Second Preview
  • 377: ZGC: A Scalable Low-Latency Garbage Collector
  • 378: Text Blocks
  • 379: Shenandoah: A Low-Pause-Time Garbage Collector
  • 381: Remove the Solaris and SPARC Ports
  • 383: Foreign-Memory Access API Second Incubator
  • 384: Records Second Preview
  • 385: Deprecate RMI Activation for Removal

Einige der Features befinden sich noch im Preview- oder Inkubator-Modus Die Macher des OpenJDKs wollen ihre Ideen so möglichst frühzeitig vorzeigen und erhoffen sich Feedback aus der Community Diese Rückmeldungen fließen dann bereits in die nächsten halbjährlichen Releases ein Wir Java-Entwickler können zudem regelmäßig neue Sprachfunktionen und JDK-Erweiterungen ausprobieren Spätestens zur nächsten LTS-Long-Term-Support-Version erfolgt dann die Finalisierung der Previews Das wird übrigens das OpenJDK 17 sein, das für September 2021 geplant ist

Auf JAXenter gibt es bereits einen kompakten Überblick über alle Änderungen des JDK 15 Wir wollen in diesem Artikel etwas tiefer auf die vor allem für Entwickler relevanten Themen schauen Und da sind die Sealed Classes JEP 360 die vermutlich interessanteste Neuerung Dieses Feature wurde im Rahmen von Projekt Amber entwickelt Sealed Classes gehören zu einer Reihe von vorbereitenden Maßnahmen für die Umsetzung von Pattern Matching in Java Ganz konkret sollen sie bei der Analyse von Mustern unterstützen Aber auch für Framework-Entwickler bieten sie einen interessanten Mehrwert Die Idee ist, dass versiegelte Klassen und Interfaces entscheiden können, welche Subklassen oder -Interfaces von ihnen abgeleitet werden dürfen Bisher konnte man als Entwickler Ableitung von Klassen nur durch Zugriffsmodifikatoren private, protected, … einschränken oder durch die Deklaration der Klasse als final komplett durch den Compiler untersagen Sealed Classes bieten nun einen deklarativen Weg, um nur bestimmten Subklassen die Ableitung zu erlauben Ein Beispiel:

public sealed class Vehicle
  permits Car,
          Bike,
          Bus,
          Train {
}

APIOps Cycles: How to develop business & software together

Marjukka Niinioja Osaango Oy

Have your cake and eat it too: GraphQL? REST API? Maybe you can have both!

Roy Mor Sisense

Vehicle darf nur von den vier genannten Klassen überschrieben werden Damit wird auch dem Aufrufer deutlich gemacht, welche Subklassen erlaubt sind und damit überhaupt existieren Subklassen bergen zudem immer die Gefahr, dass beim Überschreiben der Vertrag der Superklasse verletzt wird Zum Beispiel ist es unmöglich, die Bedingungen der equals-Methode aus der Klasse Object zu erfüllen, wenn man Instanzen von einer Super- und einer Subklasse miteinander vergleichen will Weitere Details dazu kann man in der API-Dokumentation unter dem Stichwort Äquivalenzrelationen, konkret Symmetrie nachlesen

Sealed Classes funktionieren auch mit abstrakten Klassen und integrieren sich zudem gut mit den in der Vorgängerversion eingeführten Record-Datentypen Es gibt aber ein paar Einschränkungen Eine Sealed Class und alle erlaubten Subklassen müssen im selben Modul existieren Im Fall von Unnamed Modules müssen sie sogar im gleichen Package liegen Außerdem muss jede erlaubte Subklasse direkt von der Sealed Class ableiten Die Subklassen dürfen übrigens wieder selbst entscheiden, ob sie weiterhin versiegelt, final oder komplett offen sein wollen Die zentrale Versiegelung einer ganzen Klassenhierarchie von oben bis zur untersten Hierarchiestufe ist leider nicht möglich Weitere Details finden sich auf der Projektseite des JEPs 360

Das zweite Mal dabei, sozusagen im Recall, ist das bereits in Java 14 als Preview eingeführte Pattern Matching for instanceof Ein Pattern ist eine Kombination aus einem Prädikat, das auf eine Zielstruktur passt, und einer Menge von Variablen innerhalb dieses Musters Diesen Variablen werden bei passenden Treffern die entsprechenden Inhalte zugewiesen und damit extrahiert Die Intention des Pattern Matching ist letztlich die Destrukturierung von Objekten, also das Aufspalten in die Bestandteile und Zuweisen in einzelne Variablen zur weiteren Bearbeitung Die Spezialform des Pattern Matching beim instanceof-Operator spart unnötige Casts auf die zu prüfenden Zieldatentypen Wenn o ein String oder eine Collection ist, dann kann direkt mit den neuen Variablen s und c mit den entsprechenden Datentypen weitergearbeitet werden Das Ziel ist es, Redundanzen zu vermeiden und dadurch die Lesbarkeit zu erhöhen:

boolean isNullOrEmpty Object o  {
  return o == null ||
    o instanceof String s && sisBlank ||
    o instanceof Collection c && cisEmpty;
}

Der Unterschied zum zusätzlichen Cast mag marginal erscheinen Für die Puristen unter den Java-Entwicklern spart das allerdings eine kleine, aber dennoch lästige Redundanz ein Laut Brian Goetz soll die Sprache Java dadurch prägnanter und die Verwendung sicherer gemacht werden Erzwungene Typumwandlungen werden vermieden und dafür implizit durchgeführt Die zweite Preview bringt übrigens keine Änderungen seit dem JDK 14 mit sich Es soll aber noch einmal die Möglichkeit gegeben werden, Feedback abzugeben In zukünftigen Java-Versionen wird es das Pattern Matching dann auch für weitere Sprachkonstrukte geben, z B innerhalb von Switch Expressions

Ebenfalls das zweite Mal dabei sind die Records, eine eingeschränkte Form der Klassendeklaration, ähnlich den Enums Entwickelt wurden Records im Rahmen des Projekts Valhalla Es gibt gewisse Ähnlichkeiten zu Data Classes in Kotlin und Case Classes in Scala Die kompakte Syntax könnte Bibliotheken wie Lombok in Zukunft obsolet machen Die einfache Definition einer Person mit zwei Feldern sieht folgendermaßen aus:

public record PersonString name, Person partner  {}

Das nächste Listing zeigt eine erweiterte Variante mit einem zusätzlichen Konstruktor Dadurch lassen sich neben Pflichtfeldern auch optionale Felder abbilden:

public record PersonString name, Person partner  {
  public PersonString name  { this name, null ; }
  public String getNameInUppercase { return nametoUpperCase; }
}

Erzeugt wird vom Compiler eine unveränderbare immutable Klasse, die neben den beiden Attributen und den eigenen Methoden natürlich auch noch die Implementierungen für die Accessoren, den Konstruktor sowie equals/hashCode und toString enthält Listing 1

public final class Person extends Record {
  private final String name;
  private final Person partner;

  public PersonString name { thisname, null; }
  public PersonString name, Person partner { thisname = name; thispartner = partner; }

  public String getNameInUppercase { return nametoUpperCase; }
  public String toString { /  / }
  public final int hashCode { /  / }
  public final boolean equalsObject o { /  / }
  public String name { return name; }
  public Person partner { return partner; }
}

Verwendet werden Records dann wie normale Java-Klassen Der Aufrufer merkt also gar nicht, dass ein Record-Typ instanziiert wird Listing 2

var man = new Person"Adam";
var woman = new Person"Eve", man;
womantoString; // ==> "Person[name=Eve, partner=Person[name=Adam, partner=null]]"

womanpartnername; // ==> "Adam"
womangetNameInUppercase; // ==> "EVE"

// Deep equals
new Person"Eve", new Person"Adam"equals woman ; // ==> true

Records sind übrigens keine klassischen JavaBeans, da sie keine echten Getter enthalten Man kann auf die Member-Variablen aber über die gleichnamigen Methoden zugreifen name statt getName Records können im Übrigen auch Annotationen oder JavaDocs enthalten Im Body dürfen zudem statische Felder sowie Methoden, Konstruktoren oder Instanzmethoden deklariert werden Nicht erlaubt ist die Definition von weiteren Instanzfeldern außerhalb des Record Headers

Die zweite Preview der Records in Java 15 enthält einige kleinere Verbesserungen aufgrund des Feedbacks aus der Community Außerdem gibt es eine Integration der Records mit den Sealed Classes, wie das aus der Dokumentation des JEP 384 entnommene Beispiel zeigt Listing 3

public sealed interface Expr
  permits ConstantExpr, PlusExpr, TimesExpr, NegExpr {

}

public record ConstantExprint i       implements Expr {}
public record PlusExprExpr a, Expr b  implements Expr {}
public record TimesExprExpr a, Expr b implements Expr {}
public record NegExprExpr e           implements Expr {}

Eine Familie von Records kann von dem gleichen Sealed Interface ableiten Die Kombination aus Records und versiegelten Datentypen führt uns zu algebraischen Datentypen, die vor allem in funktionalen Sprachen wie Haskell zum Einsatz kommen Konkret können wir jetzt mit Records Produkttypen und mit versiegelten Klassen Summentypen abbilden

Eine weitere Neuerung sind geschachtelte Records, um schnell und einfach Zwischenergebnisse in Form von zusammengehörigen Variablen modellieren zu können Bisher konnte man bereits statische innere Records analog zu statischen inneren Klassen deklarieren Jetzt gibt es auch die Möglichkeit, lokale Records innerhalb von Methoden als temporäre Datenstrukturen zu erzeugen Listing 4 zeigt ein Beispiel

List<Merchant> findTopMerchantsList<Merchant> merchants, int month {
  // Local record
  record MerchantSalesMerchant merchant, double sales {}

  return merchantsstream
    mapmerchant -> new MerchantSalesmerchant, computeSalesmerchant, month
    sortedm1, m2 -> Doublecomparem2sales, m1sales
    mapMerchantSales::merchant
    collecttoList;
}

Ebenfalls zum zweiten Mal dabei ist das Foreign-Memory Access API JEP 383 Damit sollen Java-Programme sicher und effizient Speicher außerhalb des Heap verwalten können Prominente Beispiele sind In-Memory-Lösungen wie Ignite, mapDB, Memcached oder das ByteBuf API von Netty Diese neue Bibliothek löst die veraltete Alternative sunmiscUnsafe ab und macht Workarounds über javanioByteBuffer überflüssig Es ist Teil des Projekts Panama, das die Verbindungen zwischen Java- und Nicht-Java-APIs verbessern will

Diesmal nicht als eigenes JEP aufgelistet, aber trotzdem wieder mit von der Partie sind die erst in Java 14 eingeführten Helpful NullPointerExceptions Inhaltlich gab es keine Änderungen Allerdings sind sie nun direkt aktiv und müssen nicht mehr explizit über einen Kommandozeilenparameter eingeschaltet werden Sie sind sehr hilfreich bei auftretenden NullPointerExceptions, weil sie die betroffene Variable oder den verursachenden Methodenaufruf direkt benennen Als Entwickler muss man nicht mehr raten oder durch aufwendiges Debuggen die betroffene Stelle ermitteln

Dem Preview entwachsen sind in Java 15 die Text Blocks Eigentlich war bereits im JDK 12 mit den Raw String Literals eine größere Änderung bei der Verarbeitung von Zeichenketten angekündigt, musste dann aber aufgrund von Unstimmigkeiten innerhalb der Community zurückgezogen werden Im OpenJDK 13 und 14 wurden dann die Text Blocks als abgespeckte Variante in Form eines Preview-Features eingeführt Ein Text Block ist dabei ein mehrzeiliges String Literal Zeilenumbrüche werden nicht durch eine den Lesefluss störende Escape-Sequenz eingeleitet Der String wird automatisch, aber auf nachvollziehbare Art und Weise formatiert Wenn nötig, kann der Entwickler aber in die Formatierung eingreifen Insbesondere für HTML-Templates und SQL-Skripte erhöht sich die Lesbarkeit enorm Listing 5

String html = "<html>// Ohne Text Blocks
\n" +
              "    <body>\n" +
              "        <p>Hello, Escapes</p>\n" +
              "    </body>\n" +
              "</html>\n";

// Mit Text Blocks
String html = """
              <html>
                  <body>
                      <p>Hello, Text Blocks</p>
                  </body>
              </html>""";

In Java 14 gab es noch kleinere Änderungen, u a wurden zwei neue Escape-Sequenzen hinzugefügt, um die Formatierung einer mehrzeiligen Zeichenkette anpassen zu können Nun sind Text Blocks als offizielles Feature in den Java-Sprachumfang aufgenommen

Aber es kamen nicht nur neue Features hinzu Seit dem JDK 11 müssen wir auch immer wieder damit rechnen, dass als deprecated markierte Funktionen und Bibliotheken wegfallen Diesmal hat es die erst in Java 8 eingeführte JavaScript-Engine Nashorn erwischt Die mit ECMAScript 51 kompatible Implementierung hatte das frühere Projekt Rhino abgelöst, konnte sich aber nie annäherungsweise gegen die etablierte Plattform Nodejs behaupten Zudem entwickeln sich JavaScript und der ECMA-Standard sehr rapide weiter und es wäre sehr viel Aufwand, die Engine im JDK auf Stand zu halten Keinen Einfluss hat der Ausbau übrigens auf das API javaxscript, mit dem man beliebige Skriptsprachen aus einer Java-Anwendung heraus starten kann Möchte man in Zukunft direkt auf der JVM JavaScript-Code ausführen, sollte man sich auch die polyglotte GraalVM näher anschauen Damit lassen sich auch noch verschiedene andere Sprachen wie Ruby, Python usw ausführen

Ebenfalls entfallen werden die JVM-Portierungen für Solaris/SPARC Diese sind noch ein Überbleibsel aus den Sun-Zeiten Frühere Java-Versionen bis einschließlich JDK 14 bleiben auf den alten Systemen weiterhin lauffähig Falls der Bedarf besteht und sich interessierte Entwickler finden, können diese Varianten auch wiederbelebt werden Im Moment möchte Oracle die freigewordenen Kapazitäten aber nutzen, um andere Features voranzutreiben

Bei den Garbage Collectors hat sich in den vergangenen Jahren ebenfalls viel getan Die automatische Speicherbereinigung war in den Anfangsjahren von Java eines der Killerargumente, mit dem man sich von der Konkurrenz abgehoben hat Die Wahl des Garbage-Collector-Algorithmus hat natürlich direkt Einfluss auf die Performance einer Anwendung Es gab schon immer verschiedene Implementierungen, aus denen man wählen konnte und die je nach Szenario mehr oder weniger gut geeignet waren Durch die Weiter- und Neuentwicklung von Garbage Collectors konnte bereits in den letzten Jahren immer wieder an der Performanceschraube gedreht werden So wurden beim Umstieg von Java 8 auf 11 von vielen Entwicklern signifikante Performanceverbesserungen gemessen, ohne eine Zeile Code geändert zu haben Der Hintergrund ist der Wechsel des Standard-Garbage-Collectors zum G1

Mit dem OpenJDK 15 hat sich nun der Status des ZGC von Experimental- zum Production- Feature geändert JEP 377 Der ZGC wird als skalierbarer Garbage Collector mit niedriger Latenz angepriesen Er bringt eine Reduzierung der GC-Pausenzeiten mit sich und kann mit beliebig großen Heap-Speichern umgehen von wenigen Megabytes bis hin zu Terabytes Ebenfalls in den Production-Status überführt wurde der in Java 12 erstmals eingeführte und ursprünglich bei Red Hat entwickelte Shenandoah GC JEP 379 Weder ZGC noch Shenandoah sollen übrigens den aktuellen Standard-GC G1 ersetzen Sie bieten einfach eine Alternative, die bei bestimmten Szenarien performanter sein kann

Ein ?Hidden Feature?, das aber eher für Bibliothek- und Framework-Entwickler interessant ist, wurde mit dem JEP 371 hinzugefügt Ziel der sogenannten Hidden Classes ist es, dynamisch zur Laufzeit erstellte Klassen leichtgewichtiger und sicherer zu machen Bei den bisherigen Mechanismen ClassLoader::defineClass und Lookup::defineClass gab es keinen Unterschied, ob der Bytecode der Klasse dynamisch zur Laufzeit oder statisch beim Kompilieren entstanden ist Damit waren dynamisch erzeugte Klassen sichtbarer als notwendig Hidden Classes können weder von anderen Klassen eingesehen oder verwendet werden noch sind sie über Reflection auffindbar Als ein Anwendungsfall könnte javalangreflectProxy versteckte Klassen definieren, die dann als Proxy-Klassen fungieren Zu beachten ist bei Hidden Classes aber das Problem, dass sie derzeit noch nicht in Stacktraces auftauchen Das erschwert natürlich eine notwendige Fehlersuche

Fazit

Java 15 macht wieder einen grundsoliden Eindruck Oracle hat das nun nicht mehr ganz so neue Releasemanagement weiterhin gut im Griff und konnte erneut pünktlich liefern Im März 2021 steht mit Java 16 schon das nächste Major-Zwischen-Release auf dem Plan, bevor dann im Herbst mit der Version 17 erneut eine Version mit Long Term Support folgt Für das OpenJDK 16 wurden, Stand jetzt, bereits fünf JEPs eingeplant und drei weitere vorgeschlagen Unter anderem geht es um den sich bereits in Arbeit befindlichen Wechsel bei der Versionsverwaltung Umstieg von Mercurial auf Git und den Umzug der OpenJDK-Quellen nach GitHub Bis zum Feature-Freeze im Dezember werden noch weitere API-Erweiterungen und neue Features folgen Wir dürfen gespannt sein, was uns erwarten wird Genügend Stoff liefern die Inkubatorprojekte Loom, Amber, Valhalla und andere auf jeden Fall

Auch mit 25 Jahren gehört die Programmiersprache Java noch längst nicht zum alten Eisen Im Ranking des Tiobe-Index ist Java im September 2020 zwar nur noch auf dem zweiten Platz Aber das ändert sich regelmäßig, und der Langzeittrend zeigt, dass Java in den letzten 20 Jahren immer unter den Top 3 gelandet ist Im Moment deutet nichts darauf hin, dass sich daran in den nächsten Jahren etwas ändern könnte

Der Beitrag Java 15 erschienen: Das sind die Neuerungen im OpenJDK 15 ist auf entwicklerde erschienen


Arbeiten im Home Office: Warum Vertrauen integraler Bestandteil moderner Sicherheitsstrategien ist (19.10.2020 12:36:17)

Das Arbeiten im Home-Office sicherzustellen, ist nicht nur eine Frage technologischer Gegebenheiten und Infrastrukturen Im digitalen Zeitalter ist die IT-Sicherheit auch eine Frage des Vertrauens und wie sehr sich Mitarbeiter auf Technologien einlassen können

Um die Sicherheit in einer Betriebsumgebung zu garantieren, brauchen Führungskräfte einen Ansatz, der das Vertrauen im gesamten Netzwerk stärkt Aus meiner Erfahrung als Chief Information Security Officer habe ich fünf Schritte erarbeitet, die Manager von Wirtschafts- und Technologieabteilungen nutzen können, um das Vertrauen zwischen Mitarbeitern, Prozessen und Plattformen zu stärken Diese Schritte tragen zur sicheren Arbeit bei, ganz egal von wo diese ausgeführt wird

Schritt 1: Setzen Sie Prioritäten

Nicht alles in einem Unternehmen muss so sicher sein wie ein Bankschließfach Ein IT-Sicherheitskonzept, das allem und jedem gleichermaßen gerecht wird, ist und war schon nicht sinnvoll bevor COVID-19 sich in unser Arbeitsumfeld eingeschlichen hat

In jedem Unternehmen bedeuten verschiedene Arten von Informationen auch ein unterschiedliches Maß an Sicherheit, das aufgebracht werden sollte Unabhängig davon, ob es sich beispielsweise um finanzielle Informationen oder Gesundheitsdaten handelt, gilt stets: Führungskräfte benötigen einen klaren Überblick darüber, welche gefährdeten Daten möglicherweise auch dem Unternehmen schaden könnten Die Kontrolle über diese wichtigen Daten muss erlangt, die Eigentumsverhältnisse geklärt werden ? und dann im Anschluss ganz natürlich in den Arbeitsablauf integriert werden So wird ein vertrauensvoller Umgang der Mitarbeiter mit ihren Daten und ein höheres Maß an Sicherheitskontrollen gewährleistet

Seit Beginn der Corona-Pandemie sehe ich in meiner täglichen Arbeit immer mehr Kunden, die ihre Sicherheitsstrategien vertiefen und sich auf die Kernelemente des jeweiligen Unternehmens konzentrieren Sie unterscheiden, was wichtig ist und was nicht, und genau deshalb werden diese Führungskräfte die Effektivität ihrer Sicherheitsstrategien erhöhen Sie kommen Problemen zuvor, die das Vertrauen in ihr Unternehmen nachhaltig schädigen könnten

Schritt 2: Beherrschen Sie die Grundlagen

?Wer hohe Türme bauen will, muss lange beim Fundament verweilen?, wusste schon Aristoteles Doch was heißt das für moderne Unternehmen? Eine ganz elementare Säule unternehmerischer Kompetenzen bildet vor allem die Vertrauensbasis, auf der flexible und ortsunabhängige Arbeit überhaupt erst möglich ist Diese umfasst mehrere Komponenten: Einerseits betrifft dies das Vertrauen der Unternehmensführung selbst in die Sicherheit digitaler Ressourcen, andererseits das Vertrauen der Kunden in den Schutz der eigenen Daten Und nicht zuletzt betrifft es auch das Vertrauen der Mitarbeiter in die Technologien, die sie in ihrer täglichen Arbeit unterstützen

In einer Welt, die durch Home-Office und mobiles Arbeiten dominiert wird, würden die meisten Unternehmen davon profitieren, ihr Identitätsmanagement zu stärken und formale Prozesse einzuführen, die Sicherheitsprotokolle überwachen und aufeinander abstimmen Ein starkes Identitätsmanagement bedeutet aber auch, über solide Prozesse für Onboarding- und Offboarding zu verfügen Angestellte, Prozesse selbst, APIs usw So wird verhindert, dass Zugriffe ermöglicht werden, die Ihre Daten und Informationen in Gefahr bringen, weil Personen Zugang haben, die eigentlich keinen mehr haben sollten Da helfen bewährte Verfahren wie beispielsweise die Multifaktor-Authentifizierung, bei der mehrere Berechtigungsnachweise angefordert werden, und die Malware-Erkennung, die Unternehmen vor schädlicher Software schützt
In Kombination mit einem starken Identitätsmanagement tragen solche und andere Verfahren dazu bei, dass nur Personen auf Ihr System zugreifen, die auch wirklich dazu berechtigt sind Auch die Kontrolle der Sicherheitsprotokolle sollte nicht vernachlässigt werden, da diese Ihnen dabei hilft, unautorisierte Zugriffe rechtzeitig auszumachen und Bedrohungen dementsprechend schnell zu verhindern

Schritt 3: Schenken Sie den Ablenkungen besondere Aufmerksamkeit

Sicherheitsexperten wissen, dass das Verhalten der Endnutzer immer noch eines der größten Sicherheitsrisiken darstellt Dennoch glaube ich, dass die Endnutzer mit dem richtigen Ansatz auch die größten Sicherheitsbefürworter sein können Entsprechende Aufklärung von Nutzern über mögliche Bedrohungen und gängige Verfahren wird oft nur als nettes Extra angesehen, dass im Falle einer Krise jedoch ganz schnell in Vergessenheit gerät Doch genau dann ist diese Aufklärung eigentlich am wichtigsten Social Engineering ist seit Langem ein großer Bedrohungsfaktor Durch geschickt eingefädelte zwischenmenschliche Interaktionen versuchen Angreifer ihre Opfer zu manipulieren und somit beispielsweise an sensible Daten zu gelangen Die Erfolgsquote der Angreifer ist auch hier höher, wenn in Krisenzeiten die Aufmerksamkeit der Opfer auf anderen Bereichen liegt, sie daher unaufmerksam und verwundbar werden und ohne böse Absichten wichtige Zugangsdaten oder Informationen freigeben Spezielle Aufklärungsprogramme und Hinweise sind daher wichtiger als je zuvor und machen deutlich, worauf besonders jetzt, aber natürlich auch außerhalb der Krise zu achten ist

Tatsache ist, Arbeitnehmer sind abgelenkter denn je seit dieser Pandemie, da sie in behelfsmäßigen Heimarbeitsplätzen arbeiten ? umringt von Familie und Haustieren und meist sogar in Mehrzweckumgebungen wie Schlafzimmern und Küchen Dennoch wollen genau diese Mitarbeiter immer noch gute Entscheidungen treffen Die Entwicklung und Vermittlung klarer Richtlinien über sichere Geräte und der regelmäßige Austausch von Informationen über das sich verändernde Bedrohungsumfeld, tragen dazu bei, das Vertrauen bei den Mitarbeitern aufzubauen und zu stärken

Auch Unternehmen, die noch nicht über Aufklärungsprogramme verfügen, müssen das nicht allein bewältigen Sie können sich in diesem Bereich nach anderen Führungskräften umsehen, die sie mit ihren Kompetenzen unterstützen Das fördert zeitgleich die Lernkultur innerhalb ihres Unternehmens

Schritt 4: Ermutigen Sie Ihre Mitarbeiter, effektive Entscheidungen zu treffen

Solange Endnutzer Sicherheit als etwas ansehen, das ihnen im Weg steht, werden sich Unternehmen immer mit mehr Risiken konfrontiert sehen, als sie es eigentlich müssen Wirksame Sicherheit entsteht durch Anwendungen und Lösungen, die einfach zu implementieren und zu befolgen sind

Meine Philosophie ist, dass die besten Sicherheitslösungen eingebaut, aber nicht lästig sind Die Sicherheit sollte in die Datenstruktur eingebaut werden und keine Hürden zwischen den Menschen und den von ihnen benötigten Informationen entstehen lassen Nur dann können Nutzer auch zu Sicherheitsbefürwortern werden Das bedeutet auch, ihnen Wegweiser an die Hand zu geben, die ihre Entscheidungen erleichtern und nicht etwa ihre Produktivität einschränken Hochentwickelte Produkte wie KI-gesteuerte Datenklassifizierung sind inzwischen eine große Hilfe, und können die Sicherheit in Workflow-Prozesse integrieren, ohne dabei neue Hürden aufzubauen

Für die Führungskräfte von heute ist die Investition in Sicherheitslösungen, die reibungslos funktionieren, daher eine direkte Investition in die Menschen und deren Arbeitskultur Sie schaffen bei den Nutzern ein Gefühl der Eigenverantwortung für die von ihnen entworfenen und geteilten Inhalte Das hilft Mitarbeitern zu erkennen, dass sie mehr als nur ein Job Titel sind, was wiederum das gesamte Vertrauen im Unternehmen stärkt

Schritt 5: Führen Sie mit Einfühlungsvermögen

Wir leben in einer unvollkommenen Welt Der effektivste Weg, um starke und vertrauenswürdige Netzwerke aufzubauen, ist die Erkenntnis, dass digitales Vertrauen immer ein fortschreitender Prozess ist, der sich letztendlich nur um Menschen dreht

Meiner Erfahrung nach ist der effektivste Weg, Vertrauen aufzubauen, zuzuhören, zu lernen und mit Einfühlungsvermögen zu führen Wenn Mitarbeiter Ihnen sagen, dass die Sicherheitsprotokolle schwer zu befolgen sind, halten Sie ihnen keine Vorträge mit erhobenem Zeigefinger Versuchen Sie stattdessen, sie zu verstehen und annehmbare Lösungen zu finden, mit denen alle einverstanden sind Ermutigen Sie die Menschen dazu, über Fehler und Schwierigkeiten zu sprechen, und begrüßen Sie proaktives Verhalten Das Vertrauen innerhalb eines Unternehmens wird größer, wenn es auch von Ihrer Seite umso mehr entgegengebracht wird, und wenn Menschen das Gefühl haben, dass Ihnen zugehört wird

Und warum ist das so wichtig, um das mobile Arbeiten sicher zu gestalten und auch zukünftig zu ermöglichen? Vertrauen gestaltet ein Arbeitsumfeld voller motivierter Mitarbeiter, die sich mitverantwortlich für den Erfolg des Unternehmens fühlen ? ein Sicherheitsfaktor, den man mit Geld nicht kaufen kann

Der Beitrag Arbeiten im Home Office: Warum Vertrauen integraler Bestandteil moderner Sicherheitsstrategien ist ist auf entwicklerde erschienen


Neuer Look für alle: UI für Windows ? aktueller Stand, heutige Optionen und die Zukunft (19.10.2020 12:00:29)

Applikationen für Microsoft Windows spalten sich in zwei Lager Zum einem gibt es die klassischen Windows-Anwendungen und zum anderen die Apps für die UWP Nahezu alle Features und Updates sind auf die UWP ausgerichtet, zum Beispiel neue Controls für das User Interface, Toast-Benachrichtigungen, Deployment über den Store sowie Fluent Design Wie man diese Features auch in klassischen Apps nutzt, ist Gegenstand dieses Beitrags

Der Beitrag Neuer Look für alle: UI für Windows ? aktueller Stand, heutige Optionen und die Zukunft ist auf entwicklerde erschienen


Webpack 5, npm CLI 7 und VS Code 1.50 ? Unsere Highlights der Woche (19.10.2020 10:54:43)

Die letzten 7 Tage waren wieder voller IT-News rund um aktuelle Releases So lieferte Microsoft mit VS Code 150 und NET 50 RC 2 zwei große, neue Veröffentlichungen Auch das mittlerweile mit GitHub verbundene npm lieferte mit seinem CLI v7 eine neue Version ab Am meisten interessierten sich unsere Leser vergangene Woche aber für das Release von Webpack 5

Wie jeden Montag haben wir wieder die meistgelesenen Artikel der letzten Woche zusammengetragen Darunter befinden sich wieder einige frische Releases aus der IT-Welt Vor allem die Veröffentlichungen aus dem Microsoft-Umfeld haben viele Interessenten gefunden Voller Spannung erwarten auch wir das endgültige Release von NET 50 im November Bis es so weit ist, wünschen wir einen schönen Zeitvertreib beim Lesen unserer News

webpack 5 ist da: Module Federation offiziell verfügbar

webpack 5 ist offiziell veröffentlicht worden Die neue Version des Module Bundlers für JavaScript bringt einige größere Neuerungen mit Darunter ist die Module Federation, die Microfrontends viel attraktiver machen könnte Das ist aber nicht die einzige große Neuerung: Dass webpack 5 keine Polyfills für Nodejs-Kern-Module mehr mitbringt, ruft gemischte Reaktionen hervor

npm CLI 7 veröffentlicht: Workspaces verfügbar

npm 7 ist da Die neue Version des CLI ändert einiges am beliebten Package Manager und war entsprechend lange in Arbeit Dafür bringt das Update aber auch jede Menge neuer Features mit, darunter beispielsweise Workspaces und die automatische Verwaltung von Peer Dependencies

Visual Studio Code 150: Neue Debugging-Features und ARM-Support

Microsofts Open-Source-Editor Visual Studio Code ist in Version 150 erschienen Language Hover ist nun auch während des Debuggings verfügbar, die Größe von gepinnten Tabs kann verändert werden, und erstmals kann VS Code auch auf ARM64-Architekturen wie einem Raspberry Pi installiert werden

DevOps-Trends: Kubernetes ist erste Wahl bei der Container-Orchestrierung

Wenn von DevOps die Rede ist, dann darf ein Schlagwort nicht fehlen: Kubernetes In Teil 3 unserer Serie werfen wir einen detaillierten Blick auf die Trends rund um die Methode zur Orchestrierung von Cloud-Containern ? und beantworten letztlich auch die Frage, was Unternehmen mit einem traditionellen IT-Hintergrund bei den neuen Entwicklungen rund um Hybrid-Cloud, Open Source, Containerization und der Automatisierung des Anwendungsmanagements im Auge behalten sollten

React: Neue JSX-Transforms & eine Mögliche Zukunft mit ES Modules?

React 17 erhält neue JSX Transforms, die in Kooperation mit Babel entwickelt wurden Die Neuerung ist nun auch in alten Versionen der Library verfügbar und könnte in Zukunft an Bedeutung gewinnen, wenn React eine geplante große Änderung einbaut

Weitere Must-Reads der Woche

  • NET 50 Release Candidate 2: Updates für ASPNET Core
  • Auf dem Weg zu Angular 11: Trusted Types mit v1100-next6 in Core integriert
  • PHP 80-Features im Fokus: match Expressions
  • Women in Tech: ?Stelle viele Fragen und lass dich nicht von negativen Leuten abhalten?

Der Beitrag Webpack 5, npm CLI 7 und VS Code 150 ? Unsere Highlights der Woche ist auf entwicklerde erschienen


PHP 8.0-Features im Fokus: Weak Maps (19.10.2020 07:06:49)

Das Release von PHP 8 steht kurz bevor und mit ihm eine Reihe von Verbesserungen, neuen Funktionen und die generelle Überarbeitung, um die weit verbreitete serverseitige Websprache noch besser zu machen In dieser Serie wollen wir darauf eingehen, was Sie über PHP 8 wissen sollten

Der Countdown zum großen Release von PHP 8 ist bereits angebrochen Die lang erwartete neue Version enthält eine ganze Reihe von neuen Funktionen und Verbesserungen, die den Entwicklern das Leben leichter machen sollen In dieser Serie werfen wir einen Blick auf diese Neuerungen und was sie für die Nutzer bedeuten Im zweiten Teil beschäftigen wir uns mit den neuen Weak Maps

Mit PHP 74 wurde das Konzept der Weak References eingeführt, die es ermöglichen, ein Objekt zu referenzieren, ohne seinen Referenzzähler zu erhöhen Das ist ein wenig obskur und in der Praxis oft auch nicht sehr nützlich Worauf wir wirklich gewartet haben, sind die Weak Maps, die mit PHP 80 kommen werden

Weak Maps sind ein wenig sonderbar zu erklären, habt also bitte etwas Geduld mit mir Wenn wir ein Objekt erstellen und es einer Variablen zuweisen, passiert normalerweise Folgendes: Das Objekt wird im Speicher erstellt, und dann wird die Variable als Verweis darauf kreiert Stellen wir uns vor, dass die Variable nur die ID des Objekts hat, nicht das Objekt selbst Wenn wir dem gleichen Objekt eine weitere Variable zuweisen, gibt es immer noch nur ein Objekt, aber zwei Variablen mit der ID des Objekts

<?php

$a = new Foo;
$b = $a;

// $b and $a are now separate variables that 
// both point to a Foo object in memory somewhere

Jedes Mal, wenn eine Variable entfernt wird, prüft PHP, ob es noch andere Variablen gibt, die auf dieses Objekt verweisen Ist dies nicht der Fall, wird es als sicher angesehen, dieses Objekt für den Nutzer zu löschen Dieser Vorgang wird „Garbage Collection“ genannt, und ich habe ihn hier stark vereinfacht, weil das für unsere Zwecke ausreicht

Eine Weak Reference oder eine Weak Map ist eine Möglichkeit, eine Variable zu erstellen, die sich wie jede andere verhält, aber wenn PHP prüft, ob irgendwelche Variablen immer noch auf ein Objekt zeigen, zählen diese „schwachen“ Variablen nicht Wenn es also immer noch drei Weak References gibt, die auf ein Objekt zeigen, aber keine normalen Variablen, wird PHP das Objekt löschen und stattdessen die verbleibenden Variablen auf Null setzen

Passwords are so 1990

by Sam Bellen Auth0

Code Review? Upgrade? Refactoring? Let Your CI Help And Work For You

by Tomas Votruba Rector

Domain-Driven PHP

by Henning Schwentner WPS – Workplace Solutions

Zero Trust ? why are we having this conversation?

mit Victoria Almazova Microsoft

Digitaler Ersthelfer

mit Martin Wundram DigiTrace GmbH

Betrachten wir uns dies nun einmal in der Praxis Angenommen, wir haben eine Reihe von Product-Objekten, die von jemand anderem in einer Art Bibliothek geschrieben wurden Wir können sie nicht ändern, aber wir werden sie verwenden Für jedes Product möchten Sie zusätzliche Informationen nachverfolgen, die sich nicht auf dem Originalobjekt befinden, z B eine Liste von Review-Objekten zu diesem Product Eine Unterklassifizierung des Products zur Aufnahme von Rezensionen ist möglich, aber unübersichtlich Außerdem stößt die Vererbung beim Versuch, mehrere Module miteinander zu kombinieren, häufig auf Probleme Stattdessen erstellen wir ein separates ReviewList-Objekt, das eine Weak Map von Review-Objekten enthält, die bei Bedarf lazy geladen und nach Product getracked werden Sobald ein Product aus dem Speicher entfernt wurde und alle Variablen, die darauf verweisen, den Scope verlassen haben, brauchen wir diese Review-Objekte nicht mehr zu behalten Eine WeakMap fungiert in diesem Fall als selbstreinigender Cache und funktioniert ähnlich wie ArrayObject

<?php
class ReviewList
{
    private WeakMap $cache;

    public function __construct
    {
        $this->cache = new WeakMap;
    }

    public function getReviewsProduct $prod: string
    {
        return $this->cache[$prod] ??= $this->findReviews$prod->id;
    }

    protected function findReviewsint $prodId: array
    {
        // 
    }
}


$reviewList = new ReviewList;
$prod1 = getProduct1;
$prod2 = getProduct2;

$reviews_p1 = $reviewList->getReviews$prod1;
$reviews_p2 = $reviewList->getReviews$prod2;

// 

$reviews_p1_again = $reviewList->getReviews$prod1;

unset$prod1;

In diesem Beispiel verfügt ReviewList über einen internen „Weak Cache“, in dem die Product-Objekte abgelegt sind Wenn getReviews aufgerufen wird und sich der gewünschte Wert bereits im Cache befindet, wird er zurückgegeben Wenn nicht, wird er in den Speicher geladen, im WeakMap-Cache gespeichert und dann zurückgegeben Das ??= Bit dort ist ein null-coalesce-assign, eingeführt in PHP 74, und das beste Vorgehen in diesen Fällen Später, wenn wir $reviews_p1_again erstellen, wird der Wert stattdessen im Cache gesucht

Irgendwann in der Zukunft verwerfen wir jedoch $prod1 Im Allgemeinen wird das nicht manuell geschehen, aber die Variable wird aus dem Scope genommen und vom Garbage Collector eingesammelt werden Da es keine normalen Verweise auf das Product-1-Objekt mehr gibt, wird der Verweis auf dieses Objekt in der $cache Weak Map automatisch entfernt Dies führt auch dazu, dass die entsprechende Liste der Review-Objekte ebenfalls automatisch gelöscht wird Der Speicher wird auf diese Weise geschont und es ist kein weiterer Aufwand erforderlich

Wenn wir versuchen würden, dasselbe mit einem normalen Array zu tun, gäbe es zwei Probleme:

  1. Arrays können keine Objekte als Keys verwenden, also müsste es von der Produkt-ID oder ähnlichem abgeschrieben werden
  2. Das heißt, der Cache wüsste nicht, dass er sich selbst beschränken müsste, wenn das Objekt, für das er ein Cache ist, vom Garbage Collector eingesammelt wird Wir können vielleicht eine komplexe Logik mit Destruktoren, globalen Variablen und anderer schwarzer Magie implementieren, aber … bitte nicht Die Chancen, es falsch zu machen, sind hoch, und der Grad der Komplexität, den es einführt, ist es nicht wert

Caching-Szenarien wie diese sind wirklich der einzige starke Anwendungsfall für WeakMap, aber wenn Sie es brauchen, ist es ein großes Ersparnis für Speicher und Code

Wieder einmal haben wir Nikita Popov für den WeakMap RFC zu danken

In der nächsten Woche werden wir uns eine neue Funktion in PHP 80 ansehen, die versucht, „den Milliarden-Dollar-Fehler“ der Datenverarbeitung zu beheben

Der Beitrag PHP 80-Features im Fokus: Weak Maps ist auf entwicklerde erschienen


Sieben Mal daneben: Warum Continuous Delivery manchmal scheitert (16.10.2020 12:00:24)

Kontinuierliches Liefern Continuous Delivery und Infrastructure as Code sind Mainstream, oder? Zumindest behaupten viele, es zu praktizieren Wer es nicht macht, ist draußen neudeutsch: out ? oder zumindest ganz weit drin im Zimmer Konsequent zu Ende betrachtet müssten wir also eine enorme Verbesserung der Liefergeschwindigkeit in unserer IT-Welt sehen ? und zwar nicht nur bei kleinen Unternehmen und Projekten

Der Beitrag Sieben Mal daneben: Warum Continuous Delivery manchmal scheitert ist auf entwicklerde erschienen


React: Neue JSX-Transforms & eine Mögliche Zukunft mit ES Modules? (16.10.2020 09:06:42)

React 17 erhält neue JSX Transforms, die in Kooperation mit Babel entwickelt wurden Die Neuerung ist nun auch in alten Versionen der Library verfügbar und könnte in Zukunft an Bedeutung gewinnen, wenn React eine geplante große Änderung einbaut

React 17 bekommt neue JSX Transforms Das hat Luna Ruan aus dem React-Team bereits vor einigen Wochen angekündigt Die Neuerungen sind optional und ändern die bisherige JSX-Syntax nicht Sie vereinfachen jedoch die Arbeit mit JSX, das nicht nativ von den Browsern verstanden wird und erst via Babel oder andere Tools übersetzt werden muss Mit den nun eingeführten Neuerungen, die keinen Breaking Change darstellen, kann JSX verwendet werden, ohne React zu importieren; stattdessen gibt es neue Entry-Points in React, die für die Transforms verwendet werden Die neuen Transforms können zu kleineren Bundles führen, was jedoch vom Setup abhängig ist Das React-Team plant außerdem, ausgehend von dieser Neuerung weiter an der Vereinfachung der Library zu arbeiten und eine große Änderung an einer künftigen Version vorzunehmen

React bald ohne Standard-Export?

Dass solche Updates zu Major-Versionen implementiert werden, gehört zum üblichen Vorgehen im Rahmen der Entwicklung von Frameworks und Libraries Auch, dass die neusten Releases vor der Major-Version schon aktualisiert werden, ist typisch, um die Upgrade-Hürde niedrig zu halten Das React-Team ist nun jedoch einen Schritt weiter gegangen: Die Versionen 16140, 1570 und 01410 haben Support für die neuen Transforms erhalten Damit seien alle wichtigsten noch verwendeten Versionen abgedeckt, wie das React-Team auf Twitter mitteilt

The Microfrontend Revolution: Using Webpack 5 Module Federation with Angular

by Manfred Steyer

React Workshop: Single Page Applications Powered by React

by Sebastian Springer

Mit Manfred Steyer SOFTWAREarchitekt

Manfred ist Trainer und Berater mit Fokus darauf, im gesamten deutschen Sprachraum Unternehmen bei der Umsetzung webbasierter Geschäftsanwendungen mit Angular zu unterstützen

Neuer Blogpost zu Angular 10

Angular 10, Ivy und die Zukunft von Angular

Für Entwickler, die die neuen Transforms verwenden, steht außerdem ein Codemod zur Verfügung, das die dann überflüssigen Imports entfernt Einen Wermutstropfen haben die neuen Transforms jedoch: Wer Hooks verwendet, muss weiterhin React importieren, um das JSX zu transformieren Da beide Versionen der JSX Transforms parallel verwendet werden können, sollte das jedoch nicht zu Problemen führen Allerdings könnte es sich lohnen, bereits jetzt auf die neuen Transforms zu setzen, wo es möglich ist: Das React-Team kündigte nämlich an, in einer der kommenden Major-Versionen einen nativen Support für ES Modules einzuführen Mit dieser Umstellung, die aber dezidiert nicht zu v17 vorgesehen ist, sollen die Standard-Exporte entfallen Zu diesem Zeitpunkt könnte die jetzt eingeführte Neuerung der JSX Transforms eine größere Bedeutung gewinnen

Beispiele für die neuen JSX Transforms sowie Hinweise zum Codemod sind im offiziellen Blogpost zu den Neuerungen zu finden

Der Beitrag React: Neue JSX-Transforms & eine Mögliche Zukunft mit ES Modules? ist auf entwicklerde erschienen


Women in Tech: ?Stelle viele Fragen und lass dich nicht von negativen Leuten abhalten? (16.10.2020 08:42:21)

In unserer Artikelserie ?Women in Tech? stellen wir inspirierende Frauen vor, die erfolgreich in der IT-Branche Fuß gefasst haben Heute im Fokus: Charlotte Mach, Cloud Native Engineer bei Container Solutions

Die Tech-Industrie wird von Männern dominiert ? so weit, so schlecht Doch langsam, aber sicher bekommt der sogenannte Boys Club Gesellschaft von begabten Frauen: Immer mehr Frauen fassen in der Branche Fuß

Aus diesem Grund wollen wir hier spannenden und inspirierenden Frauen die Möglichkeit geben, sich vorzustellen und zu erzählen, wie und weshalb sie den Weg in die Tech-Branche gewählt haben Aber auch Themen wie Geschlechtervorurteile, Herausforderungen oder Förderungsmöglichkeiten kommen zur Sprache

Unsere Women in Tech: Charlotte Mach

Charlotte ist ein Cloud Native Engineer bei Container Solutions, hat einen Masterabschluss in Informatik und eine intensive Hassliebe zu jeder Art von Debugging Sie wohnt momentan in Amsterdam und ist ein großer Fan von Keksen und schlechten Witzen

Seit wann interessierst Du dich für Tech-Bereich?

Als ich 13 Jahre war, gab mein Vater mir meine erste Linux CD, die ich allerdings hauptsächlich zum Tux spielen genutzt habe In meiner Jugend habe ich viel Zeit am Computer verbracht, mehr zum Spielen und Online-Sein Mit 19 habe ich mich dann für ein Informatikstudium entschieden, weil ich richtig programmieren lernen wollte

Wie verlief Dein Weg bis zum jetzigen Job? Welche unterschiedlichen Karrierewege hast Du eingeschlagen?

Während des Informatikstudiums habe ich verschiedene Jobs als Entwicklerin, Sysadmin und Tutorin gehabt, danach bin ich nach Amsterdam gezogen und habe ein paar Jahre als Solution Engineer für Oracle gearbeitet, bevor ich Mitte 2019 meine jetzige Stelle angefangen habe

Gibt es Personen, die Dich unterstützt haben?

Bei Container Solutions hatte ich anfangs eine Mentorin, die mir auch jetzt noch oft gute Ratschläge gibt In den anderen Situationen gab es leider wenige Frauen in leitenden Rollen, allerdings findet man immer unterstützende Organisationen, wie Rails Girls http://railsgirlscom/ oder Women-in-Tech https://women-in-techorg/

Hat man Dir Steine in den Weg gelegt?

Für mich kamen viele Probleme aus der eigenen Unsicherheit und dem Gedanken mehr leisten zu müssen

Bis auf einige dumme und herablassende Kommentare über mich und Frauen generell während des Studiums hatte ich meistens sehr freundliche Kollegen Meine Familie und Freunde haben mich immer unterstützt und ermutigt den Weg einzuschlagen, der mich am glücklichsten macht Für mich kamen viele Probleme aus der eigenen Unsicherheit und dem Gedanken mehr leisten zu müssen, weil Frauen eben oft als weniger technisch gesehen werden Wenn man das aber einmal ablegt, ist es einfacher, negative Einflüsse zu ignorieren

Wie sieht Dein Arbeitsalltag aus?

Ich bin Cloud Native Engineer bei Container Solutions Ich arbeite hauptsächlich an Kundenprojekten mit Technologien wie Docker und Kubernetes sowie in verschiedenen Cloudumgebungen, an der Edge und mit GitOps Wir haben auch ein paar Open-Source-Projekte zu denen ich beitrage, wie die JavaOperator SDK Das heißt, ein typischer Tag besteht aus Meetings mit meinem Projektteam, Recherche und Arbeit an verschiedenen Pipelines und Plattformen Ab und zu kommen Trainings oder das Halten von Vorträgen dazu

Hast du selbst etwas entwickelt?

Meine Projekte neben der Arbeit sind meist Spielereien, wie ein Tetris-Klon in Python, oder ein Raspberry Pi Magic Mirror mit Sensoren

Warum gibt es so wenige Frauen in der Tech-Branche?

Es gibt noch nicht genug weibliche Vorbilder, vor allem in leitenden Positionen

Die stereotypischen Geschlechterrollen helfen auch wenig Frauen, die Interesse an Technologie zeigen und dann gesagt bekommen, dass ihnen entweder das Talent oder die Intelligenz fehlt, sind leider keine Seltenheit Mathelehrer die verkünden, dass Mädchen einfach weniger mathematisch begabt sind Das geht bis hin zu Videospielen oder wissenschaftlichem Spielzeug, das hauptsächlich für Jungen vermarktet wird Während es Bereiche gibt, in denen jede/r willkommen ist und als ebenbürtig gesehen wird, wird von Frauen oft erwartet, dass sie sich ?beweisen? Vor allem als Einsteiger ist das schwer, wenn man etwas lernen will und sich dafür ständig rechtfertigen muss

Welche Stereotypen sind dir in Bezug auf ?Women in Tech? schon begegnet?

Dass es einfacher sei für Frauen in der Tech-Branche, weil ja Männer den ?weniger technisch begabten Frauen? gerne helfen, trägt oft dazu bei, dass Frauen weniger Respekt genießen und weniger ernst genommen werden Frauen wollen keine Sonderbehandlung, sondern einfach nur die Chance, eine Karriere in einem spannenden Feld zu durchlaufen Warum sollten nicht alle Mädchen und auch Jungen! die Möglichkeit haben, ihren Berufsweg völlig frei zu wählen, ohne durch Stereotypen eingeschränkt zu werden?

Und warum sollten mehr Frauen in der Tech-Branche arbeiten?

Durch verschiedene Perspektiven in der Entwicklung wird Technologie einfach besser

Durch verschiedene Perspektiven in der Entwicklung wird Technologie einfach besser Zumindest für die Softwareentwicklung lässt sich sagen, dass ohne weibliche Designer und Entwickler etwa die Hälfte der Nutzer vermutlich nicht genug bedacht wird Das Gleiche passiert leider auch durch das Fehlen von Menschen mit anderen Hautfarben und Lebenserfahrungen Von Künstlicher Intelligenz, die mit hauptsächlich weißen Gesichter trainiert wird und dann dunkelhäutige Menschen benachteiligt, zu fehlenden oder schlecht gemachten Periodentrackern in Gesundheitsapps Durch verschiedene Perspektiven in der Entwicklung wird Technologie einfach besser

Gleichzeitig macht es die Arbeit meistens angenehmer, wenn man nicht die einzige Frau alleine in einem Meeting voller Männern ist

Wie sieht die Zukunft aus ? wird die Diversity-Debatte bald Geschichte sein?

Einiges Tages wird die Debatte hoffentlich so absurd sein wie die Vorstellung, als Frau nicht wählen zu dürfen Allerdings ist bis dahin noch viel zu tun Nicht nur die Diversität von Geschlechtern, sondern auch die Unterrepräsentation von Minderheiten in der Tech-Industrie sind wichtige Diskussionsthemen für die Zukunft

Tipps & Tricks

Sei du selbst und stelle viele Fragen, lass dich nicht von negativen Leuten abhalten und was am wichtigsten ist: Hab Spaß dabei!

Der Beitrag Women in Tech: ?Stelle viele Fragen und lass dich nicht von negativen Leuten abhalten“ ist auf entwicklerde erschienen


.NET 5.0 Release Candidate 2: Updates für ASP.NET Core (15.10.2020 13:41:54)

Microsofts NET 50 hat den zweiten und letzten Release Candidate erhalten Darin finden sich gemäß dem neuen Release Cycle auch die jeweils zweiten RC von Entity Framework Core und ASPNET Core Letzteres erhält neue Updates

Microsoft hat den zweiten Release Candidate für NET 50 veröffentlicht Gemäß neuem Release Cycle, nach dem EF Core und ASPNET Core gleichzeitig mit NET 50 Updates erhalten, hat das Tech-Unternehmen auch für die beiden Frameworks die zweiten Release Candidates veröffentlicht Beide sind sogenannte Go-Live-Versionen und sind somit zum Einsatz in der Produktion freigegeben Während NET 50 und EF Core laut Microsofts Blog-Einträgen keine neuen Features und Updates erhalten, sondern nur noch auf Feedback bezüglich Bugs warten, bekommt ASPNET Core noch einmal kleinere Optimierungen

Verbesserte Isolation der CSS-Bundles in Blazor

Blazor Components unterstützt das Feature der isolierten CSS-Bundles seit NET 50 Preview 8 Ursprünglich waren die CSS-Dateien aller referenzierten Projekte und Pakete in einem einzigen Bundle, nämlich scopedstylecss, zu finden Mit dem Update reagiert Microsoft auf das eingegangene User Feedback Demnach wird nun je referenziertem Projekt oder Paket ein eigenes Bundle angelegt Alle so entstandenen Bundles werden dann durch ein @import-Statement gesammelt in das Bundle der App transportiert

Der Name des einzelnen Bundles entspricht dann „{project_name}stylecss“ und kann standardmäßig aus dem Root-Pfad der App referenziert werden In dem Blog-Eintrag von Microsoft zur Veröffentlichung findet sich dazu folgendes Beispiel:

<link href="BlazorApp1stylescss" rel="stylesheet" />

Kompatibilitätstools für Browser-Plattformen

Die Kernbibliotheken des Frameworks in NET 50 sind mit Anmerkungen versehen worden, die anzeigen, welche APIs in Browserszenarien unterstützt werden Das Analysetool für Plattformkompatibilität gibt somit immer dann Warnungen aus, wenn APIs aus einer Blazor WebAssembly App verwendet werden, die beim Ausführen in einem Browser in WebAssembly nicht unterstützt werden Auch hierfür findet sich ein Beispiel im Blog-Eintrag der Veröffentlichung:

ASPNET Core Blog

 

Das vollständige Release wird auf der NET Conf 2020 Mitte November stattfinden Laut Microsoft ist NET 50 schon in einigen unternehmenseigenen Teams im Einsatz und macht dem Konzern nach Hoffnung darauf, dass die Deadline eingehalten wird Wer sich für alle Neuerungen in ASPNET Core interessiert, wird in folgendem Blog-Eintrag fündig

Der Beitrag NET 50 Release Candidate 2: Updates für ASPNET Core ist auf entwicklerde erschienen


Einstieg in Unity: Erschließung neuer Use Cases und Mehrwerte mit Unity (15.10.2020 12:00:00)

Unity ist eine beliebte Engine zum Erstellen von 2D/3D-Anwendungen und seit vielen Jahren im Einsatz Nicht nur kleine Indiestudios, sondern auch große Firmen und AAA-Game-Studios setzen auf Unity zur Entwicklung von Applikationen und Spielen, die auf zahlreichen Plattformen lauffähig sind Mit den 2D/3D-Möglichkeiten ergeben sich auch interessante Use Cases und Mehrwerte für den Anwender Zeit, unser Portfolio zu erweitern!

Der Beitrag Einstieg in Unity: Erschließung neuer Use Cases und Mehrwerte mit Unity ist auf entwicklerde erschienen


Diese Seite wurde in 0.211029 Sekunden geladen