Coder Social home page Coder Social logo

tubaf-ifi-liascript / vl_softwareentwicklung Goto Github PK

View Code? Open in Web Editor NEW
65.0 22.0 56.0 15.32 MB

Vorlesung Softwareentwicklung TU Freiberg

C 0.34% C# 8.29% Jupyter Notebook 8.01% HTML 19.68% JavaScript 13.92% CSS 9.49% Makefile 0.14% TeX 39.81% C++ 0.04% Python 0.27%
liascript csharp liascript-course

vl_softwareentwicklung's Introduction

LiaScript GitHub contributors

Übersicht zur Vorlesung (Sommersemester 2024)

Woche Tag Inhalt der Vorlesung
1 5. April Organisation, Einführung von GitHub und LiaScript
2 8. April Softwareentwicklung als Prozess
12. April Konzepte von Dotnet und C#
3 15. April Elemente der Sprache C# I
19. April Elemente der Sprache C# II
4 22. April Strukturen / Konzepte der OOP
26. April Säulen Objektorientierter Programmierung
5 29. April Klassenelemente in C# / Vererbung
3. Mai Klassenelemente in C# / Interfaces
6 6. Mai Generics
10. Mai Container
7 13. Mai Versionsmanagement im SWE-Prozess I
17. Mai Versionsmanagement im SWE_Pprozess II
8 20. Mai Pfingstmontag
24. Mai UML Konzepte
9 27. Mai UML Diagrammtypen
31. Mai UML Anwendungsbeispiel
10 3. Juni Testen
7. Juni Dokumentation und Build Toolchains
11 10. Juni Continuous Integration in GitHub
14. Juni Delegaten
12 17. Juni Events
21. Juni Threadkonzepte in C#
13 24. Juni Taskmodell
28. Juni GUI - MAUI
14 1. Juli GUI - MAUI
5. Juli Language Integrated Query
15 8. Juli Design Pattern
12. Juli Anwendungungsfälle

vl_softwareentwicklung's People

Contributors

artimmeyer avatar devensiv avatar fb89zila avatar firecurl avatar fjangfaragesh avatar florian2501 avatar galinarudollf avatar jaytee42 avatar johannaklinke avatar kokokotlin avatar lesestein avatar linateumer avatar lordofundeads avatar sebastianzug avatar snikker123 avatar xjcm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vl_softwareentwicklung's Issues

Schwachstellen des Modellierungsansatzes des Fußballspieles

In der 10. Vorlesung (OOP_CSharp) wir bei "Visionen der Objektorientierung" ein Modellierungsansatz eines Fußballspieles gegeben. Abschließend steht die Frage, welche Schwachstellen dieser Modellierungsansatz/ Realisierung hat. Da für mich das objektorientierte Programmieren neu ist, ist mir als einziges aufgefallen, dass 22 Spieler zu wenig sind (da diese ja die Eigenschaft "im Spiel" besitzen) und es somit Ersatzspieler geben sollte.
Da ich aber nicht denke, dass dort das einzige Problem liegt, hätte ich gerne von euch noch Vorschläge welche weiteren Schwachstellen es hat.

Statische Code Analyse

Welche Tools nutzen Sie in Ihren Entwicklungsumgebungen, um Ihre Codestruktur zu verbessern? Reagieren Sie auf jede Linter Nachricht oder ignorieren Sie diese geflissen?

Static Vars in C#

Wieso wird in diesem Beispiel die statische Variable Counter in einer extra Klasse angelegt, statt sie in der Programm Klasse anzulegen?

Original:

public static class Counter
  {
     public static int globalCounter = 0;
  }

  public class Program
  {
    static void IncrementsCounter(){
       Counter.globalCounter++;
    }
    public static void Main(string[] args){
      Console.WriteLine(Counter.globalCounter);
      IncrementsCounter();
      Console.WriteLine(Counter.globalCounter);
    }
  }

Changed:

  public class Program
  {
    private static int globalCounter = 0;
    
    static void IncrementsCounter(){
       globalCounter++;
    }
    public static void Main(string[] args){
      Console.WriteLine(globalCounter);
      IncrementsCounter();
      Console.WriteLine(globalCounter);
    }
  }

Im Grunde bietet die veränderte Variante genau die selbe Funktionalität, außer das die Counter Variable nicht in diesem zusätzlichen Namespace der Klasse ist.
Ich finde immer, dass statische nicht konstante Felder einer Klasse private sein sollten, weil man das Programm sonst nur sehr schwer debuggen kann, weil auf die Variable von überall zugegriffen und geschrieben werden kann.

Wiki editieren

Man soll ja in das Wiki Beispiele von berühmten Softwarebugs einfügen. Ich konnte aber nicht herausfinden, wie man das Wiki editieren kann.

Auf der Hilfe-Seite von GitHub steht, dass man den Edit Button drücken muss, aber der ist scheinbar nur für den Owner des Repos sichtbar. Gibt es da eine andere Möglichkeit?

Partner für Teamarbeit

Ein simples Problem: Die Anzahl an Freunden von mir die an diesem Kurs teilnimmt ist ungerade.

Deshalb suche ich jetzt noch einen Parter für die Aufgaben die wir zu zweit lösen sollen 😄
Wenn irgendwer auch noch niemand hat schreibt mir bitte eine Mail (ich hoffe man kann meine Mailadresse anschauen...).

Generierung des Skriptes

Sammlung von Ideen für die Verbesserung der GitHub-Actions rund um die Generierung des Skripts ausgehend von den Kursmaterialien:

  • Zeilenumbrüche im langen Einzeiler mit den Pandoc Parametern. Hier wäre eine mehrzeilige Darstellung wünschenswert
  • Einführung eines Titelblattes (das unter anderem alle beitragenden Autoren, das aktuelle Datum und eine Versionsnummer nennt)
  • Verbesserung der Codeausgaben im pdf ... dabei ist besteht das Problem, dass quasi zwei Welten abgedeckt werden müssen - die ASCII Skizzen und Codesnippets.
  • Realisierung der fehlenden Symbole für das Box-Drawing
  • Verbesserte Darstellung der Quizze

Visual-Studio-Projektdateien in stud. Repos

Wenn man als Team mit dem "großen" Visual Studio arbeitet, bietet sich der folgende Workflow an:

  • Pro Repository eine Projektmappe (.sln) im Wurzelverzeichnis anlegen
  • Pro Unteraufgabe ein Projekt (.csproj) im jeweiligen Aufgabenverzeichnis hinzufügen
  • Mittels .gitignore alle "lokalen" Konfigurationsdateien und Binaries, die VS erzeugt, aus dem Repo ausschließen (das kann sehr viel werden)
  • Die Projektmappe und die Projektdateien zusammen mit dem Code einchecken

Die Vorteile dieser Vorgehensweise liegen darin, dass keine Codedateien mühselig zwischen den VS-Projekten und dem Verzeichnisbaum des git-Repos hin- und herkopiert werden müssen. Damit lässt sich dann auch die grafische git-Integration von VS nutzen, um den Code zu verwalten. Außerdem kann jeder VS-Nutzer die Projektmappe direkt öffnen, da in den Konfigurationsdateien nur relative Pfade zum Einsatz kommen.

Allerdings ist es etwas komplizierter, die Projektmappe inkl. der Unterprojekte in den existierenden Verzeichnisbaum zu "injizieren". Deshalb habe ich dazu in meiner letzten Übung einen Screencast aufgenommen (ca. die ersten 30 Minuten behandeln dieses Thema). Eine coole .gitignore-Datei, die alle für uns relevanten Fälle (und noch viele weitere) abdeckt, findet sich hier.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.