著者: ルオ・ハオ
注:プロジェクトの立ち上げから8w+スターの獲得まで、基礎部分(最初の15日間の内容)が初心者には難しいというご意見をいただいておりますので、解説するサポート動画があることをお勧めします。最近、コンテンツの基本的な部分が「Python-Core-50-Courses」というプロジェクトに作り直され、よりシンプルでより一般的な方法で書き直され、初心者でも受講できるようになりました。この新しい倉庫を見てください。国内ユーザーが GitHub にアクセスするのが遅い場合は、私のZhihu アカウント Python-Jack をフォローしてください。上記のコラム「Python をゼロから学ぶ」は、「データ思考と統計的思考」、「Python に基づく」などの他のコラムの方が適しています。 「データ分析」なども随時作成・更新していきますので、皆様もぜひご注目、いいね、コメントをお待ちしております。
学習ビデオを入手したい友人は、以下の QR コードをスキャンして WeChat ミニ プログラムに参加し、自分に適したコンテンツがあるかどうかを確認できます。誰もが考えている機械学習の内容は、私と同僚が全員のために録画したミニ プログラムの中にあります。
学習中に難しい問題が発生した場合、または関連する学習リソースが必要な場合は、次の QQ コミュニケーション グループに参加できます。グループに繰り返し参加したり、グループに投稿したりしないでください。広告およびその他のポルノ、下品、またはデリケートなコンテンツ。自制心が足りず、学習にお金を払う必要がある場合は、私の WeChat (jackfrued) プライベート チャットを追加して、あなたの名前とニーズをメモしてください。学習計画とキャリア プランニングについてのガイダンスを提供します。
サポートビデオはDouyinとBilibiliで継続的に更新されています。興味のある友達は私のDouyinまたはBilibiliアカウントをフォローしてください。よろしくお願いします。
皆様にご期待いただいておりました「機械学習とディープラーニング」は個人的および会社の都合により更新が止まっておりますが、近日中に関連コンテンツを更新してまいりますので、今後ともご理解とご協力のほどよろしくお願いいたします。
簡単に言えば、Python は「エレガント」、「明確」、「シンプル」なプログラミング言語です。
学習曲線が低く、専門家でなくても始めることができます
強力なエコシステムを備えたオープンソース システム
通訳された言語、完璧なプラットフォームの移植性
オブジェクト指向および関数型プログラミングをサポートする動的型付け言語
コードは高度に標準化されており、読みやすいです
Pythonは以下の分野で役に立ちます。
バックエンド開発 - Python/Java/Go/PHP
DevOps - Python/シェル/Ruby
データ取得 - Python/C++/Java
定量的取引 - Python/C++/R
データ サイエンス - Python/R/Julia/Matlab
機械学習 - Python/R/C++/Julia
自動テスト - Python/シェル
Python 開発者には、個人の好みやキャリア プランに基づいて選択できる雇用分野が数多くあります。
Pythonバックエンド開発エンジニア(サーバー、クラウドプラットフォーム、データインターフェース)
Python運用保守エンジニア(自動運用保守、SRE、DevOps)
Python データ アナリスト (データ分析、ビジネス インテリジェンス、デジタル オペレーション)
Pythonデータマイニングエンジニア(機械学習、ディープラーニング、アルゴリズムエキスパート)
Pythonクローラーエンジニア
Pythonテストエンジニア(自動テスト、テスト開発)
注: 現在、データ分析とデータ マイニングは非常に人気のある方向性です。インターネット業界と従来の業界の両方が大量のデータを蓄積しており、あらゆる分野が既存のデータからより多くのビジネス上の洞察を発見し、それによって価値を得るデータ アナリストを必要としているからです。企業の意思決定、いわゆるデータドリブンな意思決定をデータでサポートします。
初心者向けのいくつかの提案:
英語を作業言語にしましょう。
練習すれば完璧になります。
すべての経験は間違いから生まれます。
ヒルの一員にならないでください。
傑出したかアウトのどちらか(傑出したかアウトのどちらか)。
Python入門 - Pythonの歴史/Pythonのメリット・デメリット/Pythonの応用分野
プログラミング環境の構築 - Windows環境/Linux環境/MacOS環境
ターミナルから Python プログラムを実行 - Hello, world / print
関数 / プログラムの実行
IDLE の使用 - インタラクティブ環境 (REPL) / 複数行のコードの作成 / プログラムの実行 / IDLE の終了
コメント - コメント/単一行コメント/複数行コメントの役割
プログラムとベース - 命令とプログラム/ノイマンマシン/2進数と10進数/8進数と16進数
変数と型 - 変数の名前付け/変数の使用/ input
関数/変数の型の確認/型変換
数値と文字列 - 整数/浮動小数点数/複素数/文字列/基本的な文字列操作/文字エンコーディング
演算子 - 数学演算子/代入演算子/比較演算子/論理演算子/恒等演算子/演算子の優先順位
応用例 - 華氏温度を摂氏温度に変換 / 円の半径を入力して円周と面積を計算 / 年を入力して閏年かどうかを判断
分岐構造の適用シナリオ - 条件/インデント/コードブロック/フローチャート
if ステートメント - 単純なif
/ if
- else
構造/ if
- elif
- else
構造/ネストされたif
応用例 - ユーザー認証 / インペリアル単位とメートル単位の交換 / サイコロを振って何をするかを決定 / パーセンタイルスコアを等級システムに変換 / 区分関数の評価 / 3 辺の長さを入力し、三角形が作成できる場合の周囲長と面積を計算形成された
ループ構造の応用シナリオ - 条件/インデント/コードブロック/フローチャート
while ループ - 基本構造/ break
文/ continue
文
forループ - 基本構造/ range
型/ループ内の分岐構造/入れ子ループ/プログラムの早期終了
応用例 - 1~100の合計 / 素数の決定 / 数当てゲーム / 99表の印刷 / 三角パターンの印刷 / 桃を食べる猿 / 数百枚のコインと数百羽のニワトリ
古典的なケース: 水仙の数字/百のお金と百の鶏/クラップス ギャンブル ゲーム
練習問題: フィボナッチ数列/完全数/素数
関数の役割 - コードの悪臭/機能モジュールを関数でカプセル化する
関数の定義 - def
キーワード/関数名/パラメータリスト/ return
ステートメント/カスタム関数の呼び出し
関数の呼び出し - Python 組み込み関数/モジュールと関数のインポート
関数パラメータ - デフォルトパラメータ/変数パラメータ/キーワードパラメータ/名前付きキーワードパラメータ
関数の戻り値 - 戻り値なし / 単一の値を返す / 複数の値を返す
スコープの問題 - ローカル スコープ/ネストされたスコープ/グローバル スコープ/組み込みスコープ/スコープ関連のキーワード
モジュール管理機能の使用 - モジュールの概念/カスタム モジュール管理機能の使用/名前の競合がある場合に何が起こるか (同じモジュールと異なるモジュール)
文字列の使用 - 長さの計算/添字演算/スライス/一般的な方法
リストの基本的な使用法 - リストを定義する/次のテーブルを使用して要素にアクセスする/範囲外の添字を付ける/要素を追加する/要素を削除する/要素を変更する/スライス/ループの走査
リストに対する一般的な操作 - 接続/コピー (要素のコピーと配列のコピー)/長さ/並べ替え/逆順/検索
リストの生成 - range
を使用して数値リストの作成/式/ジェネレーターの生成
タプルの使用 - タプルの定義/タプル内の値の使用/タプル変数の変更/タプルとリストの変換
セットの基本的な使い方 - セットとリストの違い/セットの作成/要素の追加/要素の削除/クリア
セットに対する一般的な演算 - 交差/和集合/差分/対称差分/サブセット/スーパーセット
辞書の基本的な使い方 - 辞書の特徴/辞書の作成/要素の追加/要素の削除/値の取得/クリア
一般的な辞書操作 - keys
メソッド/ values
メソッド/ items
メソッド/ setdefault
メソッド
基本演習 - マーキー効果/リスト内の最大の要素の検索/統計テストの平均スコア/フィボナッチ数列/ヤン・ホイ・トライアングル
包括的なケース - ダブルカラーボール番号選択/三目並べ
クラスとオブジェクト - クラスとは/オブジェクトとは/オブジェクト指向のその他の関連概念
クラスの定義 - 基本構造/プロパティとメソッド/コンストラクター/デストラクター/ __str__
メソッド
オブジェクトの使用 - オブジェクトの作成/オブジェクトへのメッセージの送信
オブジェクト指向の 4 つの柱 - 抽象化/カプセル化/継承/ポリモーフィズム
基本的な演習 - 学生クラスの定義/時計クラスの定義/グラフィックス クラスの定義/車のクラスの定義
プロパティ - クラス プロパティ/インスタンス プロパティ/プロパティ アクセサー/プロパティ修飾子/プロパティ デリーター/use __slots__
クラス内のメソッド - インスタンス メソッド/クラス メソッド/静的メソッド
演算子のオーバーロード - __add__
/ __sub__
/ __or__
/ __getitem__
/ __setitem__
/ __len__
/ __gt__
/ __lt__
/ __le__
/ __ge__
/ __ge__ / __eq__
/ __ne__
__contains__
__repr__
クラス(オブジェクト)間の関係 - 関連/継承/依存
継承とポリモーフィズム - 継承とは/継承の構文/親クラスメソッドの呼び出し/メソッドのオーバーライド/型決定/多重継承/ダイヤモンド継承(ダイヤモンド継承)とC3アルゴリズム
総合給与精算システム/自動図書割引システム/カスタムスコアカテゴリ
tkinter
を使用したGUIプログラムの開発
pygame
サードパーティ ライブラリを使用してゲーム アプリケーションを開発する
「大きなボールが小さなボールを食べる」ゲーム
ファイルの読み取り - ファイル全体を読み取る / 行ごとに読み取る / ファイル パス
ファイルの書き込み - 上書き/追加/テキスト ファイル/バイナリ ファイル
例外処理 - 例外メカニズムの重要性 / try
- except
コード ブロック / else
コード ブロック / finally
コード ブロック / 組み込み例外タイプ / 例外スタック / raise
文
データの永続化 - CSVファイルの概要/ csv
モジュールの応用/JSONデータ形式/ json
モジュールの応用
文字列に対する高度な操作 - エスケープ文字/元の文字列/複数行の文字列/ in
演算子とnot in
演算子/ is_xxx
メソッド/ join
メソッドとsplit
メソッド/ strip
関連メソッド/ pyperclip
モジュール/不変文字列と可変文字列/ StringIO
の使用
正規表現の概要 - 正規表現の役割/メタ文字/エスケープ/量指定子/グループ化/ゼロ幅アサーション/貪欲一致と遅延一致遅延/正規表現操作 (一致、検索、置換、キャプチャ) を実装するためのre
モジュールの使用
正規表現の使用 - re
モジュール/ compile
関数/ group
とgroups
メソッド/ match
メソッド/ search
メソッド/ findall
とfinditer
メソッド/ sub
とsubn
メソッド/ split
メソッド
応用例 - 正規表現を使用して入力文字列を検証する
プロセスとスレッドの概念 - プロセスとは / スレッドとは / マルチスレッド アプリケーション シナリオ
プロセスの使用 - fork
機能/マルチmultiprocessing
モジュール/プロセスプール/プロセス間通信
スレッドの使用 - threading
モジュール/ Thread
クラス/ RLock
クラス/ Condition
クラス/スレッドプール
コンピュータネットワークの基礎 - コンピュータネットワーク開発の歴史/「TCP-IP」モデル/IPアドレス/ポート/プロトコル/その他の関連概念
ネットワークアプリケーションモード - 「クライアントサーバー」モード / 「ブラウザサーバー」モード
HTTP プロトコルに基づいてネットワーク リソースにアクセス - ネットワーク API の概要/URL にアクセス/サードパーティ ライブラリのrequests
/JSON 形式データの解析
Python ネットワーク プログラミング - ソケットの概念/ socket
モジュール/ socket
関数/TCP サーバーの作成/TCP クライアントの作成/UDP サーバーの作成/UDP クライアントの作成
電子メール - SMTP/POP3/IMAP/ smtplib
モジュール/ poplib
モジュール/ imaplib
モジュール
SMS サービス - SMS サービス ゲートウェイに電話をかける
Pillow を使用して画像を処理する - 画像の読み取りと書き込み/画像の合成/幾何学的変換/色変換/フィルター効果
Word 文書の読み取りと書き込み - テキスト コンテンツ/段落/ヘッダーとフッターの処理/スタイル処理
Excel ファイルの読み取りと書き込み - xlrd
/ xlwt
/ openpyxl
一般的なデータ構造
関数の高度な使用法 - 「第一級市民」 / 高階関数 / Lambda 関数 / スコープとクロージャ / デコレータ
オブジェクト指向の高度な知識 - 「三本の柱」 / クラス間の関係 / ガベージ コレクション / マジック プロパティとメソッド / ミキシング / メタクラス / オブジェクト指向の設計原則 / GoF 設計パターン
イテレータとジェネレータ - 関連するマジックメソッド/ジェネレータを作成する 2 つの方法/
同時プログラミングと非同期プログラミング - マルチスレッド/マルチプロセス/非同期 IO/ async
とawai
HTML タグを使用してページのコンテンツを伝達する
CSSでページをレンダリングする
JavaScript によるインタラクティブな動作の処理
jQuery の入門と改善
Vue.js を始める
要素の使用
ブートストラップの使用
オペレーティングシステム開発の歴史とLinuxの概要
Linuxの基本コマンド
Linux のユーティリティ
Linuxファイルシステム
Vimエディタアプリケーション
環境変数とシェルプログラミング
ソフトウェアのインストールとサービスの構成
ネットワークアクセスと管理
その他の関連コンテンツ
リレーショナル データベースの概要
MySQL の概要
MySQL のインストール
MySQLの基本コマンド
データベースとテーブルを構築する
テーブルの削除と変更
挿入操作
削除操作
更新操作
プロジェクションとエイリアス
データをフィルタリングする
Null値の扱い
重複を削除する
選別
集計関数
ネストされたクエリ
グループ
テーブル結合
デカルト積
内部結合
自然なつながり
外部結合
窓関数
ウィンドウの定義
ランキング機能
アクセス機能
ユーザーの作成
権限を与える
権限の取り消し
JSONタイプ
窓関数
共通テーブル式
ビュー
使用シナリオ
ビューの作成
使用制限
関数
組み込み関数
ユーザー定義関数(UDF)
プロセス
作成プロセス
呼び出しプロセス
実行計画
インデックスの原理
インデックスの作成
通常のインデックス
一意のインデックス
プレフィックスインデックス
複合インデックス
注意事項
サードパーティのライブラリをインストールする
接続の作成
カーソルの取得
SQL文の実行
カーソル経由でデータを取得する
トランザクションのコミットとロールバック
接続を解除する
ETL スクリプトを作成する
Hadoopエコシステム
ハイブの概要
準備
データ型
DDL 操作
DML 操作
データクエリ
Webアプリケーションの動作メカニズム
HTTPリクエストとレスポンス
Django フレームワークの概要
5 分ですぐに始められます
リレーショナルデータベースの構成
ORM を使用してモデルに対する CRUD 操作を完了する
経営経歴の活用
Django モデルのベスト プラクティス
モデル定義リファレンス
静的リソースをロードする
Ajaxの概要
Ajaxを利用した投票機能の実装
ユーザー追跡を実装する
Cookieとセッションの関係
Django フレームワークによるセッションのサポート
ビュー関数での Cookie の読み取りおよび書き込み操作
HttpResponse
を通じて応答ヘッダーを変更する
StreamingHttpResponse
使用して大きなファイルを処理する
xlwt
使用して Excel レポートを生成する
reportlab
使用して PDF レポートを生成する
ECharts を使用してフロントエンド チャートを生成する
設定ログ
Django-Debug-ツールバーを構成する
ORMコードの最適化
ミドルウェアとは
Django フレームワークの組み込みミドルウェア
カスタムミドルウェアとそのアプリケーションシナリオ
JSON形式でデータを返す
Vue.js を使用してページをレンダリングする
RESTの概要
DRF ライブラリの使用を開始する
フロントエンドとバックエンドを別々に開発
JWTの適用
CBVを使用する
データページング
データのフィルタリング
ウェブサイト最適化の第一法則
Redis を使用して Django プロジェクトにキャッシュ サービスを提供する
ビュー関数の読み取りおよび書き込みキャッシュ
デコレータを使用してページ キャッシュを実装する
データ インターフェイスにキャッシュ サービスを提供する
ファイルアップロードフォームコントロールと画像ファイルプレビュー
アップロードされたファイルをサーバー側で処理する方法
ウェブサイト最適化の第二法則
メッセージキューサービスを構成する
Celery を使用してプロジェクトにタスクの非同期を実装する
Celery を使用してプロジェクトにスケジュールされたタスクを実装する
Python での単体テスト
Django フレームワークによる単体テストのサポート
バージョン管理システムを使用する
uWSGIの構成と使用
動的および静的な分離と Nginx 構成
HTTPSを構成する
ドメイン名解決を構成する
Web クローラーの概念とその応用分野
Web クローラーの合法性に関する議論
Web クローラー開発用の関連ツール
クローラープログラムの構成
requests
サードパーティ ライブラリを使用してデータ キャプチャを実装する
ページを解析する 3 つの方法
正規表現の解析
XPathの解析
CSSセレクターの解析
マルチスレッド
マルチプロセス
非同期I/O
Selenium をインストールする
ページをロードする
要素を見つけてユーザーの行動をシミュレートする
暗黙的な待機と明示的な待機
JavaScriptコードを実行する
セレン製アンチクローリングクラック
ヘッドレスブラウザをセットアップする
荒れたコアコンポーネント
大雑把なワークフロー
Scrapyをインストールしてプロジェクトを作成する
スパイダープログラムを書く
ミドルウェアとパイプライン プログラムを作成する
スクレイピー設定ファイル
データアナリストの責任
データアナリストのスキルスタック
データ分析関連ライブラリ
アナコンダをインストールして使用する
conda 関連のコマンド
jupyter-labをインストールして使用する
インストールして起動する
ヒントを活用する
配列オブジェクトの作成
配列オブジェクトのプロパティ
配列オブジェクトのインデックス操作
通常のインデックス
ファンシーインデックス
ブールインデックス
スライスインデックス
事例: 配列を使用して画像を処理する
配列オブジェクトの関連メソッド
記述的な統計を取得する
その他の関連メソッド
配列演算
配列およびスカラー演算
配列と配列演算
汎用単項関数
一般的な二項関数
ブロードキャストメカニズム
Numpy 共通関数
ベクター
決定要因
マトリックス
多項式
Series
オブジェクトの作成
Series
オブジェクトに対する操作
Series
オブジェクトのプロパティとメソッド
DataFrame
オブジェクトを作成する
DataFrame
オブジェクトのプロパティとメソッド
DataFrame
でのデータの読み取りと書き込み
データの再形成
データのスプライシング
データのマージ
データクリーニング
欠損値
重複した値
外れ値
前処理
データをピボットする
記述的な統計を取得する
並べ替えとヘッダー値
グループ集計
ピボットテーブルとクロス集計
データのプレゼンテーション
前年比を計算する
ウィンドウ計算
関連性の判定
インデックスの使用
範囲インデックス
カテゴリーインデックス
マルチレベルインデックス
間隔インデックス
日時インデックス
matplotlib のインストールとインポート
キャンバスの作成
座標系を作成する
チャートを描く
折れ線グラフ
散布図
棒グラフ
円グラフ
ヒストグラム
箱ひげ図
チャートの表示と保存
高度なチャート
バブルチャート
面グラフ
レーダーチャート
ローズダイアグラム
3D チャート
シーボーン
パイチャート
ソフトウェアプロセスモデル
製品バックログ (ユーザー ストーリー、製品プロトタイプ)。
計画会議 (評価と予算編成)。
日々の開発 (スタンドアップ ミーティング、ポモドーロ テクニック、ペア プログラミング、テスト ファースト、コード リファクタリングなど)。
バグを修正します (問題の説明、再現手順、テスター、担当者)。
リリース版。
レビュー会議 (ショーケース、ユーザーは参加する必要があります)。
振り返りミーティング (現在の反復サイクルの概要を作成します)。
プロセスとツールを介した個人と相互作用
徹底したドキュメントよりも実際に動作するソフトウェア
契約交渉よりも顧客の協力が優先されます
計画に従うよりも変化に対応する方が良い
実現可能性(調査を行うかどうか)を分析し、「実現可能性分析レポート」を出力します。
要件分析(何をすべきか調査)、「要件仕様書」と製品インターフェースのプロトタイプ図を出力します。
概要設計、詳細設計、出力概念モデル図(ER図)、物理モデル図、クラス図、シーケンス図など
コーディング/テスト。
オンライン/メンテナンスに移行します。
古典的なプロセスモデル(ウォーターフォールモデル)
ウォーターフォール モデルの最大の欠点は、需要の変化に対応できないことであり、プロセス全体が完了するまで製品を確認できないため、チームの士気の低下につながります。
アジャイル開発 (スクラム) - プロダクトオーナー、スクラムマスター、開発者 - スプリント
補足: アジャイル ソフトウェア開発マニフェスト
役割: プロダクトオーナー (何をすべきかを決定し、要件について意思決定できる人)、チームリーダー (さまざまな問題を解決し、より効率的に作業する方法に焦点を当て、開発チームに対する外部の影響を遮断する)、開発チーム (プロジェクトの幹部、特に開発者とテスター)。
準備: ビジネスケースと資金、契約、ビジョン、初期の製品要件、初期リリース計画、株式の取得、チームの構築。
アジャイル チームは通常 8 ~ 10 人で構成されます。
作業量の見積もり: プロトタイプ、ロゴデザイン、UI デザイン、フロントエンド開発などの開発タスクを定量化し、各作業を最小タスク量に分解します。最小タスク量の基準は、作業時間が 2 日を超えないことです。次に、プロジェクト全体の時間を見積もります。各タスクをかんばんボードに投稿します。かんばんボードは、to do (完了予定)、in progress (進行中)、done (完了) の 3 つの部分に分かれています。
プロジェクトチームの結成
コードのコメントが少なすぎるか、コメントがありません
コードが言語のベスト プラクティスを中断する
アンチパターン プログラミング (スパゲッティ コード、コピーアンドペースト プログラミング、エゴ プログラミングなど)
チーム構成と役割
注: 以下の美しい会社組織図の作成を手伝ってくれたFu Xiangyingさんに感謝します。
プログラミング仕様とコードレビュー ( flake8
、 pylint
)
Python のいくつかの「規則」 (「Python の規則 - Python コードの書き方」を参照してください)
コードの可読性に影響を与える理由:
チーム開発ツールの紹介
「チームプロジェクト開発の問題点と解決策」を参照してください。
バージョン管理: Git、Mercury
欠陥管理: Gitlab、Redmine
アジャイルクローズドループツール: ZenTao、JIRA
継続的インテグレーション: Jenkins、Travis-CI
トピック範囲の設定
CMS (クライアント): ニュース集約 Web サイト、Q&A/共有コミュニティ、映画レビュー/書評 Web サイトなど。
MIS(ユーザー側+経営側):KMS、KPI評価システム、HRS、CRMシステム、サプライチェーンシステム、倉庫管理システムなど
アプリバックエンド(管理端末+データインターフェース):中古品取引、新聞・雑誌、ニッチな電子商取引、ニュース・情報、旅行、ソーシャルネットワーキング、読書など。
その他のタイプ: 自身の業界背景と実務経験があるため、ビジネスを理解し、管理するのが簡単です。
要件理解、モジュール分割、タスク割り当て
要件の理解: ブレーンストーミングと競合製品の分析。
モジュール分割:マインドマップ(XMind)を描く 各モジュールがブランチノード、各特定の機能がリーフノード(動詞で表現)となる 各リーフノードが新たなノードを再生成して各リーフを決定できないようにする必要がある。ノードの重要性、優先順位、ワークロード。
タスクの割り当て: プロジェクト リーダーは、上記の指標に基づいて各チーム メンバーにタスクを割り当てます。
プロジェクトスケジュールの作成 (毎日更新)
モジュール | 関数 | 人員 | 州 | 仕上げる | 労働時間 | 計画が始まります | 実際のスタート | 計画終了 | 実際の終わり | 述べる |
---|---|---|---|---|---|---|---|---|---|---|
コメント | コメントを追加 | ワン・ダチュイ | 継続中 | 50% | 4 | 2018/8/7 | 2018/8/7 | |||
コメントの削除 | ワン・ダチュイ | 待って | 0% | 2 | 2018/8/7 | 2018/8/7 | ||||
コメントを見る | 白元芳 | 継続中 | 20% | 4 | 2018/8/7 | 2018/8/7 | コードレビューが必要です | |||
コメント投票 | 白元芳 | 待って | 0% | 4 | 2018/8/8 | 2018/8/8 |
OOAD とデータベースの設計
UML (統一モデリング言語) のクラス図
モデルを使用してテーブルを作成する (フォワード エンジニアリング) たとえば、Django プロジェクトでは、次のコマンドを使用して 2 次元のテーブルを作成できます。
python manage.py makemigrationsアプリ python manage.py 移行
PowerDesigner を使用して物理モデル図を描画します。
データ テーブルを使用してモデルを作成 (リバース エンジニアリング) たとえば、Django プロジェクトでは、次のコマンドを使用してモデルを生成できます。
python manage.py Inspectiondb > app/models.py
Docker の概要
Dockerをインストールする
Docker を使用してコンテナー (Nginx、MySQL、Redis、Gitlab、Jenkins) を作成する
Docker イメージのビルド (Dockerfile の作成と関連手順)
コンテナオーケストレーション (Docker-compose)
クラスター管理 (Kubernetes)
基本原則
InnoDB エンジン
インデックスの使い方と注意点
データパーティション
SQLの最適化
構成の最適化
アーキテクチャの最適化
設計原則
重要な質問
その他の質問
文書作成
データベース構成 (複数のデータベース、マスター/スレーブ レプリケーション、データベース ルーティング)
キャッシュ構成(パーティションキャッシュ、キー設定、タイムアウト設定、マスタースレーブレプリケーション、障害復旧(Sentinel))
ログ構成
プロファイリングとデバッグ (Django-Debug-ToolBar)
便利な Python モジュール (日付計算、画像処理、データ暗号化、サードパーティ API)
RESTful アーキテクチャ
RESTful アーキテクチャを理解する
RESTful API 設計ガイドライン
RESTful API のベスト プラクティス
APIインターフェースドキュメントの作成
RAP2
ヤピ
django-REST-frameworkのアプリケーション
キャッシュを使用してデータベースの負荷を軽減する - Redis
デカップリングとピーククリッピングにメッセージキューを使用する - Celery + RabbitMQ
試験の種類
単体テストを作成する ( unittest
、 pytest
、 nose2
、 tox
、 ddt
、...)
テストカバレッジ ( coverage
)
導入前の準備
キー設定 (SECRET_KEY / DEBUG / ALLOWED_HOSTS / キャッシュ / データベース)
HTTPS/CSRF_COOKIE_SECUR/SESSION_COOKIE_SECURE
ログ関連の設定
一般的な Linux コマンドの復習
一般的な Linux サービスのインストールと構成
uWSGI/Gunicorn および Nginx の使用法
多くのカスタマイズを必要としない単純なアプリケーションの場合は、Gunicorn が適しています。uWSGI の学習曲線は Gunicorn よりもはるかに急勾配であり、Gunicorn のデフォルトのパラメーターはすでにほとんどのアプリケーションに適応できます。
uWSGI は異種環境の展開をサポートします。
Nginx 自体が uWSGI をサポートしているため、Nginx と uWSGI は通常オンラインで一緒に展開され、uWSGI は完全に機能し、高度にカスタマイズされた WSGI ミドルウェアです。
パフォーマンスの点では、Gunicorn と uWSGI は実際には同等のパフォーマンスを発揮します。
Gunicorn と uWSGI の比較
仮想化技術(Docker)を利用したテスト環境と本番環境の導入
ABの使用
SQLslapの使用
システムベンチの使用
シェルとPythonを使用した自動テスト
Selenium を使用した自動テスト
セレンIDE
Selenium Webドライバー
セレンリモコン
テストツール Robot Framework の紹介
ビジネスモデルと要件のポイント
物理モデルの設計
サードパーティのログイン
キャッシュのウォームアップとクエリのキャッシュ
ショッピングカートの実装
決済機能の統合
フラッシュセールと売られ過ぎの問題
静的リソース管理
全文検索ソリューション
MySQLデータベースのチューニング
Webサーバーのパフォーマンスの最適化
Nginxのロードバランシング設定
Keepalive は高可用性を実現します
コードのパフォーマンスのチューニング
マルチスレッド
非同期
静的リソースアクセスの最適化
クラウドストレージ
CDN
コンピューターの基本
Python の基本
Webフレームワーク関連
爬虫類関連の問題
データ分析
プロジェクト関連