並び順

ブックマーク数

期間指定

  • から
  • まで

481 - 520 件 / 2447件

新着順 人気順

goの検索結果481 - 520 件 / 2447件

  • Goでテスト中に現在時刻を差し替えたりするflextimeというのを作った | おそらくはそれさえも平凡な日々

    https://github.com/Songmu/flextime flextimeはテストコードの中で現在時刻を切り替えるためのライブラリです。Sleep時に実際に時間を止めずに時間が経過したように見せかける機能もあります。 つまり、PerlのTest::MockTimeやRubyのtimecop的なことをしたいわけですが、Goだとグローバルに関数の挙動を切り替えるといったことはできないため、利用にあたってはtimeパッケージで使っている関数を、flextimeパッケージに切り替える必要があります。 具体的には、flextimeはtimeパッケージと同様のインターフェースを備える以下の9つの関数を提供しています。 now := flextime.Now() flextime.Sleep() d := flextime.Until(date) d := flextime.Since(da

      Goでテスト中に現在時刻を差し替えたりするflextimeというのを作った | おそらくはそれさえも平凡な日々
    • 『くまのレストラン』を作って思う。絶対に今、死にたくない。|Daigo

      「くまのレストラン」というゲームが先日、NintendoSwitchで全世界リリースされた。現在のところ、ダウンロードランキング19位まできていて、これは感慨深いというしかないであろう。「ああ、ここまできたんだ・・・」と思う。 「くまのレストラン」はもともと自分が2年前にリリースしたスマホゲームで、当時のリリースが自分の人生の転機になったので、その話を思い出しながら書いてみる。 ざっくりいうと、自分はRPGツクールに出会ってからゲーム開発にのめり込み、10年間会社員として働いた後、憧れていたインディーゲームクリエイターになった。 会社員時代はアメリカで働いていた。サンフランシスコでスマホゲーのリードプログラマをしていて、めぐまれたキャリアを積みあげてきた。でも、会社で自分が作っていたものは自分の作りたいゲームではなかったから、会社でいくらゲームを作っても満たされることはなかった。プログラミ

        『くまのレストラン』を作って思う。絶対に今、死にたくない。|Daigo
      • Goとマルチコアスケール実装

        マルチコア化の未来予測 半世紀前にSF映画「2001年宇宙の旅」に登場するコンピューターHAL-9000が並列コンピューティングの未来を示しました。マルチコアで構成されたコンピューターの物理コアを取り除いてもすぐにクラッシュせずに性能ダウンして処理が継続するという演出がありました。 当時ですらシングルコアコンピューティングの限界が予想されていて、現状のコンピューティングがマルチコア化しているという未来をしっかり予測できていたことがわかります。 演出はコア数に応じてコンピューティング性能がスケールしていることを表現しています。これはマルチコアスケールするソフトウェア実装の未来を示していたと思います。 シングルコア性能向上の頭打ち 2003年以降あたりはCPUの動作周波数が伸び悩み出したところ。 https://queue.acm.org/detail.cfm?id=2181798 より その

          Goとマルチコアスケール実装
        • 簡単にSSL証明書を取得可能&シンプルな設定ファイルでHTTP/3も利用できるGo製ウェブサーバー「Caddy」

          ウェブサーバーとして有名なソフトウェアはApacheやnginxですが、設定が難しいと感じる人も少なくないはず。Google発のプログラミング言語「Go」で開発された「Caddy」は、最低限の設定でSSLによる暗号化やHTTP/3での通信も可能なウェブサーバーです。 Caddy 2 https://caddyserver.com/v2 CaddyはUbuntuやCentOSなどのLinuxで利用可能。今回はUbuntu 18.04にCaddyをインストールしてみます。 下記コマンドを実行すれば、Caddyをインストールすることができます。 echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \ | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list sudo apt update s

            簡単にSSL証明書を取得可能&シンプルな設定ファイルでHTTP/3も利用できるGo製ウェブサーバー「Caddy」
          • Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50

            Kyoto.go #50 LT https://kyotogo.connpass.com/event/313309/

              Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
            • プログラミングで辛かったこと。よかったこと。|Seiji Takahashi@ベースマキナ

              この流れです。 前提基本的に自分はGoのサーバーサイドが主戦場で、カンファレンスにはよく顔を出します。最近はOSSを公開すればいい感じにGithub Trendsの上の方にきて目立つような、芸人っぽいムーブができるようになりました。 ですが、直近プライベートではGo以外にTypeScript(Next.js) でGraphQLのクライアント書いたり、仕事だと前はSwiftやらC++やらPerlやら色々使っていたので、他の方と比べると広く浅い経歴です。 また、大学に入ってから学習を始めましたし、当時はドットインストールが出始めたくらいで、基本的には書籍で勉強していました。大学では授業でFORTRANの授業を取りました。内容は意味わからなかったので同級生に寄生してました。 Progateとかプログラミングスクールとかには頼ってませんでした。無かったので...。なので、「幼少期からBASICを触

                プログラミングで辛かったこと。よかったこと。|Seiji Takahashi@ベースマキナ
              • VS CodeのGo言語テストコード生成ツールを使ってみたらめちゃくちゃ便利だった話とか - kdnakt blog

                年末年始はGoのテストコードを書いて過ごしている。 そんなことよりそろそろ2019年の抱負的なものを書かないと……とは思うものの、振り返り系記事ばかりで技術系記事がおろそかになってもあれなので、テストコードを書いていて学んだことをまとめておく。 [Go言語用VS Codeセットアップ手順] [テストコード・スケルトン自動生成] [関数の戻り値を比較する3つの方法] 等価演算子 (==, !=) で比較する Object.Equal() で比較する リフレクションを利用して reflect.DeepEqual() で比較する [まとめ] [Go言語用VS Codeセットアップ手順] 実行環境はMac 10.14.2 + VS Code 1.30.1。 VS Codeの左側のメニューの5番目の四角いアイコンが「Extensions」、拡張機能のメニュー。検索ウィンドウに「go」と入力するとMi

                  VS CodeのGo言語テストコード生成ツールを使ってみたらめちゃくちゃ便利だった話とか - kdnakt blog
                • Go言語で書かれたPHPアプリケーションサーバ「FrankenPHP 1.0」がリリース

                  FrankenPHP 1.0には、Symphony、Laravel、WordPressなどのネイティブサポートが含まれるほか、Caddyを搭載したプロダクショングレードのPHPサーバであり、PHPアプリのスタンドアロンで実行可能なバイナリとしてのパッケージ化が可能となっている。 さらに、PHP-FPMとNgnixを個別に実行する必要がなく、1つのサービスのみでPHPサーバを提供できるようになるとともに、PHP 8.2以降のほとんどのPHP機能拡張、およびすべてのCaddyモジュールと互換性がある。 ほかにも、アプリケーション起動してメモリに保持するワーカーモード、JavaScriptイベントとしてWebブラウザへ送信されるリアルタイムイベント、ZstandardおよびGzip圧縮、構造化されたログ、Prometheusメトリクスを使用したCaddyの監視、HTTPS・HTTP/2・HTTP

                    Go言語で書かれたPHPアプリケーションサーバ「FrankenPHP 1.0」がリリース
                  • Niantic、“現実世界のメタバース”「Lightship」のAR開発者キットを公開

                    「Pokemon GO」のNianticが“現実世界のメタバース”構築のためのプラットフォーム「Lightship」を発表。Unityベースの開発キット「ARDK」を公開した。集英社やソフトバンクがパートナー企業に名を連ねる。 「Pokemon GO」で知られる米Nianticは11月8日(現地時間)、同社が「現実世界のメタバース」と呼ぶAR開発者向けプラットフォーム「Lightship」のリリースと、UnityベースのARアプリ開発キット「Niantic Lightship ARDK」の提供開始を発表した。 8月に「メタバースはディストピアの悪夢」と警鐘を鳴らしたジョン・ハンケCEOは、「Nianticの設立当初から変わらない目標は、世界中の人々にARを体験してもらうプラットフォームの構築だ。そのためには可能な限り多くの人々の意見と視点が必要だ。だからこそ、開発者、ブランド、クリエイター

                      Niantic、“現実世界のメタバース”「Lightship」のAR開発者キットを公開
                    • Goコンパイラをゼロから作ってセルフホスト達成するまで / How I wrote a self hosted Go compiler from scratch

                      Go Conference Tokyo 2019 Autumnでの発表資料です。

                        Goコンパイラをゼロから作ってセルフホスト達成するまで / How I wrote a self hosted Go compiler from scratch
                      • Goコンパイラを自作して93日でセルフホストを達成した(2回目) · DQNEO日記

                        Goコンパイラをゼロから書いてセルフホストを達成しました。(1年ぶり2回目) https://github.com/DQNEO/babygo (ちなみに 前回の話はこちら 「Goコンパイラをゼロから作って147日でセルフホストを達成した」 ) 主な特徴 全部手書き。標準ライブラリも自作。system call 呼び出しも自作。libc非依存。 コンパイルするとアセンブリを吐きます。これをビルドすると単一静的バイナリになります。 設計は、go/parser + chibicicc + α かかった期間 2020/3/29に開始、2020/7/28にセルフホスト達成。 コミットした日 (Author date)を数えたら93日でした。 平均1日2-3時間としてざっくり240 時間 ほど。 前回は500時間かかってるので、今回は半分の期間で達成できたことになります。 なんでまたやろうと思ったの?

                        • Go言語で高速JSONライブラリをメモリ安全にしたらさらに速くなった話

                          はじめに こんにちは。Sugawara Yuutaです。"Go言語で最速のJSONデコーダーを作った話", "それでも僕はGoで最速のJSONデコーダーを作りたかった"...以来の方はまた読んでいただきありがとうございます。まだの方は、経緯を伝えやすくなると思うので、そちらの方も読んでいただけたら幸いです。 その後 Go言語チームのメンバーが取り組んでいる新しいバージョンのJSONライブラリであるgo-json-experiment/jsonというレポジトリを発見しました。(厳密に言うと、知ってはいたのですが中身等は見ていない状態でした。) そこで学んだことが少しでも役に立てばとissueを提出したところ、そのときのJSONデコーダーに足りないものが見えてきたため、今回は僕の見つけた課題と、どのように解決しようとしたか・したかを話せればと思います。 見つけた課題 パフォーマンスも重要ですが

                            Go言語で高速JSONライブラリをメモリ安全にしたらさらに速くなった話
                          • tscをGoに移植 | POSTD

                            筆者はTypeScript型チェッカーtscをRustではなく、Goに移植しようと思います。拡張可能なRustプラットフォームSWCの作者の発言としては、奇妙に聞こえるかもしれません。理由を説明したいと思います。 なぜtscを移植するのか TypeScriptの普及が進むにつれて、大規模プロジェクトではあるジレンマに直面しています。型チェックは、ワークフローの中で最も時間がかかるプロセスの一つになっているのです。開発者は、イテレーションのサイクルを遅らせることなく、型安全を保証することを望んでいます。 tsc(TypeScript Compiler)は、型の妥当性をチェックし、コードをJavaScriptにコンパイルします。コードの量が多いほど、コンパイルには時間がかかります。中規模から大規模のTypeScriptプロジェクトでは、このコンパイルに膨大な時間がかかります。開発者はワークフロ

                              tscをGoに移植 | POSTD
                            • エンジニアオンボーディングを改善するツールの紹介 - LayerX エンジニアブログ

                              LayerX の Enabling Team でソフトウエアエンジニアをやっている suguru です。LayerX Tech Advent Calendar 2022 の 12/12 のの記事になります。 今日は、入社して最初に開発した社内ツールの話をしようと思います。 LayerX のバクラク事業部では、バクラク請求書、バクラク申請・経費精算、バクラク電子帳簿保存、バクラクカードなど、複数のプロダクトを運用しています。 內部のアーキテクチャとしては、プロダクトごとに独立したAPIが環境で稼働しており、プロダクト間連携は、お互いの Private API を通じて連携しています。そのため、バクラクの開発用環境をローカルで構築するには、複数のプロダクトのAPIサーバーを稼働させる必要があります。 バクラクのサービスアーキテクチャについては、下記のスライドを参照してください。 お客様に対して

                                エンジニアオンボーディングを改善するツールの紹介 - LayerX エンジニアブログ
                              • V言語: Goのようにシンプルで、Rustのように小さいバイナリ|TechRacho by BPS株式会社

                                こんにちは、hachi8833です。昨年夏に話題になったV言語を半年遅れで知って最近遊んでいます。「主観的には」かなり安定して動く印象です。 V is a high-performance and simple computer language with graphics, web and UI libraries and compiles itself in under a second. Where were you two decades ago?!https://t.co/tZCEgJaUTl — Carl Carrie (@🏠) (@carlcarrie) October 7, 2019 サイト: The V Programming Language Discordコミュニティ: https://discord.gg/vlang なお以下のベンチマークは、そういう結果もあるの

                                  V言語: Goのようにシンプルで、Rustのように小さいバイナリ|TechRacho by BPS株式会社
                                • レノボ、税別11,000円のAndroid 9 Go搭載7型タブレット ~8型のAndroid 9搭載機も

                                    レノボ、税別11,000円のAndroid 9 Go搭載7型タブレット ~8型のAndroid 9搭載機も
                                  • 深いドメインと統合型経営プラットフォームを支えるモジュラモノリスの事例 / Modular Monolith That Support Deep Domains And Integrated Management Platform

                                    freeeにおけるモジュラモノリスの事例を大規模プロダクトから新規プロダクトまで紹介します。

                                      深いドメインと統合型経営プラットフォームを支えるモジュラモノリスの事例 / Modular Monolith That Support Deep Domains And Integrated Management Platform
                                    • ローカル環境でISUCON9予選の問題を動かす : ISUCON公式Blog

                                      ローカル環境でISUCON9予選のアプリケーションとベンチマーカーはGoとMySQLとDockerがあれば、Macなどローカル環境で動かすことができます。 ソースコードの取得まず、ソースコード一式をもってきます $ go get -d github.com/isucon/isucon9-qualify $ cd $GOPATH/src/github.com/isucon/isucon9-qualify 初期データの作成ベンチマーカー、アプリケーション両方が使う初期データの生成をします。 $ cd initial-data $ make makeを実行するとDocker コンテナの中で初期データの作成を行い、initial-data/result に結果が出力され、webapp/sql 以下へのコピーも行われます。 パスワードの生成があるため、時間がかかります。 画像データの展開初期データの

                                        ローカル環境でISUCON9予選の問題を動かす : ISUCON公式Blog
                                      • Goの良さをまとめてみた

                                        よく知られる良さ ネイティブコード出力で実行効率が良い コードの可読性を重視している 開発でよく使うツールがバンドル クロスビルドが簡単にできる コンパイルが遅くない(LLライクにrunできる) 並行処理の抽象化を組み込み言語仕様にもつ メモリ安全である 上記の一部に解説を加えつつあまり言及されない良さを以下にまとめます。 依存解決が最小限で決定的 ここにも書きましたが、Goの依存解決は常に 最小限のダウンロード 最小の範囲でのみビルドを実行 だけが走ります。これを一度体験すると、従来のパッケージ依存管理が冗長で余計なものをビルドしすぎることに気づくでしょう。これらに相当の時間を奪われているのです。 また、Goモジュール機構によりそのバージョン選択は決定的に安定動作するバージョンに決められます。このことのメリットは数ヶ月後のリビルドで安定してビルドできることで実感できるでしょう。 開発環境

                                          Goの良さをまとめてみた
                                        • Rustから目覚めるぼくらのゲームボーイ! - undefined

                                          Conway氏についてですが、公式にアナウンスがでたようです。ご冥福をお祈り申し上げます。 www.math.princeton.edu 2003年に発売された「Linuxから目覚めるぼくらのゲームボーイ!」というC言語でゲームボーイアドバンスで動作する自作ゲームを作成していく書籍があります。 ゲームボーイアドバンスはARM7TDMIというコアを使用しており、Rustで自作ゲームを作ることも可能となっています。 この記事では「Linuxから目覚めるぼくらのゲームボーイ!」のステップをRustで実施するための準備としてライフゲームが動くまでを書いてみます。 動機は今作っているWasmインタープリタをGBAで動かすことができないかの調査です。(たとえLチカレベルでも)AssemblyScriptとかでGBAのゲームかけたら面白くないですか。 成果物 github.com I succeeded

                                            Rustから目覚めるぼくらのゲームボーイ! - undefined
                                          • 「多層キャッシュサーバー」を2人×2日で爆速開発 インフラリソースを10分の1にした、Go製サーバー開発の裏側

                                            サイバーエージェントグループ横断でGoに関する知見を共有し合う社内勉強会「CA.go」。今回はその社外版として、「FIFA ワールドカップ カタール 2022」を全64試合無料生中継をした新しい未来のテレビ「ABEMA(アベマ)」のチームがGo活用事例を紹介しました。ここで登壇したのは、江頭宏亮氏。「ABEMA」のレコメンドに対する大規模アクセスを支えるGo製サーバー開発について発表しました。全2回。後半は、「Yatagarasu」に対するリクエストの具体例の説明と視聴者からの質問に答えました。前回はこちら。 Yatagarasuに対するリクエストの具体例を説明 江頭宏亮氏(以下、江頭):次に、オリジンのYatagarasuへのリクエストを具体的にどのようにやっているのか、説明したいと思います。 先ほど見せたスクリーンショットだと、右側にモジュールが3つ並んでいたと思いますが、実際は縦スク

                                              「多層キャッシュサーバー」を2人×2日で爆速開発 インフラリソースを10分の1にした、Go製サーバー開発の裏側
                                            • テスト駆動開発でGO言語を学びましょう | テスト駆動開発でGO言語を学びましょう

                                              **テスト駆動開発(TDD)で基礎を身につけましょう。**GoはTDDを学習するのに適した言語です。なぜなら、学習するのが簡単な言語であり、テストが組み込まれているからです。

                                                テスト駆動開発でGO言語を学びましょう | テスト駆動開発でGO言語を学びましょう
                                              • GitHub - yuk1ty/learning-systems-programming-in-rust: 「Rustでもわかるシステムプログラミング」

                                                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. Dismiss alert

                                                  GitHub - yuk1ty/learning-systems-programming-in-rust: 「Rustでもわかるシステムプログラミング」
                                                • スマートレストランでGraphQL を採用した話

                                                  株式会社ウェリコで、お客さんのスマートフォンでメニューの閲覧・注文・決済ができるスマートレストランを作ったときに、gqlgenとRelay Modernを使ってGraphQLを採用した話Read less

                                                    スマートレストランでGraphQL を採用した話
                                                  • 形態素解析器 kagome v2 をリリースした - 押してダメならふて寝しろ

                                                    概要 ホント誰得でもないのは重々承知していますが、思い立って 形態素解析器 kagome v2 をリリースしました。とはいっても、だいたいの機能は今ある kagome でも実装済みで、今さら変更してもどうよ・・・という感じではあります。 なので、モチベーションを維持するのが非常に難しくて、だらだらと時間だけがかかってしまいました。 折角作ったのでリリースノートです。 TL;DR; v2 で実現した事 辞書の分離 / バージョン管理 辞書毎に異なる素性項目の扱いの共通化 韓国語辞書対応 辞書の分離 辞書を別リポジトリに分離しました。これにより、長年(?)懸案だった辞書のバージョン管理が可能になりました。go.mod で指定すれば、どのバージョンの辞書を利用しているかがわかります。 また、これにより、これまで kagome.ipadic のような単独辞書を利用するだけのためのライブラリを別に切

                                                      形態素解析器 kagome v2 をリリースした - 押してダメならふて寝しろ
                                                    • Repro のサーバーサイド開発環境を M1 Mac に対応させるまでの道のり(再始動編) - Repro Tech Blog

                                                      こんにちは、@r_takaishi です。近所にスパイスカレーのお店ができてハッピーです。今回は、Reproのサーバーサイド開発環境におけるM1 Mac対応を改めて行ったので、やったことを紹介します。 なお、これまでの経緯は以下の通りです。 前回 Repro のサーバーサイド開発環境を M1 Mac に対応させるまでの道のり(撤退編) - Repro Tech Blog 前々回 Repro のサーバーサイド開発環境を M1 Mac に対応させるまでの道のり - Repro Tech Blog いつのまにかConfluent PlatformがM1 Mac上のDockerで動くようになっていた Repro のサーバーサイド開発環境を M1 Mac に対応させるまでの道のり(撤退編) - Repro Tech Blog ではConfluent Platformのコンテナイメージがx86_64の

                                                        Repro のサーバーサイド開発環境を M1 Mac に対応させるまでの道のり(再始動編) - Repro Tech Blog
                                                      • AWS Lambda の go 1.x サポートが終了するらしいので、カスタムランタイムに移行した話 - GS2 Blog

                                                        早速ですが、不穏なメールが届きました。 Amazon Linux AMI のメンテナンスサポートが 2023 年 12 月 31 日に終了するのに合わせて、AWS Lambda での Go 1.x ランタイムのサポートを終了します [1]。 Lambda は、provided.al2 ランタイムを使用して Go プログラミング言語を引き続きサポートします。 provided.al2 ランタイムを使用すると、AWS Graviton2 プロセッサのサポートや、より小さなデプロイパッケージとより高速な関数呼び出しパスによる効率的な実装など、go1.x ランタイムに比べていくつかの利点があります。 詳細については、ブログ記事 [2] を参照してください。 GS2 が実行基盤に使用している AWS Lambda の go 1.x ランタイムがサポート終了になるようです。 provided.al2

                                                          AWS Lambda の go 1.x サポートが終了するらしいので、カスタムランタイムに移行した話 - GS2 Blog
                                                        • バックエンドエンジニアが個人開発した話 (Go+Flutter+React with GraphQL)

                                                          はじめに この記事は、バックエンドエンジニアとして仕事をしている著者が、個人でサービスを作った記録です。 使用している技術は以下になります。 Go (gqlgen) - バックエンド TypeScript (React) - フロントエンド Dart (Flutter) - モバイル(ios, Android) GraphQL - API Firebase - 認証 MySQL - DB ConoHa - サーバー GCS - ストレージ CLIP STUDIO - 画像編集 土日を中心に、気が向いたら平日の夜も書く、という時間の使い方をして、ブラウザで動くようになるまでに1ヶ月、アプリを作るのに2週間 (Appleとのやり取りで更に2週間)程度かけて作りました。 iosの審査が終わって公開されたので、今は「これから何をしようかな」と考えているところです。 作ったもの Rabbytという、

                                                            バックエンドエンジニアが個人開発した話 (Go+Flutter+React with GraphQL)
                                                          • Golangでいい設計を実践するための6つのツール

                                                            概要 Golangを書くにあたり、いい設計のコードを書くための手助けとなるツールを調べたのでまとめます。 想定読者 Golangの使い方をある程度わかっている(チュートリアルはやった) いい設計をするための具体的なノウハウに興味がある 記事を書いたきっかけ 引用: https://www.amazon.co.jp/dp/B09Y1MWK9N 最近設計に関して勉強するために「良いコード/悪いコードで学ぶ設計入門」を読みました。 本の中では マジックナンバーを使うな 一つのメソッドの中で多くのことをやりすぎるな などの言われてみると基本的な注意点が書いてありました。 一方で以下のように、確かにそうなんだけど実際は守れていない注意点にも書かれていました。 単一責任の原則を守ってクラス設計しよう 高凝集なクラスを作ろう 本を読んでわかった気になって今までと同じように悪い設計のコードを書くままではい

                                                              Golangでいい設計を実践するための6つのツール
                                                            • NetflixがAWSの権限とアクセスを管理するConsoleMeをオープンソース化

                                                              Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                                                                NetflixがAWSの権限とアクセスを管理するConsoleMeをオープンソース化
                                                              • Go言語によるクリーンアーキテクチャの実装例紹介

                                                                はじめに CastingONEでバックエンドエンジニアをやっている清水です。 この記事ではクリーンアーキテクチャについて学んだけど具体的にどのように実装すれば良いのかという悩みがあったので実装例をまとめてみた記事になります。 クリーンアーキテクチャで実装されたサンプル実装のうちGitHubのスター数が多いリポジトリをピックアップして、設計内容を紹介していきます。 具体的にどこにどんな実装をするべきなのかも含めて紹介していきます。 処理を一部省略して紹介するため実際の処理内容を確認したい場合はGitHubでご確認お願いします。 クリーンアーキテクチャとは クリーンアーキテクチャは、ソフトウェア設計の原則を適用して、依存性の方向性を逆転させ、ビジネスロジックから詳細(フレームワークやデータベース)を分離するアーキテクチャパターンです。これにより、テストしやすく、メンテナンス性が高く、柔軟性のあ

                                                                  Go言語によるクリーンアーキテクチャの実装例紹介
                                                                • Go製のネットワーククライアントに対する継続的 / Fuzzing for network client in Go

                                                                  Go Conference 2021 Spring

                                                                    Go製のネットワーククライアントに対する継続的 / Fuzzing for network client in Go
                                                                  • 囲碁の用語や概念たち名鑑(追記・更新あり)

                                                                    【追記】追記編と初手編、日常用語編、国際編、人物編、二眼の説明を加えた。 anond:20220131231934にインスパイアされてやってみた。 省力のために一部wikipediaからの引用も交えながら独自の解説を記した。 基本編 【追記】 目(もく) 盤面の交点のこと。一目、二目と数える。この目を囲った多さを競うゲームが囲碁である。 【追記】 呼吸点 石から出ている線のこと。盤上にある石は呼吸点を全て塞がれると取られてしまう。囲碁の説明でよくある「囲むと取れる」という表現を詳らかにすると呼吸点を塞ぐと取れる、と表現できる。アタリ あと一手で石が取られてしまう状態のこと。あの超有名なゲームメーカーアタリの由来である。 着手禁止点 打った瞬間に取られてしまう地点 捨て石 敢えて石を相手に取らせることで取られた損失以上の成果を得ること。損失のほうが大きい場合は捨て石とは言わない。 凝り形 効

                                                                      囲碁の用語や概念たち名鑑(追記・更新あり)
                                                                    • Go言語でハマったことメモ(インターフェース) - Qiita

                                                                      Golangを始めました。 GolangはC言語のように、シンプルな文法・データ構造でできているのですが、同時に、生産性を高めるための、高度な概念も取り入られています。 そしてそのために、Golangには若干トリッキーな構文がいくつかあります。 しかし、それらを知らずに、他の言語での先入観や勝手な思い込みで判断してしまって、ハマることがちょいちょいありました。 ここでは、Golangを始めてみて、個人的にハマったことや、勘違いしたことを、トピック別に備忘録としてメモしていこうと思います。 ここでは、「インターフェース(interface)」とは何ぞやについてのメモを記載しました。 インターフェースとは? Golangの変数は、値だけを持っていて、型情報は持っていません。Golangには、変数の値とその変数の型情報をセットにして保持する、言語組み込みの特殊な構造体があり、その構造体をインター

                                                                        Go言語でハマったことメモ(インターフェース) - Qiita
                                                                      • Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり - Go Conference 2023

                                                                        Go Conference 2023 Room A : A7-L https://gocon.jp/2023/sessions/A7-L/

                                                                          Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり - Go Conference 2023
                                                                        • 「Go言語でつくるインタプリタ」をRustで実装しました。 - Sansan Tech Blog

                                                                          はじめに こんにちは。DSOC 研究開発部 Architect Group Data Direction Teamの有山です。 気温が上がってきて夏っぽくなってきましたね。毎年夏用にTシャツを集めるのが趣味なのですが、今年は個人的にブームが再燃してるGOODENOUGH*1を古着で集めようかなと考えています。 ところで皆さんは普段何の言語を書いていますか? Data Direction Groupでは主にPythonを使用していますが、ある時から四則演算の計算順序やif文の条件分岐はどうして正しく動くのだろうと疑問に思うようになり、実際に正しく動かしているシステムを理解してみたくなりました。色々検討した結果、「Go言語で作るインタプリタ」という本が内容的にも分量的にもちょうどよく、これを読み進めることにしました。 初めは読みながらコードを写経していましたが、複雑なロジックについては理解した

                                                                            「Go言語でつくるインタプリタ」をRustで実装しました。 - Sansan Tech Blog
                                                                          • Go 言語にやってくる Generics は我々に何をもたらすのか

                                                                            2021 年リリース予定の Go 1.17 に、多くの皆さんが待ち望んでいた Generics が導入される予定です。Go が Generics を採用したプロセス、C++ や Java の Generics とどの様に違うのか、また Go の Generics はどの様に使えるのかをご紹介します。

                                                                              Go 言語にやってくる Generics は我々に何をもたらすのか
                                                                            • WebアプリケーションにGoの並行処理アーキテクチャを導入してSLOを改善し、WebAPIを100倍速くした話 - スタディサプリ Product Team Blog

                                                                              こんにちは。スタディサプリの小中高プロダクト基盤開発グループでProduct Platform Engineer兼テックリードをやっている@tooooooooomyです。 今回は、WebアプリケーションにGoの並行処理機構を導入してSLOを改善し、WebAPIを100倍速くした話をしたいと思います。 前提条件 システムを0から作らない場合、アーキテクチャの改善の際には前提条件が付きものです。そこでまずは今回のシステムの前提条件をお話します。 対象となるシステムと、アーキテクチャ 今回対象とするシステムは、ここでは security-tracker と呼び、Webアプリケーション本体はGoで書かれています。 スタディサプリの各アプリケーションにおけるユーザーのログ1を、Amazon Kinesis Firehoseを通して、リクルート全体のセキュリティチームが管理するS3バケット(スタディサ

                                                                                WebアプリケーションにGoの並行処理アーキテクチャを導入してSLOを改善し、WebAPIを100倍速くした話 - スタディサプリ Product Team Blog
                                                                              • k6 + Echo + go-sqlite3 + Litestream + Linode Object Storage 簡易負荷試験メモ

                                                                                注意 とっても雑な検証なので参考などにはしないでください。ちょっとした興味で自分用に調べてるだけです。 結論 Echo を利用した秒 1 万リクエストを超えないウェブサービスで、かつ SQLite の機能で要件がみたせるのであれば、SQLite + Litestream 十分と判断出来る結果だった。 利用技術 Load testing for engineering teams | Grafana k6 Grafana に買収された Go で書かれた負荷試験ツール JS でシナリオが書ける Litestream - Streaming SQLite Replication SQLite リアルタイムバックアップツール mattn/go-sqlite3: sqlite3 driver for go using database/sql Litestream も使ってる 安心と信頼の matt

                                                                                  k6 + Echo + go-sqlite3 + Litestream + Linode Object Storage 簡易負荷試験メモ
                                                                                • GitHub - google/yamlfmt: An extensible command line tool or library to format yaml files.

                                                                                  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. Dismiss alert

                                                                                    GitHub - google/yamlfmt: An extensible command line tool or library to format yaml files.