小さな渋谷の会社でゼロから作るWebアプリケーション
株式会社エー・アンド・ディのCTOをやっている山口です。
CTO noteを始めてしまった以上、何か技術的な記事を書いていかねばなりません。
そんなわけで、業務で標準的に使用している各種フレームワーク等を駆使して、ゼロからWebアプリケーションを構築するチュートリアル記事を書いてみようと思います。
ゼロから作る、とは
ゼロから作る、と言っても、WebサーバーやOSやCPUから作るわけではありません。
Webアプリケーションのソースコードの最初の1ファイルから始めて、必要なツールや依存ライブラリを追加していき、単独で稼働するWebアプリケーションを構築していく様子を記事にしていこうと思います。
ファイル数がゼロのところから、という程度に捉えて頂けたら幸いです。
対象読者
このマガジンでは、以下のような読者が、一通り動作するWebアプリケーションを作れるようになることを目標とします。
* 専門学校や大学で、基礎的なJava・HTML・CSS・JavaScriptの授業を受けている。
* それぞれ、文法程度はなんとなく知っている。
* 授業の課題などで、DBアクセスするServletなどを開発したことがある。
* Linuxの基本的なコマンドを授業などで習ったことがある。
* SQLをなんとなく知っている。
開発コンセプト
このマガジンでは、最高にナウい最高にキてるスゴイフレームワークを紹介するということはしません。
(対象読者でJavaの知識を前提に置いている時点でお察しです)
私たちは渋谷の小さな会社なので、人材もスキルも限られていて、情報が少なかったり経験者を調達しづらい(高い)技術を使うことは難しいのでした。
そんなわけで、このマガジンでは妥協の産物を披露することになります。
ただし、その代わり、なるべく良い妥協の産物を目指します。
なるべく良い妥協の産物は、具体的には以下の価値を目指します。
* 世間一般で広く使われている技術を使用している。
* 開発者を容易に調達できる。
* 既存の情報源を使用することで学習コストを抑えられる。
* それなりの性能で動作し、ある程度のスケーラビリティも備えている。
* 変更が容易である。
* 変更が無関係の箇所に影響しない。
* 変更が影響する箇所については、型システムにより静的にチェックされる。
* DBやクラウド環境も含むすべての変更がGitで管理される。
* 開発チームもスケールする。
* 開発環境が素早く低コストで用意できる。
* 開発者のローカル環境だけでテストが行える。
使用技術
前述の開発コンセプトに従い、以下の言語・フレームワーク・ライブラリ・ツール・インフラを選定しました。
そもそもこれらが何であるのか・なぜこれを使うのか、そういったことは、記事の中でおいおい説明していこうと思います。
## インフラ
* AWS
* Amazon VPC
* Amazon EC2
* Amazon Aurora MySQL
* AWS CloudFormation
## バックエンド
* 使用言語
* Java
* フレームワーク等
* Spring Boot
* Spring Security
* Spring Session
* jOOQ
* Liquibase
* Swagger
## フロントエンド
* 使用言語
* TypeScript
* SCSS
* フレームワーク等
* Webpack4
* Vue.js
* Vuex
* Vue Router
* BootstrapVue
* Jest
## 開発ツール
* Github
* Circle CI
* Visual Studio Code
* Vagrant
* Gradle
* PlantUML
Githubリポジトリ
このマガジンでは、下記のGithubリポジトリで開発を行っていこうと思います。
https://github.com/andcorp/morisoba
いまのところLICENSEしかありません。乞うご期待です。
免責事項・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 - 改変禁止 4.0 国際 ライセンスの下に提供されています。
弊社の当コンテンツに掲載されている情報の正確性・安全性などについての保証はなく、弊社は何らの責任を負うものではありません。
弊社の当コンテンツに掲載された内容によって生じた損害等の一切の責任を負いかねますので、ご了承ください。
Copyright © 2019 ANDCORP.
この記事が気に入ったらサポートをしてみませんか?