新卒3年目のSEがGoに触れてみた

プログラミング言語の1つであるGo。
2009年にGoogleが開発した言語でプログラミング言語の中では比較的新しい言語です。

私は半年前ぐらいから仕事上で初めてGoに触れました。
そこで、今回はGoで開発してみての体験談などを伝えられればと思います。

書いた人
新卒3年目のシステムエンジニア。
大学時代からプログラミングには触れてましたが、基礎的なことしか勉強しておらず、
Webアプリなど何か作ったりするのは社会人になってから始めました。

普段はGo、Java、Vue.jsなどを使って開発しています。
Javaに関してはSpring BootやPlay Frameworkといったフレームワークを使ってます。

Goで何を開発したのか?

仕事上でGoを使ってWebアプリを開発しました。
WebアプリとはWebサーバ上で動作するアプリで、Webブラウザ上で動作しています。

Goの特徴は?

GoはJavaなど他の言語に比べてコードの書き方には厳密なルールがありますが、その分シンプルに書くことができます。
また、Javaに比べて軽い言語なので、処理速度も速かったり、使うメモリも少なく済みます。

使うメモリが少なくて済むので、Goでスマホアプリを作った場合はバッテリー消費も抑えることができます。

GoはJavaより難しい?

これは人によって感じ方は違うかもしれません。

私はGoに初めて触れたとき、エラーが出てきてもなぜエラーになっているか全くよくわからない状態でした。
なので、最初は難しいなと思いながらコーディングしていました。

というのもJavaとGoには大きな違いがあるからです。

GoとJavaの違いは?

Goにはポインタという概念がある

Javaにはポインタという概念をあまり気にせずに開発を進めることができます。

ポインタとはデータの何番目にどのようにアクセスするかを決めるものです。
これをうまく使いこなすのに苦戦しました。
今でも若干苦手意識はありますが、問題なく開発を進めることができています。

Javaでよく使う継承がない


継承とは新たに追加する機能で同じような処理をするところは共通化させてしまおうという概念です。

継承を使えると同じような処理を何箇所も実装しなくて済むので無駄なコードを書くことが無くなります。
また、同じようなコードを書くことがなくなるのでコーディングにかかる時間も短縮することができます。

GoでもJavaの継承のように共通化させたい処理は出ててくることはあるかと思います。
Goでも共通化させる処理を書くことはできるのですが、自分で構成を全て考える必要が出てきます。

各クラスに対してどこまでの役割を持たせるのか、デザインパターンを用いてある程度型に沿った構成にしていくのか方法はいろいろあるので自分だったらどう作っていった方が書きやすいのか、またどうしたら今後の改修がしやすくなるかよく考えてから進めなければならないので考えることは多くなると思います。

Goはメモリ消費が少ない分、他の言語に比べて用意されているものが少ないので自分で考えて決めることが多くなっていきます。
なので、プログラミング初心者の方がGoでWebアプリ開発などをするのは私個人としては少し難易度が高いと思っています。

Goでまた開発したい?

Goの方がシンプルにかけてサクッと動かしやすく、JavaよりGoの方が書きやすいなと思うので開発を始めるときに言語を選べるのであれば、Goを選びたいなと思います。

Goも慣れるまでが大変ですが、慣れてしまえば割と書きやすい言語だと思っています。

正直、私もGoに初めて触った時は何をしたら良いのか全くわからない状態でした。
エラーが出て解決できない時はネットで調べたり、先輩社員に聞いてばかりでした。

2週間くらい経ってようやく何をすれば良いのか、エラーの対応方法もすぐに分かるようになり、1つの機能開発に対しても時間掛けずに進めることができるようになりました。

短期間で習得できた理由は?

初心者の方だったら1番気になることかもしれません。

それは1つの言語をしっかりと身につけた上で、別の言語に触れるようになったからです。


1つの言語をしっかり身につけておくと、その後に触れる言語の習得時間が短くて済む
という話は聞いたことがあるかもしれません。

どの言語でのコーディングでも何をしたいのか、そのために何をするのかは絶対に考えているはずです。

何をするのかが見えてくると実際にコーディングするならどう書いていけば良いのか考えていくと思います。

1つの言語をしっかり習得しておくと、

  1. やりたいことを見つける
  2. やりたいことを実現するために何をするのか考える
  3. どのようにコードを書いていくのか考える

このサイクルで考える癖が身に付き、他の言語に移った時も同じような流れで考えれば良いだけなのです。

その上で前に勉強した言語はこれを使えばできたから、今勉強している言語には似たようなものがあるのか調べれば良いので、調べることに使う時間も短くて済みます。

プログラミングを始めたばかりのうちはいろんな言語に触れてみたくなると思いますが、最初に触ってみたいと思った言語でWebアプリなど形になるものを1つ作ってみることをおすすめします。

最後に

今回はGoでの開発の体験談を話しつつ、Goの特徴に関してもお伝えしました。

冒頭にも書きましたが、メルカリなど有名なサービスにも使われる言語ですし、耳にする機会も多いので、興味を持った方は調べてみたりするとより興味が深まると思います。

また、今まで自分が触れてきた言語と何が違うのか、開発しようと思っているサービスやシステムはどの言語が適してそうか考えてみるのも面白いんじゃないかなと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA