開発を忘れたインフラエンジニアがRailsを学んだ記録

開発を忘れたインフラエンジニアがRailsを学んだ記録

今から20年前、電話交換機(固定電話/3G FOMA)の制御系プログラマーとしてキャリアをスタートさせました。その後、商社系SIerにて上流工程やセールス寄りの仕事に移行したので、プログラム開発は全く得意ではないエンジニアです。

そんな私が、このたびRailsアプリの開発を学んだ記録です。

f:id:TOSHIOSHIMO:20201021234635j:plain

スキルセット

星マークで表すとこんな感じです。インフラのディープな部分と、セールス寄りが得意であり、フロントエンド開発はほぼ出来ません。世間一般、大多数のエンジニア像(開発プログラマー)とはかなり違うような気がします。

・プログラミング  ★

・インフラ/サーバー ★★★★★

・フロントエンド  ★

・セールス     ★★★

・マネジメント   ★★★★

・コンサル     ★★★★★

・デザイン     ★★★

1日目(知識ゼロ)〜3日目

・ローカルPC(Mac)でRails6のサーバーを最小限の構成で動作させた

・使用DBを変更(Puma→mariaDB)してRails6を起動させた

・scaffoldを使ってタスク管理アプリの動作を確認した

こちらの本はRails5用ですが、6との差分を確認しつつガイドとして使いました。

 MySQLの本が5系で古くなっていたので買い替えました。

 1週間後

AWSでRails6 + mariaDBの環境を構築し手順として確立した

toshioshimo.hatenablog.com

・scaffoldを使ってタスク管理アプリが動作することを確認した

・BootStrapのテンプレートを適用、デザインをカスタマイズした

・ユーザー管理画面を作成した

・ユーザーの作成、編集、削除が出来るようにした

・ユーザー管理テーブルに管理者フラグを追加した

・管理者/一般ユーザーの権限で操作できる内容が変わるようにした

 2週間後

・ログイン画面の作成、ログイン・ログアウト機能を追加した

・ログインパスワードをハッシュ化した

・ログイン状況を判断して各ページの読み込みに制限をかけた

flash機能でメッセージが出るようにした

・アラート通知に使うテーブルを作成した

・アラートの作成、編集、削除が出来るようにした

・ログイン画面、ユーザー/アラート登録時のvalidation機能を追加した

 3週間後

 追加で本を購入

Ruby on Rails 6 実践ガイド impress top gearシリーズ
 

REST API追加、POSTツールからのデータ受信、DB蓄積を確認した

・IoTデバイスよりPOSTされたデータ受信、DB蓄積を確認した

・受信データよりアラートテーブルをサーチ、Amazon SES経由のメール送信を確認した

・Chart.jsで直近の蓄積データがグラフ表示されることを確認した

・蓄積データのCSV出力機能を追加した

とりあえず動くものは出来てしまう

17年越しに開発にチャレンジしましたが、プログラミングというよりは、何だかテンプレートを触っている感覚です。Railsは便利なメソッド等がバッチリ揃っていて、SQLなど覚えなくともアプリが作れてしまいます。これならプログラミングスクールに短期で通って、「プログラマー」と名乗り即戦力として働けるのも納得です。

しかし本当にそれで良いの?

ただ、C言語アセンブラ機械語を学んでいた身からすると、それで本当にデバッグができるのか、かなり疑問です。ミドルウェアやOSに近いカーネルの部分が関わると途端に何もできなくなり、バグも多くなる気がします。Railsのログがどうやって出力されているのかも知らないのでは?(ログに残らない部分のデバッグができない)Ruby on Railsから入ったエンジニアにアプリ開発を任せるのは、ちょっと不安感あります。