プロフェッショナルなウェブ開発者を目指す人向けの目次です。
この順番で読んで下さいというためのものです。
(まだコンテンツが揃って無くてすいません、鋭意執筆中でありんす(^^))
とはいえここで、残念なお知らせです。
WordPressが使いこなせるようになったとしてもウェブ開発者としては1人前になることはありません。
なぜなら、1人前のウェブ開発者になるには、多くのインターネット技術の仕組みについて理解し、設定し、変更し、組み合わせて、問題解決する必要があるからです。また、仕事の進め方など、実践的な知識も必要不可欠です。
そこでWordPressに限らず、PHP、DBを始め 関連するウェブ技術/設計/ワークフローについてもとりあげて説明します。
特にPHPについて深く知り、WordPressのソースコードを読めるようになってください。
各記事はそれぞれ基本的には、What(何をするのか?目的)、Why(なぜそれが必要なのか?)、What If(こういった例に効果的。事例。)、How(どうやるのか。ベストプラクティス)という流れで説明しています。
Howの部分は、会員登録後にお読みいただけるようになっているものもあります。
その理由は、頻繁に更新していくつもりなので、更新したら通知したいと思っているからです。
ウェブの技術進歩は、ドッグイヤー(犬の1歳は人間で言うと7歳)と例えられるように、
あらゆることが移ろいやすいため常に最新の情報をお届けしたいという思いからです。
- 独習WordPress: WordPressを独学で身につける
- 自分のスキルレベルを知ろう
- ウェブ開発に最適なパソコンを用意しよう
- おすすめの学習方法
- 英語のドキュメントに慣れよう
- エラーメッセージに慣れよう
- 困ったときは自分で調べるか誰かに質問できるようにする
- フロントエンドの仕組みを理解する
- バックエンドの仕組みを理解する
- WordPressの全体像を理解する
- WordPressの開発環境を用意する5つの方法
- 設定方法を知る
- 既存のテーマをカスタマイズしてみる
- プラグインのソースコードを読む
- オリジナルテーマを作ってみる
- 高度なトピックについて知る
- ドメインを取得しDNSを設定する
- FTPサーバに変更内容をアップロードする
- サーバーをどうするか?
- 公開/運用する
- シェルを使いこなす
- プラグラミング修行
- Hackerrank
- Github
- 環境構築
- 環境の種類: ローカル環境(local)、開発環境(development)、受入テスト環境(staging)、本番環境/商用環境(production)
- テーマ開発のためのフロントエンド開発環境
- WordMove
- IPアドレス
- インターネット・ドメイン
- さまざまなドメイン
- jp.co.example という順番もありえたみたい。
- ドメインの検索と取得
- ドメインハック
- DNS
- メールサーバー
- postfix(送る人) + dovecot(受け取る人)
- MTA(Mail Transfer Agent)
- WP-CLI
- Vagrant
- VVV
- VCCW
- Docker
- レンタルサーバー
- ロリポップ: 安い
- CPI: サポート安定
- XServer: 評判良い
- VPS
- Amazon Lightsail (Digital Oceanを高速で移動するヨットの意www)
- Linode
- DigitalOcean
- Conoha
- さくらのVPS
- クラウドコンピューティング
- AWS (Amazon Web Services)
- GCP (Google Cloud Platform)
- Microsoft Azure
- マネージド・サービス
- BIツール
- 監視
- RDB(Relational DataBase)
- MySQL: オープンソースDB(オラクルがサポートしている)。スレッドベースで同時接続パフォーマンス最大化(RDB機能弱い)
- MariaDB: MySQLからフォークしたMySQL互換のオープンソースDB
- PostgreSQL: 複雑なデータ構成を扱いやすいように進化(同時接続弱い)
- Oracle DB
- DB2: IBM
- MS SQLServer: マイクロソフト
- Sqlite3
- NoSQL
- mongodb
- DynamoDB
- levelDB
- インメモリーDB
- Instant WordPrss(Windowsのみ)
- Cloud9
- CI (Continuous Integration)
- Travis CI
- Circle CI
- 構成管理ツール
- Ansible
- Chef
- Itamae
- Puppet
- Fabric
- フロントエンド
- HTML
- CSS
- CSSの基礎
- Webフォント
- Bootstrapの最適化
- JavaScript
- JavaScriptの基礎
- jQuery
- Backbone.js
- Undersocre.js
- Reactive Programming
- CSSフレームワーク
- レスポンシブ
- タスクランナー
- モジュールバンドラー
- 画像出しわけ
- サーバーサイド
- PHP
- PHPの基礎
- ウェブサーバー
- Apache
- nginx php-fpm
- データベース
- SQLの基礎
- MySQL
- PostgreSQL
- PHP
- WordPressの基本
- 歴史と展望
- 記事とカテゴリー、タグ
- 投稿タイプとタクソノミー、ターム
- メディア
- ルーティング
- ブログロール
- RSS
- スティッキーポスト
- ウィジェット
- Featured image(アイキャッチ画像)
- i18n(国際化・多言語化)
- XMLRPC
- メンバーシップ機能
- キーボードショートカット
- 親テーマと子テーマ
- ログ出力
- デバッグ
- ウィジェット
- 親テーマと子テーマ
- メインループ(メインクエリー)とサブループ(サブクエリー)
- サイトマップ
- ショートコード
- ページネーション
- レスポンシブ
- テーマのインストール
- プラグインのインストール
- WordPressのアップデート
- バックアップとリストア
- 公開ボックス内のパスワード保護機能
- thickbox
- tinymce
- 更新情報サービス機能
- コメント機能
- ファイルアップロード
- ユーザー管理
- 権限管理
- メンテナンスモード
- 固定ページ
- カレンダー
- リダイレクト
- 404エラー
- Gravatar
- お問い合せフォーム
- Ajaxリクエスト
- WordPress Nonces (Number Used Once)
- WordPress管理画面の拡張
- テーマカスタマイザー
- ビジュアルエディタ
- PHPセッション
- クッキー
- コメント
- キャッシュ
- バイトコードキャッシュ
- クエリーキャッシュ
- ビューキャッシュ
- パーシャルキャッシュ
- DB
- マルチサイト
- REST API
- リビジョン
- 投稿のリビジョン制御
- oEmbeds 記事カードの埋込
- リカバリーモード
- FTP
- Gutenberg
- Classic Editor
- WordPressで作れるサイト
- ブログ
- ポータルサイト
- 企業サイト
- ECサイト
- 口コミ/コミュニティサイト
- アフィリエイト
- ドロップシッピング
- ショッピングモール
- WordPressの応用
- プログラムで固定ページを作成する
- プラグインを使わずに自分で実装する
- お問い合わせフォームの作成
- 会員専用コンテンツ
- アップローダーを好きなところに配置する
- 独自のRSSを作成する(例 Smartnews format)
- カート機能を作る
- CSVダウンロード機能を作る
- 管理画面をプログラムで変更する
- 投稿一覧
- 投稿編集
- ユーザー一覧
- ユーザー編集
- DBの分割: マスター(Writer) と リードレプリカ(Reader)
- テーマ開発
- Chorome Developer Tools
- デバッグ
- SNSボタン
- 独自のいいねボタン
- SEO
- RSS最適化
- ランキング機能
- テーマカスマイザー
- ログインフォーム
- スライダー(カルーセル)
- AMP化
- stickyfill
- ベータテスト
- プラグイン開発
- ボイラープレート(プラグインの雛形)の利用
- アクションとフィルター
- おすすめWordPressテーマ
- 有料
- Genesis Framework
- OPENCAGE
- 無料
- Habakiri
- Beans Theme Framework
- 有料
- おすすめプラグイン
- セキュリティ
- SiteGuard WP Plugin
- Sucuri Security
- Google Authenticator
- スパム対策
- Akismet
- バックアップ
- Updraft Plus
- サイト移行
- All-in-One WP Migration
- エディタ
- Jetpack Markdown
- メール
- WP Mail SMTP
- DB
- WP Optimize
- コンテンツビルド
- Advanced Custom Fields (通称 ACF)
- Custom PostType UI
- CDN
- CloudFlare
- Flastly
- サイトマップ
- Google XML Sitemaps
- セキュリティ
- 営業手法
- お客さんを見つける
- 知り合いに紹介してもらう
- 顕在的な問題にアプローチする
- 潜在的なニーズにアプローチする
- お客さんを見つける
- 開発フロー
- 超概算見積り
- 直感で見積るために必要な3つの要素
- 要件定義
- 目的、理由(背景)を定義する。やり方は定義しない(これは概要設計)
- 概算見積り
- 見積り条件/見積り期限
- 初期構築費用
- ランニング費用
- 初期
- 初年度
- 見積りに含めてはいけないもの
- 見積り確度の低い費用の取扱い方
- 再見積り
- 要件が変わるとき
- 別見積り
- フェーズを意識する
- 開発手法を決める
- ウォーターフォール型: フェーズ間で成果物のレビューを行ない、それに基づいて次の工程を実施する開発手法
- 適しているプロジェクト(工程を後戻りしたら予算を大きく超過してしまい、経営に多大な影響を与えるもの)
- ハードウェア開発
- 複雑ではないが、作業量の多いソフトウェア開発プロジェクト(規模については一概には言えないが例えば1000人月程度以上かかるなど)
- 適しているプロジェクト(工程を後戻りしたら予算を大きく超過してしまい、経営に多大な影響を与えるもの)
- アジャイル型: 1~2週間のスプリント単位で段階的リリースを可能にする開発手法
- 適しているプロジェクト
- 仮説を検証したりサービスが陳腐化する前にとくにかく素早くリリースしたい案件
- 適しているプロジェクト
- 混在型
- ウォーターフォール型: フェーズ間で成果物のレビューを行ない、それに基づいて次の工程を実施する開発手法
- 設計
- なにを設計するのか?
- なぜ設計が必要なのか?
- 要求(要望)と要件の違い
- 要求を聞き出してまとめる
- 要求をもとに要件定義をおこなう
- タスクを洗い出す
- クリティカルパス
- タスクを割り当てる
- リスクを洗い出す
- リスクとはなにか?
- リスクは正規分布する
- 回避策を考えておく
- 各工程の成果物(お客さんのベネフィット)を明確にする
- 作る/買う/インハウス/アウトソース
- 工数を見積る
- KKD
- バッファの考え方
- 見積り結果を心理的安全性に変換する
- ファンクションポイント法 (FP)
- CoBRA法
- タイムボックス
- 時間/費用、人、品質
- 理想時間と現実時間(バッファ込み)で積み上げ
- 予実: 実績値から厳密に算出して比較する
- 見積りポーカー
- 不確実性コーン
- プロトタイプを作成する
- PoC(概念検証)
- 概要設計(方式、アーキテクチャ)/基本設計/外部設計/詳細設計
- 設計フェーズの成果物
- 漏れがちな項目
- 機能要件と非機能要件を切り分ける
- 正式見積り
- 追加見積り
- 開発/実装/コーディング
- 進捗管理
- 進捗とは「ゴールの残作業」を把握し、アップサイド、レギュラー、ダウンサイドを確率込みで報告し、クライアントを納得させるためにある
- 進捗は逆行することもあるのでそれも報告させる
- テスト
- なぜテストが必要なのか?
- なにをテストすればよいのか?
- ブラウザチェック
- 単体テスト
- 結合テスト
- E2Eテスト
- 負荷テスト
- 受入テスト
- セキュリティテスト
- 非機能要件テスト
- テスト工数の見積り
- 納品前作業
- DBクリーニング
- デプロイ
- Blue Green Deployment
- Canary Deployment
- Rolling Update
- 検収
- 不具合対応
- 運用・保守
- 超概算見積り
- 設計技法
- フローチャート/PAD
- UML
- アクセス解析
- Google Analytics
- イベントトラッキング
- Google TagManager
- ソースコード管理 (バージョン管理システム)
- ソースコードをどこに置くのか?
- CVS
- Subversion
- Git
- Git入門
- SourceTree (Gitクライアント)
- 移行
- 新サーバーに引っ越す (Put if absent)
- 既存サーバーのWordPressを入れ替え (Replace)
- サイトのクロージング (Close)
- マージする (Merge)
- ドメイン移行
- 新規ドメインに付け替え
- 既存の別ドメインに移行
- トラブルシューティング
- 真っ白になったら確認すること
- デバッグツール
- PHPエラー
- パフォーマンスチューニング
- フロントエンド
- JS、CSSのミニファイと結合
- SCSS
- バックエンド
- フロントエンド
- プログラミング原則
- SRP
- DRY
- KISS
- YAGNI
- コーディングプラクティス
- CLEANコード
- テストファースト
- リファクタリング
- WordPressの高度なトピック
- SPA
- マルチサイト
- WordPress API
- Dashboard Widgets API
- Database API
- HTTP API
- File Header API
- Filesystem API
- Metadata API
- Options API
- Plugin API
- Quicktags API
- Rewrite API
- Settings API
- Shortcode API
- Theme Modification API
- Theme Customization API
- Transients API
- Widgets API
- XML-RPC WordPress API (supersedes the legacy Blogger, MovableType, and metaWeblog APIs)
- Rest API
- プラガブル関数
- drop-ins
- WordPressサイトをスマホアプリ化する
- WordPress Core を理解する
- 処理の流れ
- フロント
- admin
- ajax
- RSS
- xml-rpc
- sitemap
- ログイン
- サインアップ
- パスワード忘れ
- ルーティング
- DB構造の理解
- wp_optionsテーブル
- wp_postsテーブル
- wp_postmetaテーブル
- グローバル変数
- クエリー
- WordPressとMVC
- テンプレートの決定に介入する
- WP_Post クラス
- WP_User クラス
- WP_Query クラス
- WP_Role クラス
- WP_Theme クラス
- WP_Screen クラス
- WP_Styles クラス
- 処理の流れ
- ドキュメンテーション技術
- Markdown
- Doxygen
- ER図
- CRUD図
- マインドマップ
- Gyazo
- ロジックツリー
- Jupyter Notebook (iPython Notebook)
- Webにおけるマーケティングとブランディング
- マーケティングとブランディングは事業成長の両輪
- プロダクトローンチ
- WEBライティング
- スワイプファイル
- セキュリティ
- WPScan
- vuls 脆弱性スキャナー
- ソースコードライセンス
- オープンソース
- プロプライエタリ
- コンテンツの著作権
- 決済系
- アクワイアラー
- イシュアー
- 決済代行会社
- 加盟店
- カートの実装
- 決済APIとモジュール
- リンク型 (画面遷移)
- API型 (JavaScript)
- モジュール型 (マーチャント側での組み込み)
- クレジットカード決済
- 継続課金
- 仮売上と実売上
- 一括払い
- 分割払い
- 代金引換
- 後払い
- PCI-DSS対応
- カード情報の保持、処理、通過
- 3Dセキュア
- CVC、CVV
- マルチアクワイアリング
- クロスボーダーアクワイアリング
- バックオーダー
- PayPal
- マルチカレンシー
- 配送
- AWS
- どうやってAWSを身につけるか?
- AWS破産
- リージョン
- アベイラビリティゾーン(=データセンター)
- サブネット
- セキュリティグループ
- クラスフル/クラスレスアドレス
- Elastic IP
- EC2
- インスタンスタイプ
- t2: 安い
- m: 万能
- c: CPUバウンド対応
- r: 物理メモリで殴る
- i: IOPS高性能
- インスタンスタイプ
- S3
- Route 53
- Amazon Glacier
- SQS
- Amazon Aurora
- ELB
- Redshift
- Lambda
- EMR: Map Reduce
- Kinect: Stream
- ECS
- ECR
- 開発手法:
- ウォーターフォール
- アジャイル
- スクラム
- XP
- ペアプログラミング
- ふるまい駆動
- テスト駆動、テストファースト
- ドメイン駆動
- タイピング技術
- ローマ字入力
- かな文字入力
- ビッグデータの取り扱い方
- Hadoop
- SSL
- 公開鍵暗号方式
- ドメイン認証
- 企業認証
- EV認証
- Presto
- 性能・負荷テストツール
– Gatling- Apache Bench
- JMeter
- データビジュアライズ
- サーバー監視
- Zabbix
- Cacti
- monit
- ネットワークエンジニアリング
- GNS3
- ネットワーク解析プロキシ
- WireShark
- Fiddler
- Charles
- CQRS
- Event Sourcing
- マイクロサービス
- システムオブレコード(SoR)
- システムオブエンゲージメント(SoE)
- SRE
- 認証技術
- 認証と認可
- OAuth
- WebAuthn
- Auth0
- 決済代行業者
- 会計
- IoT
- 算数
- 数学
- 幾何・解析・代数
- 線形代数
- ベクトル・行列
- 微分積分
- 確率
- 統計
- コンピュータ科学(CS)
- N進法
- 片手で0〜31まで数える方法
- ブール演算
- 浮動小数点演算
- 0.1を10回足すとどうなるか?
- アルゴリズム
- 計算量の推定、平均・最良・最悪
- N進法
- 失敗学
- post‐mortem
- OpenGL
- プログラミング言語
- 連接・条件・反復
- 手続き型
- 宣言型
- 証明型
- オブジェクト指向型プログラミング
- アスペクト指向型プログラミング
- ビジュアルプログラミング
- WebAssembly
- Emscripten
- 機械学習
- パーセプトロン
- ニューラルネットワーク
- バイアス
- ハイパーパラメータ
- 隠れ層
- 畳み込み (Convolution)
- 行列のドット積を計算すると次元数が減るので、その様子を畳み込みと表現したのだと思う。
- 活性化関数
- 恒等関数
- シグモイド関数
- ソフトマックス関数
- 損失関数
- Deep Learning
- 仮想通貨
- ブロックチェーン
- ビザンチン将軍問題
- Docker
- dockerの何が嬉しいのか?
- 便利ツール
- リモートワーク
- よくある質問