🫣

非エンジニア デザイナーの私が、Goで作られたツールを見て気づいたこと

に公開

はじめに

「プログラミングって、自分には関係ないのでは?」
これまでずっとそう思っていました。

Go言語についても、バックエンドのエンジニアが使うものというくらいの認識しかありませんでした。

ただ、実際に社内で使われているツールを見てみると、その印象が少し変わりました。


Goで作られていたものを見て感じたこと

フォルダを確認してみると、Goで作られたツールがいくつもありました。

内容はバラバラで、AIの使用量を管理するものもあれば、バーチャルオフィスの機能の一部、勤怠や会計に関わる処理、さらには音声生成のようなものまで含まれていました。

ここで少し面白いと感じたのは、やっていることの性質がかなり違うことでした。
正直なところ、「こんなところにも使われてるのか」というのが最初の感想でした。

AIの使用量を管理するものは数値を扱う処理です。一方で、バーチャルオフィスの機能はユーザーの状態を扱うものに見えました。勤怠や会計は正確さが求められる領域ですし、音声生成は外部サービスとの連携が前提になっています。

同時に、ひとつ疑問も浮かびました。
扱っているものも、求められている役割もバラバラ。それにも関わらず、全部Goで作られている。
Goって、そんなに何でもできる言語なのか?


見えてきた共通点

いくつか見ていくうちに、共通している部分があることに気づきました。

それは、どのツールも目立たない場所で動いているということです。

ユーザーが直接触る画面ではなく、その裏側でデータを処理したり、別のサービスとつないだりする役割を担っていました。

やっていることを分解すると、とてもシンプルでした。

データを取得して、少し加工して、別の場所に渡す。

たとえば、自分が見ていたツールのひとつをざっくり一般化するとこんな処理でした。

  1. 別サービスのAPIから利用ログを取得する
  2. ユーザーごとに集計する
  3. 結果をSlackに通知する

データを取って、整えて、どこかに送る」という、本当にこれだけです。他のツールも、扱っているデータが違うだけで、流れの形はほとんど同じでした。


Goを自分なりに分解してみた

ここまで見てきて、「Goって結局どういう役割なんだろう」と思ったので、自分なりに整理してみました。

イメージとしては、「データの流れをつくる役割」に近いのかなと感じています。
例えば今回見たツールも、やっていることは違って見えて、実は同じ流れの中にありました。

Goがやっていること(イメージ)

たとえば先ほどの例に当てはめると、
取得 : APIから利用ログを引っ張ってくる
加工 : ユーザー単位で集計したり、しきい値を超えた人を抽出したりする
受け渡し : 集計結果をSlackに通知する/DBに保存する

という3ステップに分解できます。
他のツールも、「APIをDBに置き換える」「Slackをメールに置き換える」といった違いはあれど、骨格は同じでした。

少し日常的な言い方をすると、「作業の中継役」みたいな存在に見えました。

人がやるとすると、

データを集める
整理する
別の場所に渡す

という地味な作業の繰り返しですが、それをずっと裏側でやってくれているイメージです。


印象が変わったポイント

最初は「何でもできるすごい言語」に見えていたGoですが、見方が少し変わりました。

実際には、

万能だから使われているのではなく、ちょうどいいから使われている
という方がしっくりきます。

複雑すぎず、シンプルに書けて、安定して動く。
その結果として、業務の裏側に置きやすいのだと感じました。


非エンジニアとしての気づき

今回一番大きかったのは、「言語」で考えなくなったことです。

これまでは、

Goはバックエンド

といったざっくりしたイメージで見ていました。でも実際は、何をさせたいかで選ばれている。その中でGoは、裏側の処理を任せるのにちょうどいい位置にあるように見えました。


少しだけ現実的になった話

もう一つの変化は、自分でもできるかもしれないと思えたことです。
見ていたツールの多くは、想像していたほど複雑ではありませんでした。

構造としてはシンプルで、やっていることは明確です。

そこにClaudeのようなAIがあると、非エンジニアでも触れそうな領域に一歩近づく感覚がありました。


おわりに

これまでプログラミングは遠い存在でしたが、実際のツールを見ることで少し現実的なものに変わりました。

これからも積極的に触っていこうと思います!
応援してくださると嬉しいです。

VeriCerts Tech Blog

Discussion