【Webサービス作成日記】必要なものを調べてみる_02

Webサービス作成日記02_Webサービス作るのに何が必要なの? Web開発

教材共有Webサービスの作成を決意したのは良いものの、筆者は「浦島太郎な元SEでWebエンジニアとしては素人の現役教員」である。

そこで、まずWebサービスを作成する上で必要な知識やモノを調べて洗い出してみようと試みてみた。

なお、作成を決意するまでの経緯や背景に関してはこちらの記事にてまとめている。

Webサービス作成の事例を調べる

調べてみるとWebサービスに関わるノウハウや事例はかなりの数がインターネット上にある。

その中でもまずはゴールをイメージしてみたく「Webサービスでどのようなものが作れそうか」を見てみる。

個人的には下記のサイトが非常に参考になった。

Webサービスの作り方をプログラミング初心者が勉強した記録記事|ferret

・世界で最もシンプルなテストツール「Chibineko」
・チャットメインのSNSサービス
・iOSアプリ
・検索エンジンサービス
   などなど

世の中にはこんなにもチャレンジしている人がいるのだと勇気付けられるものばかりである。

そしてかなり多種多様なものが作れそうだということが掴める。

Webサービスを作るために具体的に必要なツール

次に「そのWebサービスを作るために必要であったものはなにか」といった具合で必要なツールを洗い出してみる。

この作業も時間はかからなかった。なぜなら、上記のferretの記録記事で紹介されている記事では、各Webサービスを作成する上でどのようなツールを使ってどのような環境を用意したかが紹介されているからだ。

例えば、上記の記事で紹介されていた「Chibineko」においては下記のツールや環境が使われているようである。

Ruby on Rails … Webフレームワーク
Bootstrap … CSSフレームワーク
Bitbucket … コードホスティングサービス
Heroku … テスト環境(PaaS)
さくらVPS(CentOS) … 本番環境(VPS)
Apache + passenger … Webサーバ
PostgreSQL … データベース
Trello … タスク管理

ノンプログラマーが3ヶ月でWebサービスを作ってみた – Qiita

うん、なるほど!よくわからん!!笑

Webサービスを作るためのサーバーサイドの開発言語を選定する

ここまでで色々とヒントはいただいたので、Webサービスを作る上でのおそらく大事なポイントとなるであろうサーバーサイドの開発言語を決めていく。

一応、Webサービスを作る上でのサーバーサイドの開発言語というものがどういったものかぐらいは理解がある筆者である。下記はサーバーサイド(バックエンド)とクライアントサイド(フロントエンド)の言語の例である。

HTML/CSS	:クライアントのブラウザ側で表示を処理するための命令言語
JavaScript :主にクライアントのブラウザ側で動的表示を処理するための命令言語
PHP・Ruby・Go :サーバーサイドで処理するプログラムの命令言語 Webサービスのメインの部分

筆者としては、本サイトが WordPress で動いているということで 「世間一般でシェア一位のPHPを勉強すれば WordPress もさらにカスタマイズできるようになるし最高じゃね?」と安易に考えていた。

もしくは、最近イケイケの Go を勉強してみたいという気持ちもあった。Go は Google が開発した言語で、近年「エンジニアが学びたいプログラミング言語ランキング」などで上位に位置づけているものである。

しかし、結論として「オワコン」とも言われてしまっている Ruby を選択した。

理由としては、

  • Webフレームワーク が 良い意味で Ruby on Rails 一択で洗練されていそう
  • 日本産であり情報が収集しやすそう
  • 開発言語として実績があるため、ライブラリが豊富そう
  • SNSサイトが作りやすそう

などが挙げられる。
総じて、初学者として学習コストが低そうであったというのが一番の理由である。

もう少し詳しく説明すると、PHP は Laravel という Webフレームワーク への統一?が進んではいるものの、それでもフレームワークの選択肢が多い上に、新しいWebサービスに採用されるケースがかなり少なくなってきているようである。現在でのシェアは一位ではあるが、今後のことを考えると魅力をあまり感じなかった。

また、Go は学習コストが高そうであった。情報量が Ruby や PHP よりも少ないということに加え、制御が細かくできるが故に学習コストが高い印象を持った。マイクロサービスという小さなサービスを個々に開発し、そのサービスを組み合わせていく手法において強みがあるようだが、そのようなサービスを組み合わせていく大規模なWebサービスまでまだ想定もしていない。

というわけで、学習コストが低そうであり、色々とオールインワンで出来そうな Ruby & Ruby on Rails を開発言語とフレームワークとして選んだ。比較的簡単にSNSサイト作れそうだし。機能が増えていったらゆくゆくは Go にもチャレンジしてみたいがそれはいつかの話ということで。

必要になってくるスキル・知識

筆者がWebサービスを作る上で少なくとも下記のものが足りないと感じた。

  • HTML/CSS
  • HTML/CSSフレームワーク:Bootstrap 等
  • JavaScript
  • サーバーサイドプログラミング言語:Ruby
  • Webフレームワーク:Ruby on Rails
  • Git:GitHub 等
  • 開発環境_クラウドインフラ:GCP or AWS
  • 開発環境_エディタ:VSCode 等
  • OS:Linux
  • Webサーバー:Apache or nginx
  • DB:SQL

あとはネットワーク、セキュリティ、コンピュータ・サイエンスの基礎知識も必要になってくるだろうが、そこに関しては一応元SEということで今回は習得済みということにする。

しかし…ほぼ全部…笑
一歩ずつやっていくことにする。

情報教育を中心に教育関連のことを発信していますので 他の記事TwitterYouTube もご覧いただけると嬉しいです。また、情報教育教材のまとめサイト も作成しています。教材だけでなく、入試情報や便利ツールの一覧集などのページもありますのでぜひご覧ください。

高校の情報科の元教員で、EdTech Webエンジニア(ネットワークスペシャリスト、情報セキュリティスペシャリスト、AWS Certified Solutions Architect – Associate 認定)。大学・大学院では実験心理学(人間の情報処理)を専攻。実践事例を報告したり、教育者向けだけでなく企業向けのイベントに登壇するなどの活動をしている。Google for Education Certified Trainer(Google for Education 認定トレーナー)。

Web開発

コメント

タイトルとURLをコピーしました