👁️
pierreinside
  • Introduction
  • Workbench
    • VirtualBox
    • Linux
      • Linux-Paketverwaltung
      • Linux Initialisierung
      • Ubuntu 14.10 LTS
      • Ubuntu 16.04 LTS
      • Ubuntu 18.04 LTS
      • Ubuntu 20.04 LTS
      • Ubuntu - Netzwerk
    • Konsole
      • ssh
      • zsh
      • cygwin
      • Babun
      • terminator
      • Terminal Multiplexer
      • Linux Tools
    • awesome
    • Entwicklungsumgebungen
      • Texteditors
      • Visual Studio Code
      • IntelliJ - IDEA
  • Softwareentwicklungsprozess
    • Schätzungen
    • Eventstorming
    • OKR
  • Architektur
    • Uncle Bob
    • Microservices
    • NoSQL
      • ElasticSearch
    • Hystrix
    • Reactive Programming
    • AngularJS
    • Service Mesh
  • Networking
    • Dependency Injection
  • Programming
    • Java Core/EE
      • Java 8
      • Java Annotationen
      • Bean Validation
      • Enterprise Java Beans Specification
      • Dependency Injection
    • JRebel
    • Webservices
      • HTTP
      • REST
      • Spring MVC REST
      • Swagger
      • Postman
    • Spring Ecosystem
      • Spring Core
      • Spring Boot
        • Programming
        • Production Ready
        • Testing
      • Spring Cloud
      • Spring Cloud Config
      • Spring MVC
      • Spring Data
      • Spring Petclinic
    • NodeJS
    • UI-Technologie
      • Thymeleaf
      • ionic
      • Web Fonts
      • Jinja Templates
      • Twitter Bootstrap
    • Python Ecosystem
      • Python Libraries
      • Python Testing
      • Python Best-Practices
      • Python Snippets
      • Python Selenium
      • Kivy UI
      • FastAPI
      • Typer CLI
      • Django
    • Groovy
    • Persistenz
      • Transactions
        • Java TX
        • JPA TX
      • TX Handling
      • JPA
        • Eclipse Link
      • MySQL
        • MySQL Performance
        • Docker MySQL
      • Hazelcast
    • Glassfish
    • YAML
    • Angular
    • Camel
    • Zeichenkodierung
    • Kinder lernen Programmieren
  • Testen
    • Easymock
    • Mockito
  • Performance & Scalability
    • Java Performance
      • Heapdump Analysis
    • Java Concurrency
    • Instana
  • Sicherheit
    • Authentifizierung
      • OpenID Connect
      • Web-Authentication API
    • Authorisierung
      • OAuth
      • SAML
    • Spring Security
    • Zertifikate
    • Kali Linux
    • VPN
    • Zero-Trust-Networks
  • Build und Deployment
    • Maven
    • Bamboo
    • Jenkins
      • Jenkins Pipelines
      • Jenkins Pipelines Tips und Tricks
      • Jenkins-configuration-as-Code
      • Jenkins IDE
    • Travis CI
    • Shellprogrammierung
      • jq - JSON Parsing
    • Konfiguration Management
    • Vagrant
      • Vagrant-Ansible-Integration
      • Vagrant Box bauen
    • Ansible
      • Getting Started
      • Ansible Details
    • Saltstack
    • LinuxKit
    • Container
      • Docker
        • Docker Getting Started
        • Debugging Docker
        • Docker Build
        • Docker Registry
        • Docker run
          • docker run
          • docker network
        • Docker Compose
        • docker machine
        • Docker@Windows
        • Docker Host
        • Docker Scaling
        • Docker Ressources
        • Docker Logging
        • windowsContainer
      • Cloud Deployment Provider
        • AWS
          • Anwendungsdeployment
          • Workload
          • Permissions
          • Netzwerke
          • AWS CLI
            • aws-vault
          • RDS
          • Static Website Hosting
          • EKS - Elastic Kubernetes Service
          • S3
        • Google Cloud Platform
      • Docker Orchestrierung
        • CoreOS
        • Kubernetes
          • microK8s
          • minikube
          • autoscaler
          • Docker
          • k9s
        • Nomad
    • PHP
  • Operations
    • Proxy
      • NGINX
    • DNS
    • Logging
      • Graylog
      • Fluentd
    • Monitoring
      • Grafana
    • Infrastructure-as-Code
      • Terraform
        • AWS-Provider
        • GitHub-Provider
      • Packer
    • Deployment
      • Vault
      • Consul
        • Consul Template
      • Fabio
  • Rechtliches
    • Software-Lizenzen
  • Git Ecosystem
    • Git
      • Git Lifecycle Hooks
    • GitHub
      • GitHub Organizations
    • GitHub Actions
    • GitHub Pages
    • GitHub CLI
    • GitHub Copilot
    • GitHub-AWS OIDC
    • GitBook
    • GitLab
    • Bitbucket/Stash
  • Publishing
    • WordPress
    • Markdown
    • Static Site Generators
      • Hugo
      • Jekyll
    • Tiddly Wiki
    • Leanpub
    • Animationsfilme
  • Storage
    • Synology 2012
    • Synology 2021
  • Collaboration
    • Übersicht
    • Microsoft Teams
  • Konferenzen
    • Velocity Berlin 2019
  • IT mit Kindern
    • Projekt Sportstracker
    • Scratch
    • Pico Spielekonsole
  • Schule
    • Mathematik
  • Misc
    • Foto/Video
      • Foto/Video Sammlung bis 2023
        • Handbrake
        • Onedrive
      • Foto/Video Sammlung ab 2024
      • Gopro
      • Panasonic FZ1000 ii
        • als Webcam
      • AV Receiver
      • Videos erstellen
        • OBS Studio
        • Touch Portal
        • Game-Streaming
      • Kameratasche
      • Kamera 2020
    • Handy
      • 2016
      • 2018
      • 2019
      • 2021
      • 2022
    • Computer
      • Laptop
        • 2018
        • Chromebook
      • Monitor
        • 4k
      • Software
        • Command Line Interface
        • Google API
        • Plant UML
        • Chromium
        • Passwort-Manager
        • GPG
      • Dell CNF 2665 Farbdrucker
      • Dockingstation
      • Gaming PC 2021
      • Mobiles BĂźro
      • Mobiles Internet
      • Mobiler Router
    • Beamer Benq W1000+
    • Spielekonsole
      • 2017
        • Playstation 4
      • Pico Spielekonsole
    • Gadgets
      • iPad Pro 2015 und 2016
      • iPad Air 2024
      • Macbook Pro
      • Smartwatch
      • Slate
      • Mudi
    • Fahrrad
      • Jonas 2018
      • SQLab
    • Auto
      • Auto 2022
      • Camping
        • Camping Touren Ideen
          • Camping Tour - Gardasee 2021
        • Camper
          • Camper klein - keine StehhĂśhe
            • VW Bus Erfahrungen
          • Camper gross - StehhĂśhe
    • Haus
      • Klimaanlage
      • Swimming Pool
      • Quick Mill Orione 3000
      • SpĂźlmaschine 2021
      • Hebe-SchiebetĂźr
      • Gasgrill
      • Minibar / Mini-KĂźhlschrank
      • Glasfaseranschluss (Fiber-to-the-Home)
      • Smart-Home
        • Raspberry Pi
        • Heimnetzwerk
      • Homeoffice
      • Energie
        • Solar
        • Wärmepumpe
    • Freizeit
      • Musik Streaming
      • Sky
      • Online Lernplattformen
      • eScooter - ePowerFun
    • Fußball
      • Meine Arbeit als Fußball-Trainer
      • Fußball Tools
      • DFB TalentfĂśrderung
    • Google Impact Challenge
  • Englisch
Powered by GitBook
On this page
  • Getting Started VSCode
  • Konzept
  • User-Experience
  • Kommentare
  • Feintuning - Code-Suggestions - Next/Previous
  • Feintuning - Code-Suggestions - Synthesizing
  • Copilot Labs

Was this helpful?

  1. Git Ecosystem

GitHub Copilot

AI während der Programmierung ... klingt nach dem Paradies. Wie ist es wirklich?

GitHub pusht dieses Thema im August 2023 und ist sehr freigiebig mit Testlizenzen. So wie ich GitHub in den letzten Jahren kennengelernt habe wird sich Copilot sukzessive verbessern.


Getting Started VSCode

  • Youtube - GitHub Copilot in 7 minutes

Ich verwende fĂźr diesen ersten Test meinen Lieblingseditor Visual Studio Code.

VSCode ist die am besten unterstßtzte IDE - zum Zeitpunkt des Tests war dort schon die Chat-Funktionalität enthalten, die in IntelliJ noch fehlte.

Ich installiere zunächst die Extension "GitHub Copilot" (ich verwende die Pre-Release Version, um tatsächlich die maximalen Features zu erhalten).

Nach der Installation ist ein Reload und eine GitHub Authentifizierung notwendig - die entsprechende Seite wird im Browser automatisch aufgerufen. Nach der Authentifizierung ist die Extension einsatzbereit und ich erkenne

  • unten rechts im Tray ein neues Icon fĂźr den Copilot

  • eine neue Extension namens Chat

Selbst beim Schreiben dieses Textes erhalte ich schon Vorschläge, die ich mit der Tab-Taste annehmen kann. Das ist schon mal ein guter Anfang.

Nachdem ich Copilot installiert hatte musste ich ein paar Tage an Product-Owner-Themen arbeiten - ausserhalb von VSCode. Den Copilot hatte ich danach aus den Augen verloren und begann an einem Shellscript mit gh-CLI und jq zu arbeiten. Bisher hatte ich jq nur rudimentär genutzt, aber nun brauchte ich komplexere Filter. Ich las eine Stunde in der Doku, um das Konzept besser zu verstehen und mir einen Filter zusammenzubauen. Ich testete meinen Filter die ganze Zeit auf der Console - ausserhalb von VSCode. Nachdem ich der Meinung war, einen passenden Filter zu haben fing ich in VSCode mit dem Tippen und erhielt sofort einen Code-Snippet vorgeschlagen. Schon das allein hätte mich viel schneller in die LÜsung starten lassen. Ich probierte die Auto-Vervollständigung ßber einen Prosa-Text ... der vorgeschlagene Code entsprach schon fast meiner LÜsung. Ich war begeistert.

Erst danach beschäftigte ich mich intensiver mit dem Konzept und den MÜglichkeiten des Copilot.


Konzept

Copilot analysiert den Code rund um den Cursor und kennt somit den Kontext. Aus diesem Kontext versucht er - mit seinem Wissen ßber Sprachen/Tools - in Real-Time gute Vorschläge zu generieren (das Icon unten rechts ist ständig am rotieren - man braucht schon eine stabile Internet-Connection und viele Daten).

Angeblich lernt es nicht nur vom Server dazu, sondern auch vom Benutzer ... es soll den Programming-Style des Nutzers erlernen und dadurch immer persĂśnlicher werden. Ich bin gespannt, ob das mal wieder nur so ein Hochglanz-Versprechen ist.

Beim Lernen ist es auf das Feedback des Users angewiesen ... deshalb sollte man bei Vorschlägen (im Chat) auch ein Feedback geben, ob der Hinweis hilfreich war oder nicht.


User-Experience

Kommentare

Anstatt zu coden, kann man auch mit einem Kommentar beginnen und Copilot einen ersten Vorschlag machen lassen. Das Ergebnis sieht unterschiedlich aus

  • generiertes Code Snippet

  • generierter Prosa-Algorithmus. In einem Python-File wird aus dem Kommentar

    # write an algorithm to calculate first 10 prime numbers and print them

    folgender Algorithmus

     # 1. create a list of numbers from 1 to 100
     # 2. iterate over the list
     # 3. for each number, check if it is a prime number
     # 4. if it is a prime number, add it to the list of prime numbers
     # 5. if the list of prime numbers has 10 elements, stop iterating
     # 6. print the list of prime numbers

    Nachdem ich den ausgegebenen Algorithmus markiert und an Copilot "Start Chat Code" (rechte Maustaste) gesendet habe, erhalte ich auch richtigen Python Code, den ich an beliebige Stelle Ăźbernehmen kann.

Feintuning - Code-Suggestions - Next/Previous

ich habe leider eine deutsche Tastatur ... das ist es manchmal schwierig mit den Default-Bindings

Ich habe die Keybindings ("Code - Settings - Keyboard Shortcuts - editor.action.inlineSuggest.show") so angepasst, dass

  • Control + . den nächsten Vorschlag anzeigt

  • Control + , den vorherigen Vorschlag anzeigt

Feintuning - Code-Suggestions - Synthesizing

Über Control + ENTER kann man gleich 10 mögliche Auto-Suggestions in ein separates Tab generieren lassen, um den Code dann in aller Ruhe zu studieren und sich den passenden Code selbst zusammenzubauen.


Copilot Labs

  • Youtube - Copilot in 7 minutes - Copilot Labs

Dies ist eine separate VSCode Extension, die interessante Features bereitstellt:

  • Übersetzung von einer Programmiersprache in eine andere

  • Brushes:

    • Refactorings (z. B. Types in einem JavaScript-File einfĂźgen)

    • Debug-Code

    • Clean-Code

    • Make Robust

    • erzeugt Documentation

PreviousGitHub CLINextGitHub-AWS OIDC

Last updated 1 year ago

Was this helpful?