見出し画像

非エンジニアのスタートアップ 0 年生 ( 1. サービス開発に必要なこと )

はじめまして、株式会社ピケでサーバサイドエンジニアをしている古内と申します。

私の経歴としてはエキサイト株式会社に新卒で約 1 年間勤めて、その後現在の会社に勤めています。

目次

1. この記事について
2. 自己紹介
3. サービスを作る全体感
4. まとめ

1. この記事について

私の周りで起業をした人がいて、プログラミングができず困っている人がいました。
前職でもエンジニアではないけどプログラミングしたいという人がいました。

「作りたいサービスがある」、「プログラミングの勉強をしたい」といった方に向けて何かお手伝いできればいいなと思い、記事を書かせていただきました。

この記事は

・初心者向け
・リリースすることが目標

を念頭にしております。

そのため細かいことを書かずにサービスリリースを目標に一気通貫しております。

また、この記事だけで完結は難しいので小分けにします。

1. サービス開発に必要なこと ( 本記事 )
2. HTML、CSS、JavaScript の基本
3. Python の基本
4. Docker の基本
5. Django で開発
6. GCP にデプロイ

の順番で進めます。

2 ~ 4 の記事は勉強系です。
5 ~ 6 の記事は開発系です。

2 ~ 4 の記事は理解するより「こういうのあるんだ」程度でサクサク読んでいただければいいと思います。

シリーズを通してところどころ嘘な内容があります。
厳密に突き詰めすぎると文が長くなってしまい、概念や用語も増えてしまいます。
これは初心者に理解しやすいようにするための難しい概念の隠蔽です。

プロフェッショナルな方はお気をつけください。


2. 自己紹介

記事を書いた人がどんなサービスを作ったのかわからないと不安だと思うのではじめに私が作ってきたサービスの紹介をします。

Frasco

Frasco はエンジニア向け海外ブログ翻訳メディアです。
弊社のエンジニア 3 人で海外の価値のある記事を厳選して、独自に翻訳したものを届けています。
私の担当した部分は主にサーバサイドです。

Matey

Matey はルームシェアのルームメイトマッチングサービスです。
特徴は弊社が本人確認を行い安心安全にご利用いただけるという点です。
こちらも私の担当した部分は主にサーバサイドです。

Dish

Dish は「サクッとランチを決める」コンセプトにしたアプリです。
Tinder のようなフリック操作でサクサク快適に操作できるのが特徴です。
こちらも私の担当した部分は主にサーバサイドです。

3. サービスを作る全体感

「とりあえずプログラミング」って方もいると思いますが、サービスをリリースすることが目標なので全体の流れを覚えてもらいたいです。

----- 開発環境 -----

まずは開発環境です。
開発環境は文字通りですがサービスを作ることを目標とした環境です。

開発環境の流れは

1. プログラミング言語をインストール
2. ライブラリをインストール
3. プログラミング

の流れです。

1. プログラミング言語をインストール

プログラミング言語を動かすためのソフトをインストールする必要があります。
プログラミング言語には Ruby や JavaScript、Python、Java、PHP など様々な言語があります。

Web サービスでよく使われる言語は

・Ruby
・JavaScript
・Python
・PHP
・Go

など様々あります。

これらの言語から、作りたいサービスの特徴を考えて選ぶ必要があります。

2. ライブラリをインストール

ライブラリとは便利ツールのことで、ライブラリをうまく組み合わせてサービスを作っていくことになります。

ライブラリの中でもフレームワークが特に重要です。
フレームワークとはサービス開発をする雛形で、データベースの処理や HTTP リクエスト処理など Web サービスでよく使われる機能が入っています。
また、脆弱性対策もされているので初心者の方はフレームワークを使うことを強くおすすめします。

Web フレームワークには Python だけでも Django や Flask、Tornado などがあります。

1 つのプログラミング言語に複数フレームワークがあるのでプログラミング言語の選定と同様に、作りたいサービスの特徴にあったフレームワークを選ぶ必要があります。

3. プログラミング

ここまでプログラミング言語とライブラリのインストールしてやっとプログラミングに入ります。

お気付きかもしれませんがプログラミング言語とフレームワークを整える方が大変ということもよくあります。

逆に考えると、あとはプログラミングだけという見方もできるので、ここまでくれば 4 割くらい完成していると言っても過言ではありません。


以上かなりざっくりの開発環境でした。

----- 本番環境 -----

続いて本番環境です。
本番環境とはサービスを世の中に公開する環境です。

本番環境の流れは

1. Linux の準備
2. プログラミング言語のインストール
3. ライブラリのインストール 
4. ソースコードのデプロイ

の流れです。

1. Linux の準備

世の中にサービスを公開するためには本番専用のコンピュータが必要になります。

一般的に本番環境のコンピュータには Linux が採用されています。
そのため、必ずではないですが Linux の知識を必要とすることがあります。

具体的にはコマンドとディレクトリの概念とかです。

本番環境のコンピュータには AWS や GCP などがあります。

2. プログラミング言語のインストール

開発環境と同じバージョンのプログラミング言語をインストールします。

3. ライブラリのインストール

こちらも開発環境と同じバージョンのライブラリをインストールします。

4. ソースコードのデプロイ

ソースコードのデプロイとは本番環境に開発したプログラムをインストールする作業のことです。

一般的には開発したプログラム以外にも Web サーバを一緒に動かしたり、データベースを構築する作業です。

すこしややこしいのでざっくり説明しますと

Web サーバは Apache や Nginx のことで、静的なファイル ( HTML、CSS、JavaScript、画像、動画など ) の配信を担当します。

開発したプログラムはアプリケーションサーバといいます。
アプリケーションサーバは動的な処理 ( 認証、決済、投稿など ) を担当します。

この 2 つのサーバを連携させて世の中にサービスが公開されます。


以上ざっくりの本番環境でした。

4. まとめ

本記事ではプログラミングではなく開発からリリースまでの流れを書いてみました。

今までリリースを意識してプログラミングをしてなかった方の参考になれば嬉しいです。

私としてはただ勉強するよりも、作りたいものを目標に開発すると効率よく勉強できると思っています。

なので、簡易版 Facebook を作ることを目標に次の記事から進めてみます。

技術としては

・Docker
・Python
・Django
・Bootstrap
・GCP

の構成です。

ご興味のある方がいらしたらぜひ読んでみてください!


=======================================
PR
古内開発教室始めてみました!
この記事読んだけどもうちょっと知りたい!
自分ひとりだと心細い!
そういった方がいましたらぜひこちらを見てください!
古内開発教室
=======================================


次の記事  2. HTML、CSS、JavaScript の基本

この記事が気に入ったらサポートをしてみませんか?