タグ

Goに関するjiroron666のブックマーク (15)

  • Goで世界一シンプルなCUIライブラリを作りました - Qiita

    こんにちは。今日もいいターミナル日和ですね。 今回はGo製の新たなCUIライブラリ goban を作ったので、その紹介と簡単な使い方を説明します。 (追記)罫線と文字幅について 日語環境では罫線が全角幅で表示されてしまい、綺麗に出力されない問題があります。その際は、以下の一行をMainの前に挿入してください。 runewidth.DefaultCondition = &runewidth.Condition{EastAsianWidth: false} ただし、これは ambiguous width に分類される文字すべてを半角幅で表示してしまうため、記号などを用いたときに別の問題が発生する場合があります。注意して使用してください。 今後、CJK環境では罫線を諦めてASCIIでボックスを表示する実装を入れる予定です。 CUIライブラリについて ターミナルで動くグラフィカルなアプリを作るた

    Goで世界一シンプルなCUIライブラリを作りました - Qiita
  • Nuxt.js(Vue.js)とGoでSPA + API(レイヤードアーキテクチャ)でチャットアプリを実装してみた - Qiita

    概要 Nuxt.js(Vue.js)とレイヤードアーキテクチャのお勉強のために簡単なチャットアプリを実装してみた。 SPA + APIと言った形になっている。 機能 機能はだいたい以下のような感じ。 ログイン機能 サインアップ機能 スレッド一覧表示機能 スレッド作成機能 ログインしたユーザーは誰でもスレッドを作成できること コメント一覧表示機能 スレッドをクリックすると、そのスレッド内のコメント一覧が表示されること スレッド内でのコメント作成機能 ログインしたユーザーは誰でもどのスレッド内でもコメントできること スレッド内でのコメント削除機能 自分のコメントのみ削除できること ログアウト機能 コード コード全体はここ コードは一例でもっと他の実装や良さそうな実装はありそう 技術 サーバーサイド DDDに出てくるレイヤードアーキテクチャをベースに以下の書籍や記事を参考にさせていただき実装し

    Nuxt.js(Vue.js)とGoでSPA + API(レイヤードアーキテクチャ)でチャットアプリを実装してみた - Qiita
  • GitHub - gcla/gowid: Compositional widgets for terminal user interfaces, written in Go, inspired by urwid.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

    GitHub - gcla/gowid: Compositional widgets for terminal user interfaces, written in Go, inspired by urwid.
  • [golang]goaを使ってAPIの設計・開発し、OpenAPIドキュメントを自動生成する

    golangAPIサーバーを開発したい!でも、何からやっていいかわからない。そんなときにはgoaがオススメだ。 goaの特徴 goaの最大の特徴はAPIデザインを書くとモック、クライアントツール、ドキュメントなどを自動生成できるところだ。 開発は以下のような手順になる。 DSLでAPIデザインを書く goagen(コードジェネレーター)で自動生成する クライアントのスケルトン テストコード CLIツール OpenAPI仕様のドキュメント APIを実装する ビルドして実行する このように人の手が入るのは「1.DLSでAPIデザインを書く」と「3.APIを実装する」だけだ。それ以外はgoagenというコードジェネレーターが自動的にやってくれる。 golang初心者の私でも、はじめて触ってから3時間くらいで動くAPIサーバーをつくることができた。 以下にgoaを使ってAPIサーバーを開発する手

    [golang]goaを使ってAPIの設計・開発し、OpenAPIドキュメントを自動生成する
    jiroron666
    jiroron666 2018/12/07
    webapi 自動生成
  • 「Go言語らしさ」とは何か? Simplicityの哲学を理解し、Go Wayに沿った開発を進めることの良さ - エンジニアHub|Webエンジニアのキャリアを考える!

    エンジニアHub > 記事一覧 > 「Go言語らしさ」とは何か? Simplicityの哲学を理解し、Go Wayに沿った開発を進めることの良さ 「Go言語らしさ」とは何か? Simplicityの哲学を理解し、Go Wayに沿った開発を進めることの良さ プログラミング言語には作者の設計思想が強く現れますが、Go言語もまた後発であることを生かし、しっかりとした思想に基づいて開発されています。公式のドキュメント等で語られているSimplicityの哲学を理解し、Go言語らしさ、Go Wayに従って開発する良さについて、はてなチーフエンジニアの松木雅幸(Songmu)さんが解説します。 id:Songmuと申します。はてな東京オフィスでチーフエンジニアを務め、Mackerelというサーバー監視のSaaS開発においてプロダクトマネージャーを担当しています。 筆者が勤めている株式会社はてなでは、2

    「Go言語らしさ」とは何か? Simplicityの哲学を理解し、Go Wayに沿った開発を進めることの良さ - エンジニアHub|Webエンジニアのキャリアを考える!
    jiroron666
    jiroron666 2018/12/03
    開発におけるスケーラビリティか…。盲点だった
  • [Go言語] もしも童話「シンデレラ」が、Goで書かれていたら。 - Qiita

    シンデレラがGoで書かれていたら。 という妄想です。 少し長いですがお付き合いください。 TL;DR ソースはここにおいてます https://github.com/lboavde1121/cinderella あらすじ 以下あらすじ。 シンデレラは、継母とその連れ子である姉たちに日々いじめられていた。 あるとき、城で舞踏会が開かれ、姉たちは着飾って出ていくが、シンデレラにはドレスがなかった。 舞踏会に行きたがるシンデレラを、不可思議な力(魔法使い、仙女、ネズミ、母親の形見の木、白鳩など)が助け、準備を整えるが、魔法は午前零時に解けるので帰ってくるようにと警告される。 シンデレラは、城で王子に見初められる。 零時の鐘の音に焦ったシンデレラは階段にを落としてしまう。 王子は、を手がかりにシンデレラを捜す。 姉2人も含め、シンデレラの落としたは、シンデレラ以外の誰にも合わなかった。 シン

    [Go言語] もしも童話「シンデレラ」が、Goで書かれていたら。 - Qiita
    jiroron666
    jiroron666 2018/11/21
    面白い
  • Big Sky :: 書評「Go言語による並行処理」

    O'Reilly Japan, Inc. 様に献頂きました。ありがとうございます。 そして献頂く際にお声を掛けて頂いた、書の翻訳を担当された ymotongpoo さんにもお礼を申し上げます。ありがとうございます。 書の訳は非常に素晴らしく、とても原文が英文であったとは思えないほど綺麗で、読んでいく中で「原文でどの様に表現されているんだろう」といった引っかかりも無く、とてもスムーズに読み進められました。 Go 言語に関わって随分と長くなってきました。初めて Go を知ってからユーザがどんどん増える様を見る事が出来るのは正直に言って非常に嬉しいです。 ふと Go の魅力は何かと聞かれたら幾つか挙げる事が出来ますが、間違いなく選ぶのが「非同期処理の簡単さ」です。これまで多くの開発者が OS スレッドで実現してきた非同期処理を、Go 言語は少ないイディオムとインテリジェントなランタイムを

    Big Sky :: 書評「Go言語による並行処理」
  • ゼロ値を使おう #golang

    Goの変数は必ず初期化される 組込み型のゼロ値 Goの変数は必ず初期化されることをご存知でしょうか? 例えば、int型の場合は0で、string型の場合は""で初期化されています。 次のように、代入せずにfmt.Printfで表示させてみましょう。 package main import "fmt" func main() { var n int var f float64 var s string var b bool fmt.Printf("%#v %#v %#v %#v", n, f, s, b) }

    ゼロ値を使おう #golang
    jiroron666
    jiroron666 2018/10/15
    zero値、普段あまり意識してなかったなぁ…
  • go generateでコードを自動生成する

    YourCast TECH BLOG

    go generateでコードを自動生成する
  • クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita

    はじめに クリーンアーキテクチャの書籍を読んだので、実際にクリーンアーキテクチャの考え方を採用したREST APIGO言語で実装してみた。 ↓↓↓↓ソースコード↓↓↓↓ https://github.com/yoshinorihisakawa/sample-api-hoop/tree/develop この記事ではクリーンアーキテクチャの説明というよりかは、実装ベースの実践的な内容にしている。 対象読者 ・クリーンアーキテクチャで実装されたソースコードを理解したい人 ・クリーンアーキテクチャの右下の図がよくわからない人 ・アーキテクチャについて勉強を始めた初心者 クリーンアーキテクチャとは? クリーンアーキテクチャとは、8th Light, Inc.のブログ記事で提案されている。 一言で言うと、依存関係をコントロールし持続可能なソフトウェアを実現するための体系的な手法である。 ※ DIやD

    クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita
  • Rust なのか Go なのか.. -

    ひとりごと。色々、漁ってると、こんな雰囲気。 並行処理で もっと高速に書きたい → Go シングルマシンで もっと高速に書きたい → Rust ◯ 用途 Rustと競合? - Goへの誤解について 似てるのは例外機構を捨てたこととバイナリがポータブルなことぐらい。得意な用途は全く異なります。... Go は非同期処理をシンプルに書きつつマルチコア性能を引き出すのが強みです。 Rust は徹底してオーバーヘッドを排除してシングルコアの限界性能を引き出せるのが強みです。... これらの強みが関係ない分野だけが競合しています(CLIツールなど)。 ◯ Go が採用された例 隠れマルコフモデルという統計機械翻訳のアルゴリズムを使ってC++で実装されていた機械翻訳エンジンを、 パフォーマンスを上げるために並列処理が得意なGo言語に書き換えるという仕事をいただきました。 サンフランシスコで創業したスタ

    Rust なのか Go なのか.. -
  • RailsコードをGoで書き直して、FFIを使ってRailsからGoの関数を実行させて実行時間を5%以下に短縮させた - Clueit Developersブログ

    こんにちは、Webチームの柴山(@shikeapp0909)です。 今回は、弊社Webアプリ「mamanoko」の一部に処理高速化のためにGoを導入したので、どのように導入したかをご紹介しようと思います。 Railsで開発しているWebアプリ内にどのようにGoを取り入れたのか、実際のコード例を交えながら解説していきたいと思います。 なぜRails環境にGoを導入したのか そもそもなぜGoを導入することになったのかと疑問に思われるかと思います。 mamanokoはメディアサービスのため、ライターさんに文章を書いていただいています。複数のライターさんがおり、文章量も膨大になるため、表記揺れや誤字がどうしても出てきてしまいます。 そのため、文章校正が必要であり、以前からその機能を提供していました。 しかしこの文章校正の機能は記事の文章に対して表記揺れなどチェックしたい単語を総なめする処理をしてい

    RailsコードをGoで書き直して、FFIを使ってRailsからGoの関数を実行させて実行時間を5%以下に短縮させた - Clueit Developersブログ
  • Go言語がWebAssemblyをサポートへ。GOARCHは「wasm」、GOOSは「js」に

    Googleが中心となってオープンソースで開発されているGo言語は、WindowsmacOSLinux、FreeBSD、iOS、Androidなど、さまざまなOSやCPUに対応したバイナリを生成できることが特長の1つとなっています。 そのGo言語のコンパイラが生成するバイナリにWebAssemblyが追加されました。WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットです。 WebAssemblyのサポートは昨年2月から検討がはじまり、先月末に最初のコードがコミットされた状態で、現在も開発が進んでいます。 GOの今後のバージョンアップで正式にWebAssemblyがサポートされる見通しです。 Go言語はサポートするOSやCPUの種類をそれぞれ「GOOS」と「GOARCH」の値で示しています。例えばWindowsGOOS値は「

    Go言語がWebAssemblyをサポートへ。GOARCHは「wasm」、GOOSは「js」に
  • GoでGUIアプリを作ろう

    GoGUI作る決定版! ほとんどのプラットフォームで動くGUIネイティブアプリを作れる qtパッケージの紹介。 GitHub: https://github.com/therecipe/qt クロスプラットフォームなGUIライブラリ GUIをクロスプラットフォーム対応するのはとても膨大なAPIをカバーするため 多くは限定的な機能提供にとどまるパターンがとても多いです。 その中でQtは20年以上の歴史を持ちかなり広範なプラットフォームをサポートした C++製のGUIフレームワークです。GUI機能そのものがフルスタックな上、 画像処理、ネットワークやオーディオ・ビデオなどのサポートも内包しています。 therecipe/qtはこのQtをGoから使えるようにラップしたパッケージです。 therecipe/qtがサポートするプラットフォームは以下 (家Qtはもう少し多い) Mac OS X(m

  • GoでVimを開いて編集内容をパースする方法 - Qiita

    動機 私の現在働いている会社では、GitLabを使用して開発を行っています。 その中でIssueやMRを作成するたびにWeb画面がもっさり表示され、来するべきである 書く。という作業にたどり着くまでに非常に多くのステップや時間が費やされることに不満を感じていました。 私は現在labコマンドというGitLabのCLIクライアントを作成しており、 上記不満を解消するため新規投稿コマンドを実行するとテキストエディタを開いてIssueやMR内容を記載し、 ファイルを保存することで、編集内容がそのままリクエストされるという機能を思いつきました。 要するにgit commitした瞬間に発動するアレです。 アレな動作の動画 日はGoでアレな機能を作る過程でできたマイクロコードを用いて、アレの実現方法をご紹介致します。 なおCLIで細々オプションを指定して書いていっても良いのですが、 改行が含まれたり

    GoでVimを開いて編集内容をパースする方法 - Qiita
  • 1