素人python日記① ～Django導入までの思考回路

# 目標を思い出す
・社内蔵書管理システムを作りたい
これが目標です。

# 実現方法をイメージする
誰でも借りる・返すができることが必要だけど、社内サーバは使えない。
じゃ、クラウドデータベースサービスを使う？これは簡単にできそうだけど自己研鑽にならない。。
漠然と抱くイメージはスマホのアプリかWEBページだけど、ただ社内で本借りるだけなのにどっちもユーザビリティ悪すぎでは。

うーんと思っていたところ、宅急便の通知がLINEに届き、ハッとする。
LINEのトーク画面からお届け日時変更や再配達依頼ができる超優れもの。
→LINEなら個別アプリを用意するよりもユーザ側のハードルが低いし、「なんかスゴイ感」が出る！
ヤマト運輸では、LINEの「LIFF」と呼ばれる機能でユーザーIDを取得し、「リッチテキスト」でユーザ起点のアクションを起こさせているらしい（もちろん、何が何だかわかっていません）。


# LINEのあれこれについて調べる
・LIFFは、要は登録したWEBアプリをLINEトーク画面上で起動できるフレームっぽい。
→LINEのユーザー情報を取得できるので、そのあたりも活用できそう。

・ユーザーはリンクを踏むだけでWEBアプリを起動できる
→「なんかスゴイ感」を出すには公式アカウントにリンクを喋らせる必要がある
→ 公式アカウントも必要だし、LIFFを作るためのdeveloper登録も必要。

 -[参照記事](https://engineering.linecorp.com/ja/blog/liff-our-latest-product-for-third-party-developers/)
 -[参照記事]
(https://moneyforward.com/engineers_blog/2018/06/26/20min-liff-app/)
 -[参照記事](https://saichat.jp/line/liff/)
 -[参照記事](https://qiita.com/teramotodaiki/items/a8955840aa23ec68e6fe)
 -[参照記事](https://qiita.com/yuu-eguci/items/1a572d83d3faf306ed08)


・ただこれらはWEBアプリとユーザーの接点に過ぎないものので、結局は中身の作りこみが先かなと。
→じゃあ、LINEの公式アカウントやdeveloper登録のことは後回し。

# じゃあWEBアプリって？
・既存無料WEB DBサービスを活用する（プリザンター）
→できるかどうかもまだわからんし、せっかくなら作ってみたい。
 -[参照記事](https://qiita.com/pierusan2010/items/24ac4dc1f332eebd9b50)


・蔵書管理システムの開発についてアレコレ調べてみると、これは初心者のプログラムの練習になるみたいな記事がたくさん。システム系の新入社員が作ってる報告も結構多くヒットする。
→ハードルの設定的に丁度よさそうと思えたことと、「みんな作ってる＝サンプルコードたくさんある」という下心から、作ってみることを決心

# どの言語で作る？
・C++とRubyとJavaScriptは触ったことがある。
→経験があるとはとても言えない。10年前の大学の授業でほんとに「触った」レベル。HELLO WORLD出したくらい。

・調べていてヒットしたのはRubyとPythonが多い印象。
→そもそもPythonって何。読み方すらわからず調べてみると、構文がシンプルであることと最近はやっていること、よくわからないけどイケてることを理解。じゃあ、これやってみよう。

# Python学習の前に
性格上なんとなく全体感をつかまないと不安なタイプなので、作業から公開までのイメージをつけるためにひたすら検索。検索→インプット→わからないことが出てくる→検索の繰り返しで、「Pythonを使ってみよう」のフェーズから1歩も出れず、具体的作業のイメージがわかないまま時間だけが経過…。
 -[参照記事](https://qiita.com/kazuki310_/items/09f01356a1c35df07159)


と、色々調べているうちに、
FlaskとDjangoという「フレームワーク」が役に立つらしいということを知る。フレームワークが何だかもわからないし、まずどっちも読み方がわからない。フラスコ？ドジャンゴ？Pythonといい、なんでこんなに読みにくいの？

さらに調べていくと、「フレームワーク」については漠然としかわからなかったものの、フラスコやジャンゴと読むこと、使うと非常に便利ということだけははっきりと分かった。また、これを使ったチュートリアルもたくさん無料で出ているっぽい。

どっちがいいんだろうか？という観点で改めて調べを進めると、下の記事に出会う。
 -[【Python】でWebアプリをがっつりやるならDjango一択な4つの理由【初心者向け】](https://coinbaby8.com/python-webapplication-django.html)
サイトがめちゃくちゃ見やすいうえに、「4つの理由」の4つ目（なんとなく格好いい）にグッときて、よくわからないながら使うならDjangoだな！と思い始める。

Djangoをやるんだ！ワン・ツー・ジャンゴだ！とか考えていると、ようやくコレいう説明を発見。
この2つは具体的に始める前に見ておいて本当によかったです。
 -[django（フレームワーク）の仕組みを分かりやすく解説【徹底的にかみ砕きます】](https://codor.co.jp/django/understand-concept-of-django-framework)
 -[【Python/Django】webフレームワークを使う6つのコツ〜最短距離でアプリをつくるために【初心者向け】](https://coinbaby8.com/python-django-framework-6-idea.html)

＞最初に挫折してしまう原因は「全体像がつかめず、何をしているのかわからない」ということかもしれません。
そうそう！そうなんだよ！と心に刺さりまくった記事。わかりやすいいいいいいいい。
HPビルダーでHTMLいじって遊んでいた子供のころの情報で知識が止まっている身としては、これを見ていなかったらマジで何が何だかわからなかったと思います。

この投稿の最初からDjango導入決心まで、だいたい1日くらいかかってしまいました（遅い？）。

でも着実に前に進んでいる感！！（何かを生み出しているとは言っていない）

次回、Django着手です。


---
＜次の一歩＞
[素人Python日記② ～Djangoガールズのチュートリアルをやる（初日）](https://qiita.com/wahahahagi/items/28162eae687c4c793d14)

＜牛歩的経緯：自宅環境構築＞
[自宅待機を有効活用する① ～思い立ちからゴール設定まで](https://qiita.com/wahahahagi/items/9bdb192d8a55a5087dfe)
[自宅待機を有効活用する② ～LET'S NOTE CF-W8のHDDをSSD換装する話](https://qiita.com/wahahahagi/items/bf216504dbb79d0f9863)
[自宅待機を有効活用する③ ～2020年、ようやくXPをWin10に](https://qiita.com/wahahahagi/items/411b6c0f06d816bac4cc)