並び順

ブックマーク数

期間指定

  • から
  • まで

401 - 440 件 / 2512件

新着順 人気順

goの検索結果401 - 440 件 / 2512件

  • Goでジョブキューを実装した - オープンソースこねこね

    HQというGoで実装したジョブキューを公開しました。 github.com WebのUIもあります。 概要 以下の特徴があります。 Goによる実装で、シングルバイナリ。 スタンドアロンのHTTP APIサーバー。ジョブのデータベースも組み込みであるため、別途特別な依存を必要としないで動作する。 シンプルでプログラミング言語非依存。HTTP APIでジョブを投入し、ジョブはHTTP POSTメッセージをワーカーアプリケーション(Webアプリ)に送信するというアーキテクチャ。 フロントエンドとしてCLIとWebUIを組み込みでサポート。 上記のリポジトリのREADMEにも載せてありますが、ざっくりジョブのフローを図解すると、以下のようなアーキテクチャになっています。 HTTP APIでジョブ(JSON)を投入します。HQはジョブを取り出し、ジョブに記載されたURLにHTTP POSTして、別途

      Goでジョブキューを実装した - オープンソースこねこね
    • とってもやさしいGo言語入門

      フロントエンド用語を100秒で解説するチャンネルを作りました! よかったらチェックしてみてください! はじめに この記事は、Go言語を学び始めたばかりの人や、チュートリアルを読んで途中で挫折してしまったという人に向けて、Go言語の基礎的な文法を解説した記事です。といっても全てをカバーするのは大変だと思ったので、私自身が A Tour of Go を読んで難しいと感じた点をいくつかピックアップして書きました。今回の記事では、ポインタ・構造体・メソッド・インターフェースについて解説していこうと思います。 ポインタ A Tour of Go では、ポインタについて次のような説明をしています。 Go has pointers. A pointer holds the memory address of a value. (訳) Goはポインタを扱います。 ポインタは値のメモリアドレスを指します。

        とってもやさしいGo言語入門
      • Big Sky :: WSL2 でクリップボード使いたい。

        WSL2 がリリースされ Windows 10 Home Edition でも使える様になったので色々遊んでるのだけど、Windows 側とテキストを交換したい時に面倒で、クリップボードを共有する方法を模索した。 最悪 /dev/clipboard を実装するまで考えたけど、面倒過ぎたし exe の実行厳しい(何か常駐させてユーザランドから起動する為にサーバがいる)だろうから別の方法を考えた。WSL2 は binfmt (たぶん違うけど良く似た奴だろう) で Windows の exe が起動できるので、コマンド経由で stdin/stdout を read/write できる物を起動する方法を考えた。 で自分で書くかと Windows Terminal 起動した時点で「Windows Terminal からコピペできるやん、いらなくね?」となり、本来の目的を忘れかけていたので、おとなしく

          Big Sky :: WSL2 でクリップボード使いたい。
        • Goのテストに使える手作りモックパターン - Money Forward Developers Blog

          こんにちは。 京都開発拠点でGoエンジニアをしています @yoskeoka です。 Goを中心技術として性能改善やプロダクト間を横断するような機能の設計、実装を行うKTAチーム (京都開発本部 テクニカルアーキテクトチーム) 所属です。 突然ですが、皆さんはGoでテストを書いているでしょうか。 我々はテストを書くことが中長期的なスピードアップに繋がると信じて日々テストを書くようにしています。 KTAではGoの実装をする際にClean Architectureの考えに基づいたpackage分けを行っていますが、packageを分けたり、インターフェースを定義したりとしていくと、テストを書くのが難しい部分というのが出てきます。 そんな場合に使えるモック作りテクニックを今回は紹介したいと思います。 Clean Architectureはテストしやすくなると言うが Clean Architectu

            Goのテストに使える手作りモックパターン - Money Forward Developers Blog
          • DDDを実践するためのリポジトリ層の設計(Go言語による例)

            The Go gopher was designed by Renée French. Illustrations by tottie. はじめに この記事は、ドメイン駆動設計(DDD)の中核概念である「リポジトリ」についての理解を深めることを目的としています。リポジトリの基本的な役割と重要性を確認し、Go言語での実装の例を紹介します。 前提 リレーショナルデータベースからデータを取得(更新)するアプリケーションを想定しています サンプルコードは Go 言語で書かれています リポジトリとは まずは、リポジトリの定義を確認してみましょう。 リポジトリパターンとは: リポジトリは、データベースから取得したデータを構造体にマッピングし、ドメインオブジェクトにアクセスするためのインターフェースを提供します。 これは、一般的なリポジトリの理解と相違ないですね。次に DDDの文脈で、より詳しい定義をみ

              DDDを実践するためのリポジトリ層の設計(Go言語による例)
            • VS Codeのコンテナ拡張機能でGolang勉強環境を構築してみた

              ◆初めに Visual Studio Code Remote – Containersという拡張機能を使って、前から気になってたGo言語の勉強用環境を構築しました。 ◆やってみる 使うものをダウンロードしていきましょう。 ・Visual Studio Code https://azure.microsoft.com/ja-jp/products/visual-studio-code/ ・Visual Studio Code Remote – Containers https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack ・docker https://www.docker.com/ VS Codeでフォルダーを開いて、F1 や Ctrl + Shift +

                VS Codeのコンテナ拡張機能でGolang勉強環境を構築してみた
              • 誰でも囲碁の試合が楽しく観戦できるようになるカリキュラム

                つらつらと書いているが棋士と評価値観るだけなら1-7を飛ばして8からだけでOK。 1. ルールを覚える無料やさしい囲碁入門でルールを覚える https://yasashiigo.com/ 有料囲碁入門書籍を買って読む 2. とりあえずコンピューターと打ってみるぷよ碁(純碁ルール) https://puyogo.app/?size=7 囲碁道場(勝つ度にAIがレベルアップ、純碁ルール) https://www.simplego.net/ Go-Up(レベル選択あり。ガチャや称号などのコレクション要素があってソシャゲ好きに最適) https://go-up.online/ 碁色(危ない石は△、もうほぼ死んでる石は☓が表示されるので、初心者でも非常にわかりやすい) https://goiro.net/ 弱さぷよ碁>>>道場=Go-UP 3. 入門者から初心者へステップアップ囲碁道場やGO-UPで

                  誰でも囲碁の試合が楽しく観戦できるようになるカリキュラム
                • 無理なく始めるGoでのユニットテスト並行化 - カンムテックブログ

                  KanmuでPoolを開発しているhataです。最近、ロボット掃除機を買いました。ロボと猫がじゃれている景色はいいですね。 今回はGoのユニットテストの並行化についての記事です。 TL;DR Goのテストは、並行化することでテスト実行時間の短縮やテスト対象の脆弱性の発見などのメリットがある 基本的にはそのままでも最適化されているが、テストコードにt.parallelを記述することでよりきめ細やかな最適化を施すことができる ただし、一定規模以上のアプリケーションへの導入・運用は大変 テストコードを一気に並行化するtparagenというツールや、並行化忘れを防ぐ静的解析ツールがあり、これらを使うことで無理なくテスト並行化の導入・運用ができる はじめに ユニットテスト並行化とは 本記事では、「並行」「並列」という用語を使用します。本記事におけるこれらの用語を定義します。 並行:複数の処理を独立に

                    無理なく始めるGoでのユニットテスト並行化 - カンムテックブログ
                  • Linux用キーリマッパーxremapをRustで書き直した - k0kubun's blog

                    このエントリはRust Advent Calendar (3) 22(-10)日目 の記事です。 5年前にxremapというLinux向けのキーリマッパーを作った (Linux向けの最強のキーリマッパーを作った - k0kubun's blog) のだが、X11のレイヤーで実装したため、GNOMEのActivitiesでリマップが効かなかったり、WaylandではXWayland内でしか動かないといった問題があった。 これらの問題を解決すべく、xkeysnailやwayremapといったツールが後に作られたのだが、xkeysnailはWaylandで動かずwayremapはX11で動かない方針なのと、やはり全てのキー入力を中継するようなツールはPythonのような遅い言語よりRustみたいな速い言語で書かれるべきだと思ったので、後発のツール*1の良いところ取りをしながら今回xremapを作

                      Linux用キーリマッパーxremapをRustで書き直した - k0kubun's blog
                    • プロダクトにNext.jsとGoを採用した理由と背景 - ANDPAD Tech Blog

                      はじめに こんにちは!エンジニアの柿森です。新規プロジェクトを担当しております。 ANDPADではマイクロサービス開発を推進しており、新規プロジェクトは個別に技術選定を行い、既存システムとAPI経由で連携します。 また、マイクロサービス基盤はk8sで構築されており、死活監視やログ収集もよしなにやってくれる環境が整っております。 新規プロジェクトを立ち上げで、k8s上に乗せることを前提に技術選定を行いました。 技術選定を行うにあたって検討したポイントと、採用した技術について話していきたいと思います。(あくまで筆者個人の考えです。) 採用した技術スタックの概要 フロントエンドはBlitz-jsを参考にNext.jsを採用。 バックエンドはGo + gRPCを採用。 技術選定の方針 大きな方針としては一般的な考えを踏襲しています。 ドキュメントがしっかりしており、GitHubのStarがそれなり

                        プロダクトにNext.jsとGoを採用した理由と背景 - ANDPAD Tech Blog
                      • Rustが遅すぎる?プロファイリングで性能向上!

                        「開発プロセスにプロファイリングを組み込むのはどうだろう?」 ミーティングで、プロファイリングの重要性を発言するだけで、みんながあなたの深い知見、意識の高さに驚くことでしょう。もちろん、あなたは、プロファイリングのやり方を知っている必要はありません。開発の終盤に、性能目標が達成されず、解析が実施される頃には、誰もあなたの発言は覚えていません。しかし、万が一、あなたの意見が採用されても困らないように、この記事を参考にしてください。 Goは、CPU、メモリ、block、mutexなど、使いこなせないほどの種類をサポートするプロファイリングツールpprofを標準機能として提供します。一方、Rustは、そんな機能を提供しません。Rustへの愛が揺らぐかもしれませんが、Rustへの愛は、見返りを求めない純愛です。愛の見返りに何かが与えられると期待してはいけません。 Rustでもpprofあなたは、す

                          Rustが遅すぎる?プロファイリングで性能向上!
                        • OSS活動を細く長く続ける技術

                          Profile id: Songmu (ソンムー) Masayuki Matsuki / 松木雅幸 Nature 株式会社 取締役CTO おそらくはそれさえも平凡な日々 http://www.songmu.jp/riji/ https://metacpan.org/author/SONGMU 好きな言語は、PerlとGoと中国語 3 Times ISUCON Winner Using Perl 入門監視 付録C 執筆 「みんなのGo言語」共著者 【宣伝】Nature Remo 赤外線リモコン代替となるIoTスマートリモコン https://nature.global エンジニアも絶賛募集中です 同時接続20万台を超えるIoTサービスの裏側を一緒に開発しませんか! https://nature.global/jp/careers アジェンダ 最近のOSS活動 私とOSS OSSの原体験 業務

                          • 日本の祝日データの更新とファイル名の話 - ケンオールブログ

                            日本の祝日APIを2023年版に更新しました。 内閣府は毎年国民の祝日についてのCSVデータを公開しています。 このデータを使いたい人は年に1回ダウンロードすればいいだけなのですが、今回は少し事情が違います。 ファイル名が違う 昨年までのCSVファイルは以下のURLからダウンロードできました。 https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv 今年は以下のURLからダウンロードできます。 https://www8.cao.go.jp/chosei/shukujitsu/shukujitsu.csv ファイル名の二文字目がyからhに変わっています。 (2023/02/03 追記) 内閣府のページが更新され、元のファイル名syukujitsu.csvが使えるようになりました…が、なんと新しい方のファイルshukujitsu.csvは

                              日本の祝日データの更新とファイル名の話 - ケンオールブログ
                            • Go プログラミング言語仕様

                              Go プログラミング言語仕様 本文書は,The Go Programming Language Specification version 2021/02/10 のなんちゃって日本語訳である. 原文ソース:https://github.com/golang/go/blob/master/doc/go_spec.html 訳文ソース:https://github.com/hiwane/gospec-ja.誤訳・誤字脱字などは issue かプルリクで https://hiwane.github.io/gospec-ja/ 訳注 valid/invalid は有効/無効, legal/illegal は正当/不当と訳す. letter と character を区別するため,letter は英字,character は文字と訳す. signed/unsigned 符号付き,符号なし sourc

                              • Goコンパイラのお勉強(1) ~ゼロ幅の型によるメモリ利用の最適化と未定義動作 ~ - Techtouch Developers Blog

                                はじめに メモリアロケーションの回避 ゼロ幅の型(=ゼロサイズの型)とは アドレスの同一性に関する未定義動作 この最適化が有効な場面 1. map 2. chan 3. interface の実装 おわりに 参考文献 はじめに こんにちは。SRE の izzii です。 最近は某フィットネスゲームが習慣だったり、ボルダリングを再開したり、登山シーズンが到来したりと心身ともに調子が良いです。 さてつい先日、Go のコンパイラによる最適化について勉強したまとめを社内で共有したところ、メンバーが面白がってくれたため、細かいところを自分の手で触ってみたり、Go Forum で質問を投稿したりした上で記事にしてみました。Go コンパイラの最適化について知りたいという方だけでなく、Go に慣れた方でも意外と知らない挙動を垣間見ることのできる内容かと思います。 github.com を元にしているのです

                                  Goコンパイラのお勉強(1) ~ゼロ幅の型によるメモリ利用の最適化と未定義動作 ~ - Techtouch Developers Blog
                                • Go 製 CLI にプラグイン機構を作る方法n選

                                  package main import "plugin" func main() { p, err := plugin.Open("plugin.so") // error handling f, err := p.Lookup("F") // error handling f.(func())() // prints "Hello, world" } この標準の plugin パッケージについて、先程あげた評価項目がどうかを考えてみます。 User Experience : いまいち プラグインをインストールの仕組みを考えないと難しそう 利用者は、ツール側が規定したルールに従って.soを配置する必要があるというのがポイント ありそうな仕組み ツールにプラグインの URL を渡すとダウンロードして適切な場所に配置してくれる プラグインのレジストリを提供する プラグインがいい感じにインストー

                                    Go 製 CLI にプラグイン機構を作る方法n選
                                  • 人生を豊かにする文字列diff入門 | フューチャー技術ブログ

                                    春の入門祭りの8日目です。 文字列の新旧の違いを表現する時によくdiffをとるとか言いますよね。そこで実行されるのが差分アルゴリズムです。差分のアルゴリズムって結構知れば知るほど難しいやつです。「より良い差分」という基準が、状況によって変わるからです。ヒューリスティックなやつです。例えば、HTMLの説明の文章を書いていたとします。タイトルをテーブルに書き換えてみたとします。 どちらも間違ってはおらず、この差分を元にパッチを当てたりも可能です。ただ、読んだ時の読みやすさが違います。 これはもちろん前者と答える人の方が多いでしょう。だって、タグという意味の塊が維持されていますからね。 これは究極的にはわかりやすいdiffというのは「意味」を理解しないと作れないということを意味します。これがdiffは簡単なようで難しいと書いた理由です。もちろん、ほどほどの工数で、ほどほどの見た目のdiffも作成

                                      人生を豊かにする文字列diff入門 | フューチャー技術ブログ
                                    • gRPC Streaming によるスケーラブルな常時接続型 API の構築

                                      常時接続型 API を構築するとき、 Go + gRPC Streaming はパフォーマンスに優れる有力な選択肢となります。しかしながら常時接続ゆえ、通常通信時間が短時間で終了する Web API とは異なる注意点があります。そこで本セッションでは、gRPC Streaming の紹介にはじまり、注意点やハマりポイントをご紹介します。また、GKE 上でオートスケールするオートモーティブ移動体情報配信システムを構築した事例をご紹介します。

                                        gRPC Streaming によるスケーラブルな常時接続型 API の構築
                                      • GoでオススメのWebフレームワークを聞かれたら

                                        なぜWebフレームワークが必要とするのか Webフレームワークを使った開発が当たり前であるプログラミング言語はたくさんあります。GoはどちらかというとWebフレームワークはいらないんじゃない?と言われることが多く、そう言われると初学者はいきなり難しいことをさせるなと思うかもしれません。 確かにフレームワークがあることでWebアプリが作りやすくなることがあるかもしれません。テンプレート通りに作れば作りたいものができるという体験はプログラミング言語を学び始めたばかりであれば重要です。フレームワークの枠に収まる開発であれば効果を発揮します。 しかし、「GoでオススメのWebフレームワークはありますか?」って聞かれる場合の多くは、Webアプリはフレームワークがないと開発できない、またはそうするのが当然だと思って質問している場合も多く見かけます。○○env系のツールと同様に、特に理由は無いけどそうい

                                          GoでオススメのWebフレームワークを聞かれたら
                                        • 接続が途切れないストリーミングサーバの無停止アップデートを実装してみました - Mirrativ Tech Blog

                                          こんにちは ハタです。 最近 SO_REUSEADDR / SO_REUSEPORT を使ったストリーミング配信サーバの無停止アップデート(Hot Deploy)を実装してみたので紹介したいなと思います ことの経緯 HTTPサーバによる Hot Deploy の仕組み ストリーミング配信サーバへの応用 SO_REUSEADDR/SO_REUSEPORT を使った実装例 Hot Deploy の組み込み Hot Deploy 実装時に気をつけたこと その後 We are hiring! ことの経緯 ミラティブでは以前から何度か紹介したとおり自前の配信基盤設備を持っています。 配信基盤のミドルウェアも内製であり、機能追加やライブラリの更新などがあるたびにミドルウェアのバージョンアップ作業(メンテナンス)も自社で実施しています ストリーミング配信サーバといっても、何か特別な事はなく一般的なHTT

                                            接続が途切れないストリーミングサーバの無停止アップデートを実装してみました - Mirrativ Tech Blog
                                          • API設計が楽でコア業務に集中できるように。GraphQLで開発がどう変わったか?タクシーアプリGOの中の人に聞きました【技術選定の裏側:GraphQL編 vol.1】 | IT/Webエンジニアの転職・求人サイトFindy – GitHubからスキル偏差値を算出

                                            ハイクラスエンジニア向け転職・求人サイト。自社開発のWeb企業の求人多数!GitHub登録をすると、IT/Web企業とマッチングします。ユーザーサクセス (キャリア)面談も実施。

                                              API設計が楽でコア業務に集中できるように。GraphQLで開発がどう変わったか?タクシーアプリGOの中の人に聞きました【技術選定の裏側:GraphQL編 vol.1】 | IT/Webエンジニアの転職・求人サイトFindy – GitHubからスキル偏差値を算出
                                            • Why Twitter Didn’t Go Down: From a Real Twitter SRE

                                              Twitter supposedly lost around 80% of its work force. What ever the real number is, there are whole teams with out engineers on it now. Yet, the website goes on and the tweets keep coming. This left a lot wondering what exactly was going on with all those engineers and made it seem like it was all just bloat. I’d like to explain my little corner of Twitter (though it wasn’t so little) and some of

                                                Why Twitter Didn’t Go Down: From a Real Twitter SRE
                                              • GOPATH に(可能な限り)依存しない Go 開発環境(Go 1.15 版)

                                                2018 年ごろまでの Go に対する不満として以下のようなものがありました。 $GOPATH/src 配下でしか開発できない これは、import された package の探索先として $GOPATH/src が使用されていたことに起因します。 つまりどこかから呼び出される package を書きたい場合は $GOPATH/src 配下に存在しなければ探索できない、そのため実質 $GOPATH/src 配下でしか開発できないということでした。 しかし 2018 年末にリリースされた Go 1.11 によりこの不満は解決されることとなります。 Go 1.11 で導入された Go modules という新たな仕組みを有効にしておくと package 探索先として $GOPATH/src が使わなくなったのです。 その代わりに例えば github.com/go-sql-driver/mysq

                                                  GOPATH に(可能な限り)依存しない Go 開発環境(Go 1.15 版)
                                                • メルカリに入社して5年が経って北海道に移住しました - tenntenn.dev

                                                  5年が経ちました 2016年9月1日にメルカリ(ソウゾウ)に入社して、5年が経ちました。 あ。。。Go年が経ちました。 現在の所属はメルペイのエキスパートチームです。入社して2回マネージャが変わりましたが、チーム自体は同じです。メルカリグループにいて、ずっと同じチームなのはかなり稀有な存在じゃないかと思います。 最近やってることは最近Merpay Tech Festでお話したとおり、相変わらずGoコミュニティでワイワイする仕事をしています。Go Conference 2021 Autumnも楽しみですね。そういえば、Google Developers Expert (Go)としても活動しています。 Gopher道場も自習室という取り組みも行っており、Slackの参加者も2000名を超えました。最近は昇段審査という取り組みも行っており、Goで仕事をする人が増えるといいなと思って活動しています

                                                  • goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる - エムスリーテックブログ

                                                    【Unit4 ブログリレー6日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 最近まで開発していたm3ラウンジでは、goからRDBを利用していました。 m3ラウンジでは、SQLの組みやすさやテストのしやすさの観点で検討した結果、goquを採用しましたので、 そこで得られた知見とその実装例を紹介します。 これから試してみる方(と将来m3ラウンジの開発に新たに入ることになったメンバー)の参考になるように、サンプルコードも説明も多くなってしまいかなり長いです。 お時間ある時にお読みいただければ。 名古屋城は、日本の城のひとつ。尾張国愛知郡名古屋(現在の愛知県名古屋市中区本丸・北区名城)にある。本文には特に関係ありません。 m3ラウンジ goqu 実例 modelの構造体 mapper mapperの実装 goquのSQLの結果から構造体へのマッピング

                                                      goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる - エムスリーテックブログ
                                                    • Goのリリースプロセスとブランチ戦略 - YAMAGUCHI::weblog

                                                      はじめに こんにちは!Google Cloudでオブザーバビリティの担当をしているものです。CVE-2021-44228のおかげでバタバタしていますがみなさんはお元気ですか? このエントリーはpyspa Advent Calendar 2021の15日目の記事です。昨日は @moriyoshit さんの「Goのロギングライブラリ 2021年冬」でした。めちゃめちゃ調べてあって良い記事でした。Goでログライブラリの選定をする際にはこちらをまず読むと良さそうです。 2021.12.21 追記: 穴が空いていたのでGo Advent Calendar 2021 その1の14日目の記事にもしました。 さて、今日は本当は「Goならわかる確定申告第三表」という記事を書こうと思ったのですが、まだ確定申告の時期ではないのでそれは辞めにします。そのかわり、今日はGo 1.18がめでたくベータ版リリースとなっ

                                                        Goのリリースプロセスとブランチ戦略 - YAMAGUCHI::weblog
                                                      • I'm porting tsc to Go

                                                        I’m porting the TypeScript Type Checker tsc to Go, and not Rust. As the creator of SWC, an extensible Rust platform, this might sound strange. Let me explain. Why port tsc?# As TypeScript continues to rise in adoption, large projects are facing a dilemma: type checking is one of the slowest parts of their workflow. Developers want type safety without the tradeoff of slower iteration cycles. The Ty

                                                          I'm porting tsc to Go
                                                        • Goの標準ライブラリのコードリーディングのすすめ | フューチャー技術ブログ

                                                          パッケージの選定そもそも、どのパッケージを読んだらいいんだろう?という疑問があると思います。上記のパッケージを選定した方法を紹介したいと思います。 読むパッケージの選定は有志のメンバ数名で一緒に決めました。 まずパッケージのステップ数を見てスクリーニングしています。gocloc というツールを使うと以下のフォーマットで簡単にステップ数を確認することができます。 $ gocloc archive ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- Go 21 7

                                                            Goの標準ライブラリのコードリーディングのすすめ | フューチャー技術ブログ
                                                          • TypeScriptやGoやRustでWebAssemblyウォークスルー - SMARTCAMP Engineer Blog

                                                            みなさん、WebAssembly聞いたことありますよね? スマートキャンプでエンジニアをしている瀧川です。 私が初めてWebAssemblyを目にしたのは確か2018年、VimをWebAssemblyに移植してブラウザで動くようにしたという記事だったかなと思います。 https://github.com/rhysd/vim.wasm 当時は「はー、なんだか未来を感じるけど、どう使われてくんだろう」くらいな認識で、最近までほとんど注目していませんでした。 しかし、少し前にffmpeg.wasmについての記事がバズっているのを見かけたときビビっときましたね。 ブラウザ上でffmpegが動かせるのはWebアプリケーションを作る上で可能性が広がりますし、何よりWebAssemblyのポテンシャルが活かされていると感じました。 そこで今回、WebAssemblyの世界観を味わうために、代表的なWeb

                                                              TypeScriptやGoやRustでWebAssemblyウォークスルー - SMARTCAMP Engineer Blog
                                                            • Big Sky :: Go 言語プログラミングエッセンスという本を書きました。

                                                              2023/3/12 発売です。 Go言語プログラミングエッセンス エンジニア選書 mattn 技術評論社 Kindle版 / ¥3,450 (2023年03月09日) 発送可能時間: Go が発表された当初から Go を見続けて来たので ずいぶん時間が経った気がします。僕なりにいろいろな活動をして来ました。Go 本体や周辺ツールへのコントリビュート、イベント登壇、雑誌への記事の投稿や「みんなのGo言語」の共著など。 あらゆる活動が Go づくめで刺激的でした。Go で得たものも沢山あります。そして Go を使う人も想像していた以上に沢山増えました。Go に関して書かれたブログ、Go の求人、今では大学で Go を教えているところもあるくらいです。Go を知った事で僕のプログラミング人生はずいぶん変わりました。それまでは何を作るにしてもC言語をメイン言語として使ってきましたが、今や新しいアプ

                                                                Big Sky :: Go 言語プログラミングエッセンスという本を書きました。
                                                              • OpenCV, GoCV, Go言語における画像処理のパフォーマンスの比較 - ZOZO TECH BLOG

                                                                Gopher's design for Ryuta Tezuka(@Tzone99) こんにちは、ZOZOテクノロジーズ開発部の池田(@ikeponsu)です。 本記事では、 Go言語における画像処理の可能性を、ベンチマークを通して探ってみたいと思います。 はじめに 業務内でGo言語での画像処理を行う機会があり、Goの標準パッケージやGoCVについて調べていました。 ただ、画像処理に関する記述はまだまだ少なく、実装している人自体も少ないのかなという印象でした。 今回行った「Go言語での画像処理の速度はどの程度か」のベンチマークが、これからGo言語で画像処理の実装を行おうとしている方の参考になればと思います。 ベンチマークの内容 比較対象 C++のOpenCV内のバイリニア補間 GoCV内のバイリニア補間 Go言語とimageパッケージを使って実装したバイリニア補間 処理内容 画像入出力 バ

                                                                  OpenCV, GoCV, Go言語における画像処理のパフォーマンスの比較 - ZOZO TECH BLOG
                                                                • GoCLIツール職人のためのRust入門

                                                                  三連休中にこんなツールを作った。 普段はGoでCLIツールを書いているけど、このツールで初めてRustを本格的に使ったのでその際に得た知見を元にGoでCLIを作っている人向けにとりあえずRustでツールが作れる状態になれることを目指して、CLIツールを作るときによく使っている処理やRustならではの構文などを中心に書いてみた。 この記事を通して「なぁ~んだ。案外Rustでもサクッとツール作れそうじゃん」とか「Rustにも意外とツール向けのライブラリとかあるんだなぁ」とか思って貰えると嬉しい限り。

                                                                    GoCLIツール職人のためのRust入門
                                                                  • Structured Logging with slog - The Go Programming Language

                                                                    Jonathan Amsterdam 22 August 2023 The new log/slog package in Go 1.21 brings structured logging to the standard library. Structured logs use key-value pairs so they can be parsed, filtered, searched, and analyzed quickly and reliably. For servers, logging is an important way for developers to observe the detailed behavior of the system, and often the first place they go to debug it. Logs therefore

                                                                      Structured Logging with slog - The Go Programming Language
                                                                    • モバイルとの相性最強と言われるgRPCをFlutter x NestJSで実装し、Stream通信や認証、複数言語実装に使えるか試す

                                                                      まとめ 相性バツグンといわれる、モバイル x gRPCは思ったよりずっと簡単に実装可能 複数言語間でもProtocol Buffersの恩恵により型変換を意識することなくスムーズに開発が進められる。 メソッド、引数の型、引数の返り値の型が自動生成されるのでとても良い RESTful APIにおけるheaderを、表現力の高いMetaDataとして利用し、認証認可等にも使えそう Streamをうまく使いこなせば、ユーザー体験をめっちゃ高くできそう。チャットやゲームなどの双方向通信が比較的楽に実装できるかも どんな人向きでない記事? NestJSの詳しい実装を知りたい方 Bidirectional streaming, Client streamの詳細実装を知りたい方 モバイル向け通信技術の本格的な選択肢、gRPCを実際に試してみたい 現在、私の働いているMinediaで開発しているサービス群

                                                                        モバイルとの相性最強と言われるgRPCをFlutter x NestJSで実装し、Stream通信や認証、複数言語実装に使えるか試す
                                                                      • 君たちの「並行」の理解は間違ってる

                                                                        TL;DR 並行計算の理解を間違ってる人が多いので正したい 並行計算=同時に実行すること 並列計算≒同等のタスクを並行計算すること もうちょっとちゃんと書いたフォローアップ記事も合わせて、お時間が許すようであればお読みください。 状況 並列と並行 / 多言語からみるマルチコアの活かし方に見られるように並行(concurrent)とは「複数の処理を順番に実行すること」とする誤った記述を、この記事に限らずチラホラ目にします。 大事になことなので繰り返しますが、間違った記述を含んでいるのはこの記事だけに限りません。 そのような誤った記述を見かけるたびに「ああこの人も間違ってるのか」と諦観を抱くだけというのもあまりに非生産的なので、間違ってますよとポインタとして示せるように簡単な読み物にしたものがこの記事です。 事実 計算=computingの分野においては並行=concurrentと並列=par

                                                                          君たちの「並行」の理解は間違ってる
                                                                        • やってよかったbuild own x系(自作OSとか自作DBみたいな自作~)を紹介してみる

                                                                          はじめに build own xってなに?という方がいらっしゃると思います。 下記ページにあるような自作~みたいなやつのことを指しています。 自作OSとかDBとかとにかく様々な種類があるんですが、僕がやってみて良かったなぁと感じたものだけ紹介します。(一部やってないけど良さそうなのも紹介します。) 難易度を星5を最高として書いていきます。 言語は日本語 or 英語です。 コンパイラ writing interpreter in go 形態:本 言語: 日本語、英語 コンパイラ系なら一番初めにおすすめなのは間違いなくこれ。 日本語版では「Go言語でつくるインタプリタ」という題で出版されています。 外部に依存するライブラリを一切使わないのが特徴でスクラッチで書きます。 語り口調も平易でわかりやすく、コンパイラ?インタープリタ?という方にもおすすめ。 Monkeyという言語を実装するのですが、既

                                                                            やってよかったbuild own x系(自作OSとか自作DBみたいな自作~)を紹介してみる
                                                                          • Railsを読み、Goを書く。大規模SaaSのマイクロサービス化の(生々しい)実際をマネーフォワードに聞いてきた!

                                                                            テックカンパニーをテックカンパニーたらしめているものはなにか?技術か、人か、それともチームなのか。 連載「Technology Company Internals」では、テックカンパニーの内側で働くエンジニアに、技術に精通したエキスパートが対面で話を聞き、テックカンパニーとは何か?を探るだけでなく、テックカンパニーを目指す企業の指針となることを目指します。 マネーフォワードのCTOとVPoEに話を聞く 白石: 本日はよろしくお願いします。自己紹介からお願いできますでしょうか? 中出: 中出 匠哉と申します。マネーフォワードのCTOとして企業経営に関わり、経営にテクノロジー視点を導入していくのが主な役割です。他には技術面での方向性の決定や、エンジニアの人事制度の立案などもやっていますね。あとはサービスがどんどん大規模化していく中でも、技術的負債に優先順位を付けて、体制を作って解消していくのも

                                                                              Railsを読み、Goを書く。大規模SaaSのマイクロサービス化の(生々しい)実際をマネーフォワードに聞いてきた!
                                                                            • プログラミング言語Go完全入門

                                                                              プログラミング言語Go完全入門 @tenntenn プログラミング言語Go完全入門の資料を用いて、Gopher道場の講義を始めていきたいと思います。 スライドはこのURLから閲覧できます。 スライドURL: http://tenn.in/go

                                                                                プログラミング言語Go完全入門
                                                                              • リリースまで至らなかった個人開発サービスのコードを全公開して反省してみる【Nuxt + Go】 - Qiita

                                                                                これはなに これはDeNA20卒内定者エンジニアによるアドベントカレンダーDeNA 20 新卒 Advent Calendar 2019の記事として書かれています。 はじめに 僕は趣味の一環でWebサービスを作ったり作ろうとしたりしています。ちょうど一年程前に企画・開発を始めたのですが、リリースまで至らなかったサービスがあったことを思い出したのでこれを機にコードを全公開して振り返ってみることにします。 公開したコードはこちらになります。 https://github.com/tockn/emukone_public 自分で実装しておきながらすごく無責任なのですが、正直どういう思想で実装していたのかその詳細はもう忘れてしまっているので、コードを読んで思い出しながら書く形になります。 なぜリリースしなかったのか? まずはこれです。当時DDDやクリーンアーキテクチャといったソフトウェアアーキテク

                                                                                  リリースまで至らなかった個人開発サービスのコードを全公開して反省してみる【Nuxt + Go】 - Qiita
                                                                                • Goの構造体の使われ方の設計 | フューチャー技術ブログ

                                                                                  Goで構造体を設計する場合、オブジェクト指向的な「型ごとの責務の分担」以外に、「どのように使われるものか」を考える必要があります。 ポインタで扱うのか?値として扱うのか?両方許可するのか? 値として扱える場合にimmutable(変更不可能)なオブジェクトとするのか、mutable(変更可能)なオブジェクトとするのか 値として扱える場合にゼロ値での動作を補償するかどうか 他の言語で言うと、C#の構造体とクラスの違い、C++のデフォルトコンストラクタあたりに頭を悩ませたことがある人にはおなじみかもしれませんが、Goでもいくつか考慮が必要になります。 ポインタ型として扱う必要があるケースまず最初に決断できる方針としては、ポインタ型でのみ扱うかどうかです。 内部にスライスやmap、ポインタなどの参照型な要素を持っていれば、基本的にポインタ型でのみ扱う構造体になります。これらの要素を持っていた場合

                                                                                    Goの構造体の使われ方の設計 | フューチャー技術ブログ