Autor : Luo Hao
Hinweis : Vom Start des Projekts bis zum Erwerb von 8w+ Sternen haben wir Rückmeldungen erhalten, dass der grundlegende Teil (der Inhalt der ersten 15 Tage) für Anfänger schwierig ist. Es wird empfohlen, unterstützende Videos zur Erklärung bereitzustellen. Vor kurzem wurde der grundlegende Teil des Inhalts in ein Projekt namens „Python-Core-50-Courses“ umgeschrieben, das einfacher und beliebter ist und mit Videoerklärungen versehen ist Schauen Sie sich dieses neue Lager an. Wenn inländische Benutzer langsam auf GitHub zugreifen, können sie meinem Zhihu-Konto Python-Jack folgen. Die obige Spalte „Python von Grund auf lernen“ ist für Anfänger besser geeignet. Andere Spalten wie „Datendenken und statistisches Denken“. „ „Datenanalyse“ usw. werden ebenfalls kontinuierlich erstellt und aktualisiert. Jeder ist willkommen, aufmerksam zu sein, zu liken und zu kommentieren.
Freunde, die Lernvideos erhalten möchten, können den untenstehenden QR-Code scannen, um am WeChat-Miniprogramm teilzunehmen und zu sehen, ob für Sie geeignete Inhalte vorhanden sind. Die Machine-Learning-Inhalte, über die jeder nachdenkt, finden Sie im Miniprogramm, das meine Kollegen und ich für Sie aufgezeichnet haben.
Wenn Sie während des Lernprozesses auf schwierige Probleme stoßen oder relevante Lernressourcen benötigen, können Sie der folgenden QQ-Kommunikationsgruppe beitreten. Bitte treten Sie der Gruppe nicht wiederholt bei und posten Sie nicht in der Gruppe. Werbung und andere pornografische, vulgäre oder sensible Inhalte. Wenn es Ihnen an Selbstdisziplin mangelt und Sie für das Lernen bezahlen müssen, können Sie meinen privaten WeChat-Chat (jackfrued) hinzufügen und Ihren Namen und Ihre Bedürfnisse notieren. Ich werde Ihnen einige Hinweise zu Studienplänen und Karriereplanung geben .
Die unterstützenden Videos auf Douyin und Bilibili werden laufend aktualisiert. Ich habe gerade mein Konto eröffnet. Vielen Dank.
Das von allen geforderte „Machine Learning“ und „Deep Learning“ ist aus persönlichen und geschäftlichen Gründen zum Erliegen gekommen. Die entsprechenden Inhalte werden in naher Zukunft aktualisiert. Vielen Dank für Ihre anhaltende Unterstützung und Ihr Verständnis.
Einfach ausgedrückt ist Python eine „elegante“, „klare“ und „einfache“ Programmiersprache.
Geringe Lernkurve, auch Laien können loslegen
Open-Source-System mit einem starken Ökosystem
Interpretierte Sprache, perfekte Plattformportabilität
Dynamisch typisierte Sprache, die objektorientierte und funktionale Programmierung unterstützt
Der Code ist hochgradig standardisiert und lesbar
Python ist in den folgenden Bereichen nützlich.
Backend-Entwicklung – Python/Java/Go/PHP
DevOps – Python/Shell/Ruby
Datenerfassung – Python/C++/Java
Quantitativer Handel – Python/C++/R
Datenwissenschaft – Python/R/Julia/Matlab
Maschinelles Lernen – Python/R/C++/Julia
Automatisierte Tests – Python/Shell
Als Python-Entwickler stehen Ihnen je nach persönlichen Vorlieben und Karriereplänen viele Beschäftigungsfelder zur Auswahl.
Python-Backend-Entwicklungsingenieur (Server, Cloud-Plattform, Datenschnittstelle)
Python-Betriebs- und Wartungsingenieur (automatisierter Betrieb und Wartung, SRE, DevOps)
Python-Datenanalyst (Datenanalyse, Business Intelligence, Digital Operations)
Python-Data-Mining-Ingenieur (Maschinenlernen, Deep Learning, Algorithmenexperte)
Python-Crawler-Ingenieur
Python-Testingenieur (automatisiertes Testen, Testentwicklung)
Hinweis : Derzeit sind Datenanalyse und Data Mining sehr beliebte Bereiche , da sowohl die Internetbranche als auch die traditionelle Industrie große Datenmengen angesammelt haben und alle Lebensbereiche Datenanalysten benötigen, um aus vorhandenen Daten mehr geschäftliche Erkenntnisse zu gewinnen Bereitstellung von Datenunterstützung für Unternehmensentscheidungen, die sogenannte datengesteuerte Entscheidungsfindung.
Ein paar Vorschläge für Anfänger:
Machen Sie Englisch zu Ihrer Arbeitssprache.
Übung macht den Meister.
Alle Erfahrung entsteht aus Fehlern.
Seien Sie nicht einer der Blutegel.
Entweder ausstehend oder ausgefallen (entweder ausstehend oder ausgefallen).
Einführung in Python – Geschichte von Python/Vor- und Nachteile von Python/Anwendungsfelder von Python
Erstellen Sie eine Programmierumgebung – Windows-Umgebung/Linux-Umgebung/MacOS-Umgebung
Python-Programm vom Terminal aus ausführen – Hallo Welt / Funktion print
/ Programm ausführen
Verwenden von IDLE – Interactive Environment (REPL) / Mehrere Codezeilen schreiben / Programm ausführen / IDLE beenden
Kommentare – die Rolle von Kommentaren/einzeiligen Kommentaren/mehrzeiligen Kommentaren
Programme und Basis – Anweisungen und Programme/Von-Neumann-Maschine/Binär und Dezimal/Oktal und Hexadezimal
Variablen und Typen – Benennung von Variablen/Verwendung von Variablen/ input
/Überprüfung von Variablentypen/Typkonvertierung
Zahlen und Zeichenfolgen – Ganzzahlen/Gleitkommazahlen/komplexe Zahlen/Zeichenfolgen/grundlegende Zeichenfolgenoperationen/Zeichenkodierung
Operatoren – mathematische Operatoren/Zuweisungsoperatoren/Vergleichsoperatoren/logische Operatoren/Identitätsoperatoren/Operatorpriorität
Anwendungsfall – Fahrenheit-Temperatur in Celsius-Temperatur umrechnen / Geben Sie den Radius des Kreises ein, um Umfang und Fläche zu berechnen / Geben Sie das Jahr ein, um festzustellen, ob es sich um ein Schaltjahr handelt
Anwendungsszenarien von Zweigstrukturen – Bedingungen/Einrückung/Codeblöcke/Flussdiagramme
if-Anweisung – einfaches if
/ if
– else
-Struktur/ if
– elif
– else
-Struktur/verschachteltes if
Anwendungsfälle – Benutzerauthentifizierung/Austausch von britischen und metrischen Einheiten/Würfeln, um zu entscheiden, was zu tun ist/Konvertieren von Perzentilwerten in ein Notensystem/Auswerten stückweiser Funktionen/Eingeben der Längen von drei Seiten und Berechnen des Umfangs und der Fläche, wenn ein Dreieck möglich ist gebildet
Anwendungsszenarien von Schleifenstrukturen – Bedingungen/Einrückungen/Codeblöcke/Flussdiagramme
While-Schleife – Grundstruktur/ break
Anweisung/ continue
-Anweisung
for-Schleife – Grundstruktur/ range
/Zweigstruktur in der Schleife/verschachtelte Schleife/Programm vorzeitig beenden
Anwendungsfälle - Summieren von 1 bis 100 / Bestimmen von Primzahlen / Ratespiele mit Zahlen / Drucken von neunundneunzig Tabellen / Drucken von Dreiecksmustern / Affen, die Pfirsiche fressen / Hunderte von Münzen und Hunderte von Hühnern
Klassische Fälle: Narzissenzahl/Hundert Geld und Hundert Hühner/Craps-Glücksspiel
Übungsfragen: Fibonacci-Folge/Perfekte Zahlen/Primzahlen
Die Rolle von Funktionen – der schlechte Geruch von Code/die Kapselung von Funktionsmodulen mit Funktionen
Funktion definieren – def
Schlüsselwort/Funktionsname/Parameterliste/ return
/benutzerdefinierte Funktion aufrufen
Aufrufen von Funktionen – in Python integrierte Funktionen/Importieren von Modulen und Funktionen
Funktionsparameter – Standardparameter/Variablenparameter/Schlüsselwortparameter/benannte Schlüsselwortparameter
Rückgabewert der Funktion – kein Rückgabewert / einzelner Wert zurückgeben / mehrere Werte zurückgeben
Bereichsprobleme – lokaler Bereich/verschachtelter Bereich/globaler Bereich/integrierter Bereich/bereichsbezogene Schlüsselwörter
Verwenden von Modulverwaltungsfunktionen – das Konzept von Modulen/Verwenden benutzerdefinierter Modulverwaltungsfunktionen/Was passiert, wenn ein Namenskonflikt auftritt (dasselbe Modul und verschiedene Module)
Verwendung von Strings – Längenberechnung/Indexoperation/Slicing/allgemeine Methoden
Grundlegende Verwendung von Listen – Definieren Sie Listen/verwenden Sie die folgende Tabelle, um auf Elemente zuzugreifen/Index außerhalb der Grenzen/Elemente hinzufügen/Elemente löschen/Elemente ändern/Slice/Schleifendurchlauf
Allgemeine Operationen an Listen – Verbindung/Kopieren (Kopieren von Elementen und Kopieren von Arrays)/Länge/Sortieren/Umkehren/Suchen
Listen generieren – range
verwenden, um Listen mit Zahlen zu erstellen/Ausdrücke/Generatoren zu generieren
Verwendung von Tupeln – Tupel definieren/Werte in Tupeln verwenden/Tupelvariablen ändern/Tupel- und Listenkonvertierungen
Grundlegende Verwendung von Sets – der Unterschied zwischen Sets und Listen/Set erstellen/Elemente hinzufügen/Elemente löschen/Löschen
Allgemeine Operationen an Mengen – Schnittmenge/Vereinigung/Differenz/symmetrische Differenz/Teilmenge/Obermenge
Grundlegende Verwendung des Wörterbuchs – Eigenschaften des Wörterbuchs/Wörterbuch erstellen/Element hinzufügen/Element löschen/Wert abrufen/löschen
Allgemeine Wörterbuchoperationen – keys
/ values
/ items
/ setdefault
-Methode
Grundübungen – Marquee-Effekt/Das größte Element in einer Liste finden/Die durchschnittliche Punktzahl statistischer Testergebnisse/Fibonacci-Folge/Yang-Hui-Dreieck
Umfangreiches Etui – zweifarbige Ballnummernauswahl/Tic-Tac-Toe
Klassen und Objekte – Was ist eine Klasse/Was ist ein Objekt/Andere verwandte Konzepte der Objektorientierung
Klasse definieren – Grundstruktur/Eigenschaften und Methoden/Konstruktor/Destruktor/ __str__
str__method
Objekte verwenden – Objekte erstellen/Nachrichten an Objekte senden
Die vier Säulen der Objektorientierung – Abstraktion/Kapselung/Vererbung/Polymorphismus
Grundübungen – Schülerklasse definieren/Uhrenklasse definieren/Grafikklasse definieren/Autoklasse definieren
Eigenschaften – Klasseneigenschaften/Instanzeigenschaften/Eigenschaftszugriffsfunktionen/Eigenschaftsmodifikatoren/Eigenschaftslöscher/verwenden Sie __slots__
Methoden in Klassen – Instanzmethoden/Klassenmethoden/statische Methoden
Operatorüberladung – __add__
/ __sub__
/ __or__
/ __getitem__
/ __setitem__
/ __len__
/ __gt__
/ __lt__
/ __le__
/ __ge__
/ __ge__ / __eq__
/ __ne__
__contains__
__repr__
Beziehung zwischen Klassen (Objekten) – Assoziation/Vererbung/Abhängigkeit
Vererbung und Polymorphismus – Was ist Vererbung/Vererbungssyntax/Aufruf von übergeordneten Klassenmethoden/Methodenüberschreibung/Typbestimmung/Mehrfachvererbung/Diamantenvererbung (Diamantenvererbung) und C3-Algorithmus
Umfassendes Fall-Gehaltsabrechnungssystem/automatisches Buchrabattsystem/benutzerdefinierte Bewertungskategorie
Entwickeln Sie GUI-Programme mit tkinter
Entwickeln Sie Spielanwendungen mithilfe der pygame
-Bibliothek eines Drittanbieters
„Großer Ball frisst kleinen Ball“-Spiel
Datei lesen – liest die gesamte Datei / liest Zeile für Zeile / Dateipfad
Datei schreiben – Textdatei/Binärdatei überschreiben/anhängen
Ausnahmebehandlung – die Bedeutung des Ausnahmemechanismus/ try
– except
Codeblock/ else
Codeblock/ finally
Codeblock/eingebauter Ausnahmetyp/Ausnahmestapel/ raise
-Anweisung
Datenpersistenz – CSV-Dateiübersicht/Anwendung des csv
-Moduls/JSON-Datenformat/Anwendung des json
-Moduls
Erweiterte Operationen an Zeichenfolgen – Escape-Zeichen/Rohzeichenfolgen/mehrzeilige Zeichenfolgen/ in
und not in
Operatoren/ is_xxx
-Methoden/ join
und split
Methoden/ strip
bezogene Methoden/ pyperclip
Modul/ unveränderliche Zeichenfolgen und variable Zeichenfolgen/ Verwendung von StringIO
Einführung in reguläre Ausdrücke – die Rolle regulärer Ausdrücke/Metazeichen/Escapezeichen/Quantifizierer/Gruppierung/Zero-Width-Assertionen/Greedy Matching und Lazy Matching Lazy/Verwenden Sie das re
Modul zum Implementieren regulärer Ausdrucksoperationen (Abgleichen, Suchen, Ersetzen, Erfassen)
Verwendung regulärer Ausdrücke – re
Modul/ compile
/ group
und groups
/ match
Methode/ search
/ findall
und finditer
-Methode/ sub
und subn
-Methode/ split
-Methode
Anwendungsfall – Verwenden Sie reguläre Ausdrücke, um Eingabezeichenfolgen zu validieren
Konzepte von Prozessen und Threads - Was ist ein Prozess / Was ist ein Thread / Multithreading-Anwendungsszenarien
Verwenden von Prozessen – fork
Funktion/ multiprocessing
Modul/Prozesspool/Interprozesskommunikation
Verwenden von Threads – threading
Modul/ Thread
Klasse/ RLock
Klasse/ Condition
/Thread-Pool
Grundlagen von Computernetzwerken – Geschichte der Computernetzwerkentwicklung/„TCP-IP“-Modell/IP-Adresse/Port/Protokoll/Andere verwandte Konzepte
Netzwerkanwendungsmodus – Modus „Client-Server“ / Modus „Browser-Server“.
Zugriff auf Netzwerkressourcen basierend auf dem HTTP-Protokoll – Netzwerk-API-Übersicht/Zugriffs-URL/ requests
von Bibliotheken von Drittanbietern/Analysieren von Daten im JSON-Format
Python-Netzwerkprogrammierung – das Konzept von Sockets/ socket
Modul/ socket
Funktion/TCP-Server erstellen/TCP-Client erstellen/UDP-Server erstellen/UDP-Client erstellen
E-Mail – SMTP/POP3/IMAP/ smtplib
-Modul/ poplib
Modul/ imaplib
Modul
SMS-Dienst – Rufen Sie das SMS-Dienst-Gateway an
Verwenden Sie Pillow zum Verarbeiten von Bildern – Lesen und Schreiben von Bildern/Bildsynthese/geometrische Transformation/Farbkonvertierung/Filtereffekte
Lesen und Schreiben von Word-Dokumenten – Verarbeitung von Textinhalten/Absätzen/Kopf- und Fußzeilen/Stilverarbeitung
Excel-Dateien lesen und schreiben - xlrd
/ xlwt
/ openpyxl
Gemeinsame Datenstrukturen
Erweiterte Verwendung von Funktionen – „Bürger erster Klasse“ / Funktionen höherer Ordnung / Lambda-Funktionen / Umfang und Abschlüsse / Dekoratoren
Fortgeschrittenes objektorientiertes Wissen – „Drei Säulen“ / Beziehung zwischen Klassen / Garbage Collection / Magische Eigenschaften und Methoden / Mischen / Metaklasse / Objektorientierte Designprinzipien / GoF-Designmuster
Iteratoren und Generatoren – Verwandte magische Methoden/Zwei Möglichkeiten, einen Generator zu erstellen/
Gleichzeitige und asynchrone Programmierung – Multithreading/Multiprozess/asynchrone E/A/ async
und awai
Verwenden Sie HTML-Tags, um Seiteninhalte zu übertragen
Rendern Sie die Seite mit CSS
Umgang mit interaktivem Verhalten mit JavaScript
Erste Schritte mit jQuery und Verbesserung davon
Erste Schritte mit Vue.js
Verwendung von Element
Verwendung von Bootstrap
Entwicklungsgeschichte des Betriebssystems und Linux-Überblick
Grundlegende Linux-Befehle
Dienstprogramme unter Linux
Linux-Dateisystem
Vim-Editor-Anwendung
Umgebungsvariablen und Shell-Programmierung
Softwareinstallation und Servicekonfiguration
Netzwerkzugriff und -verwaltung
Andere verwandte Inhalte
Überblick über relationale Datenbanken
Einführung in MySQL
InstallMySQL
Grundlegende MySQL-Befehle
Erstellen Sie eine Datenbank und eine Tabelle
Tabellen löschen und ändern
Einfügevorgang
Löschvorgang
Aktualisierungsvorgang
Projektionen und Aliase
Daten filtern
Behandlung von Nullwerten
Duplikate entfernen
Sortieren
Aggregatfunktion
Verschachtelte Abfragen
Gruppe
Tischverknüpfung
Kartesisches Produkt
innerer Join
natürliche Verbindung
äußerer Join
Fensterfunktion
Fenster definieren
Ranking-Funktion
Zugriffsfunktion
Benutzer anlegen
Berechtigungen erteilen
Berechtigungen abrufen
JSON-Typ
Fensterfunktion
allgemeiner Tabellenausdruck
Sicht
Nutzungsszenarien
Ansicht erstellen
Nutzungsbeschränkungen
Funktion
Integrierte Funktionen
Benutzerdefinierte Funktion (UDF)
Verfahren
Entstehungsprozess
Aufrufvorgang
Ausführungsplan
Das Prinzip der Indizierung
Index erstellen
Gewöhnlicher Index
eindeutiger Index
Präfixindex
zusammengesetzter Index
Dinge zu beachten
Installieren Sie Bibliotheken von Drittanbietern
Verbindung herstellen
Cursor abrufen
SQL-Anweisung ausführen
Daten per Cursor abrufen
Transaktions-Commit und Rollback
Verbindung lösen
Schreiben Sie ETL-Skripte
Hadoop-Ökosystem
Bienenstock-Übersicht
Vorbereitung
Datentyp
DDL-Operationen
DML-Operationen
Datenabfrage
Arbeitsmechanismus einer Webanwendung
HTTP-Anfragen und -Antworten
Übersicht über das Django-Framework
Schneller Einstieg in 5 Minuten
Relationale Datenbankkonfiguration
Verwenden Sie ORM, um CRUD-Operationen am Modell abzuschließen
Einsatz von Management-Hintergrund
Best Practices für das Django-Modell
Referenz zur Modelldefinition
Laden Sie statische Ressourcen
Ajax-Übersicht
Implementieren Sie die Abstimmungsfunktion mit Ajax
Implementieren Sie die Benutzerverfolgung
Die Beziehung zwischen Cookies und Sitzungen
Unterstützung des Django-Frameworks für Sitzungen
Cookie-Lese- und Schreibvorgänge in Ansichtsfunktionen
Ändern Sie Antwortheader über HttpResponse
Verwenden Sie StreamingHttpResponse
um große Dateien zu verarbeiten
Verwenden Sie xlwt
um Excel-Berichte zu erstellen
Verwenden Sie reportlab
, um PDF-Berichte zu erstellen
Verwenden Sie ECharts, um Front-End-Diagramme zu erstellen
Konfigurationsprotokoll
Konfigurieren Sie die Django-Debug-Toolbar
Optimieren Sie den ORM-Code
Was ist Middleware?
Integrierte Middleware im Django-Framework
Benutzerdefinierte Middleware und ihre Anwendungsszenarien
Geben Sie Daten im JSON-Format zurück
Rendern Sie die Seite mit Vue.js
REST-Übersicht
Erste Schritte mit der DRF-Bibliothek
Getrennte Entwicklung von Frontend und Backend
Anwendung von JWT
Nutzen Sie CBV
Daten-Paging
Datenfilterung
Das erste Gesetz der Website-Optimierung
Verwendung von Redis zur Bereitstellung von Caching-Diensten in Django-Projekten
Lese- und Schreibcache in der Ansichtsfunktion
Verwendung von Dekoratoren zur Implementierung des Seiten-Cachings
Bereitstellung von Caching-Diensten für Datenschnittstellen
Steuerung des Datei-Upload-Formulars und Vorschau der Bilddatei
Umgang mit hochgeladenen Dateien auf der Serverseite
Das zweite Gesetz der Website-Optimierung
Konfigurieren Sie den Nachrichtenwarteschlangendienst
Verwenden Sie Celery, um die Aufgabenasynchronisierung im Projekt zu implementieren
Verwenden Sie Celery, um geplante Aufgaben im Projekt umzusetzen
Unit-Tests in Python
Unterstützung des Django-Frameworks für Unit-Tests
Verwenden Sie ein Versionskontrollsystem
Konfigurieren und Verwenden von uWSGI
Dynamische und statische Trennung und Nginx-Konfiguration
Konfigurieren Sie HTTPS
Konfigurieren Sie die Auflösung des Domänennamens
Das Konzept des Webcrawlers und seine Anwendungsbereiche
Diskussion zur Legalität von Webcrawlern
Verwandte Tools zur Entwicklung von Webcrawlern
Die Zusammensetzung eines Crawler-Programms
Verwenden Sie requests
um die Datenerfassung zu implementieren
Drei Möglichkeiten zum Parsen von Seiten
Parsen regulärer Ausdrücke
XPath-Analyse
Analyse des CSS-Selektors
Multithreading
Mehrprozess
Asynchrone E/A
Installieren Sie Selen
Seite laden
Elemente finden und Benutzerverhalten simulieren
Implizites Warten und explizites Warten
Führen Sie JavaScript-Code aus
Selen-Anti-Crawling-Crack
Richten Sie einen Headless-Browser ein
Scrapy-Kernkomponenten
Scrapy-Workflow
Installieren Sie Scrapy und erstellen Sie das Projekt
Schreiben Sie ein Spider-Programm
Schreiben Sie Middleware- und Pipeline-Programme
Scrapy-Konfigurationsdatei
Verantwortlichkeiten des Datenanalysten
Kompetenzstapel für Datenanalysten
Bibliotheken für die Datenanalyse
Installieren und verwenden Sie Anaconda
Conda-bezogene Befehle
Installieren und verwenden Sie jupyter-lab
Installieren und starten
Nutzen Sie Tipps
Array-Objekt erstellen
Array-Objekteigenschaften
Indexoperationen für Array-Objekte
Gewöhnlicher Index
schicker Index
boolescher Index
Slice-Index
Fall: Verwendung von Arrays zur Verarbeitung von Bildern
Verwandte Methoden von Array-Objekten
Erhalten Sie beschreibende Statistiken
Andere verwandte Methoden
Array-Operationen
Array- und Skalaroperationen
Arrays und Array-Operationen
Universelle unäre Funktion
allgemeine Binärfunktion
Broadcast-Mechanismus
Gemeinsame Numpy-Funktionen
Vektor
Bestimmend
Matrix
Polynom
Erstellen Sie ein Series
Operationen an Series
Eigenschaften und Methoden von Series
Erstellen Sie ein DataFrame
Objekt
Eigenschaften und Methoden von DataFrame
Objekten
Daten in DataFrame
lesen und schreiben
Datenumformung
Datenspleißen
Datenzusammenführung
Datenbereinigung
Fehlende Werte
Doppelte Werte
Ausreißer
Vorverarbeitung
Pivot-Daten
Erhalten Sie beschreibende Statistiken
Sortier- und Headerwerte
Gruppenaggregation
Pivot-Tabellen und Kreuztabellen
Datenpräsentation
Berechnen Sie den Jahresvergleich
Fensterberechnung
Relevanzbestimmung
Verwendung von Index
Bereichsindex
Kategorieindex
mehrstufiger Index
Intervallindex
Datum/Uhrzeit-Index
Matplotlib installieren und importieren
Leinwand erstellen
Erstellen Sie ein Koordinatensystem
Zeichnen Sie Diagramme
Liniendiagramm
Streudiagramm
Balkendiagramm
Kreisdiagramm
Histogramm
Boxplot
Diagramme anzeigen und speichern
Erweiterte Diagramme
Blasendiagramm
Flächendiagramm
Radarkarte
Rosendiagramm
3D-Diagramme
Seaborn
Pyecharts
Software-Prozessmodell
Product Backlog (User Stories, Produktprototypen).
Planungsbesprechungen (Bewertung und Budgetierung).
Tägliche Entwicklung (Stand-up-Meetings, Pomodoro-Technik, Paarprogrammierung, Test First, Code-Refactoring...).
Beheben Sie Fehler (Problembeschreibung, Schritte zur Reproduktion, Tester, Verantwortliche).
Release-Version.
Überprüfungstreffen (Showcase, Benutzer müssen teilnehmen).
Retrospektives Treffen (eine Zusammenfassung des aktuellen Iterationszyklus erstellen).
Einzelpersonen und Interaktionen über Prozesse und Tools
Funktionierende Software statt sorgfältiger Dokumentation
Die Zusammenarbeit mit dem Kunden hat Vorrang vor Vertragsverhandlungen
Auf Veränderungen zu reagieren ist besser, als einem Plan zu folgen
Machbarkeitsanalyse (ob die Forschung durchgeführt werden soll oder nicht) und Ausgabe des „Machbarkeitsanalyseberichts“.
Anforderungsanalyse (Recherche darüber, was zu tun ist), Ausgabe der „Anforderungsspezifikation“ und Diagramm des Produktschnittstellenprototyps.
Entwurfsentwurf und detaillierter Entwurf, Ausgabe konzeptioneller Modelldiagramme (ER-Diagramme), physikalischer Modelldiagramme, Klassendiagramme, Sequenzdiagramme usw.
Codierung/Testen.
Gehen Sie online/Wartung.
Klassisches Prozessmodell (Wasserfallmodell)
Der größte Nachteil des Wasserfallmodells besteht darin, dass es Änderungen in der Nachfrage nicht berücksichtigen kann. Das Produkt kann erst gesehen werden, wenn der gesamte Prozess abgeschlossen ist, was zu einer schlechten Teammoral führt.
Agile Entwicklung (Scrum) – Product Owner, Scrum Master, Entwickler – Sprint
Ergänzung: Manifest für agile Softwareentwicklung
Rolle: Product Owner (die Person, die entscheidet, was zu tun ist und Entscheidungen über Anforderungen treffen kann), Teamleiter (löst verschiedene Probleme, konzentriert sich darauf, wie man besser arbeiten kann und schirmt externen Einfluss auf das Entwicklungsteam ab), Entwicklungsteam (Projektleiter, Speziell Entwickler und Tester).
Vorbereitung: Business Case und Finanzierung, Verträge, Vision, erste Produktanforderungen, erster Release-Plan, Übernahme von Kapitalbeteiligungen, Aufbau eines Teams.
Agile Teams bestehen in der Regel aus 8–10 Personen.
Arbeitslastschätzung: Quantifizieren Sie Entwicklungsaufgaben, einschließlich Prototypen, Logo-Design, UI-Design, Front-End-Entwicklung usw., und versuchen Sie, jede Arbeit in die Mindestaufgabenmenge zu zerlegen. Der Standard für die Mindestaufgabenmenge sieht vor, dass die Arbeitszeit zwei Tage nicht überschreiten darf und schätzen Sie dann die Gesamtprojektzeit ab. Veröffentlichen Sie jede Aufgabe auf dem Kanban-Board, das in drei Teile unterteilt ist: „to do“ (zu erledigen), „in progress“ (in Bearbeitung) und „done“ (abgeschlossen).
Bildung von Projektteams
Codekommentare sind zu wenige oder keine Kommentare
Code verstößt gegen bewährte Sprachpraktiken
Anti-Pattern-Programmierung (Spaghetti-Code, Copy-Paste-Programmierung, Ego-Programmierung,…)
Teamzusammensetzung und Rollen
Hinweis: Vielen Dank an Frau Fu Xiangying , die mir beim Zeichnen des folgenden schönen Unternehmensorganigramms geholfen hat.
Programmierspezifikationen und Codeüberprüfung ( flake8
, pylint
)
Einige „Konventionen“ in Python (siehe „Python-Konventionen – So schreiben Sie Python-Code“)
Gründe, die die Lesbarkeit des Codes beeinträchtigen:
Einführung in Teamentwicklungstools
Bitte beachten Sie „Probleme und Lösungen in der Teamprojektentwicklung“.
Versionskontrolle: Git, Mercury
Fehlermanagement: Gitlab, Redmine
Agile Closed-Loop-Tools: ZenTao, JIRA
Kontinuierliche Integration: Jenkins, Travis-CI
Einstellung des Themenbereichs
CMS (Kunde): Website zur Nachrichtenaggregation, Frage-und-Antwort-/Sharing-Community, Website für Filmrezensionen/Buchrezensionen usw.
MIS (Benutzerseite + Verwaltungsseite): KMS, KPI-Bewertungssystem, HRS, CRM-System, Lieferkettensystem, Lagerverwaltungssystem usw.
App-Backend (Verwaltungsterminal + Datenschnittstelle): Second-Hand-Transaktionen, Zeitungen und Zeitschriften, Nischen-E-Commerce, Nachrichten und Informationen, Reisen, soziale Netzwerke, Lesen usw.
Andere Typen: Eigener Branchenhintergrund und Berufserfahrung, das Geschäft ist leicht zu verstehen und zu kontrollieren.
Anforderungsverständnis, Modulaufteilung und Aufgabenverteilung
Anforderungsverständnis: Brainstorming und Wettbewerbsproduktanalyse.
Modulteilung: Zeichnen Sie eine Mind Map (XMind), und jede spezifische Funktion ist ein Blattknoten (ausgedrückt durch Verben). Es muss sichergestellt werden, dass jeder Blattknoten keine neuen Knoten generieren und jedes Blatt bestimmen kann. Bedeutung, Priorität und Auslastung der Knoten.
Aufgabenverteilung: Der Projektleiter weist jedem Teammitglied Aufgaben auf Grundlage der oben genannten Indikatoren zu.
Projektplan entwickeln (täglich aktualisiert)
Modul | Funktion | Personal | Zustand | Beenden | Arbeitszeit | Der Plan beginnt | Eigentlicher Beginn | Der Plan endet | tatsächliches Ende | Bemerkung |
---|---|---|---|---|---|---|---|---|---|---|
Kommentar | Kommentar hinzufügen | Wang Dachui | fortlaufend | 50 % | 4 | 07.08.2018 | 07.08.2018 | |||
Kommentar löschen | Wang Dachui | Warten | 0% | 2 | 07.08.2018 | 07.08.2018 | ||||
Kommentare anzeigen | Bai Yuanfang | fortlaufend | 20 % | 4 | 07.08.2018 | 07.08.2018 | Codeüberprüfung erforderlich | |||
Kommentarabstimmung | Bai Yuanfang | Warten | 0% | 4 | 8.8.2018 | 8.8.2018 |
OOAD- und Datenbankdesign
Klassendiagramm für UML (Unified Modeling Language)
Erstellen Sie eine Tabelle über das Modell (Forward Engineering). In einem Django-Projekt können Sie beispielsweise mit dem folgenden Befehl eine zweidimensionale Tabelle erstellen.
Python manage.py Makemigrations-App Python manage.py migrieren
Verwenden Sie PowerDesigner, um physikalische Modelldiagramme zu zeichnen.
Erstellen Sie ein Modell (Reverse Engineering) über eine Datentabelle. In einem Django-Projekt können Sie beispielsweise ein Modell mit dem folgenden Befehl generieren.
python manage.py inspectdb > app/models.py
Einführung in Docker
Installieren Sie Docker
Erstellen Sie Container mit Docker (Nginx, MySQL, Redis, Gitlab, Jenkins)
Erstellen Sie ein Docker-Image (Dockerfile-Schreiben und zugehörige Anweisungen)
Container-Orchestrierung (Docker-Compose)
Clusterverwaltung (Kubernetes)
Grundprinzipien
InnoDB-Engine
Indexnutzung und Vorsichtsmaßnahmen
Datenpartition
SQL-Optimierung
Konfigurationsoptimierung
Architekturoptimierung
Gestaltungsprinzipien
Schlüsselfragen
Andere Fragen
Schreiben von Dokumenten
Datenbankkonfiguration (mehrere Datenbanken, Master-Slave-Replikation, Datenbankrouting)
Cache-Konfiguration (Partitionscache, Schlüsseleinstellungen, Timeout-Einstellungen, Master-Slave-Replikation, Wiederherstellung nach Fehlern (Sentinel))
Protokollkonfiguration
Profilerstellung und Debugging (Django-Debug-ToolBar)
Nützliche Python-Module (Datumsberechnung, Bildverarbeitung, Datenverschlüsselung, Drittanbieter-API)
RESTful-Architektur
Verstehen Sie die RESTful-Architektur
RESTful API-Designrichtlinien
Best Practices für die RESTful-API
Schreiben einer API-Schnittstellendokumentation
RAP2
YAPI
Anwendung des Django-REST-Frameworks
Verwenden Sie Caching, um den Datenbankdruck zu verringern – Redis
Verwenden Sie Nachrichtenwarteschlangen zum Entkoppeln und Spitzenbeschneiden – Celery + RabbitMQ
Art des Tests
Schreiben Sie Unit-Tests ( unittest
, pytest
, nose2
, tox
, ddt
, ...)
Testabdeckung ( coverage
)
Vorbereitung vor dem Einsatz
Schlüsseleinstellungen (SECRET_KEY / DEBUG / ALLOWED_HOSTS / Cache / Datenbank)
HTTPS/CSRF_COOKIE_SECUR/SESSION_COOKIE_SECURE
Protokollbezogene Konfiguration
Übersicht über gängige Linux-Befehle
Installation und Konfiguration gängiger Linux-Dienste
Verwendung von uWSGI/Gunicorn und Nginx
Für einfache Anwendungen, die nicht viel Anpassung erfordern, ist Gunicorn eine gute Wahl. Die Lernkurve von uWSGI ist viel steiler als bei Gunicorn und die Standardparameter von Gunicorn können bereits an die meisten Anwendungen angepasst werden.
uWSGI unterstützt die heterogene Bereitstellung.
Da Nginx selbst uWSGI unterstützt, werden Nginx und uWSGI im Allgemeinen gemeinsam online bereitgestellt, und uWSGI ist eine voll funktionsfähige und hochgradig angepasste WSGI-Middleware.
In Bezug auf die Leistung schneiden Gunicorn und uWSGI tatsächlich gleich gut ab.
Vergleich von Gunicorn und uWSGI
Testumgebung und Produktionsumgebung mithilfe der Virtualisierungstechnologie (Docker) bereitstellen
Verwendung von AB
Verwendung von SQLslap
Verwendung von Sysbench
Automatisierte Tests mit Shell und Python
Automatisierte Tests mit Selenium
Selenium-IDE
Selenium WebDriver
Selenium-Fernbedienung
Einführung in das Testtool Robot Framework
Geschäftsmodell und Anforderungspunkte
Physikalisches Modelldesign
Anmeldung für Dritte
Cache-Aufwärmen und Abfrage-Caching
Warenkorb-Implementierung
Integration der Zahlungsfunktion
Flash-Sales und überverkaufte Probleme
Statisches Ressourcenmanagement
Volltextsuchlösung
Optimierung der MySQL-Datenbank
Optimierung der Webserverleistung
Nginx-Lastausgleichskonfiguration
Keepalived erreicht eine hohe Verfügbarkeit
Optimierung der Codeleistung
Multithreading
Asynchronisation
Optimierung des statischen Ressourcenzugriffs
Cloud-Speicher
CDN
Computer-Grundlagen
Python-Grundlagen
Bezogen auf Web-Framework
Probleme mit Reptilien
Datenanalyse
Projektbezogen