Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:ffit:3-jahr:cicd:learningunits:lu03:b [2026/02/02 23:10] – angelegt apeterde:modul:ffit:3-jahr:cicd:learningunits:lu03:b [2026/02/24 10:51] (aktuell) apeter
Zeile 1: Zeile 1:
-====== LU03b - Einführung CICD ======+====== LU03b - Linter & Formatter Best Practices ======
  
-''TODO''+==== Checkliste ====
  
-==== Pipelines und Umgebungen ====+  * **Encoding**: Unbedingt UTF-8! 
 +  * **Spacing/Indentation**: Spaces anstatt Tabs, Anzahl Spaces (2 oder 4) pro Sprache festlegen: Z.B. 2 bei JS/TS, 4 bei Java,Python 
 +  * **Anführungszeichen/Quotes**: Double/Single Quotes pro Sprache festlegen: Black (Python-Formatter) bevorzugt Double Quotes, Frontend-Community tendenziell eher Single Quotes 
 +  * **Zeilenlänge**: Zeilenlänge (häufig 80, 100 oder 120) zumindest pro Sprache festlegen. Standard bei ESLint ist 80, bei Black (Python-Formatter) 88, bei PEP8 (Python-Formatter) 79 
 +  * **Ignorierter Code**: Unbedingt Dependencies (.venv, node_modules, etc.) und generierter Code ignorieren
  
-**Projekt-Board / Issue-Tracking** +==== Beispiele Overall ==== 
-  * 🆓 GitHub Projects (gut integriert in Commits/PRs; für Education i.d.R. gratis) +''.editorconfig'' (wird von Prettier native unterstützt
-  * 🆓 GitLab Issue Boards (voll integriert; auch self-hosted möglich+<code ini> 
-  * 💰 Atlassian Jira (sehr mächtig; Education-Lizenz möglich, ansonsten limitiertes Free Tier) +# Global settings (applied to all files unless overridden
-  * 🆓 Miro (Kanban/Whiteboard; eingeschränkt im Free Tier+[*] 
-  🆓 Trello (Limitierte Automation im Free Tier) +charset = utf-8 
-  * 🆓 Taiga (Open-Source, gutes Scrum-Board) +end_of_line = lf 
-  * 🆓 YouTrack (Free für kleine Teams; sehr starkes Issue-Tracking) +insert_final_newline = true 
-  * 🆓 OpenProject (Open-Source, selbst hostbar; Kanban + Scrum)+indent_style = space 
 +indent_size = 4 
 +trim_trailing_whitespace = true
  
-**Build-Pipeline / CI-Server** +# Python files 
-  🆓 GitHub Actions (Free-Minutes begrenzt; Education meist großzügig) +[*.py] 
-  * 🆓 GitLab CI/CD (Free Tier gut; self-hosted unbegrenzt) +indent_size = 4
-  * 🆓 Jenkins (Open-Source; erfordert eigenen Server) +
-  * 🆓 Azure Pipelines (kostenlos für Public; Private mit Limits) +
-  * 🆓 CircleCI (Free Tier limitiert) +
-  * 🆓 Travis CI (Public gratis; Private limitiert) +
-  * 🆓 Drone CI (Open-Source; self-hosted möglich) +
-  * 🆓 Bitbucket Pipelines (Free Tier limitiert)+
  
-**Code-Analyse Qualität** +# JavaScript/TypeScript files 
-  🆓 SonarCloud (nur Public repos) +[*.{js,ts,jsx,tsx,cjs,mjs}] 
-  * 💰 SonarCloud (Private Repos) +indent_size = 2
-  * 🆓 SonarQube (self-hosted) (Community Edition gratis; eigener Server nötig) +
-  * 🆓 ESLint / Prettier (Frontend/Node-Linting; super leicht in CI) +
-  * 🆓 Flake8 / Black (Python Linting & Formatting) +
-  * 🆓 Checkstyle / PMD (Java Code-Analyse) +
-  * 🆓 Bandit (Python Security Scan) +
-  * 🆓 OWASP ZAP (Sicherheitsanalyse; E2E-Security) +
-  * 🆓 Snyk (Free Tier) (Dependency-Vulnerabilities; limitiert)+
  
-**Hosting Deployment**+# HTML/CSS 
 +[*.{html,css,scss}] 
 +indent_size = 2
  
-Frontend +# JSON / YAML / config 
-  * 🆓 GitHub Pages (nur statisch) +[*.{json,yml,yaml}] 
-  * 🆓 Netlify (ideal für React/Angular; Free Tier limitiert) +indent_size = 2 
-  * 🆓 Vercel (sehr gut für Next.js/React; Free Tier limitiert) +</code> 
-  🆓 Firebase Hosting (schnell + serverless; Free Tier gut+ 
-  * 🆓 Cloudflare Pages (statisch oder Functions; Free Tier sehr großzügig)+==== Beispiele Frontend ==== 
 +''prettier.config.js''  
 +<code javascript> 
 +export default { 
 +  semi: true, 
 +  singleQuote: true, 
 +  trailingComma: 'all', 
 +  printWidth: 100, 
 +}; 
 +</code> 
 + 
 +''eslint.config.js'' 
 +Für die ganze Konfigurationsdatei inklusive TSLint: https://github.com/AlexanderPeter/cicd/blob/develop/frontend/eslint.config.js 
 +<code javascript> 
 +... 
 +ignores: ['node_modules/**', 'dist/**'], 
 +... 
 +quotes: ['error', 'single'], 
 +... 
 +prettierConfig.default, 
 +... 
 +</code> 
 + 
 + 
 +==== Beispiele Python ==== 
 +''pyproject.toml'' 
 +<code ini> 
 +[tool.black] 
 +line-length = 100 
 +target-version = ['py311'
 +skip-string-normalization = true 
 +extend-exclude = ''' 
 +/( 
 +    generated 
 +)/ 
 +''' 
 +</code> 
 + 
 +''.pylintrc''  
 +<code ini> 
 +[MASTER] 
 +ignore=.venv,generated 
 + 
 +[MESSAGES CONTROL] 
 + 
 +# Disable the message, report, category or checker with the given id(s)
 +disable= 
 +      invalid-name, # C0103 
 +      C0114,  # Missing module docstring 
 +      C0115,  # Missing class docstring 
 +      C0116,  # Missing function or method docstring 
 +</code>
  
-Backend 
-  * 🆓 Render (Free Tier schläft nach Inaktivität) 
-  * 🆓 Railway (Free Tier begrenzt) 
-  * 🆓 Fly.io (global deploy; Free Tier begrenzt) 
-  * 🆓 Firebase Cloud Functions (serverless; Free Tier großzügig) 
-  * 💰 AWS (EC2, Lambda, Elastic Beanstalk) (Free Tier 12 Monate) 
-  * 💰 Azure App Service (Free Tier sehr minimal) 
-  * 💰 Google Cloud Run / App Engine (Free Tier ok) 
  
-Datenbanken 
-  * 🆓 Firebase Firestore (NoSQL; Free Tier) 
-  * 🆓 Supabase (Postgres; Free Tier limitiert) 
-  * 🆓 MongoDB Atlas (Shared Cluster gratis) 
-  * 🆓 Neon.tech (Postgres; Free Tier sehr gut) 
-  * 💰 AWS RDS / DynamoDB (Free Tier eingeschränkt/zeitlich begrenzt) 
-  * 💰 Azure SQL / CosmosDB (Free Tier eingeschränkt) 
  
-''TODO'' 
  
  • de/modul/ffit/3-jahr/cicd/learningunits/lu03/b.1770070249.txt.gz
  • Zuletzt geändert: 2026/02/02 23:10
  • von apeter