Willkommen bei nil?, dem »Developer- oder Werkstatt-Blog« des Uninformat mit Artikeln rund um das Thema »Webentwicklung«. Die Artikel sind im »klassischen« Blog-Stil umgekehrt chronologisch aufgelistet. nil? kann über einen RSS- oder JSON-Feed abonniert werden. Mehr zum Autor und weitere Infos, Links und Kontakt-Optionen gibt es im Footer.

Erlesenes IV

erlesenes git vuejs

Viele Browser-Tabs müssen mal wieder gedumpt werden!

Programmierer der einen Zettel mit der Beschriftung »Python« hochhält. Das kann nicht sein Ernst sein! (Bild: Hitesh Choudhary auf Unsplash, thanx!)

Python ist nicht gerade meine Lieblingssprache, alleine das seit Ewigkeiten parallele Existieren unterschiedlicher Versionen ist irgendwie »WTF?«. Heise läutet das Ende von Python 2 ein, worüber der Schockwellenreiter nur lachen kann.

Das Arbeiten mit git ist immer wieder eine Quell der Freude, besonders wenn mehrere Devs zusammmenarbeiten. Drev DeVault gibt »Tips for a disciplined git workflow«. Z.B.: »Pick a random git man page and read it now.«

»Oh Shit, git!« gibt Tipps für populäre »Notsituationen«, denn:

»Git is hard: screwing up is easy, and figuring out how to fix your mistakes is fucking impossible.«

JavaScript, wir alle lieben JavaScript! DWB hat »7 Useful JavaScript Tricks«. Den hier kannte ich noch nicht, »Get Unique Values of an Array«, ist ergreifend schlicht:

  var j = [...new Set([1, 2, 3, 3])]
  >> [1, 2, 3]

Apropos JavaScript, Vue.js ist hier noch stets ein Thema.

Wir Old-School-Developer lieben und kennen unser jQuery, »Making the Move from jQuery to Vue« bei CSS-Tricks führt in Vue.js aus der jQuery-Perspektive ein.

Zum tiefergehenden Einstieg hat Tania Rascia mit »Getting Started with Vue - An Overview and Walkthrough Tutorial« ein großartiges und umfassendes Tutorial geschrieben.

Weitere Vue.js-Links:

Die Auswahl des passenden JavaScript-Frameworks ist zwar bis zu einem gewissen Punkt »Religion«, aber sie haben trotzdem alle ihre Stärken und Schwächen. »Why I prefer React over Vue« vollzieht den Entscheidungsprozess nach.

Um zu entscheiden, muss man aber alle einigermaßen gut kennen. Deshalb ist es interessant, wenn sich Sunil Sandhu die Mühe macht, die selbe App mit React und Vue.js zu bauen: »I created the exact same app in React and Vue. Here are the differences.«.

Wenn es dann doch React sein soll, ist das ausführliche e-Book »React lernen und verstehen« von Manuel Bieh hilfreich.

Aber vielleicht braucht man das auch gar nicht: »You probably don't need that hip web framework«.

Und wenn all das zu langweilig wird, kann man sich auch esoterischen Dingen zuwenden. »legit« ist eine Programmiersprache, die in git-Commits programmiert wird:

»Programs written in legit are defined entirely by the graph of commits in a Git repository.«

Es ist schon erstaunlich, auf was für Ideen die Leute kommen…

Git-Integration in Sublime deaktivieren

sublime editor

Screenshot des MacOS-Desktops mit neun Sublime-Fenstern

Kürzlich kam die Version 3.2 meines aktuellen Lieblingseditors Sublime Text heraus. Eine der spektakulären Neuerungen: Git-Integration im Editor. Damit gab es ein handfestes Problem. Da ich in Sublime »lebe« (siehe Bild, alle Arbeits-, Neben- und Blog-Projekte sind ständig in einem eigenen Fenster offen), war Sublime dauerhaft damit beschäftigt, den Git-Status der vielen offenen Dateien zu ermitteln und hielt permanent die CPU auf Trab.

Die Lösung: Git-Integration abschalten! Das geht mit einer Zeile in der Konfiguration überraschend einfach, steht in der Doku aber ganz unten im letzten Absatz und war deshalb für »tl;dr«-Kandidaten wie mich schwer zu finden:

  "show_git_status": false

Davon abgesehen stehe ich als »Old-School-Developer« der IDE-isierung aller Dinge skeptisch gegenüber. Das produziert auf die Dauer nur »Bloatware«. Ein Programm soll eine Aufgabe erfüllen, und die gut. Sprich: Ein Editor soll editieren, mit Git interagiert der Git-Client…

Erlesenes III

erlesenes frontend css

Höchste Zeit, mal wieder die Browser-Tabs und Bookmarks abzuarbeiten!

Es gibt frische Handbücher und Checklisten! Wie die »Front-End Performance Checklist 2019«: »Let’s make 2019… fast! An annual front-end performance checklist (PDF/Apple Pages/MS Word), with everything you need to know to create fast experiences today. Updated since 2016.«

Und das »Front-end Developer Handbook 2019«. Soso, das soll man also alles wissen. ;-)

Ein Beitrag, der ausgesprochen »opiniated« ist: »7 web development practices challenged«. Zitat:

»There are many myths in the software business that have led to wrong best practices. In this post I will address 7 of these best practices and explain on which wrong assumptions they are based.«

Eine Handvoll Rezepte für die Arbeit mit Flexbox präsentiert Ahmad Shadeed: »CSS Flexbox: 5 Real World Use Cases«

Lazy-Loader-JS für bildlastige Sites könnte bald der Vergangenheit angehören: »Native image lazy-loading for the web!«. Im Moment macht es aber erst einmal mehr Arbeit…

console.log() kennen alle, aber Console API hat noch mehr zu bieten: »Getting creative with the Console API!«. console.table z.B…

Ein paar Links aus der Vue-Welt (einige gefunden bei F-LOG-GE, Linkfutter):

Apropos »Meta-Betrachtungen« und dem Meta-Thema dieses Blogs, »Old-School-Development«:

Bridget Stewart schaute sich ein Einführungsvideo zu Vue an und geriet darob ins Philosophieren über das Frontend und die Idee, die Business-Logic einer Web-Anwendung ins Frontend zu packen: »Stuffing the Front End«

Ein in dem Zusammenhang typischer Text: »Why I miss Rails«. Ein Developer, der in der »Business-Logik-mit-JavaScript-ins-Frontend«-Hölle steckt und die Entwicklung mit Ruby On Rails vermisst:

»Now, I know Rails isn’t universally beloved by developers, and I’m not suggesting that we give up React and es7 and go back to writing server-templated web-apps like it’s 2012 again.«

So, warum nicht? Manchmal ist genau das die Lösung, auch wenn »man« das angeblich 2019 nicht mehr macht…

Und wenn es trotz all dieser Dinge mal langweilig ist? Dann schreibt man ein Web-Framework in bash

Hausmitteilung: »Old-School-Developer«

miszellen

Bild »IBM Type 26 Printing Card Punch Keyboard« von Ivan Lian

[Foto: »IBM Type 26 Printing Card Punch Keyboard« von Ivan Lian, Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Generic Licence, thanks!]

Manche Leute wechseln ihre Blog-Domains schneller als Hipster-Devs das JavaScript-Framework!

Knapp zwei Monate nach der Eröffnung gibt es für nil? schon wieder etwas Neues. Die »Coolen« haben jetzt alle eine .dev-Domain! Deshalb firmiert dieses kleine Dev-Blog ab sofort mit dem Untertitel »Old-School-Web-Developer-Blog« auf einer eigenen modischen .dev-Domain: old-school.dev. Was dann natürlich eher nicht »old-school« ist, sondern mehr so Hipster-Dev-Kram. Die alte Domain hat selbstverständlich einen Redirect auf die neue. Außerdem hat das Blog ein kleines optisches »Realignment« bekommen. Und benutzt nun Flexbox statt Floats!

»Old-School«, was soll das heißen? Wir »erfahrenen« (oder »alten«…) Webentwickler sind in manchen Dingen etwas »altmodisch«. Wir überlegen es uns z.B. ganz genau, eine laufende Anwendung komplett neu zu schreiben, weil ein neues JavaScript-Framework versucht, einen Paradigmenwechsel in der Entwicklung durchzusetzen und in Reddit, Hacker News und Blogs alle schreiben, dass man das jetzt unbedingt so machen soll. Oder wir rendern komplexe Web-Anwendungen lieber auf dem Server, statt sie als monströse SPA mit dem heißesten neuen JS-Framework im Client ablaufen zu lassen…

Manchmal ist »Simple & Boring« die bessere Lösung. Und man sollte sich davor hüten, aus einer Flut von Artikeln und Vorträgen über ein neues Framework oder eine neue Software auf augenblickliche Relevanz für die eigene Arbeit zu schließen. Jeremy Keith schrieb dazu:

»I don’t know about you, but I constantly feel like I’m behind the curve because I’m not currently using TypeScript or GraphQL or React.«

Letztendlich ist »da draußen« eine Menge erprobtes und »altes« Zeug im Einsatz, man hört nur weniger davon. Denn es ist wie Metafizzy schrieb:

»You don’t hear about TextMate because TextMate is old. What would I tweet? Still using TextMate. Still good.«

So sieht es aus. In diesem Sinne: Weiter geht's, und »Happy Coding«!

Entwickler-Weisheiten: Serverless

serverless rants

»Uncle Dave« Wyner:

»Serverless is one of those unfortunate names that confuse the hell out of people because it’s a lie. Your software most definitely runs on a server.«

Lt. einer Quora-Frage wurde der schöne Begriff Serverless erstmals 2010 von einem Startup namens PiCLoud benutzt und dann 2012 in einem Blogeintrag bei Readwrite in den Diskurs geworfen.

Natürlich geht in Wirklichkeit nichts ohne Server, und wenn man Serverless deployed, benutzt man halt Server anderer Leute in der Cloud statt des eigenen. Wahrscheinlich wollte man damals kein Wort mit Cloud verwenden, weil das Wort Cloud nach der ersten großen Euphorie zu Web-2.0-Zeiten schon ein wenig nach »Sicherheitslücken« und »Abhängigkeit von Big Playern aus USA« klang…

Erlesenes II

erlesenes javascript vuejs

Es ist mal wieder Zeit, den Bookmark-Folder für Development-Links zu leeren!

Auch wir »Old-School-Programmierer« wollen ja stets Neues lernen. Z.B. modernes JavaScript, damit sich die »jungen Leute« nicht über unseren Code kaputtlachen. »Modern JavaScript Explained For Dinosaurs« reitet einen schnellen Galopp durch die JavaScript-Moderne und ihre die Festplatten mit Abhängigkeiten füllenden Tools…

Ein Weg, sich Neues anzueignen, ist der Vergleich mit gut abgehangenen alten Tools. »Vue.js vs jQuery: Use Cases and Comparison with Examples« erläutert Lösungen in Vue.js anhand typischer Anwendungsfälle für jQuery. Alternativ: »Vue for jQuery Developers« (via F-LOG-GE).

Neu (nun ja, relativ neu) ist auch die Verwendung von CSS Grids anstelle des guten alten float-Gefrickels. »How You Can Get Started with CSS Grid« bietet eine schöne Einführung in diese Methode.

Unsere Lieblingstätigkeit bei der Entwicklung ist aber natürlich das Kopieren fertiger Lösungen. »8 useful CSS tricks: Parallax images, sticky footers and more« hat ein paar davon auf Lager…

Mit Rails baut man auch gerne REST-APIs. »A minimalistic foundation for a Rails REST API« zeigt eine dabei sinnvolle Vorgehensweise auf.

Wer häufiger auf fremden Servern per ssh arbeitet, wird schon einmal von tmux gehört haben. Ein etwas älterer Artikel mit der Überschrift »Benefits of using tmux - lessons from streamlining a development environment« führt einige sinnvolle Anwendungsfälle zum Einstieg vor.

Und dann wäre da noch Thanos JS. Es verspricht: »Reduce the file size of your project down to 50%, by randomly deleting half of the files.« Endlich eine sinnvolle Hilfe gegen den »Bloat« moderner Web-Projekte…

Nuxt.js

nuxtjs vuejs javascript

Im Zuge meiner Versuche mit Vue.js habe ich Nuxt.js entdeckt. Wofür braucht man das? Im offiziellen Guide steht:

»Nuxt.js is a framework for creating Vue.js applications, you can choose between Universal, Static Generated or Single Page application.«

Also ein Framework, das auf einem Framework aufsetzt. ;-)

Nuxt.js erscheint aber nützliches, als es klingt. Es ist weniger ein weiteres JavaScript-Framework, sondern mehr eine Art Distribution sinnvoller Defaults für die Arbeit an einem Vue-Projekt. Und Nuxt.js liefert serienmäßig alles mit, um aus dem Vue-Meisterwerk eine »universelle« Anwendung zu machen, d.h., man kann mit einer Codebase eine javascript-lastige SPA bauen, aber auch in Vue programmieren und dann alle Vue-Routen als statische HTML-Dokumente rendern lassen. Oder das Ganze mischen.

Ein paar Links zum Einstieg:

Auf dem ersten Blick sieht Nuxt.js sehr vielversprechend aus, aber man muss es (wie alles im Developer-Leben) einmal mit etwas »Richtigem« benutzt haben. Deshalb wird es demnächst mal ausprobiert…

Tagwolke – Aktuelle Themen

Relevante Tags (alle anzeigen) der letzten Beiträge. Eine Tagwolke aller Artikel gibt es im Archiv.