Microsoft releases Visual Studio Code update 1.86 with new features like voice command „Hey Code“ for accessibility, individual window zoom, smarter version diffing, and updated Python support.
Hey Leute, checkt das aus! Microsoft hat gerade die neueste Visual Studio Code-Version rausgehauen, Nummer 1.86 – frisch und fertig im Januar. Echt coole Features sind am Start! Zum Beispiel gibt’s jetzt diesen „Hey Code“-Sprachbefehl, der macht’s einfacher für alle, die mit der Barrierefreiheit kämpfen. Außerdem könnt ihr den Zoom jetzt für jedes Fenster einzelne einstellen – mega praktisch! Und wenn ihr mit Versionsunterschieden arbeitet, das haben die auch smarter gemacht. Ach, und für die Python-Freaks unter euch – die Erweiterung ist auch auf dem neuesten Stand. Voll gut, oder?
Die neue Accessibility-Einstellung, accessibility.voice.keywordActivation, ermöglicht sprachgesteuerte Kommunikation mit GitHub Copilot Chat. Durch den Sprachbefehl „Hey Code“ startet eine Sprachsession mit dem KI-Assistenten, wobei die Stimmerkennung lokal erfolgt und nicht an Server gesendet wird. Weitere Features und Installation erfordern die Erweiterungen GitHub Copilot Chat und VS Code Speech.
Die Python-Erweiterung bringt die Python-Debugger-Erweiterung mit, die sich aus der Debugpy Extension entwickelt hat. Das Debugging ist nun von der Python Extension entkoppelt, um Kompatibilitätsprobleme zu vermeiden.
Was ist Livewire: Stell dir vor, du könntest coole Single-Page-Apps zaubern, ganz ohne dich in externe JS-Frameworks wie Vue.js reinfuchsen zu müssen. Mit Laravel Livewire geht das! Das Ding ist ein Full-Stack-Framework, das wie Pech und Schwefel zu Laravel passt und dir hilft, flotte dynamische Benutzeroberflächen zu entwickeln, ohne dass du auf die Vorteile von Laravel verzichten musst.
Zum Feature: Schauen wir uns nun an, wie wir unser Component aktualisieren können, wenn Events auftreten, und zwar unter Verwendung des neuen #[On]-Attributs.
Ab Livewire Version 3.4.0 kannst du das #[On]-Attribut auf Klassenebene verwenden. In früheren Versionen konntest du dieses Attribut nur zu deinen Klassenmethoden hinzufügen. In Livewire Version 2 war es üblich, Listener hinzuzufügen, die deine Komponente aktualisieren würden, zum Beispiel:
Wenn ein Monitor gelöscht wurde, würde dies sicherstellen, dass deine Übersicht aktualisiert wird und der entfernte Monitor nicht mehr aufgeführt ist. Mit der neuen Version ist dies noch einfacher geworden. Jetzt können wir das #[On(`monitorDeleted`)]-Attribut verwenden, um das gleiche Ergebnis zu erzielen.
class MonitorOverview extends Component
{
#[On('monitorDeleted')]
public function refresh() {}
}
Hey, hast du schon gehört, dass du jetzt in PHP Attribute definieren kannst? Das geht seit PHP 8 und ist echt eine coole Sache. Falls du Bock hast, mehr darüber zu lernen, check mal diesen Artikel aus. Der erklärt’s dir von A bis Z!
Zusammenarbeit, Dankbarkeit und Sicherheit – eine aufregende Veränderung bei Sitealarm steht uns bevor!
In diesem Blogbeitrag möchte ich mich vor allem an meine Sitealarm-Community wenden, da zum 31. Januar 2024 eine bedeutende Veränderung ansteht, die alle Projekte beeinflussen wird.
Uns bei Sitealarm liegt kontinuierliche Weiterentwicklung am Herzen, um unsere Leistungsfähigkeit zu optimieren und unseren Service den sich wandelnden Anforderungen anzupassen. Die bevorstehende Anpassung, die den Zugriff auf Webseiten betrifft, markiert einen weiteren Meilenstein in dieser Entwicklungsrichtung.
Warum führen wir diese Neuerung ein? Unser jährliches Ziel ist es, das Leistungsportfolio von Sitealarm mit neuen, verbesserten Funktionen zu erweitern. Diese spezifische Anpassung ist ein wesentlicher Bestandteil unserer fortlaufenden Bemühungen, die Anwendung stets auf dem neuesten Stand zu halten und sicherzustellen, dass sie sämtlichen Anforderungen in vollem Umfang gerecht wird.
Was verändert sich nun?
Die Neuerung ist im Prinzip ein Filter, der den Zugriff auf eine Website nur noch ermöglicht, wenn der Domaininhaber oder Betreiber zuvor seine Zustimmung erteilt hat. Dies kann durch verschiedene Methoden erfolgen, wie zum Beispiel durch ein Meta-Tag, eine Verifizierungsseite oder einen TXT-Record. Die detaillierten technischen Informationen und Anwendungsmöglichkeiten findet ihr in unserer Dokumentation.
Wir möchten betonen, dass dieses Feature seit diesem Jahr bereits verfügbar ist, jedoch optional genutzt werden kann. Dies ermöglicht eine höhere Sicherheit und Kontrolle über den Zugriff auf die Seiten im Rahmen des Sitealarm-Services.
Und warum ist das nun verpflichtend?
Ihr mögt euch sicherlich fragen, warum wir diese Änderung nun einführen. Die Gründe sind eigentlich recht einfach. In letzter Zeit haben wir eine verstärkte Aktivität bemerkt, die nicht in unserem Sinne ist. Dies betrifft sowohl Zugriffe, die wir nicht in unserem Netzwerk sehen möchten, als auch Zugriffe, die potenziell zu Problemen führen könnten, für die wir keine Verantwortung übernehmen wollen.
Als anschauliches Beispiel wurde das Monitoring missbraucht, um sogenannte CronJobs auszuführen. Das bedeutet, dass durch dynamische Anpassungen über die API und kontinuierliche Aufrufe bestimmte Zwecke auf der gegenüberliegenden Seite erreicht wurden, die nicht mehr im Einklang mit dem ursprünglichen Zweck des Monitorings stehen.
Oder es wurden Überwachungsinstanzen auf Seiten eingerichtet, die niemals beobachtet werden sollten oder dürften. In einigen Fällen erhielten wir unerwünschte E-Mails und mussten kurzfristig Beschränkungen einführen, für die eigentlich kein zeitliches Kontingent vorgesehen war.
Wie geht es weiter?
Wir sind uns bewusst, dass diese Veränderung Unsicherheit hervorrufen kann. Aus diesem Grund möchten wir euch bereits jetzt darüber informieren, damit ihr euch rechtzeitig darauf vorbereiten könnt. In den kommenden Tagen werden wir ausführliche Informationen zu den spezifischen Auswirkungen dieser Anpassung bereitstellen. Zusätzlich erhaltet ihr entsprechende Updates per E-Mail, über unsere Kanäle und über den WhatsApp-Kanal (Zhylon Channel).
Über Uns – Hinter den Kulissen von Sitealarm
Ihr habt sicherlich bemerkt, dass wir von „wir“ sprechen, wenn es um Sitealarm geht. Das ist kein Zufall – es spiegelt unsere gemeinsame Reise und unsere gemeinsamen Ziele wider. Doch hinter den Kulissen möchte ich mit euch ein wenig teilen: In Wirklichkeit bin ich der alleinige Entwickler von Sitealarm. Diese Rolle zu übernehmen, insbesondere bei einer Anwendung, die von vielen genutzt wird, bringt Herausforderungen mit sich.
Als ich vor 15 Jahren diesen Service ins Leben gerufen habe, konnte ich nicht ahnen, wie groß dieses Projekt einmal werden würde und wie viele Menschen sich letztendlich daran beteiligen würden. Immerhin ist es auch heute noch ein vollkommen kostenloser Service. Mein eigentlicher „Verdienst“ besteht dabei in der unschätzbaren Erfahrung, die ich gewonnen habe, und in eurem überwältigenden Zuspruch und Vertrauen in den Service. Es ist unglaublich erfüllend zu sehen, wie unsere Community gewachsen ist und dass wir gemeinsam auf dieser Reise sind. Eure Unterstützung ist der wahre Motor hinter dieser Initiative, und dafür bin ich euch zutiefst dankbar.
Warum diese Offenheit? Es ist mir wichtig, transparent zu sein und euch an der Entwicklung teilhaben zu lassen. Als Einzelentwickler ist es unerlässlich, bestimmte Schritte zu gehen, die das Projekt voranbringen, selbst wenn sie auf den ersten Blick nicht offensichtlich sind. Obwohl es manchmal herausfordernd sein kann, motiviert mich der Gedanke, immer weiter zu machen und Sitealarm mit neuen Funktionen zu verbessern.
Zum Schluss
Euer Feedback ist uns (mir) wichtig! Wenn ihr Fragen habt oder Unterstützung benötigt, stehen wir euch jederzeit zur Verfügung. Wir schätzen eure Zusammenarbeit und sind zuversichtlich, dass diese Maßnahme letztendlich zu einer verbesserten Version unserer Projekte führen wird.
Wir danken euch für euer Verständnis und eure Unterstützung!
In diesem Blogbeitrag erfährst du, wie du Livewire-Komponenten effektiv aufteilst, Views und Validierungsregeln strukturierst und Sub-Komponenten wiederverwendest. Optimiere deine Livewire-Entwicklung mit bewährten Best Practices. Bleib dran!
Manchmal, egal welche Lösung du zur Entwicklung deines Systems verwendest, kommt der Punkt, an dem alles etwas zu groß wird und unübersichtlich zu werden droht. Zum Glück bietet Livewire eine Lösung für dieses Problem.
Was ist Livewire?
Laravel Livewire bietet eine Möglichkeit, dynamische Benutzeroberflächen zu erstellen. Anstatt einer JavaScript-Bibliothek wie Vue oder React erlaubt es Entwicklern, ihren Code in PHP-Komponenten und Blade-Templates zu schreiben. Es ist fantastisch. Ich nutze es bereits im vielen Projekten. Wenn du es noch nicht ausprobiert hast, empfehle ich dir, es einmal anzuschauen.
Was ist das Problem?
Oftmals beinhalten Tutorials und Beispiele nur den Aufbau kleiner Komponenten, wie z.B. eines Kontaktformulars oder einer To-Do-Liste. Das ist vollkommen in Ordnung, da es ermöglicht, den Aufbau von Anfang bis Ende zu zeigen. Doch in einem Projekt aus dem wahren Leben hat man oft mit großen und sehr komplexen Systemen zu tun und erhalten hier dann kundenspezifische Anforderungen die umgesetzt werden sollen.
Nehmen wir als Beispiel eine Website zur Buchung von Mietwagen für den Urlaub. Bei der Buchung müssen Kundendetails wie Name und Adresse, der gewünschte Fahrzeugtyp sowie Extras wie zusätzliche Versicherungen oder sogar Hotelreservierungen erfasst werden.
Eine Herangehensweise wäre die Erstellung einer einzigen großen Komponente mit der gesamten Logik und einer einzelnen Ansichtsdatei, die immer länger wird. Das funktioniert wahrscheinlich gut, aber es gibt Tools, mit denen man diese Aufgabe in überschaubare Abschnitte aufteilen kann.
Die Aufteilung der Komponentenklasse mit Traits
Livewire v2 bietet eine großartige Funktion von PHP namens Traits, mit der man eine Datei erstellen kann, die innerhalb einer Klasse verwendet wird und der Klasse die Methoden und Eigenschaften des Traits zur Verfügung stellt. Dadurch kann man die Logik auf mehrere kleinere und besser handhabbare Dateien aufteilen und sie in der Hauptkomponente wiederverwenden.
Wenn wir zu unserem Beispiel der Mietwagenbuchung zurückkehren, benötigen wir möglicherweise ein Trait, das unsere Methoden zum Abrufen von Fahrzeugdaten enthält, ein weiteres Trait für Standortinformationen wie Adressen oder ein Trait zur Speicherung der Kundendetails.
Aber Livewire-Traits gehen sogar noch weiter.
Neben der Definition eigener Methoden können wir auch eine Namenskonvention verwenden, um uns in die Livewire-Lifecycle-Hooks einzuklinken. Wir haben gesagt, dass wir ein Trait erstellen werden, das sich auf Fahrzeuginformationen konzentriert, aber wie machen wir diese Daten für den Rest der Komponente verfügbar? Wir könnten eine Methode aus der mount-Methode der Hauptkomponentenklasse aufrufen, aber wir könnten dies auch im Trait selbst tun, indem wir die mount-Methode des Traits verwenden.
Wenn unser Trait „VehicleInformation“ heißt, können wir eine Methode „mountVehicleInformation“ in unserem Trait erstellen, in der wir die Fahrzeugdaten einer öffentlichen Variable zuweisen. Dadurch stehen sie der Hauptkomponente zur Verfügung.
Aus dem obigen Beispiel können wir sowohl in der Hauptkomponentenklasse mit $this->vehicles als auch in der Blade-View mit $vehicles auf die Fahrzeugdaten zugreifen.
Eine weitere Herausforderung bei der Entwicklung großer Livewire-Komponenten besteht darin, die Views und Validierungsregeln zu verwalten. Um die Code-Wartbarkeit und die Wiederverwendbarkeit zu verbessern, können wir auch hier auf die Aufteilung setzen.
Zusätzlich können wir Sub-Komponenten erstellen, um bestimmte Funktionen oder Abschnitte unserer Hauptkomponente zu modularisieren.
In meinem nächsten Beitrag werde ich detailliert darauf eingehen, wie wir dies auch erreichen können. Sobald dieser Beitrag fertig ist, werde ich hier einen Link bereitstellen, damit ihr ihn lesen könnt.
Bleibt gespannt und freut euch auf weitere Tipps und Tricks zum effizienten Entwickeln mit Livewire!
Wie jedes Jahr, schreibe ich in den letzten Wochen des Jahres immer ein kurzes Review über das vergangene Jahr. Dies ist besonders für mich immer interessant, da ich mir wirklich bewusst nochmal Gedanken dazu mache, was gut oder schlecht gelaufen ist. Aber durch den Beitrag hier erhaltet ihr auch einen Einblick und vielleicht ein wenig Inspiration.
Gerade nutze ich die Zeit diesen Beitrag zu schreiben, auf dem Weg nach Köln zur diesjährigen Firmenveranstaltung. Es ist auch was besonderes dieses Jahr. Denn Tricept feiert den 22. Geburtstag. Darum sind neben den Mitarbeiterinnen und Mitarbeiter auch z.B. Kunden eingeladen. Auch für mich ist es dieses Jahr etwas besonderes. Denn ich bin nun auch schon seit 10 Jahren bei Tricept mit dabei.
Als ich vor 10 Jahren meine Ausbildung zum Fachinformatiker in der Anwendungsentwicklung angefangen habe, hätte ich nie gedacht so lange hier zu bleiben. Da ich zuvor eine Ausbildung zum Koch absolviert hatte, kannte ich viele Kollegen die oft nur wenige Jahre oder gar Monate in einem Betrieb gearbeitet haben.
Doch nicht bei Tricept. Nach meiner Ausbildung wurde ich übernommen und die Projekte und Aufgaben wurden immer vielfältiger und spannender. Natürlich aber auch fordendern und anspruchsvoller. Wenn ich zurück auf die letzten gut 8 Jahre blicke, die ich hauptsächlich im Bereich für Phoenix II gearbeitet habe, ist es wirklich erstaunlich was wir für ein tolles Produkt entwickelt haben und was ich auch alles dazu beitragen konnte.
Mittlerweile ist mein Beruf wirklich viel mehr als nur das reine Arbeiten. Es ist meine Berufung. Ich stecke neben der Arbeit auch in meiner Freizeit wirklich sehr viel Zeit in private Projekte und das Kennenlernen von neuen Funktionen, Packages oder Technologien. Dies ist auch der Grund, warum ich Tools wie Sitealarm.de, Zhylon.de oder meinen URL-Shortener entwickelt habe und auch ständig weiter am laufen halte.
Dieses Jahr war geprägt von vielen Änderungen. Auch durch einen Umzug in Sommer, musste ich viele Gewohnheiten umstellen und die neue Umgebung auf mich einwirken lassen. Insgesamt hatte ich dieses Jahr recht wenig Zeit in private Projekte gesteckt. Erst jetzt so gegen Ende Oktober gelingt mir es wieder besser.
Insgesamt glaube ich aber, dass ich meine privaten Ziele gut eingehalten habe und auch einige Projekte weiterentwickeln konnte. Ich habe mir ja extra nicht zu viel vorgenommen. Etwas schade finde ich jedoch weiterhin, dass ich viel zu wenig hier auf meinem Blog schreibe oder auf Twitter poste. Das werde ich vermutlich dann nächstes Jahr angehen.
Technologisch habe ich noch intensiver mit ClodFlare beschäftigt. Habe hier z.B. die Zero Trust Technology angesehen. Auch im Bereich Server Management im Bezug auf Zhylon habe ich einiges neues gelernt. Und mein Projekt Management Tool ist mittlerweile soweit ausgereift, dass es schon einige Bekannte als echte Lösung verwenden.
Ich hoffe das nächste Jahr geht genau so gut weiter wie es aktuell läuft. Noch etwas mehr Zeit für die Familie und vielleicht auch weiterhin mehr Bewegung durch Fitness.
Ich empfehle dir auch Mal auf die freien Stellen bei Tricept mal zu schauen. Wenn sich die Digitalisierung interessiert und eine Ausschreibung auf dich zu trifft, dann bewerbe dich gerne bei der Tricept.
Nun heißt es anpacken und die letzten Wochen des Jahres noch super abschließen.