転職して4ヶ月 色々感動したこと(IT)
押忍!
出前館Botリリースして2日後に仕様変更で没になった
鎖骨打ちのサトJです!
お久しぶりです。転職して4ヶ月経ちました。
初っ端から色々大変だったけど
念願だった自社開発系で働くという夢がかなって色々学べて今仕事めちゃ楽しいです
フルリモートからハイブリッド勤務になって朝起きるのはつらくなりましたが、下り方面のため電車も混んでないしそれ以上に楽しいので転職してよかったです。
前職も最初はそんな感じだったのに最後は文句垂れて辞めたので今回こそそうならないといいなw
あとガチの最先端なモダンな環境ってわけではないけどやっぱり技術環境って大事だなて改めて思いました
そんな4ヶ月で特に楽しかったことをリストアップしてみます
Linq&EntityFrameworkCore(C#)
前職でもメインの基幹システム等はVB.NET、新たに作ったAPIやバッチ系はC#とMicrosoft環境でしたが、実はLinqとEntityFrameworkは使ってきませんでいた。
社内SEという職業柄か学ぶ意欲が少ない中年連中が多く、新しいことはやらない。スパゲッティコードとStaticメソッド万歳みたいな環境でC#の導入すら大反対されてたので当然DBアクセスは生クエリのSqlClientみたいな感じでした。
ASP.NET Coreや.NET 6での開発も退職届だしてから初めて触った感じでした。(プライベートでは触ってましたが)
そんな感じだったのでC#愛してると言いながら実は
LinqとEFCore使ったことなかったことに後ろめたさはありました。
結論から言うとすげえ便利でした
Linqなんか今までなんで使ってこなかったんだろうって感じでした。
今までfor文かいて中でif文してとかネストになりがちでしたが一発でスッキリかけるチェーンメソッドには感動しました。
遊戯王世代
なんでチェーンメソッドが
魔法カードに
マジックジャマーでチェーンかけて
それに盗賊の七つ道具でさらにチェーン
みたいな感覚で面白かったです
EFCoreも実行遅いって言われてますが自分はそんなに遅いって感覚はありませんでした。
最初は生クエリのほうが見やすかったですが4ヶ月もたつと生クエリに違和感満載でLinq構文のEFCoreのほうが全然見やすいです
UnitTestの安心感
前職ではASP.NET WebFormをメインに使っている関係上テストコードを書くのが難しかったからかテストコードの作成は強制されていませんでした。
書いたことがないわけではなかったですがAssert.EqualとAssert.Trueくらいしか知りませんでした
なんでテストコードはほぼ初心者スタートだったんですが
画面テストより全然面白かったです
大体のエンジニアってテスト好きじゃないと思いますがUnitTestは好きになれました。
全部通ったときの達成感がハマりそう
テストコード書いていればCI/CDでほかへの影響も把握できるし、
レビューもテストコードとセットなら安心感があります
あと、テスト通過率やテストカバー率とかをカバレッジレポートで見れるということも学び100%目指すのが楽しかったです
フロントとバックエンドの完全分離
これが一番衝撃受けました
確かに言われてみればそういう構成もできるなとは思いましたが、今までそういう発想がなかったからかなりびっくりしました
今ではflutterでアプリwebなんでも一つでいけるみたいな感じですが、自分がITに入った頃は
アンドロイドはJava/Kotlin、IOSはswift、WebはJava/PHPで
ハイブリッドアプリは
monaca/ionicでマルチOS化はできるがDB通信が難しかったり
xamarinはバックエンド処理は共通化できるけどUI側は個別
みたいな感じでどれか一つやろうとしたらどっかの分野が穴になるって感じでした
でも、それぞれの分野で得意なものを組み合わせて作ればmonacaでDB通信とか可能だったり夢が広がりました
あと、分けることでフロントとバックエンド別で開発できたりリプレイスするときにフロントだけ作り直してバックエンドの資材はそのまま使うとかもできるし可能性が無限大だなと思いました。
ただ、それぞれ別の技術だから勉強は大変になるけど好きなことだから別にいいやって感じ
Nuxt×TypeScript
今の会社ではフロントは上記の構成なんだけど、
Nuxtって基本非同期処理
(詳しいことはよくわからない)で感動しました。
ASP.NET WebFormでは独自タグでasp:UpdatePanelっていう超便利ツールがあったんだけどASP.NET Coreでは使えなかったからPost処理の後始末どうしようかって頭を抱えてました(フォームの再送信のこと)
でもNuxtはそのあたり気にせず開発できて変なこと悩まなくて済むからだいぶ楽でした
あと動的型付け言語が嫌いでPythonとかjavascriptとかめちゃ苦手だったんだけどjavascriptのそういった課題を解決したTypeScriptには好感持てました。
しかもTypeScriptってMicrosoftのやつなんだってね。
Microsoft信者だからこれはやらんとなって思いました。
もっとTypeScript普及して
javascript消え去ればいいのにw
クラウド
去年の今ころあたりに初めてAWS触ってクラウドデビューしたわけですが、前職ではIaasがデフォで何でもバーチャルマシンからスタートだったので
サーバー=Iaas
の感覚だったんでこれも結構衝撃受けました。
今の会社ではAzureメインで使ってるのですがその中で特に衝撃だったのが
AppServiceとDevOps
です
AppService
いつかの記事に書いたと思いますが前職ではインフラエンジニアが偉く、自分はいじめられましたw
インフラ知識が疎かったし、そもそも作業領域的に自分のグループがインフラを触ってはいけない感じだったので偉そうにしてるインフラエンジニアに頭下げないといけない状態でした
そんな環境を脱却するためにDockerを覚えたわけですが、AppServiceを使ってみてこれなら素人の自分でもインフラ環境構築できそうだなって思いました
当然知らないことも多かったですが、Iaasで一から構築するよりかははるかに敷居が低いなて思いました
Dockerいらなくね?
とも思ったくらいですw
ただDockerはDockerでjavascript系フレームワーク系などスクリプト言語の開発には便利だなと思いました。
(今までC#でしか使ってこなかったのであんまり恩恵受けませんでしたw)
javascript系はすぐバージョン変わるし、ちょっと前のバージョンのインストーラーとかすぐページなくなるから環境構築めんどくさかったですが、Dockerならバージョン固定できるしruntime探すのらくだからこれはこれでいいなと思いました
DevOps
Githubも使えるし、バックログも使えるし、CI/CDもできるし最高じゃん
終わりw
ってのはちょっとかわいそうなのでその中でも特に気に入ったやつの話をします
pipelines
CI/CDのためが主ですがバッチ処理的なことにも使えて便利でした。
前職ではバッチサーバなるIaasが存在しており、高スペックなのにCPU90%くらい使ってるってちょっと意味不明な環境でしたw
ほとんどがDB処理系のバッチだったんですがpiplinesでよくね?てかSqlServerならjobでやれよと思いましたw
ちなみにSqlServerのjobも今の会社入るまで知りませんでしたw
でもpipelinesよりもっといいやつあるっぽいからそれも勉強しないとな
終わりに
いかがでしたでしょうか?
何度も言いますが、技術環境はめちゃくちゃ大事だと痛感しました。
環境のせいにするな。って言葉がありますがあれは甘えだと思ってます。
環境のせいにするのではなく、いい環境に身を置く努力をしろ
ですね
実は同日にもう一人同じ部署に入社してきた同期?がいるのですがその人も自分と同じようなVB.NET環境だったそうでしかもバージョン管理はGitじゃなくてサブシステム?だったそうです
環境大事だなw
って感じで近々AZ-900受けるので落ちても受かっても次のネタにします
ではまたいつか