You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
3.2 KiB

  1. #Programmiersprachen:
  2. ##Java
  3. *imperativ
  4. *Streng typisiert
  5. *objektorientiert
  6. *funktionale Sprache
  7. ##C
  8. *Imperativ
  9. *Streng typisiert
  10. *Vorteil: Hardwarenähe, Kompatibilität
  11. *Schnelligkeit
  12. *Nachteil: Speicherverwaltung
  13. ##Phyton
  14. *Imperativ
  15. *Objektorientiert
  16. *Klassen und Objekte
  17. *Hieratchien
  18. *Funktional
  19. *kompakte Syntax
  20. *interpretierte Sprache
  21. *Übersetzung in andere Sprachen möglich (Cython, etc.)
  22. *Portabilität
  23. *Typisierung
  24. *Dynamisch (Duck Typing)
  25. ##Go
  26. *Modular, imperativ
  27. *beite Palette an Programmierparadigmen
  28. *Teilweise Objektorientiert & Funktional
  29. *keine Vererbung
  30. *statt Klassen werden Structs verwendet
  31. *Einfache, effektive Programmierung
  32. *Typisierung: Statisch typisiert
  33. *vor der Kompilierung müssen Typen fest stehen
  34. *Schnelligkeit von C & Anwendungsmöglichkeiten/Simplizität von Python
  35. *Multi-Threading
  36. ##JS/TS
  37. *Erweiterung von HTML
  38. *Multi-Paradigmen
  39. *OOP, Prozedural oder Funktional
  40. *Dynamische Typisierung
  41. *Andwendung: Interaktive Web-Anwendungen (z.B. Goolge Maps)
  42. *Vorteile: modernes Erscheinungsbild, günstiger Server-Traffic (läuft im Browser)
  43. *Dynamische Elemente
  44. *Event-basiert (Callbacks)
  45. *asynchrone Verarbeitung
  46. ##TS
  47. *typisiert
  48. *imperativ, OOP
  49. *je nach Anforderungen: prozedural oder funktional
  50. *TS hat Einfluß von JS/Java/C#
  51. *baut auf Supermenge von JS Bibliotheken auf
  52. *Skalierbarkeit/Wartbarkeit -> durch Einführung OOP
  53. #Programmierprinzipien:
  54. ##DO IT
  55. (S) eparation of Concern (Programme aufteilen in kleine Teile, Methoden, Funktionen, Prozeduren)
  56. (O) pen/Closed Priciple (einfach neue Funktionalität zuzufügen, Änderungen bleiben lockal und haben keine Auswirkunng nach Aussen)
  57. (L) iskov Substitution Principle (so Code schreiben, dass andere keine Überraschungen mit ihrem Code hben)
  58. (I) nterface Segregation Principle (Clients sollen nicht gezwungen sein, die Schnittstellen abhängige Methoden zu implementieren. die sie nicht verwenden.Dies führt zu Schnittstellen, die nur die benötigten Methoden enthalten.)
  59. (D) ependency Inversion Principle (Teil der Logik in andere Klassen auslagern)
  60. ##DON'T DO IT
  61. (S) ingleton (zur Laufzeit des Programms gibt es nur eine Kopie des Codes)
  62. (T) ight Coupling (Teile die nichts miteinander zu tun haben sind sehr verbunden und die kann man nicht teilen)
  63. (U) ntestability (Code der sich nicht automatisiert testen lässt)
  64. (P) remature Optimisation (um Performance sich kümmern, erst wenn man Performance bereits hat; erst nach der Messung und nach der Nachweis, dass es diese Stelle ist)
  65. (I) ndescriptive Naming (ungenügende oder falsche Beschreibung anstatt die Bezeicher so zu benennen, dass sich selbst beschreiben)
  66. (D) uplication (duplizieren von Code; besser ist es ein wiederholendes Code in eine zentrale Strucktur auszulagern)