Go案件に携わりたいフリーランスと副業のエンジニアなら知っておきたいGo案件のトレンド
目次
人気が急上昇したGo
案件が増えている理由
GoはJavaやRubyを代替する、Google開発の言語で、人気が高いです。現在、GoはWebサーバー構築の分野で積極的に使われる事例が増えています。この分野では長らくJavaやRubyが用いられてきましたが需要を代替しつつあり、有名な企業ではYouTubeもサーバー構築に活用しています。
この他、スマートフォンのアプリケーション開発でも使われる事例が増えており、これらの分野でのキャリアを志望する方には要チェックの言語といえます。
シンプルで高速処理が可能な言語
Goは2009年と比較的最近になってからGoogleが開発した、オープンソースのコンパイル言語です。大規模システム開発をJavaやC++よりシンプルなコードで記述し、高速かつ効率的に実行できる言語として開発されました。 コンパイル言語のため、Pythonなどの動的言語に比べると実行速度は高速です。またCPUのマルチコア化に対応した並列処理に言語レベルで対応する機構が備わっているため、複雑なコードも軽量な並列処理で記述可能です。
省リソースかつ脆弱性への対応も迅速
Goは記述方法が限定されており、何人ものエンジニアが同じ開発に携わっても記述方法がブレにくいシンプルな設計が可能です。同期処理も簡単に行えるため、複雑で大規模なシステム構築にも適しています。またGoはオープンソースプロジェクトのため、脆弱性やバグは発見され次第、速やかに修正されやすいというメリットもあります。
Web開発に適したフレームワークも豊富
小中規模なWebアプリケーション開発に適した軽量な「Echo」など、Goには多数のフレームワークが用意されています。Echo以外ではUIをもつアプリケーション開発用の「Revel」や、Webサーバー構築に役立つ「Gin」などが特に有名です。
Goを採用している業界や企業の紹介
広まったターニングポイントと歴史
Goでの開発の案件は増加傾向にありますが、どのような歴史を辿ったのかご紹介します。
歴史 前述したように、2009年にGoogleで設計されました。
Goのターニングポイント1 2014年にver1.4がリリースされAndroidでも使われるようになり広まりました。
ターニングポイント2 メルカリやドワンゴなどのITベンチャーが使用し始めました。
Go言語は、シンプルで信頼性があり、無駄のない有能なソフトウェア開発を簡単に実現できるように設計されています。 やはり以下のような印象を持っているエンジニアが多いようです。
Goの強みが生かされてる分野と実績
Goエンジニアとして、業務委託契約で案件に入る場合は、以下の分野で重宝されます。
マイクロサービスの用途でのGoの採用
言語のシンプルな言語仕様と拡張性の高さが生かせるため、マイクロサービスでGoは使用されています。 メルカリ、クックパッド、GCP(Google Cloud Platform)のGKE(Google Kubernetes Engine)でもGo言語を採用しています。
APIサーバー開発
APIサーバーはリクエストに対して様々な目的に合わせた汎用性のあるデータを返すサーバーです。 Go言語の特徴である、バックエンドやインフラまわりでの強さ、効率よい開発を行い実行速度も速いという点を生かして、高速なAPIサーバー開発で多用されています。 Gunosy、DeNAといった企業がGo言語を採用しているので、IT系のベンチャーでもGo言語でのAPIサーバー開発が増えています。
webアプリケーション
高速・軽量・並列処理に強い点などが生かされています。 AndroidやiPhoneなどモバイル向けパッケージ“Go mobile”を利用してモバイルアプリケーションなども簡単に作ることができます。 Kyash(キャッシュレスのウォレットアプリ開発) 、サイバーエージェント、エブリー(料理動画サービス)といった企業やサービスがGoを採用しています。
Paas(パース)
Paas(パース)とは、“Platform as a Service”の略で、Paas企業のGo案件もあります。 サービスとしてのプラットフォームを意味し、インフラやOSなどのプラットフォームを提供するサービスです。 Go言語はGoogleが推薦している言語ということもあり、GCP(Google Cloud Platform)との相性が良く、GAE(Google App Engine)のPaasサービスに利用されています。
GAE(Google App Engine)、Flynn(DockerのPaas環境を構築するツール)がGo言語を採用しています。
コンテナ技術
“コンテナ型仮想化“と呼ばれる、稼働中のOS環境上に、他と隔離された新しいOS実行環境を用意し、個別に独立したサーバーとして使用するための技術です。 DockerやKubernetes、といった分野の知見が豊富だとGoエンジニアとして重宝されます。
Goの技術顧問としての働き方
Go案件では、開発だけに留まらず、技術顧問として参画するケースもあります。
どのような業務内容なのか、シェアフル社でGoの技術顧問として働いている上田さんは以下のようにお話ししています。
>私も最初の頃は翁さん(※1)のようにレビューをしていましたが、最近は社内で勉強会を開いてGoの基礎から教えたり、知見を共有する機会を作ったりして、稼働時間も翁さん(※2)と同じくらいですね。直接的に自分で開発をするというよりはサポート側で、コードの品質をどう高めることができるかを考えていますね。全国で開催されているGoコミュニティの勉強会を紹介したりもしています。
※1 シェアフル社のJavaScriptの技術顧問の翁さん ※2 月に3日分のボリュームの仕事をしています。
引用元:https://flxy.jp/article/10586
Go案件で知りたい!どういう基準でGoのエンジニアを採用されているのか
採用責任者としてCTOが語るGoエンジニアのペルソナ
GoについてCTO名が登壇したCTOmeetupで、採用について触れているので、以下にご紹介します。
実際、Goでの開発経験が豊富という人はまだ少ないため、採用は未経験でも、「この人と働きたい」と思えば、難しくはないとのことです。
>Goをやっている人を採用したいという気持ちは本心としてありますが、現実問題としてとっつきにくさのハードルがあり、大体の人は「少し触ったことがあります」というレベルです。ですからGo言語自体を必須スキルとしては設定していません。それよりもWebの経験があるかどうか、その中でPHPやRailsなどの知見を積んできているかどうか、という点を採用基準にしています。 どういうことかと言うと、PHPのMVCがわかりやすいですね。MVCがあったときにファットコントローラが問題として挙げられることがよくありますが、採用時に「ファットコントローラになってしまったコードをあなたならどのように解消しますか?」と問いを投げます。回答によってどこまで知識をもっているかなど、いままでの経験を元にした設計を考えているのかがわかりますし、問題解決するための設計の発想は人それぞれですから、その部分を深く回答してくれる人はポジティブに検討します。
引用元:https://flxy.jp/article/3706
未経験、もしくは少し触ったことがある場合も採用されるのか?
未経験可能なGo案件ですと、FLEXYにて直近では以下の求人がありました。
引用元:https://flxy.jp/article/11573
PHPがメインですが、Goに携わりたい意欲のある方は、こういった案件からお勧めします。
FLEXY経由で、業務委託契約のGo言語の案件のご紹介を希望される方は、FLEXYに登録(案件のご紹介)よりご応募ください。
現在応募可能なGolang開発案件
ヘルスケア ✕ IT企業でのサーバサイド開発(Go)
ITを活用した医療および健康経営事業を行っている企業様です。 DX推進するシステム開発に携わることができます!
自社サービス電子漫画プラットフォームの開発支援(Go)
漫画好きのエンジニアにお勧めの業務委託案件。マンガアプリの開発に関わることができます!
FLEXY経由で、業務委託契約のGo言語の案件のご紹介を希望される方は、FLEXYに登録(案件のご紹介)よりご応募ください。
動物と人を繋げるマッチングアプリ開発支援(Go)
独学でGo言語を学んできた未経験の方にもお勧め。
動物好きな方にお勧めのGo言語開発案件、人気サービスに関わることができます!
FLEXY経由で、業務委託契約のGo言語の案件のご紹介を希望される方は、FLEXYに登録(案件のご紹介)よりご応募ください。