未経験からエンジニアとして働きはじめて5ヶ月が経った。RubyやRailsはスクールでも学んできたが、もう一度体系だって理解し直す必要があると思えてきたので、基礎の基礎から復習する。
現場では、技術で対応できることは前提で、いかにユーザーに価値を届ける実装ができるかが第一に求められる。そのような実装をするには再度基礎からの理解が不可欠に思えたからだ。
ということで何から復習しようかと考えたが、まずは学習すべき範囲を眺める必要がある。なので「RubyとRailsの学習ガイド」を選んだ。
地図が頭にできたので気持ちよかった!
以下、読書メモ。
・まず自分ができることの範囲を増やし、得意・好きなところを見つけていく
・1つの技術の学習が難しくて進めなくなったときは、まずは全体を通して勉強し、そのあとで戻ってくる
・RailsはWebアプリ(ブラウザからアクセスするアプリ)をかんたんに作るための便利な道具と規約を集めたフレームワークのこと。
・shellはコンピュータを操作するための世界。「webデザイナーの為の「本当は怖くない」"黒い画面"入門」がおすすめ。
・JSONはデータをやりとりすることを目的としてデータ形式の一つ
・HTMLは、ブラウザで見ることが主目的であるデータ形式のため、データをやりとりするのには適してない。だからAPIではJSONで返すのだろう。
・SwaggerはAPIを仕様(APIスキーマ)を記述する記法とそれに関連して動作するソフトウェアのこと。
・需要の高まりをうけ、Swaggerを標準化した技術がOpenAPI。
・GraphQLはAPIをのためのクエリ言語(DBにとってのSQL)。サーバーサイドでGraphQL APIをサーバーサイドで提供し、クライアントが必要な情報を指示して取得する。
・Gitはソースコード管理システム。GitHubはソースコード管理システムに加えて、コードで対話するPull Request などの機能を提供する開発プラットフォームのこと。
・PumaはRailsアプリのソースコードをOS上に起動して、OSが提供する通信などの機能を利用して、アプリへのHTTP通信を可能にする
・Pumaなどで起動できるWebアプリの標準仕様を定めたものをRackという
・現在のマシンとは別のマシンへshellから接続するときにSSH(Secure Shell )プロトコルを利用する
・ソースコードをAWSやGCPなどで運用するサーバへ配置することをデプロイという。デプロイにはCapistranoというツールがよく使われる。
・AWSなどのクラウドサービス上のサーバマシンのセットアップ作業もプログラムで書くことができる。Itamae、Chefなどのツールがある。
・DevOpsとはアプリ開発者とインフラエンジニアが歩み寄って開発する考え方
・知識を増やすステップと分からないことを減らすステップがある