本書の目的
本書は、一人でシステムを開発するための手引書です。ネット上に公開してサービスを提供するシステムを構築するために必要な技術を一通り網羅したものになっています。
一人システム開発を勧める理由
従来のIT企業では、一人でITサービスシステムを作るということはほぼありませんでした。それなりのシステムを作るには、多岐にわたる技術と作業が必要で、技術ごとに分業でシステムを開発をするのが普通でした。また、個人的にシステムを作ろうにも、システムを動かすためのサーバなどの機器は高価でしたし、データベースなども有償の商用製品しか選択肢がなかったりと、設備にかかるコストが足枷になっていました。このため、ITシステムを個人で開発するのはハードルが高かったのですが、この10年くらいで状況は以下のように変わりました。
- 多岐にわたる技術に関する知識も、ネットから簡単に手に入るようになった
- サーバーやネットワークなどのインフラもネットサービス化され、安価に使える環境が手に入るようになった
- 無償で使えるフレームワークやソフトウェアライブラリが増え、少ない作業で多くの機能を開発できるようになった
個人でITシステムを開発するハードルは格段に低くなっています。ITサービス事業のアイディアがあれば、まずは個人で低予算で実現できるするシステムを作って公開し、アイディアを実証してみることも可能です。
また、実践的にIT技術を学び、スキルアップすることを目的に、一人でシステムを作ってみるのも良いと思います。これからIT業界で働きたい人はもちろん、実際にIT企業で仕事をしている人も、本業の仕事だけでは身につけることが難しかったマルチな技術を学ぶ機会が得られるでしょう。
本書の狙い
本書では、実際にITサービスシステムを開発するために必要な技術を、より実践的に解説していくつもりです。
開発事例としては、フロントエンドにReact+JavaScript、バックエンドにDjango+Pythonを使ったシステムを使ったもので説明しますが、各々のソフトウェアのインストール方法とか、実行手順など色々なサイトで簡単に手に入る情報はできるだけ省き、使う技術・仕組みとその組み合わせ方など、システム開発の全体像を掴むことができるような情報を中心に説明して行きます。
一人で効率よくシステムを開発するために大事なのは全体像を掴むことです。なんでこうなっているのか?どういう仕組みになっているのか?を最初に理解してしまえば、問題に直面した時にも素早く正しい解決策を得ることができるでしょう。
対象となる読者
- ITサービス事業を立ち上げることを目指している人 ITサービス事業のアイディアがある人の中には、まずは個人で低予算で実現できるするシステムを作って公開し、アイディアを実証ってしてみようと思っている人も多いのではないかと思います。このような人が手始めに読むにはぴったりの本です。
- フルスタックエンジニアを目指している人 開発スピードが必要なスタートアップ企業では、少数精鋭の開発チームを編成するため、一人で複数の技術を担当することのできる、いわゆる「フルスタックエンジニア」が求められています。一人システム開発の実践を通じて、幅広い技術や知見を得ることができます。
- システム設計ができるエンジニアを目指している人 従来型のIT企業の中では、一人でシステムを全て作るということはほぼありません。多岐にわたる技術や分野ごとに分業でシステムを開発をするのが普通ですが、その上に立つシステム全体を見通し設計できるエンジニアは必要です。システム設計ができるエンジニアは数多くはなく、企業にとっては貴重な存在です。一人システム開発の実践を通じて、システム全体を見通せる能力が養えます。
本書で学べる技術領域
- ソフトウェア開発技術 フロントエンドソフトウェア(JavaScript、React)、バックエンドソフトウェア(Python, Django, Django-rest-framework)
- システムインフラ技術 Webサーバー、データベース、インターネット、IaaSサービス
- セキュリティ関連技術 SSLと暗号化、認証と認可、脆弱性検知