Heim  >  Artikel  >  Web-Frontend  >  #Mein erster Entwickler

#Mein erster Entwickler

Susan Sarandon
Susan SarandonOriginal
2024-11-07 12:55:03907Durchsuche

#My first dev

Ich habe schon einige persönliche Websites erstellt, mich aber noch nie einer Herausforderung dieser Größenordnung gestellt. Es ist heute online gegangen; eine einseitige App zum Durchsuchen des Katalogs meines jungen Plattenlabels; Ich habe Bandcamp integriert, ihm aber durch die Verwendung von three.js für die Albumnavigation ein eher „Kistengraben“-Feeling verliehen. Es sind 4.500 Codezeilen, ein Dutzend JavaScript-Module. Es hat eine Woche gedauert. Ich habe alleine mit nur Claude.ai als Codierungspartner gearbeitet. Ich muss sagen, es ist ein bemerkenswertes Werkzeug, aber nicht ohne Schwächen.
Wie auch immer, ich würde mich freuen, wenn ihr meine Website besucht und mir sagt, was ihr denkt. Ich habe den Code öffentlich auf GitHub gespeichert, falls Sie darin herumstöbern möchten. Aber hier ist die Seite: Not the Final Vinyl

Claude wollte, dass ich ein paar Dinge hinzufüge:

Technischer Deep Dive

Schauen Sie sich den Code an: NotTheFinalVinyl auf GitHub
Live-Site: notthefinalvinyl.net

Die Architektur ?️

Entwickelt um ein benutzerdefiniertes Interaktionssystem für Schallplatten mit Three.js, mit etwa 4.500 Zeilen Vanilla-JavaScript, aufgeteilt auf 12 Schlüsselmodule:

// Example from VinylManager.js - Physics-based vinyl sliding
const animate = (timestamp) => {
    if (!startTime) startTime = timestamp;
    const elapsed = (timestamp - startTime) / this.slideOutDuration;

    if (elapsed < 1) {
        // Custom easing function for natural vinyl movement
        const progress = t < 0.5
            ? 4 * t * t * t
            : 1 - Math.pow(-2 * t + 2, 3) / 2;

        album.setVinylPosition(this.slideDistance * progress);
        requestAnimationFrame(animate);
    }
}

Kernkomponenten?

  • SceneManager: Three.js-Setup und WebGL-Verwaltung
  • VinylManager: Animationen und Status aufzeichnen
  • EventHandler: Berührungs-/Maus-/Tastaturinteraktionen
  • InfoDisplay: Bandcamp-Integration und Benutzeroberfläche
  • Alben: 3D-Vinylnetz und Texturverwaltung

Technische Herausforderungen gelöst?

  1. Leistung

    • Texturvorladung
    • Effizientes Animationssystem
    • Intelligente Renderreihenfolge für überlappende Vinyls
  2. Mobiler Support

    • Touch-Gesten
    • Dynamische Ansichtsfensterskalierung
    • Mobile GPU-Optimierungen
  3. Integration

    • Bandcamp-Iframe-Einbettung
    • Facebook-Browsererkennung
    • Zustandsverwaltung zwischen Komponenten

Lernpunkte?

Als mein erstes großes JavaScript-Projekt habe ich Folgendes gelernt:

  • WebGL/Three.js-Grundlagen
  • Komplexes Animations-Timing
  • Zustandsverwaltungsmuster
  • Leistungsoptimierung
  • Mobile-First-Entwicklung

Zukunftspläne?

  • Hinzufügen von Vinyl-Reflexionseffekten
  • Mehr interaktive Verhaltensweisen
  • Leistungsverbesserungen
  • Besseres mobiles Erlebnis

Ich suche Feedback zu:

  1. Code-Organisation
  2. Three.js Best Practices
  3. Leistungsoptimierungen
  4. Mobile UX-Verbesserungen

Die GitHub-Reise

Ich lerne immer noch Git-Workflows – das Repo spiegelt meinen Lernprozess wider! Fühlen Sie sich frei, es zu erkunden und Verbesserungen vorzuschlagen. Ich bin besonders an Feedback interessiert zu:

  • Projektstruktur
  • Dokumentation
  • Best Practices für Git
  • Ansätze testen

threejs #webgl #javascript #frontend #webdev #showdev #animation #ux

``

Das obige ist der detaillierte Inhalt von#Mein erster Entwickler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn