Boehrsi.de - Blog and Community

Boehrsi.de Header Image

I'm a coder

Blog Beiträge

I'm a coder - KW 19

event Erstellt am So. 21.05.17 - 19:15 Uhr von Boehrsi
I'm a coder - KW 19 Image I'm a coder - KW 19 Image

Diese Woche geht es um beliebte und weniger beliebte Bereiche beim Programmieren. Denn Softwareentwicklung ist vielseitig und vor allem wenn man alleine arbeitet, häufig aber auch im professionellen Umfeld, muss man diverse Bereiche abdecken können. Dazu gehören Arbeiten am Netzwerk, Backend Aufgaben und natürlich auch die Erstellung und Erweiterung der UI. All diese Bereiche sind wichtig, doch man hat natürlich seine persönlichen Präferenzen. Ich persönlich setze mich trotz der Komplexität gerne mit Netzwerkaufgaben auseinander. Die Interaktionen über egal welche Art von Netz finde ich extrem interessant, auch wenn es nicht immer ein Spaß ist mit APIs zu reden, vor allem wenn sie nicht unter der eigenen Kontrolle stehen. Auch der Kern einer App, mit all den Models, Interaktionen und Abstraktionen, gefällt mir durchaus gut. Hier sieht man zwar selten was man exakt tut direkt auf dem Bildschirm, aber das Funktionen im Kern tun was sie sollen ist durchaus erfüllend. Interessanterweise ist meine Achillesverse die UI Entwicklung und das obwohl ich sehr gerne direkt sehe was meine Änderungen aktiv tun. Ich bin nicht sonderlich kreativ in diesem Bereich und vor allem stört es mich sehr immer wieder herumprobieren zu müssen, wenn Dinge minimal vom Design abweichen. Durch dieses hin und her bin ich von der UI Entwicklung oft frustriert und das obwohl mir das XML Konstrukt, welches Android nutzt, gut gefällt. Am Ende läuft alles, aber der Zeitaufwand ist meiner Meinung nach häufig unverhältnismäßig, auch wenn die UI natürlich extrem wichtig ist, denn sie ist das was der Nutzer sieht und was er nutzen soll. Wie sieht es bei euch aus, was sind eure Favoriten und wo würdet ihr lieber die Finger von lassen?

Bildquelle: boehrsi.de

I'm a coder - KW 18

event Erstellt am Di. 09.05.17 - 10:00 Uhr von Boehrsi
I'm a coder - KW 18 Image I'm a coder - KW 18 Image

Heute geht es darum wie schwer es mir manchmal fällt private Projekte fertigzustellen. Das der Start schwer ist hatte ich bereits erwähnt, doch wenn man diesen überwunden hat läuft es meistens. Interessanterweise fällt mir allerdings der Abschluss von Projekten ähnlich schwer. Vielleicht will ich einfach nicht fertig werden oder aber mich stört eventuelles negatives Feedback, doch beides sollte ja eigentlich kein Problem sein. Denn ein Abschluss eines Projektes bedeutet mehr Zeit für neues und negatives Feedback ist meistens am hilfreichsten, denn nur so kann man sich wirklich gut verbessern. Trotzdem habe ich unterbewusst das eine oder andere Problem mit diesen Situationen. Ich selber versuche mir Deadlines zu setzen und mich strikt an dieser zu halten, sodass ich nach Abschluss der Coding Phase den Release innerhalb weniger Wochen mache und nicht Monate lang warte. Dies klappt nicht immer, aber es hilft mir auf jeden Fall. Manchmal erwähne ich den Release auch bewusst z.B. hier im Blog, um einen gewissen Druck für mich selbst aufzubauen. Wie sieht es bei euch aus, geht es euch ähnlich und falls ja wie geht ihr dagegen vor?

Bildquelle: boehrsi.de

I'm a coder - KW 17

event Erstellt am Di. 02.05.17 - 20:44 Uhr von Boehrsi
I'm a coder - KW 17 Image I'm a coder - KW 17 Image

Nachdem ich bereits seit einigen Wochen versuche die vor einiger Zeit ausgelassene I'm a Coder News aufzuholen, will ich dies nun endlich nachholen. Das Thema sind Annotations. Also kleine, meistens durch ein @ gekennzeichnete, Strings an Klassen, Methoden, Feldern und wo man sie nicht noch alles findet. Sie erlauben uns diverse Dinge einfacher umzusetzen und ersparen meistens unnötigen Boilerplate Code. Allerdings sollte man immer aufpassen alle Annotations unter allen Entwicklern gleichermaßen bekannt zu machen, denn sonst wird der Code unverständlich. Sofern aber alle Entwickler eines Projekts mit Annotations arbeiten, wird der Code schnell übersichtlich und teilweise sogar besser verständlich. Allem voran wird er aber minimiert und entsprechend auch die Schreibarbeit. Beispiele sind hier Butter Knife, eine Annotation basierte Möglichkeit, um diverse Operationen rund um Views in Android zu vereinfachen. Ebenfalls im Android Bereich, allerdings wesentlich tiefgehender, ist Dagger unterwegs. Dagger wird für Dependency Injection genutzt und nutzt dabei umfangreich Annotations. Beide Libraries verwende ich ausgiebig in privaten, wie auch in professionellen Projekten. Ich kann euch nur raten Annotations mal genauer unter die Lupe zu nehmen, vor allem im Java und Android Bereich sind selbige schon umfangreich in Nutzung.

Bildquelle: boehrsi.de

I'm a coder - KW 16

event Erstellt am Sa. 29.04.17 - 15:12 Uhr von Boehrsi
I'm a coder - KW 16 Image I'm a coder - KW 16 Image

Heute geht es um Reviews, denn auch wenn sie häufig eher störend oder langwierig scheinen, so haben sie durchaus ihre Berechtigung. In meinen privaten Projekten gibt es sie nicht wirklich, höchstens Tests durch Freunde oder Kollegen gibt es. Aber niemand schaut sich meinen Code an. Auf der Arbeit sieht dies anders aus, denn nur nach dem Vier-Augen-Prinzip landet etwas auf dem Entwicklungs-Branch. Mit dieser Haltung verhindert man Unachtsamkeitsfehler und auch die Code Guidelines werden mit höherer Wahrscheinlichkeit eingehalten. Manchmal ergibt sich daraus Mehrarbeit, aber dafür ist der Code hoffentlich ordentlicher und vor allem richtiger. Privat fände ich dies von Zeit zu Zeit glaube ich auch praktisch, allerdings nicht dauerhaft. Denn wenn ich für mich ein paar Zeilen schreibe, möchte ich nicht unbedingt auf Kleinigkeiten hingewiesen werden, welche mir vielleicht sogar klar oder eventuell auch egal waren. Wie sieht es bei euch aus, macht ihre Reviews und wie findet ihr dieses Vorgehen?

Bildquelle: boehrsi.de

I'm a coder - KW 15

event Erstellt am Mo. 24.04.17 - 10:00 Uhr von Boehrsi
I'm a coder - KW 15 Image I'm a coder - KW 15 Image

Diese Woche möchte ich ein paar Worte darüber verlieren warum ich eigentlich Android als Plattform meiner Wahl gewählt habe. Selbiges war schon recht früh klar, da meine ersten Smartphones durchweg Android Geräte waren. Kombiniert man dies nun damit das ich gerne entwickle, begann automatisch das Interesse am selber Erstellen von Apps. Zu Beginn eher minimal, doch später wurde es mehr. Innerhalb des Studiums konnte ich dann noch einige Chancen ergreifen Android Code zu schreiben und somit festigte sich das Interesse. Java Vorwissen aus dem schulischen Umfeld erleichterte den Einstieg hier immens. Konkurrenten waren bekanntlich Microsoft, was mich leider noch nie wirklich reizte, zusätzlich waren sie etwas zu spät für mich dran und Apple. Letztere ist nicht gerade meine Lieblingsfirma und somit standen die Chancen schlecht, dass ich für diese Plattform entwickle. Den Todesstoß für eine eventuelle Entwicklung von iOS Apps war aber definitiv die Hürde einen Mac besitzen zu müssen. Denn nur so kann man die Apps ordentlichen bauen und deployen. Das ist der Hauptgrund warum ich immer einen großen Bogen um iOS gemacht habe. Somit werden wohl auch kleinere Experimente im Gaming-Bereich, welche ich tatsächlich mal vorhabe irgendwann in die freie Wildbahn zu entlassen, nie auf iOS landen, außer sie sollten in irgendeiner Art und Weise erfolgreich sein. Alles in allem blieb ich bei meiner Hauptplattform also einfach bei den von mir genutzten Geräten und den bekannten Sprachen. Etwas langweilig könnte man nun sagen, allerdings beschäftige ich mich nebenbei ja mit diversen anderen Sprachen und Themen im Bereich Entwicklung. Ich persönlich bin mit einer festen Basis (Java + Android) und einem größeren Blick über den Tellerrand übrigens meistens gut gefahren und kann diese Art der Fokussierung nur empfehlen. Dabei meine ich nicht die konkrete Plattform + Sprache, sondern die gute Basis und zusätzlich der Sprung in fremde Gewässer.

Bildquelle: boehrsi.de

I'm a coder - KW 14

event Erstellt am So. 16.04.17 - 14:19 Uhr von Boehrsi
I'm a coder - KW 14 Image I'm a coder - KW 14 Image

Wer programmiert muss irgendwie den Überblick behalten, sowohl im Bereich Issues, wie auch bei der allgemeinen Dokumentation. Außerdem möchte man seine Software vielleicht verteilen und dies vielleicht sogar Open Source. Wie ich dies mache möchte ich heute in meiner wöchentlichen I'm a Coder Rubrik mit euch teilen, denn das Thema lautet Versionsverwaltungsplattformen und Kollaborationstools. Ich selber habe einige private Projekte, wobei auch diese noch einmal in verschiedene Kategorien gehören. Zum einen entwickle ich zum Spaß kleinere Spiele und nehme mit diesem z.B. am Ludum Dare Game Jam Teil. Dies sind aktuell keine ernsten Projekte, sondern eher kleine, lustige und lehrreiche Versuche. Weiter geht es mit lockeren Projekten mit Freunden und Kollegen, auch hier probieren wir eher herum. Ein Beispiel ist hier die Entwicklung eines Minecraft Mods, was allerdings direkt am Start wieder eingeschlafen ist. Als nächstes kommen private Projekte relevanterer Natur, teilweise Open Source, teilweise Closed Source. Die höchste Stufe bei meinen privaten Projekten sind ernst gemeinte Projekte, gemeinsam mit Freunden und Kollegen, welche dann zum Großteil vorerst Closed Source bleiben. In diesen Bereichen gibt es dann noch Abstufungen und Zwischenschritte, denn die Grenzen sind schwammig. Ich nutze sehr unterschiedliche Plattformen, um diese ganzen Bereich abzudecken, dazu findet ihr mehr im unteren Teil der News. Alle Tools die ich aktuell nutze sind kostenfrei, zumindest im Rahmen wie ich sie nutze (weniger als 5 Personen, bzw. keine oder wenige private Repositories bei manchen Anbietern).

Weiterlesen…

Bildquelle: boehrsi.de

I'm a coder - KW 13

event Erstellt am Fr. 07.04.17 - 10:00 Uhr von Boehrsi
I'm a coder - KW 13 Image I'm a coder - KW 13 Image

Zum Programmieren gehört es sich Gedanken zu machen und etwas zu planen. Dabei ist es natürlich wichtig Tools zu haben und seine Planungen entsprechend zu notieren und zu verwalten. Doch nicht immer sind Tools oder Dienste am PC der richtige Weg. Von Zeit zu Zeit sollte man analoge Dinge, also Zettel und Stifte, bevorzugen. So ist zumindest meine Meinung und genau das ist auch der Grund warum ich für diverse Dinge verschiedene Blöcke habe, um dort Gedanken, Ideen, Ansätze und Lösungsvorschläge aufzuschreiben und vor allem auch aufzuzeichnen. Ich unterteile dort nach privaten Projekten, meinen Ideen für Gaming-Projekte und bezüglich Arbeitsprojekten. Dafür habe ich dann entsprechend Blöcke oder Notizhefte dabei und übertrage meine Gedanken direkt. Vor allem die Möglichkeit dies völlig frei und ohne einen festen Rahmen tun zu können hilft mir oft sehr. Ich skizziere dabei viel und notiere Ansätze nur grob. Später überlege ich noch einmal und übertrage wirkliche gute Ideen am PC in entsprechende Verwaltungstools. Danach folgt dann die Umsetzung. Durch diesen Flow arbeite ich mich an die Ideen oder Probleme heran und konnte bis dato fast alles gut lösen und habe obendrein noch einige Ideen welche ich später angehen möchte. Falls auch ihr im Coding Bereich aktiv seid, denkt auch mal über die guten analogen Methoden zur Sortierung eurer Gedanken und Ideen nach, dies hilft manchmal ungemein.

Bildquelle: boehrsi.de

I'm a coder - KW 12

event Erstellt am Fr. 31.03.17 - 10:00 Uhr von Boehrsi
I'm a coder - KW 12 Image I'm a coder - KW 12 Image

Wie angekündigt kommt dieser News etwas zwischen durch, denn durch meinen Urlaub hatte sich alles etwas verzögert. Am Ende der Woche, um genau zu sein am Sonntag, gibt es natürlich auch die gewohnte I'm a Coder News, sodass der wöchentliche Rhythmus wieder gegeben ist. Doch was ist heute eigentlich das Thema? Ganz einfach, nicht programmieren. Wie man das verstehen soll, im Kontext einer Newsreihe die sich rund um das Thema Softwareentwicklung dreht? Eigentlich ganz einfach, es geht um all die Dinge die man neben der eigentlichen Entwicklung macht und machen muss. Dabei meine ich gar nicht so sehr Dinge die in den Bereich DevOps fallen, sondern eher unnötige Dinge wie Upgrades von Frameworks und damit verbundene langwierige Probleme, Stress mit der IDE, plötzlich fehlerhafte Konfigurationsdateien und so weiter. Die Liste ist lang und der Weg steinig, denn so etwas passiert leider immer wieder. Einige der genannten Dinge haben zumindest nach der Behebung Vorteile, so bringen Updates oder Upgrades meistens neue Funktionen oder bessere Performance. Aber von Zeit zu Zeit funktionieren eigentlich stabile Dinge plötzlich nicht mehr, dann beginnt eine anstrengende und unnötige Suche nach Fehlern, die eigentlich keine sein sollten. So geschah es z.B. bei meinem komplexen Projekt rund um Spring Boot, dort konnte ich plötzlich nichts mehr fehlerfrei ausführen, obwohl zuvor alles lief. Nach einigem hin und her bekam ich die Probleme in den Griff, aber dennoch empfand ich sie als absolut unnötig. Doch was kann man gegen solche Dinge tun?

Weiterlesen…

Bildquelle: boehrsi.de

I'm a coder - KW 11

event Erstellt am So. 26.03.17 - 12:09 Uhr von Boehrsi
I'm a coder - KW 11 Image I'm a coder - KW 11 Image

Die letzte I'm a coder News fiel aufgrund meines Urlaubs aus und genau dieser soll auch dieses Mal Thema meiner News sein. Denn Urlaub ist zwar eigentlich eine Zeit in der man nichts schafft, aber genau dies kann auch helfen. Dabei rede ich von richtigem Urlaub, außerhalb des eigenen Heims und somit auch außerhalb der Reichweite der eigenen privaten Projekte. Denn eine Pause in diesem Bereich kann Motivation und neue Ideen bringen. Bei mir hat beides tatsächlich funktioniert, denn nach dieser einwöchigen Pause habe ich nun einiges an neuen Ideen für verschiedene Projekte und zusätzlich habe ich wieder richtig Lust mal etwas in die Tasten zu hauen. Außerdem hat man durch einen Urlaub natürlich auch allgemein wieder neue Energie, zumindest wenn alles wie geplant lief. Somit kann ich nur sagen, auch ein Urlaub von den privaten Projekten kann helfen wieder besser voranzukommen. Um die ausgefallene I'm a coder News aufzuholen gibt es morgen direkt eine weitere für diese Woche, denn diese hier war entsprechend für die Woche davor.

Bildquelle: boehrsi.de

I'm a coder - KW 10

event Erstellt am So. 12.03.17 - 23:08 Uhr von Boehrsi
I'm a coder - KW 10 Image I'm a coder - KW 10 Image

Warum bin ich eigentlich Programmierer oder warum wollte ich es werden? Dies ist das heutige Thema meiner I'm a Coder News. Irgendwie war für mich schon sehr früh klar das ich etwas im Bereich Informatik machen möchte. Ich interessierte mich schnell für Software und auch für Hardware. Während meiner Schulzeit nutzte ich IT bezogene Fächer und mein Informatikstudium brachte mich dann noch weiter auf den Weg in Richtung Softwareentwickler. Während meines Studiums arbeitete ich parallel als IT-Support, wo ich zu einem großen Teil Hardware bezogene Aufgaben übernahm und etwas programmierte. Dabei stellte ich fest das Hardware zwar interessant ist und ich gerne alle paar Jahre einen neuen Gaming-Rechner aufbaue und alle übrigen Teile in Systemen meiner Familie verbaue, ich es aber ungern auf Dauer täglich machen würde. Vor allem die Abwechslung und die nötige Herausforderung beim Erkennen und Lösen von Problemen fehlte mir, denn meistens tauschte ich lediglich Komponenten. Genau dieses Erkennen von Problemen und verschiedene Lösungswege zu erarbeiten ist nämlich meine Hauptmotivation bei der Entwicklung von Software. Ich oder jemand anders hat eine Aufgabe und um diese zu lösen müssen eine Reihe von Teilproblemen erkannt und entsprechend verteilt und gelöst werden. Genau dieses herangehen, welches auch bei sehr ähnlichen Problemen unterschiedlich sein kann und natürlich auch die schlussendliche Lösung sind für mich die Motivation hinter dem Programmieren.

Bildquelle: boehrsi.de

I'm a coder - KW 9

event Erstellt am Mo. 06.03.17 - 10:00 Uhr von Boehrsi
I'm a coder - KW 9 Image I'm a coder - KW 9 Image

Heutiges Thema meiner Coder News sind neue coole Techniken, wie z.B. Cloud Dienste, neue APIs und grundsätzlich alles was man mal ausprobieren möchte, aber dann auf Limitierungen stößt die einen zum eventuellen Umdenken zwingen. Denn aktuell bin ich in der Situation eine kleine App zu basteln und für diese habe ich mich entschieden auf Firebase zu setzen. Firebase ist Googles relativ neue Plattform für diverse Funktionen, darunter auch eine Realtime-Database welche ich für mein Projekt nutze. Dort werden Daten nicht relational, sondern als großes JSON Konstrukt abgelegt und verwaltet. Dies fordert einen zum Umdenken auf, wenn man vorher aus dem SQL Bereich kam. Soweit so gut, alles läuft nach einigen Anläufen und es geht wirklich gut von der Hand. Doch dann kommt man an Punkte an denen die neue Technik sich anders verhält als man es sich wünscht und Dinge schlicht nicht möglich sind. Dazu gehört bei mir der Wunsch nach einem Query, welches ähnlich dem LIKE %SEARCH_STRING% SQL Statement ist. Dies ist schlicht nicht möglich bzw. vorhanden. Dadurch habe ich nun eine neue Technik, die ich eigentlich nur ausprobieren will weil sie neu und interessant ist, auf der anderen Seite aber eigentlich nicht exakt das ist was ich brauche. Somit stelle ich mir quasi selbst ein Bein, denn ich möchte die Basis nun nicht mehr ändern. Ich vermute ich werde Mittel und Wege finden alles entsprechend zu implementieren, doch im Prinzip verfehle ich dadurch mitunter Einsatzgebiete der jeweiligen Tools oder Plattformen. Neues zu nutzen ist also gut zum Lernen, doch man verbeißt sich leider auch leicht. Zumindest mir geht es so, wie sieht es da bei euch aus? Schafft ihr den Absprung in solchen Situationen oder zieht ihr das Ganze dann auch eher durch? Für mich ist der Hauptgrund weiterzumachen übrigens das ich weiter lernen möchte mit Firebase umzugehen, denn die Plattform ist extrem mächtig und wird mir sicherlich noch einmal gute Dienste in Projekten leisten, wofür ich sie aber erst einmal wirklich durchdringen muss.

Bildquelle: boehrsi.de

I'm a coder - KW 8

event Erstellt am So. 26.02.17 - 21:40 Uhr von Boehrsi
I'm a coder - KW 8 Image I'm a coder - KW 8 Image

Abwechslungsreiche Aufgaben sind heute das Thema, denn auch in der Softwareentwicklung gibt es nicht nur immer wieder dieselben Dinge. In diesem Kontext meine ich nicht den Unterschied zwischen Bug und Feature, sondern eher in welchem Bereich man gerade innerhalb der Anwendung unterwegs ist. Ich denke hier an Bereiche wie Netzwerk, User Interface, Business Logic, Abstraktions-Layer, Performance Optimierung und so weiter. Denn zum einen wird durch einen häufigen Wechsel die Vielfalt der Fähigkeiten der Entwickler verbessert und zum anderen lernt man die gesamte Anwendung kennen, wenn man gemeinsam Dinge implementiert. So entsteht weniger Inselwissen und falls einer der Entwickler mal ausfällt kann einer anderer besser einspringen. Vor allem im professionellen Bereich ist dies sehr wichtig. Deswegen begrüße ich es, dass in meinem Arbeitsleben aktuell darauf geachtet wird das zum einen das Wissen verteilt wird und zum anderen auch das quasi alle Entwickler gemeinsam über die Aufgabenverteilung nachdenken bzw. ein gewisses Mitspracherecht haben und der Lead nicht alles ohne weitere Rückfragen blind vergibt.

Bildquelle: boehrsi.de

I'm a coder - KW 7

event Erstellt am So. 19.02.17 - 23:12 Uhr von Boehrsi
I'm a coder - KW 7 Image I'm a coder - KW 7 Image

Heute mal wieder eine Kleinigkeit aus meiner Coding Welt, das Thema ist Produktivität und wann man sich wirklich produktiv fühlt. Denn häufig hat man Aufgaben die sich in ihrer Größe stark unterscheiden. Vor allem im professionellen Bereich tritt dies häufig auf. Denn manchmal hat man viele Bugs, die man teilweise schnell nacheinander beheben kann und sich dementsprechend produktiv fühlt, doch dies ist dann eher kurz der Fall. Denn auch wenn man vielleicht viel in Sachen Tickets erreicht hat, so ist der allgemeine Einfluss der Arbeit eher minimal. Da ist es dann eher relevant eine oder zwei Wochen an einer großen Aufgabe zu arbeiten und am Ende ein neues Feature zu implementieren oder ein neues Konstrukt für die Basis der Anwendung. Hier hat man dann aber wiederum das Risiko nicht in der gesetzten Zeit fertig zu werden und am Ende gar nichts im festgelegten Zeitraum geschafft zu haben. Hier ist es also wichtig, dass man wie bereits von mir angesprochen, die Arbeitspakete ordentlich und lösbar einteilt. Grundsätzlich ist es aber nach meiner Erfahrung auf jeden Fall gut und wichtig Abwechslung zu haben. Also größere Aufgaben die sich mit kleineren abwechseln. Das sorgt für einen ausgeglichenen Alltag und wenig Frustration.

Bildquelle: boehrsi.de

I'm a coder - KW 6

event Erstellt am So. 12.02.17 - 19:57 Uhr von Boehrsi
I'm a coder - KW 6 Image I'm a coder - KW 6 Image

Heute ist mal wieder Sonntag und somit wird es Zeit für eine I'm a coder News. Dieses Mal soll es ein wenig um die richtige Aufteilung von Arbeitspaketen gehen. Wie auch schon in den letzten Beiträgen können die folgenden Dinge meiner Meinung nach sowohl bei privaten Projekten, wie auch im professionellen Bereich eingesetzt werden. Denn eigentlich ist die Regel hier recht einfach: „Lieber viele kleine Schritte nacheinander, als einen Großen“. Dies bietet mehr Möglichkeiten Fehler zu entdecken und zu korrigieren und der Fortschritt kann besser verfolgt werden. Die Zerteilung von Arbeitspaketen ist übrigens nicht nur während der Planungsphase wichtig, auch während der Implementierung können neue Komponenten entdeckt werden, die für ein bestimmtes Ticket relevant sind. Diese können dann innerhalb des eigentlichen Tickets implementiert werden oder aber man gliedert sie aus und bearbeitet diesen Teil zuerst und packt das eigentliche Ticket dann oben drauf. Das bietet einfacherer Reviews und man ist flexibler, wenn z.B. andere Personen von den kleineren Teilen des Tickets bereits profitieren können. Ein wenig mehr Aufwand in Form von Tickets erstellen oder Git Commits entsteht vielleicht, ist aber meiner Meinung nach zu verschmerzen. Wie geht ihr in diesem Bereich vor und vor allem warum tut ihr dies entsprechend?

Bildquelle: boehrsi.de

I'm a coder - KW 5

event Erstellt am So. 05.02.17 - 19:51 Uhr von Boehrsi
I'm a coder - KW 5 Image I'm a coder - KW 5 Image

Ich schreibe, wie schon mehrfach erwähnt, aktuell an einem Web-Service, dieser kann von angemeldeten Nutzern genutzt werden und bietet eine API für alle interessierten Clients. Dabei habe ich für mich festgestellt wie hoch die initialen Hürden sind und wie gut es nach dem ersten Einstieg voran geht. Denn obwohl ich nebenbei schon recht lange daran arbeite, sind noch nicht viele Endpoints gegeben und damit auch nicht viel Funktionalität. Doch nachdem nun die Authentication und Authorization fertig ist läuft es quasi wie von selbst. Neue Endpoints sind aufgrund der gegebenen Grundstruktur nun einfach umzusetzen, die Methoden und Klassen für einen schnellen Zugriff sind bereits vorhanden und allgemein ist nun ein Flow vorhanden der ein schnelles und effektives Arbeiten erlaubt. Schreiben tue ich dies um euch falls ihr am Anfang eines solchen Projekts steht Hoffnung zu geben, denn der Anfang kann wirklich etwas frustrierend sein. Dazu sei auch noch gesagt, dass es mittlerweile viele Tools und Dienste gibt, welche euch gerade im Bereich der Authentication und Authorization vieles abnehmen. Einziger Nachteil für einige ist, dass ihr euch dann auf andere Anbieter für Logins verlasst, doch sofern ihr nichts gegeben Google und Konsorten habt ist dies nicht zwangsläufig ein Problem. Alles in allem kann ich nur sagen, dass ein solides Framework als Basis, eine große Anzahl an Tutorials und eine aktive Community bei Startproblemen helfen und sofern man den ersten Einstieg geschafft hat es durchaus gut voran gehen kann. Zur besseren Einordnung abschließend noch der Hinweis ich schreibe eine REST ähnliche Spring Boot Anwendung.

Bildquelle: boehrsi.de

I'm a coder - KW 4

event Erstellt am So. 29.01.17 - 16:28 Uhr von Boehrsi
I'm a coder - KW 4 Image I'm a coder - KW 4 Image

Es ist Sonntag, die Woche neigt sich dem Ende entgegen und ich habe das Gefühl noch etwas schreiben zu müssen. Diese Woche möchte ich ein paar Worte zu Dokumentationen verlieren, denn diese werden zu häufig vernachlässigt. Egal ob im privaten oder professionellen Kontext, Dokumentation sollte erstellt werden. Dabei ist die Form meiner Meinung nach nur zweitrangig wichtig, solange man irgendwo die nötigen Informationen findet. Denn auch wenn Code möglichst selbsterklärend sein sollte, so kommt es oft genug vor das man das große ganze nicht basierend auf einem einzigen Code Fragment erkennen kann. Backtracking ist dann eine Möglichkeit, aber diese ist zeitaufwendig und nicht immer zielführend. Ein paar einfache Worte am Anfang einer Klasse, ein Wiki mit ein paar Sätzen oder sogar eine kleine Grafik und schon fällt einem das Verstehen wesentlich leichter. Dies gilt übrigens auch für eigenen Code, denn es ist interessant wie schnell man vergisst was man zwei Tage zuvor entwickelt hat und was man sich dabei gedacht hat. Außerdem fällt einem manchmal beim dokumentieren auf, dass Dinge anders mehr Sinn gemacht hätten und man dementsprechend noch optimieren kann. Ich selber bevorzuge Wikis und möglichst wenig In-Code Dokumentation. Auch Grafiken stehen bei mir sehr hoch im Kurs, da sie gerade für Ablaufbeschreibungen schnell zu verstehen sind und teilweise auch schneller erstellt sind, als ein langer Text. Wie erstellt ihr eure Dokumentationen und macht ihr sie überhaupt?

Bildquelle: boehrsi.de

I'm a coder - KW 3

event Erstellt am So. 22.01.17 - 18:24 Uhr von Boehrsi
I'm a coder - KW 3 Image I'm a coder - KW 3 Image

Es ist Sonntag und ich überlege ob ich zocke oder programmiere, doch bevor ich mich dieser extrem schweren Frage stelle noch eine kleine News für zwischendurch. Dieses Mal geht es um Android Libraries und die Anzahl an Methoden die sie mitbringen. Jeder Android Entwickler kennt vermutlich das 64K DEX Limit und wird hier und dort schon einmal nervige Erfahrungen mit Multi-DEX gemacht haben. Auch wenn dies ein geringeres Problem in neueren Android Versionen darstellt, ist es trotzdem störend. Denn sobald man Multi-DEX nutzt kann das bauen länger dauern, hier und dort können kryptische Fehler entstehen und gerade bei ganz neuen Android Studio Features kann es Probleme geben. Deswegen habe ich gerade erst bei einem großen Projekt mit hängen und würgen diverse Methoden aus fremden Libraries entfernt, um unter das magische DEX Limit zu kommen. Dazu gibt es bald noch einen Beitrag. Doch die Ernüchterung kam bald, denn abgesehen davon das die Android Support Libraries extrem viele Methoden am Start haben, gab es bald eine neue Abhängigkeit und zwar die Google Services. Damit war dann jegliche Chance verloren unter das DEX Limit zu kommen. Denn mit 20K+ Methoden für diverse Android Support Komponenten und dann noch ca. 8K für eine Komponente der Google Services ist man schon so extrem weit oben was den Method-Count angeht. Ich verstehe wie komplex diese Dinge sind und was Google so nah am System wohl alles bauen und bedenken muss, doch ein wenig mehr Augenmerk auf diese Komponenten mit Bezug auf die Anzahl der Methoden wäre hin und wieder sehr angenehm. In diesem Kontext ist mir bewusst das die Android Support und Google Services Libraries in der letzten Zeit in kleinere Pakete zerteilt wurden, was ich extrem gut finde, doch irgendwie reicht dies leider noch nicht aus. Für mich heißt es nun back to Multi-DEX und mit den eventuellen Problemen auskommen. Wie ist es bei euch, kennt ihr das Problem und wie umgeht ihr es bei euch, sofern dies möglich ist?

Bildquelle: boehrsi.de

I'm a coder - KW 2

event Erstellt am So. 15.01.17 - 12:58 Uhr von Boehrsi
I'm a coder - KW 2 Image I'm a coder - KW 2 Image

Neue Woche neue Themen, dieses Mal geht es darum wie wichtig es ist das vor der eigentlichen Implementierung alle Rahmenbedingungen und nötigen Komponenten geplant und definiert sind. Denn egal ob man privat etwas entwickelt oder professionell, merkt man mitten in die Implementierung das z.B. die Icons fehlen ist dies störend. Aus diesem Grund sollte man immer versuchen aus verschiedenen Perspektiven auf das zu entwickelnde zu blicken und entsprechend zu überlegen was alles involviert ist. Basierend darauf kann man dann zu einem Zeitpunkt X entscheiden ob alles nötige für die Aufgabe bereits vorhanden ist. Dabei ist es natürlich auch möglich einiges durch Platzhalter zu ersetzen, z.B. wenn es um Icons geht. Doch dies ist natürlich nur sehr beschränkt möglich wenn man z.B. mit einem Server bzw. einer API reden muss und diese Daten weiterverarbeiten will. Hier sind natürlich Mock-Daten eine Möglichkeit, aber nichts ist so gut wie reale Daten. Denn auch so etwas wie Mock-Daten muss erst einmal erstellt und an die Entwickler verteilt werden. Beachtet man die genannten Regeln nicht wird es im besten Fall etwas nervig für die Entwickler, im schlechtesten blockiert man die Entwicklung und verschwendet Ressourcen. Auch wenn letzteres natürlich wesentlich negativer ist als zuerst genanntes, man sollte beides vermeiden, denn ein frustrierter Entwickler ist wahrlich nichts was man möchte. Vor allem übrigens in kleinen privaten Projekten, wo niemand als Project Owner / Manager o.ä. Pläne macht, geht so etwas leicht unter. Auch hier sollte man also lieber ein paar Stunden mehr Zeit in Überlegungen und Planung stecken, als am Ende mit einem halbfertigen Produkt dazustehen, weil viele Kleinteile im großen Konstrukt einfach fehlen.

Bildquelle: boehrsi.de

I'm a coder - KW 1

event Erstellt am So. 08.01.17 - 23:16 Uhr von Boehrsi
I'm a coder - KW 1 Image I'm a coder - KW 1 Image

Nachdem ich bereits News-Reihen wie die Weekly Coding Question hatte, welche leider etwas eingeschlafen ist, möchte ich etwas Neues und ebenfalls wöchentlich Erscheinendes ins Leben rufen. Es geht darum das ich programmiere, sowohl privat, wie auch für die Arbeit und dies möchte ich mit euch teilen. Also zumindest die relevanten Dinge möchte ich ansprechen, z.B. Dinge die ich gelernt habe oder die man vielleicht anders machen sollte. Somit könnt ihr vielleicht aus meinen Fehlern lernen, neues mitbekommen und mir vielleicht sogar das eine oder andere Mal eure Sicht der Dinge schildern. Diese Woche beginne ich mit einem privaten Projekt, welches im Großen und Ganzen mit Terminplanung zu tun hat. Ich habe bereits vor längerer Zeit darüber geschrieben, doch dann schlief die Entwicklung leider etwas ein. Genau darum soll es auch gehen, das Arbeiten an privaten Projekten und wie schwer es ist sich entsprechend zu motivieren und die Zeit zu finden.

Weiterlesen…

Bildquelle: boehrsi.de