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.

69 lines
2.5 KiB

  1. # Programmierparadigmen (Programmiersprachen)
  2. ## 2. Programmiersprachen
  3. Grobe Analyse nach:
  4. - Imperativitart \
  5. *reinfolgebasierte Anweisungen*
  6. - Declarativitaet \
  7. *Problemloesungsorientierung*
  8. - Prozeduralitaet \
  9. *Kompartmentisierung Algoritmisierung*
  10. - Objektorientierung \
  11. *Unterstuetzung von Objekten, Klassen und Vererbungen*
  12. - Funktionialitaet \
  13. *Funktionserzeugung & -anwendung*
  14. - Typisierung \
  15. *(fehlende) Festlegung von Parametern & Rueckgabewerten*
  16. ### Java
  17. - imperative, prozedurale und objektorientierte Programmiersprache
  18. - typisierte Sprache
  19. ### C
  20. - typische imperative Sprache (begruendet durch Hardwarenaehe)
  21. - ist prozedural
  22. - typisierte Programmiersprache
  23. ### Python
  24. - imperativ
  25. - unterstuetzt objektorientierte als auch prozedurale und funktionale Programmierung
  26. - unterstuetzt Typisierung
  27. ### go
  28. - imperative und objektorientierte Programmiersprache
  29. - bietet Typisierung
  30. ### JavaScript
  31. - imperative, funktionale und objektorientierte Programmiersprache
  32. - ist typisiert
  33. ### TypeScript
  34. - imparative, funktionale und objektorientierte Sprache
  35. - typisierte Programmiersprache
  36. ---
  37. ## 3. Programmierprinzipien
  38. ### LoD
  39. **L**aw **o**f **D**emeter \
  40. *Sprich nur zu deinen engsten Freunden*
  41. - Objekte sollen zur Verständlichkeit und Stetigkeit nur Methoden von ihnen bekannten Objekten aufrufen
  42. ### DRY
  43. **D**on't **R**epeat **Y**ourself \
  44. *Vermeide Wiederholungen*
  45. - Durch Vermeidung von Duplikationen wird spätere Modifikation erleichtert
  46. - Erhöht die Verständlichkeit
  47. ### RY
  48. **R**epeat **Y**ourself \
  49. *Wiederhole dich*
  50. - Benutzerschnittstellen sollten konsistent ähnlich aufgebaut sein
  51. - Erleichterung der Bedienung und Vermeidung von Bedienungsfehlern
  52. ### DAU
  53. **D**uemmster **A**nzunehmender **U**ser
  54. - Synonyme dafür:
  55. - BDU *(**B**rain **D**ead **U**ser)*
  56. - Error -40 *(Implikation: Der Fehler sitzt -40 cm "hinter" dem Desktop, bzw vor dem Computer)*
  57. - EIFOK *(**E**rror **I**n **F**ront **O**f **K**eyboard)*
  58. - PICNIC _*(**P**roblem **I**n **C**hair **N**ot **I**n **C**omputer)*
  59. - PEBKAC *(**P**roblem **E**xists **B**etween **K**eyboard **A**nd **C**hair)*
  60. - Anwendbarkeit von Programmen sollte intuitiv sein
  61. - Verdeutlichung, dass Nutzer meist kein Hintergrundwissen zur Funktion haben und somit viele für Devs logische Ablaeufe nicht nachvollziehen koennen
  62. ### SoC
  63. **S**eparation **o**f **C**oncerns \
  64. *Aufteilung von verschiedenen Belangen in Unterprogramme/Sektionen*
  65. - Form von Abstraktion und Kompartmentisierung um Programme, Deployment und Erweiterung zu vereinfachen