競プロ弱者の解答

競プロ弱者の成長記録

競プロは役に立たない!を確かめる webアプリ編-1

 競プロ大好きなsyunsukeです。

 

 久々のブログです。

 

 今回からは簡単なwebアプリ作りを始めます。

 まず、タイトルの「競プロは役に立たない!を確かめる」についてです。

 1年くらい前までは、毎月の様にTwitter上で「競プロは役に立たない!」と言い出す人が現れていました。

 それに対し、AtCoder社の高橋社長等がそれに反論?諭す?等をし、競プロer達は「月刊 競プロは役に立たないが発刊された!」等と言って笑っていました。

 最近は月刊より頻度が落ちたように感じますが、それでもたまに発刊されます。

 そこで、競プロしかプログラミング経験の無い40歳のおっさんが競プロを通じて身に着けたプログラミングスキルを駆使して、簡単なwebアプリを作ってみることにします。

 競プロはwebアプリ作成の役に立つのでしょうか?

 

syunsukeの基本情報

年齢                 :40歳(執筆時点)

職業                 :会社員(化学系です。業務でプログラミングをしたことはありません。)

競プロ歴    :1年5カ月(執筆時点)

AtCoderレート:1200ちょっと(執筆時点)

使用言語     :Python(執筆時点。本当はかっこよくC++を使いたい)

競プロを始めたきっかけ:

 なんとなく読んだ意識高い系の雑誌に、これからはプログラミングが必須!プログラミングするなら言語はPythonPythonは万能!何でもできて、習得しやすくて、速い(雑誌に書いてあっただけで、速いとは思えません)なんて記事に騙されてプログラミング学習サイトの練習問題を解いていたら、競プロにたどり着きました。

 

webアプリを選んだ理由:

 なんかwebアプリ開発が流行ってる?らしいから。

 DjangoかFlaskを使えば、Pythonでもwebアプリが作れることは知っていました。(他にもBottle等があるらしいですが良くわかりません)。webアプリ以外にもいろいろ作れるようですが、よくわかりません。

 

webアプリ開発経験:

 webアプリに限らず、開発経験は全くありません。gitはgithubを略したものだと思っていたレベルです。

 

参考資料:

 ・Python Django 超入門

 ・Django girls Tutorial(日本語版)

 基本的に、Python Django 超入門(以下超入門)の内容に従って作成します。デプロイ(今回のwebアプリ作成を通じて知った言葉です。公開よりなんかそれっぽいので無駄に使います)

 

1.webアプリの作成(チュートリアル)

 超入門に従い、CURD(Create,Read,Update,Deleteの略で、レコード作成、取得、更新、削除だそうです)部分を作成するところまで進めます。

 

 〇Anacondaのインストール

  ・飛ばします。

  ・Anacondaは既にインストール済です。Jupyter Notebookを使うために、

   昔入れてました(使えるとは言ってません)

 〇アプリ作成

  ・超入門ではIDE(統合開発環境だそうです。何が統合されているのかは

   よくわかりませんが)はSpyderを使っていますが、私はPyCharmを使いました。

   間違った時に赤で知らせてくれたほうがありがたいので。

  ・アプリ作成で躓いて、そこでブログを書こうと思ったのですが躓きません。

  ・超入門は良くできています。

  ・読者がそこまで書かなくてもわかるだろう。といった感じの省略がなく、

   書いてある通りに書けばきちんと動きます。

あっさりwebアプリの作成(チュートリアル)終了

 

2.デプロイ

 Django girls Tutorial(日本語版)(以下girls)に従い、pytho anywhereにデプロイします。

 〇必要なアプリのインストールと登録

  ・git 冒頭でも書きましたが、git hubの略称ではありません。

   何をしているのかわかりませんが、バージョンの管理をしているそうです。

  ・github アカウント取得

   飛ばします。過去にアカウントを取得していました。

   使ったことはありませんが。

  ・python anywhereアカウント取得

   無料枠でアカウント取得。

 〇デプロイ

  ・girlsも良くできています。

   書かれた通りに実行すれば、あっさりデプロイできました。

 〇更新

  ・微修正後の更新

  ・初めてデプロイする方法は多数ネット上にありますが、

   更新についてはあまり検索にかかりません。

  ・苦労して苦労して、python anywhereの私のフォルダが

   my first appの中にmy first appがあり、さらにその中にもmy first appがある。

   なんて困ったことになってみたり、エラーの後に-nukeをしろ?

   的なことが表示され、実際に実行すると。これって全部上書き?

  ・やっとgit pullだけで目的の更新ができることに辿り着きました。

  ・恐らく何度もpython anywehe上でアプリをアップしたり、

   削除したりを繰り返しています。

  ・python anywehe様ごめんなさい。

 

f:id:syunsuk1024:20191008225929p:plain

 ちなみに、検索は超入門よりちょっとおりこうです。

 超入門はIDの検索だけですが、これは入力した内容が、ID,商品名、店名、価格のどれかに含まれればヒットします。

 

 今回はここまで。

 肝心の競プロは役に立つかですが、ここまでの内容だと競プロが役立つ場面はありませんでした。

・プログラミングが全く苦にならない。

・超入門のに書かれたコードの意味がパッと頭に入る。

等はありましたが、ここまでの段階では、競プロスキルはオーバースペックのようです。

今後は、

・画像ファイルのアップロードを可能にしたい

・BootStrapを使って全体的にかっこよくしたい

・ログイン機能をつけたい

・データ作成、更新日時、作成者、更新者を表示させたい

のどれかが達成できた段階でブログを更新します。