package 取り組みの背景
こんにちは!アプリケーションエンジニアの法島です。
いきなりですが、これからしばらくの間、何かと注目されている言語であるGOを記事を見てくれている皆さんと一緒に学んでいきたいと思っています。
GOに関してまとめている記事はちょっとググっただけでもたくさん出てきますよね。僕も興味本位でいろいろな記事を読んだりしています。そういったことを繰り返していると実際に書いてみたくなるのがエンジニアというもの!笑
本記事は僕みたいなGOド初心者が基本的なことから簡単な機能の実装までを何回かの連載を通して学んでいける構成にしていければと思っています。
ただ...最初に言っておきます、今回は何にもしません!笑
今回の取り組みの背景
僕は株式会社クインテットでアプリケーションエンジニアとして仕事をしています。「アプリケーションエンジニアって何?」「どんな仕事をしているの?」と思った方は部門長や昔僕が書いた記事があるので以下を見てもらえるとわかりやすいかと思います。
エンジニアの仕事って?~開発部員編~
僕たちはphpをメインの言語として日々アプリケーションの開発を行っています。開発をしている中で「本当はここ違う言語でやった方がパフォーマンス良かったりするんだけど...」といった話が聞こえてくることがあります。
こういった話を聞いたとき、メインで扱っている言語とは違った特徴を持った言語を1つでも学んでおけば、これからのアプリケーション開発や運用の中で問題が起こったとき、違った切り口でより良い解決策を模索できるのではないかと思ったのが今回の背景になります。
なぜ数ある言語の中でGOを選択したか
冒頭で書いたようにGOに関しては元々興味がありました。いつかやろうと思っていたので機会としてはちょうど良かったというのも少なからずあります笑。ただ、どうせやるなら学んだことが業務のような場所で使える可能性のあるものにしたいと思いました。言語を選ぶ上で意識したことは
- 業務で主に使っているphpと併用ができること
- 学習がしやすいこと
の2点です。
GOの特徴の一つとして処理が高速であるということがあります(自分自身でテストを書いて実験したわけではないですが、パフォーマンスを検証した記事とかも多く見つかります)。開発背景がGoogle社内における大規模ソフトウェア開発の生産性やスケーラビリティのためのであるところからみても、最大のメリットの1つのようですね。そのメリットを生かしてシステムの重い部分をマイクロサービスのようにしてリプレイスしたり、段階的にphpのシステムをGOに置きかえて、高速化したといった事例も多く紹介されているので、phpとの併用は問題ないと考えました。
また、GO自体がシンプルな言語仕様でドキュメントが充実しているという点も特徴の1つとして挙げられてたので、学習のしやすさやチームへの浸透のしやすさといったところに魅力を感じたところが、他の候補として考えていた言語と比較してGOを選択した理由になります。
今後の連載
今回はなぜこういった取り組みをしようと考えたかの紹介でした。次回からはバリバリ手を動かしていきたいと考えています(現在絶賛勉強中です!)。どういった流れで連載していくかは次回あたりから書ければいいかなと思っています。
おまけ
今回の内容であればわざわざ記事にしなくてもよかったと思います。ただ、僕は結構さぼってしまう癖があるので、ここで宣言することによってやらざる負えない状況にするのが、この記事を書いた最大の目的です笑
どうしても続けられなくなってしまったときはしれっと記事を削除しておこうと思っていることは秘密。
GOいいですね!
「未経験」とあっても変にハードルを下げることなく、ぜひ実践的な内容を期待してます!
やるからにはどこかのプロジェクトで使えそうなところまでやりたいと思っています!
もう少し進んだ段階で何か相談するかもしれません!
連載を楽しみにしております!
僕もこの記事を読みながら勉強させていただきたいと思います!
一緒にGOマスターを目指しましょう!!笑