開発を忘れたインフラエンジニアがRailsを学んだ記録
今から20年前、電話交換機(固定電話/3G FOMA)の制御系プログラマーとしてキャリアをスタートさせました。その後、商社系SIerにて上流工程やセールス寄りの仕事に移行したので、プログラム開発は全く得意ではないエンジニアです。
そんな私が、このたびRailsアプリの開発を学んだ記録です。
スキルセット
星マークで表すとこんな感じです。インフラのディープな部分と、セールス寄りが得意であり、フロントエンド開発はほぼ出来ません。世間一般、大多数のエンジニア像(開発プログラマー)とはかなり違うような気がします。
・プログラミング ★
・インフラ/サーバー ★★★★★
・フロントエンド ★
・セールス ★★★
・マネジメント ★★★★
・コンサル ★★★★★
・デザイン ★★★
1日目(知識ゼロ)〜3日目
・ローカルPC(Mac)でRails6のサーバーを最小限の構成で動作させた
・使用DBを変更(Puma→mariaDB)してRails6を起動させた
・scaffoldを使ってタスク管理アプリの動作を確認した
こちらの本はRails5用ですが、6との差分を確認しつつガイドとして使いました。
MySQLの本が5系で古くなっていたので買い替えました。
1週間後
・AWSでRails6 + mariaDBの環境を構築し手順として確立した
・scaffoldを使ってタスク管理アプリが動作することを確認した
・BootStrapのテンプレートを適用、デザインをカスタマイズした
・ユーザー管理画面を作成した
・ユーザーの作成、編集、削除が出来るようにした
・ユーザー管理テーブルに管理者フラグを追加した
・管理者/一般ユーザーの権限で操作できる内容が変わるようにした
2週間後
・ログイン画面の作成、ログイン・ログアウト機能を追加した
・ログインパスワードをハッシュ化した
・ログイン状況を判断して各ページの読み込みに制限をかけた
・flash機能でメッセージが出るようにした
・アラート通知に使うテーブルを作成した
・アラートの作成、編集、削除が出来るようにした
・ログイン画面、ユーザー/アラート登録時のvalidation機能を追加した
3週間後
追加で本を購入
・REST API追加、POSTツールからのデータ受信、DB蓄積を確認した
・IoTデバイスよりPOSTされたデータ受信、DB蓄積を確認した
・受信データよりアラートテーブルをサーチ、Amazon SES経由のメール送信を確認した
・Chart.jsで直近の蓄積データがグラフ表示されることを確認した
・蓄積データのCSV出力機能を追加した
とりあえず動くものは出来てしまう
17年越しに開発にチャレンジしましたが、プログラミングというよりは、何だかテンプレートを触っている感覚です。Railsは便利なメソッド等がバッチリ揃っていて、SQLなど覚えなくともアプリが作れてしまいます。これならプログラミングスクールに短期で通って、「プログラマー」と名乗り即戦力として働けるのも納得です。
しかし本当にそれで良いの?
ただ、C言語、アセンブラ、機械語を学んでいた身からすると、それで本当にデバッグができるのか、かなり疑問です。ミドルウェアやOSに近いカーネルの部分が関わると途端に何もできなくなり、バグも多くなる気がします。Railsのログがどうやって出力されているのかも知らないのでは?(ログに残らない部分のデバッグができない)Ruby on Railsから入ったエンジニアにアプリ開発を任せるのは、ちょっと不安感あります。