Webアザラシのナレッジベース

Webアザラシのライフログ兼ナレッジベースです。

今さらながらのWeb系言語がどう処理されているかまとめてみた。

はじめに

PHPでアプリを書くことにしました。
理由としては、ピュアなPHPのみでアプリケーションを書き切ることが出来るから、です。
自分がHTML/CSSを書こうと決めたときに、途中でBootstrapのようなフレームワークを取り入れてしまい、
学習におけるブラックボックスを増やしてしまった結果、進捗が牛歩になってしまいました。
なので今回もその反省を活かし、Python+Flaskではなく、PHPMySQLといったプリミティブな構成で開発したいなと思います。

一方で、Webアプリケーションを動かすためのプログラムはどこでどう処理されているのかが、分かっていないのでまとめてみることにしました。 というか、先にWebを支える技術を読んだほうが良かった気もするけれども、今手元のにないので…

サーバーサイド言語の動き

CGI(Common Gateway Interface)

CGIというのは、 フロント側⇔Webサーバ⇔CGIプログラム といった形で、プログラムをWebサーバで処理する方式のこと。

CGIは、Pearl等の言語を用いて行われていた処理方法で、現在はほとんど主流ではない。
www.tohoho-web.com

PHPといったWeb系言語はWebサーバ上でどう処理されているのか?

アプリケーションサーバ(APサーバ)で処理されている。
Webを支える技術でも出てきた、Web3層のイメージ図を参照すると分かりやすい。

f:id:webazarashi:20190511160527j:plain
Web3層のイメージ図

いわゆるLAMP環境は、まさにWeb3層についての話。
Linuxはこれらのサーバを動かすためのOSである。(ApachePHPMySQLミドルウェア

なので、PythonPHPで悩んだとしても、APサーバが変わるだけで(もしかしたらDBサーバも変えたほうが良いような気がするけれども)どっちにしてもおk。

すっきり!というか、Webを支える技術をさっさと読み切ろうと思った。

Code Republic Studio(CRS)に参加するの巻

Code Republic Studio とは?

Code Republic Studioとは、
East VenturesさんとYJキャピタルさんが連携して開催されているインキュベーションプログラム、
Code Republic さんが手がける
"Code Republicの知見・ネットワークを基に
起業志望・起業準備中・起業初期の起業家の皆様を支援する会員制プログラム"
です。

"毎週水曜19時からのキャピタリストや豪華ゲストを招いたセミナーと
起業に関する悩み・質問を相談できるオンラインコミュニティから
構成されています。"
とのことで、元々、Code Republicさん自体に興味があったのですが、
ビジネスプランをまだ持っていない自分にとっては
ピッタリのプログラムだと思い、参加申請をしました。

⇒参加申請先はこちらのFBグループ

日程について自分なりのまとめ

すぐに日程を忘れてしまうことで自分的に有名なので、Googleカレンダーでまとめました。
許されるのであれば、講義内容をこのナレッジベースにまとめて、共有できればなと。

Googleカレンダー

間違いがあれば、@webazarashiまでご連絡ください。

ToDoリスト(4月)

技術力:やる

□ Progate:Pythonを終える。
□ 「Webを支える技術」を読む。
□ 「おうちで学べるデータベースの基本」を読む。
□ 「マンガでわかるDocker1〜3」を読む。

肉体改造:やる

□ 筋トレ or ランニング
□ 正しい量の栄養素を摂取

ビジネス:やる

□ 簿記3級勉強×2時間
□ リーンキャンバス×1日10案

4月のPDCAノート

各ジャンルの4月ゴール

技術力:ゴール

  1. ProgateのPythonを終える。
  2. 「Webを支える技術」を読む。
  3. 「おうちで学べるデータベースの基本」を読む。
  4. 「マンガでわかるDocker1〜3」を読む。

肉体改造:ゴール

05/01の体重: 85.8kg(F:24.8kg/29%)

※接種可能な栄養

P:176
F:63
C:247

ビジネス:ゴール

簿記3級勉強(1日2時間)
リーンキャンバス100本ノック

今年の目標まとめ

やるべきジャンル

  1. 技術力向上
  2. 肉体改造
  3. ビジネス

各ジャンルの年間ゴール

技術力:ゴール

Webアプリケーションを3個、制作する。

  1. 時間割アプリ
  2. リーンキャンバスアプリ
  3. 自分のビジネスのためのアプリ

肉体改造:ゴール

ビジネス:ゴール

  • CVG優勝
  • 法人の立ち上げ
  • 資金調達

各ジャンルの8月1日ゴール

技術力:8月ゴール

時間割アプリのリリース

肉体改造:8月ゴール

73.6kg、体脂肪率17%

ビジネス:8月ゴール

各ジャンルの上半期スケジュール

技術力:上半期スケジュール

4月

  • ProgateのPythonを終える。
  • 「Webを支える技術」を読む。
  • 「おうちで学べるデータベースの基本」を読む。
  • 「マンガでわかるDocker1〜3」を読む。

5月前半

5月後半

Flaskのチュートリアル終了

6〜7月

アプリ開発

肉体改造:上半期スケジュール

  • 04/18の体重: 88kg(F:27kg/30%)
  • 05/01の体重: 85.8kg(F:24.8kg/29%) 
  • 06/01の体重: 81.5kg(F:20.5kg/25%)
  • 07/01の体重: 77.5kg(F:16.5kg/21%)
  • 08/01の体重: 73.6kg(F:12.6kg/17%)


※参考 106日・15週1日・3ヶ月14日
1ヶ月あたり5%の減量⇒約4kg
1週間で1kgの減量メニュー

接種可能な栄養(4月時点:経過を観察し、PFCバランスを調節)

P:176
F:63
C:247

レーニングメニュー

月:筋トレ(腕&肩)
火:ランニング
水:筋トレ(脚)
木:ランニング
金:筋トレ(胸&背中)
土:ランニング
日:OFF

ビジネス:上半期スケジュール

4月

  • 簿記3級勉強(1日2時間)
  • リーンキャンバス100本ノック

5月

  • 簿記3級勉強(1日2時間)
  • 大野さんとイケてるプランを選別&ブレスト
  • 再度、リーンキャンバスに落とし込み
  • 起業の科学に乗っ取った課題検証スタート

6月

  • 06/09:簿記3級試験
  • 課題検証

7月

  • 課題検証

fish shellを使っていたら、bashでインストールしていたanyenvやnodenvのパスが通っていなかった。

fish shellの設定ファイルの位置

$HOME/.config/fish/config.fishに設定ファイルはある。

解決の参考にした記事

qiita.com

anyenv init - から出てきた内容を $HOME/.config/fish/config.fishに書き写す。

自分はanyenvのバージョンが上がっていたのか、記事の内容と違った情報が出力された。

具体的には以下の内容。$HOME⇒Users/ユーザー名/

$ anyenv init -
source "/usr/local/Cellar/anyenv/1.1.0/libexec/../completions/anyenv.fish"
function anyenv
  set command $argv[1]
  set -e argv[1]

  command anyenv "$command" $argv
end
set -x NODENV_ROOT "$HOME/.anyenv/envs/nodenv"
set -x PATH $PATH "$HOME/.anyenv/envs/nodenv/bin"
set -gx PATH '$HOME/.anyenv/envs/nodenv/shims' $PATH
set -gx NODENV_SHELL fish
source '$HOME/.anyenv/envs/nodenv/libexec/../completions/nodenv.fish'
command nodenv rehash 2>/dev/null
function nodenv
  set command $argv[1]
  set -e argv[1]

  switch "$command"
  case rehash shell
    source (nodenv "sh-$command" $argv|psub)
  case '*'
    command nodenv "$command" $argv
  end
end

お行儀が良くないものの、あまり理解せず、

set -x NODENV_ROOT "$HOME/.anyenv/envs/nodenv"
set -x PATH $PATH "$HOME/.anyenv/envs/nodenv/bin"
set -gx PATH '$HOME/.anyenv/envs/nodenv/shims' $PATH
set -gx NODENV_SHELL fish

config.fishに貼り付けて、作業は終了。

anyenv init -の意味はよく分からず。

また、fish shell自体も理解が浅いのでドキュメントを読みたい。

制作するWebアプリについて言語化する。

はじめに

前回につづいて、書いていきます。

制作したいWebアプリについて言語化していきます。 言語化するためのフレームワークは前回同様にゴールデンサークルと、 自作のプロジェクト憲章的なフレームワークであるプロジェクトシートで整理します。

フレームワークの概要

ゴールデンサークル

ゴールデンサークルの画像 1. なぜやるか?(Why)
2. どうやってやるか?(How)
3. なにをやるか?(What)

プロジェクトシート

  • プロジェクト名
  • 目的
  • 発足理由
  • 制作物
  • ゴール
  • 前提条件
  • 懸念点
  • 工期
  • スケジュール

ゴールデンサークルでの整理

なぜやるか?

  • 学ぶ過程で実用的なものを制作したほうがより刺激になるため。

どうやってやるか?

  • Pythonの文法をProgateで復習する。
  • Djangoの公式チュートリアルでアプリを一度作ってみる。
  • 再利用できそうなものは利用し、自分の作りたいと思うアプリを作る。

なにをやるか?

  • DHUではその日にどの教室で何をやっているのか、デジタルサイネージによって告知されている。
  • サイネージを見るのがシンプルに面倒だと多くの学生が感じている。(自分もそのひとり)
  • サイネージの内容をWebアプリケーションにリプレイスすることで多くの学生が利用してくれるはず。

プロジェクトシートでの整理

プロジェクト名

デジタイム(DIGITIME)

目的

Pythonを使用したWebアプリケーション学習するため

発足理由

デジタルサイネージにて、対象授業の場所を見るのが面倒

制作物

Webアプリケーション

ゴール

デプロイ後、SNSでの拡散

前提条件

Python + Flask を使用しての開発 7月中旬の完成を予定

懸念点

Python
Webアプリケーション
DB
SQL
Flask
といった基幹技術を一切知らない。

懸念点に対する対処方法

PythonはProgateで学習する。
WebアプリケーションおよびWebの技術については「Webを支える技術」や諸々のWebアプリ解説系書籍を参考にする。
DBについては「おうちで学べるデータベースの基本」を読む。
SQLについては、Progateで学習する。あとはSQLドリル。
Flaskについては、上記のことを諸々理解したのちに、チュートリアルをこなして理解する。  

工期

7月中旬まで

スケジュール

4月中にProgateのPythonを終える。
同時並行で「Webを支える技術」「おうちで学べるデータベースの基本」を読む。
5月前半でSQL講座を終える。SQLドリルもやる。Flaskチュートリアルをはじめる。
5月後半でFlaskのチュートリアルを一周終わらせる。
6月〜7月で制作を進める。