1. HOME
  2. ブログ
  3. IT技術
  4. 【最終回】Go言語(Golang)入門~Twitterアプリ作成完了編~

【最終回】Go言語(Golang)入門~Twitterアプリ作成完了編~

Go言語(Golang)入門~最終回~

笹川笹川先生

(株)ライトコードの笹川(ささがわ)です!

引き続き、ツイートを猫語に変換する「にゃイッター」作っていきます!

簡単なTwitterアプリです。

詳しくは、前回の記事をご覧ください。

それでは、早速進めていきます!

前回の記事はこちら

猫語変換処理を実装

POSTで受け取った値を置換する処理で、「猫語変換」をします。

ReplaceAllを使うと一括置換が出来ます。

今回は、文字列 map の Key を、Value に変換するように実装します。

なぜ、文字列 map で管理するかと言うと、Go言語(Golang)が分からない人でも、どのように変換されるか解るようにしたかったからです。

簡単な仕組みのアプリですので、気軽にPR(プルリクエスト)や issue(イシュー)を作るなど、笹川以外の人にも開発してもらえたら面白いなと思っているので、このようにしております。

変換処理と対称

変換処理は、こんな感じですね!

ちなみに変換対象は、こんな感じにしてます。(2019/11/21 現在)

一部おかしい変換があるのは、Twitter上で案を出してもらったりしたのを、そのまま採用したからです(笑)

140文字制限の対応

あと、Twitterには投稿する際に140文字の制限がありますので、そちらも忘れずに対応します。

日本語はマルチバイトなので、 len(target) では正しく取れませんので注意してください。

文末が 「にゃ」 で終わっていたら 「にゃん」 になるようにします。

最後にハッシュタグを付けます。

全体

全体としては、こんな感じになります。

echoインスタンス側への実装に、下記を追加したら完了です。

これで、下記のようにリクエストをすると、変換された文字列が返却されます。

おそらくレスポンスは、下記の感じになったはずです。

これで、猫語変換の実装は完了です!

Go言語(Golang)側の実装は、残すところ後「1つ」です。

HTMLテンプレートの実装

実際のUIの部分は、HTMLCSS(Bootstrap)JS で構築します。

echoの設定

Go言語(Golang)側の実装は、echo の設定をまず行います。

今までの実装の部分も載っていますが、大事なのはここの部分です。

CSS と JS を読み込むための設定と、ヘッダー画像として使っている画像の絶対パスをここで設定しています

この設定を忘れると、HTMLファイル上では問題なく表示できるのに、Go言語(Golang)上では表示が崩れてしまいます。

HTMLのルーティング

HTMLのルーティングは、下記のように実装してます。

それぞれのルートで、それぞれの HTML を読み込むだけです。

これでGo言語(Golang)側の実装は、ほとんど終わりになります。

HTML(フロント)側の実装

今回は、Go言語(Golang)の記事なので、HTML側の実装の詳細は割愛させていただきます。

基本的な流れ

【1】
index.htmlでTwitterログイン機能がある ./auth へアクセスさせるようなボタンを用意します。

【2】
Twitterログインが完了したら ./callbackへ戻ってきますので、そのままtweet.htmlを表示します。

【3】
tweet.htmlでは、textareaで入力してもらった値を、Ajaxで ./replace に対してリクエストして、戻ってきた値をもう一つのプレビュー用の textara に表示します。

【4】
入力後にツイートする用のボタンをタップするとツイートされ、ボタンの下にツイートのリンクが表示されます。

にゃイッター完成!

そして、完成したアプリはこちらになります。

にゃイッターのソースは、以下のリポジトリで確認してください。

【リポジトリ】
https://github.com/noriyuki-sasagawa/nyaitter

連載を振り返ってみて

Go言語(Golnag)入門として、様々な実装を試してきましたが、いかがでしたでしょうか?

この15回の合間に笹川の個人アプリのAPIも全て、JavaからGo言語(Golang)へのリプレースが完了しました。

もう、すっかりGo言語(Golang)の人となってしまいました(笑)

笹川の感想としては、書きやすさや環境構築の手間などを考えれば、今後のAPI開発もGo言語(Golang)を続けていきたいなぁと思っています。

あと、注意していただきたいのは、他の言語でも同じようなことは十二分にできます。

そのため、絶対的にGo言語(Golang)が優れているわけではないという事です。

ご自身の技術力やチームやプロダクトの状態を考慮し、適切な技術選定をしていただくのが大前提です。

この入門記事は、Go言語(Golang)の習得を始めてみたり、困ったときに読んでいただければ幸いです。

皆様のお力になれれば、そんな嬉しいことはございません…!

長い間、お付き合いいただきありがとうございました!!

また、別の記事でお会いしましょう!

過去の記事で取り扱ったサンプル実装について

なお、過去の記事で取り扱ったサンプル実装は、全て以下のリポジトリにて管理しています。

【リポジトリ】
https://github.com/noriyuki-sasagawa/go_example/

関連記事

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

書いた人はこんな人

笹川 (社員)
笹川 (社員)
新潟生まれ新潟育ち本業はモバイルアプリエンジニア。
日々、猫(犬)エンジニアとして活躍中!

関連記事