知っておきたい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言語は、シンプルで信頼性があり、無駄のない有能なソフトウェア開発を簡単に実現できるように設計されています。 やはり以下のような印象を持っているエンジニアが多いようです。

「軽量・高速・シンプル」 ・実行速度が速い 直接ネイティブコードに変換する為、コードの種類が限定的だから複数の処理を同時にこなせる・並列処理が得意 大量データの処理は並列処理が必要 PHPが苦手とする並列処理やエラーチェックが得意なことなどから、PHPに代わる言語として使用されるケースも増えている。 ・拡張性が高い

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にて直近では以下の求人がありました。

クラウドファンディングの企業様・新しい事に挑戦する方を応援してくれる企業様です! GOなど新しい言語に挑戦も可能です!(要相談)今後のキャリアも考えてくれます!案件NO.1 今伸びているクラウドファンディング サービスに携わるチャンス!PHP開発 【必須スキル】PHPでの開発経験 ・場所:渋谷エリア ・日数、勤務スタイル:週3-4日以上、リモート可能

引用元:https://flxy.jp/article/11573

PHPがメインですが、Goに携わりたい意欲のある方は、こういった案件からお勧めします。

FLEXY経由で、業務委託契約のGo言語の案件のご紹介を希望される方は、FLEXYに登録(案件のご紹介)よりご応募ください。

現在応募可能なGolang開発案件

ヘルスケア ✕ IT企業でのサーバサイド開発(Go)

案件NO.2 Healthcare ✕ IT企業でのサーバサイド開発(Go)<求める条件> ・3年以上のWEB開発 ・Go言語での開発がある方 ・GCPやAWSのクラウド環境でのシステム開発 ・to C向けサービスのリリース・運用・改善 ・Docker等のコンテナを使用した開発 ・自分が伝えたい事を相手に合わせて、言葉を噛み砕いて伝える事が出来る <希望条件> ・稼働頻度:週3〜5日 ・金額:4万円前後/日 ※希望金額をご提示頂いた上で、企業側と調整致します。 ・働き方:リモート+常駐 ※リモート頻度に関しては個別ご相談となります。 <歓迎条件> 下記ご経験のある方 ・PHPのプログラミングスキル ・マイクロサービスを意識したシステム設計と開発経験 ・Web API(REST、GraphQL)、RPC(gRPC、Thrift)のバージョニングを意識したインターフェース設計 ・Key-valueデータベースを使用したシステム開発 ・memcached等のキャッシュを意識したシステム設計 ・テスト駆動開発経験 ・CI/CD環境の構築経験

ITを活用した医療および健康経営事業を行っている企業様です。 DX推進するシステム開発に携わることができます!

自社サービス電子漫画プラットフォームの開発支援(Go)

漫画好きのエンジニアにお勧めの業務委託案件。マンガアプリの開発に関わることができます!

案件NO.2、自社サービス電子漫画プラットフォームの開発支援(Go) <求める条件> ・Goでの実務開発経験 ・Perlでの開発経験 <歓迎条件> ・TypeScript、Angular.js、Vue.js, Nuxt.jsを使用した開発経験 ・エンジニア、非エンジニアの垣根を越えたコミュニケーションと開発経験 ・漫画が好き <希望条件> ・稼働頻度:週2〜5日 ・金額:3.5〜4万円前後/日 ・働き方:フルリモート

FLEXY経由で、業務委託契約のGo言語の案件のご紹介を希望される方は、FLEXYに登録(案件のご紹介)よりご応募ください。

動物と人を繋げるマッチングアプリ開発支援(Go)

独学でGo言語を学んできた未経験の方にもお勧め。

案件No.3 動物と人をマッチングするサービスでGo言語案件 <求める条件> ・Goでの開発経験 ※独学でのご経験も可能です。 <希望条件> ・稼働頻度:週3〜5日 ・金額:3.5万円/日 ・働き方:フルリモート <歓迎条件> ・Docker環境での開発経験 ・動物が好き

動物好きな方にお勧めのGo言語開発案件、人気サービスに関わることができます!

FLEXY経由で、業務委託契約のGo言語の案件のご紹介を希望される方は、FLEXYに登録(案件のご紹介)よりご応募ください。

【個人側】FLEXYにまず登録 FLEXYに登録(案件のご紹介)

FLEXYとはABOUT FLEXY

『FLEXY』はエンジニア・デザイナー・CTO・技術顧問を中心に
週2-3日 x 自社プロダクト案件を紹介するサービスです