Podcast: Sauberer Code UND Performance

Hier können Artikel, Tutorials, Bücherrezensionen, Dokumente aller Art, Texturen, Sprites, Sounds, Musik und Modelle zur Verfügung gestellt bzw. verlinkt werden.
Forumsregeln
Möglichst sinnvolle Präfixe oder die Themensymbole nutzen.
Antworten
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

Sauber programmieren und trotzdem ordentliche Performance bauen?

Ich habe um die Feiertage herum einen Podcast angefangen zu produzieren. Er besteht aus 6 Folgen, wovon 3 Folgen schon releast sind.

Ihr könnt den Podcast gerne auf Soundcloud abonnieren. Soundcloud bietet so eine Distributions-Funktion an, das die Tracks auf alle möglichen Plattformen hochlädt. Die wirklich wichtigen Podcast-Apps wie iPhone und so weiter sind da aber leider nicht dabei :(


Bild
Dateianhänge
Screenshot_2021-01-09 Sauber programmieren.png
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

Folge 4 ist online

Thema: kurzer Code ist schön

https://soundcloud.com/carl-philip-haen ... -ist-schon
Zuletzt geändert von antisteo am 26.01.2021, 20:49, insgesamt 1-mal geändert.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2348
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Podcast: Sauberer Code UND Performance

Beitrag von Jonathan »

Hi, ich hab mir die Folgen mal angehört. Finde den Podcast prinzipiell schon gut produziert: Du hast dir offensichtlich vorher ausreichend Gedanken über jede Folge gemacht, hast eine Idee was du beschreiben willst und auch wie. Die Tonqualität ist gut und der Stimme kann man auch gut zuhören. Soweit passt alles :)
Zum Thema selbst: 'Sauberer Code' ist halt immer irgendwie etwas schwammig. Mit fallen zu jeder 'Regel' Fälle ein, wo es besser ist das gerade nicht so zu machen, was aber natürlich nicht gegen die Grundidee dahinter spricht. Prinzipiell ist es glaube ich schon gut, möglichst viele Entwurfsmuster mal gesehen zu haben um dann entscheiden zu können, welches in welcher Situation sinnvoll ist. Ich bin mir auch nicht sicher ob ein Podcast das beste Format ist um darüber zu sprechen. Vielleicht hätte ein Blog-Post mit Codebeispielen auch viel für sich.Den Podcast kann man sich halt durchhören und sich vielleicht etwas davon mitnehmen, aber um etwas durchzuarbeiten finde ich meistens Text besser.
Vielleicht wäre es auch nicht schlecht, die Zielgruppe etwas klarer auszudefinieren. Sauberer Code ist ja (hoffentlich!) eher ein Anfängerproblem, vielleicht wäre es nicht verkehrt sich da einfach mal auf eine Sprache festzulegen und das konkret vorzumachen. Es fühlt sich für mich ein wenig so an als sei der Podcast aus der Idee heraus entstanden, dass du mal über etwas reden möchtest, worüber duch dich auskennst und was du spannend findest. Aber es wäre vielleicht auch gut zu überlegen wer den Podcast hören soll und weshalb. So könntest du den viel zielgerichteter Bewerben udn vermutlich auch viel mehr positives Feedback bekommen.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

Folge 5 ist online

Thema: Performance vs. Abstraktion

https://soundcloud.com/carl-philip-haen ... bstraktion
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

Hallo Jonathan,

der Podcast richtet sich entgegen deiner Annahme nicht an Programmieranfänger, sondern im Gegenteil an diejenigen, die Objektorientierung bis zum Letzten beherrschen. Dass man Variablen richtig benennen muss, setze ich voraus.

Im Podcast gehe ich Stück für Stück auf Techniken beyond OOP ein (SQL Query Merging trotz ORM, Aspektorientierte Programmierung), was man erst versteht, wenn man alle Techniken der "alten Welt" auch beherrscht.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4252
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Podcast: Sauberer Code UND Performance

Beitrag von Chromanoid »

Ich habe auch mal reingehört, weil mir das Thema am Herzen liegt. Ich fände weiterführende Links gut. Teilweise scheinen mir die Vokabeln etwas exotischer zu sein und Googlen hilft nicht so richtig. Was verstehst Du z.B. unter "SQL Query Merging"? Ist das ein geläufiger Begriff?

Bzgl. AOP und Code-Generierung bin ich mir nicht sicher, ob das wirklich empfehlenswert ist. Da hat man ganz schnell Voodoo-Architektur mit einer eingebauten Debug-Hölle. Dependency Injection (die man ja auch mit Code-Generierung machen kann) ist da ja noch harmlos. Das hört sich alles ein bisschen nach "Enterprisy Makro- und Template-Programmierung" für mich an. Das ist sicher ein Trade-off, aber Du scheinst sehr in die Richtung "Generic thing machine" zu tendieren :)

(Quelle: https://speakerdeck.com/stilkov/why-sof ... o-about-it)

Was meinst Du dazu?
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Podcast: Sauberer Code UND Performance

Beitrag von Krishty »

Chromanoid hat geschrieben: 26.01.2021, 23:42Teilweise scheinen mir die Vokabeln etwas exotischer zu sein und Googlen hilft nicht so richtig. Was verstehst Du z.B. unter "SQL Query Merging"? Ist das ein geläufiger Begriff?
Zu seiner Verteidigung kann ich das ohne DB-Erfahrung und ohne googeln: Zusammenfassen von SQL-Queries, um den Durchsatz zu verbessern :P
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4252
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Podcast: Sauberer Code UND Performance

Beitrag von Chromanoid »

Dass es sowas heißen kann, ist mir schon klar 🤓. Aber geläufig ist mir das zumindest als "Fachwort" nicht. Hört sich das einfach schöner an als "Union Queries" oder ist damit noch mehr bzw. etwas anderes gemeint?

@antisteo Oben habe ich unhöflicherweise etwas ganz vergessen zu schreiben: Ich finde Du trägst das sehr angenehm vor und ich habe gerne zugehört.
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

Hi Chromanoid,

Heute gegen Abend kommt die nächste Folge raus mit dem Titel "Folge 6: 100-fache Performance durch LEFT-JOIN-Trick bei SQL"

Beim SQL Query Merging reduzierst du IO-Overhead, indem du Joins auf SQL-Seite schon ausrechnest und anschließend auf Client-Seite wieder auftrennst. Gleichzeitig ist das ziemliches Code-Gepuzzel, d.h. im gleichen Atemzug gebe ich Tipps, wie man sich ein schönes Interface um diese Optimierung baut.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

btw das mit den verlinkten Code-Beispielen ist keine Dumme Idee. Mündlich zu erklären, welche JOIN in welcher Query rein muss, ist auch bei einer guten Vorstellungskraft schwierig
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4252
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Podcast: Sauberer Code UND Performance

Beitrag von Chromanoid »

Huhu, ich habe mal Deinen neuen Beitrag gehört, weil mich das SQL Query Merging doch sehr neugierig gemacht hat :) Wieder schön produziert. Du meintest das N+1 Query Problem. Zumindest in Java unterstützen das geschilderte Vorgehen zur Lösung Hibernate und bestimmt die meisten anderen JPA-Implementierungen (mindestens über FetchType.EAGER, aber auch sowas wie Entity Graphs), aber auch Späße wie ebeans im Rahmen der sog. "Fetching Strategies" direkt. Da muss man sich bei Hibernate meist nur wenig drum kümmern (aber natürlich darüber nachdenken, wie man es haben will). Was meintest Du da mit "trotz ORM" - oder war auch ohne ORM gemeint?
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

So, hier die Folge noch mal als Link:



Zu dir, Chromanoid: Ich meinte trotz ORM. Ich kenne es noch aus Zend-Zeiten, dass ein ORM aus jedem Call eine eigene Query gemacht hat und diese auch ausgeführt hat. Ultra-langsam. Ein intelligentes ORM sollte erst mal alle Queries sammeln, dann mergen und anschließend ausführen. Das setzt natürlich programmiererische Planung voraus und zerpflückt den Code komplett, weil man schon am Anfang über alle benötigten Daten Bescheid wissen muss. Auf dieses Problem gehe ich in späteren Folgen sogar ein und schlage dort vor, das "zerpflücken" des eigenen Codes zu automatisieren - als Sprachfeature.
Dateianhänge
sc.png
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

Folge 7: Code neu schreiben, Projekte weiterpflegen

http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

Folge 8 - Programmierung Eines Eigenen Git - Hosting - Tools


[edit]Exklusiv für zfx.info teile ich zusätzlich diesen Screenshot
githostingtool.png
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

Folge 9 - Kompression Von Quellcode
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

Folge 10 - Technische Schulden
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Podcast: Sauberer Code UND Performance

Beitrag von antisteo »

Folge 11 – Das CRUD-Pattern
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Antworten