並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 28 件 / 28件

新着順 人気順

goの検索結果1 - 28 件 / 28件

  • 最速で成果を出す方法|Go Kiritani / Chatwork 執行役員

    これは何か最速で成果を出す為にはどうすれば良いか?という質問をよくもらうのでその回答をするものです。良い感じのものが見当たらなかったので過去に自分が教えてもらった事をまとめました。せっかくまとめたので公開します。 4つのタイプの人がいるそれっぽい図1①思考先行型 思考力は高いけど,行動力が低い人。 考えてばかりで,なかなか行動に動けず成果が出ない。頭が良い人ほどこのタイプになってしまうので気をつけないといけない。 ②思考/行動 併用型 思考力も行動力も高い人。 思考と行動のバランスが良く,行動した結果を思考する事で正しい行動に繋がるサイクルが回っている。この人が1番早く成果が出る。 ③指示待ち型 思考力も行動力も低い人。 何をすれば良いか分からない状態で,動くこともできない。新しい環境に行くと,意外とこの状態の人も多いのでは。 ④行動先行型 思考力は低いけど,行動力が高い人。 何が正しいか

      最速で成果を出す方法|Go Kiritani / Chatwork 執行役員
    • スレッドとプロセスの違いを完全に理解する

      はじめに こんにちは、FarStep です。 プログラミングを学ぶ中で、「プロセス」と「スレッド」という言葉を耳にしたことがある方は多いと思います。 しかし、これらの違いを明確に説明できる自信がない方も多いのではないでしょうか。 本記事では、プロセスとスレッドの違いについて、エッセンスを抽出して 解説します。 説明を簡潔にしましたので、本記事は 5 分程度で読み終えることができます。 本記事の内容を自分の言葉で説明できるようになれば、プロセスとスレッドの違いの理解は十分でしょう。 それでは、始めます 🚀 プログラムとは プロセスとスレッドの違いを理解する前に、まずは「プログラム」について理解しましょう。 プログラムとは、プログラミング言語で書かれた一連の命令 のことです。 プログラミング言語の例としては、以下のようなものがあります。 C 言語 Java Python Ruby JavaS

        スレッドとプロセスの違いを完全に理解する
      • 自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理

        切り替える理由 自社の主力製品で利用している技術(WebRTC / WebTransport)がブラウザベースのため TypeScript を利用する Go を採用したのは sqlc が使いたかったという理由 sqlc-gen-typescript が出てきたのでもう Go を使う理由がなくなった 自社サービスチーム全員が Go にまったく興味が無い sqlc 自体は便利 そもそも自社に Go への興味がある人がいない 自社サービスの規模ではボトルネックになるのはデータベースであって言語ではない もしアプリでスケールが必要なときは Rust や Erlang/OTP に切り替えれば良い コネクションプールは PgBouncer を利用すればいい TypeScript からは 1 コネクション 1 接続で問題無い どうせフロントエンドでは TypeScript を書く 自社では React

          自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理
        • 趣味でつくった2Dゲームエンジンが導いた「幸」あるキャリア 己の欲求に従い続けた「Ebitengine」開発者に迫る レバテックラボ(レバテックLAB)

          TOPフォーカス趣味でつくった2Dゲームエンジンが導いた「幸」あるキャリア。己の欲求に従い続けてきた「Ebitengine」開発者に迫る 趣味でつくった2Dゲームエンジンが導いた「幸」あるキャリア。己の欲求に従い続けてきた「Ebitengine」開発者に迫る 2024年5月15日 Odencat株式会社 CTO 星 一(ほし・はじめ) ソフトウェアエンジニア。2009年にドワンゴでキャリアをスタートし、ドワンゴの関連会社やGoogle Japanなどを経て、2023年より現職。趣味では大学時代から2Dゲームエンジン開発に注力し、Google時代の2013年にEbitengineに着手し始める。2015年にVer1.0をリリース。カクヨムで「オレオ」と3文字だけ書かれた小説を手がけ、週間総合ランキング1位を獲得したことがある。 X GitHub Ebitengine公式サイト Odencat

            趣味でつくった2Dゲームエンジンが導いた「幸」あるキャリア 己の欲求に従い続けた「Ebitengine」開発者に迫る レバテックラボ(レバテックLAB)
          • PerlからGoへのシステム移行のアシスト 〜Perl XSとUnix Domain Socketを活用〜 - Mirrativ Tech Blog

            こんにちは ハタ です。 Mirrativ では 2020年頃から サーバサイドの技術をPerlからGoへのシステム移行 を行っており、2024年現在でもサグラダファミリアのように移行作業は継続しています PerlとGoという2つの環境を同時に運用していますが、 基本的には 新機能は Go で実装 し、 Perlでは積極的に新規実装を行わない というスタイルで進めていました しかし、既存の機能の一部に手を加えたいとなった場合、まだまだ Perl の実装に手を加えることが一定あり、Perl から Go の機能を呼び出したいというニーズが出てきました (配信やギフトといったビジネスの根幹を支えるレガシーな実装においては顕著) そこで PerlXS を利用することで Perl から Go を直接呼び出せるようにできないかと考え検証を進めることにしました Goの -buildmode=c-shar

              PerlからGoへのシステム移行のアシスト 〜Perl XSとUnix Domain Socketを活用〜 - Mirrativ Tech Blog
            • Go、Rust、Pythonで実装したAPIサーバーの負荷試験比較 - Qiita

              はじめに みなさん様々な言語でAPIサーバーを立てて負荷試験を実施したことはありますか。 私自身、業務でPythonのアプリケーションに対して負荷試験を実施した経験があります。 その際にPythonの速度観点の不安定さを目の当たりにしたと同時に、別の言語ではどのような違いが生まれるのだろうか、という疑問を持ちました。 そこで今回は、簡単ではありますがGoとRustとPythonでそれぞれAPIサーバーを立てて負荷試験をしてみます。 負荷試験対象のAPIサーバー 今回は(1) Hello, World!を返すAPI(2) ファイル読み込みAPI(3)1秒待ってから応答するAPIの3つを実装します。 (1)はAPIサーバー自体の応答速度の計測、(2)はメモリを消費する処理が生じた場合のAPIの応答速度の計測、(3)は待ち時間発生している時のAPIの応答速度の計測することが目的です。 (2)につ

                Go、Rust、Pythonで実装したAPIサーバーの負荷試験比較 - Qiita
              • ぼくのかんがえたさいきょうのGo HTTPサーバー起動方法

                これまで何度か HTTP Server の Graceful Shutdown について記事を書きました。 Go 言語で Graceful Restart をする Go 言語で Graceful Restart をするときに取りこぼしを少なくする Go1.8 の Graceful Shutdown と go-gracedown の対応 最終的に Go 1.8 で Server.Shutdown が導入され、この件は解決を見ました。 しかし、最近「あれ?本当に正しく Server.Shutdown 使えている?」と疑問に思い、少し考えてみました。 というか ↑ の記事もまだ考慮が足りない気がする。 ぼくのかんがえたさいきょうの Go HTTP サーバー起動方法 とりあえず完成形のコード。 package main import ( "context" "log" "net/http" "os

                • AWS CLIの起動が重くてつらいので aws-sdk-client-go を書いた / kamakura.go#6

                  kamakura.go #6 でのLT資料です https://kamakurago.connpass.com/event/316438/ https://github.com/fujiwara/aws-sdk-client-go

                    AWS CLIの起動が重くてつらいので aws-sdk-client-go を書いた / kamakura.go#6
                  • Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50

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

                      Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
                    • Goで作ったシステムをRubyでリプレイスすることを検討してみた

                      はじめに 弊社にはGoで作ったシステムが存在しますが、作られてから数年が経過して、メンテナンスも十分にできていない状況でした。 そこで、このシステムをリファクタリングして生産性を上げようという結論になりました。 リファクタリングにあたり、Goのままで行くのか、弊社でよく使われているRubyで行くのかを検討してみましたので、その過程を紹介したいと思います。 Rubyでリプレイスしようと思った理由 Goで動いてて言語やライブラリのバージョンアップなどメンテナンスがされてない部分はありますが、 そこを解消すればGoのままで行った方が良いのでは?と思うかもしれません。 しかし、あえてRubyでリプレイスしようと思うに至ったのは以下の点があります。 Rubyの方が開発速度があがりそう Goのリファクタリングをするのに時間がかかりそう Goのリファクタリングと機能追加でコード修正箇所が被るとスケジュー

                        Goで作ったシステムをRubyでリプレイスすることを検討してみた
                      • GitHub Actions 上での Go の Docker ビルドを高速化する

                        どうも GitHub Actions 上で Docker ビルドを行うと時間がかかるなぁと感じていました。 かなり軽量の Go の Web アプリケーションを Docker イメージにしてプッシュするプロセスなのですが、全体で 3 分ほどかかっています。 今回はその速度改善を行ったので、得た知見を記事にしたいと思います。 最終的に、ケース次第では以下のような結果を出すことができました。 ※ケース = go のソースコードのほんの一部を変更してワークフローを実行する。 go.mod など依存関係に変化はない。 go build: 60秒 → 1秒 docker/build-push-action ステップ: 2分30秒 → 30秒 ワークフロー: 3分 → 1分 前提 go build は Dockerfile のステップで行っており、イメージとして以下のような内容になっています。 FROM

                          GitHub Actions 上での Go の Docker ビルドを高速化する
                        • マイクロサービス化するならリビルドで!ビジネスロジックをGoで書き直してわかったこと - MonotaRO Tech Blog

                          この記事では モノタロウがGoとprotobufで進める爆速マイクロサービス開発とそれを支えるプロセス - MonotaRO Tech Blog のうち、主にアーキテクチャにおける詳細について紹介します。 自己紹介 マイクロサービス化について 課題を認識する スコープと技術選定 ゴールイメージを共有する 既存コードから分かった問題点 曖昧なデータ構造 処理フローの混在 アドホックなデータ取得 効果的な改善を行う 処理フローを分割する N+1問題とロジックの独立性を考慮した設計 安全に移行する 実行時のデータを取る 新旧比較による検証 まとめ 自己紹介 藤本 洋一 プラットフォームエンジニアリング部門 CTO-Officeグループ AVLチーム 楽天、SaaSベンチャーを経て、モノタロウに入社してマイクロサービス化にとりくむエンジニアの話 2019年5月入社。商品検索基盤のマイクロサービスと

                            マイクロサービス化するならリビルドで!ビジネスロジックをGoで書き直してわかったこと - MonotaRO Tech Blog
                          • GoでgRPCのAPIテスト環境を構築する - enechain Tech Blog

                            はじめに JCEXで実践しているAPIテストについて 単体テスト 負荷テスト なぜAPIの単体テストを行っているのか API単体テストで使用するパッケージ 実例によるAPI単体テストの環境構築 前提 ステップ1: テストしたいAPIの定義 ステップ2: テストの作成 ステップ3: APIの実装 ステップ4: DBを使ったテスト ステップ5: ヘルパー関数化 ステップ6: テーブル駆動テストに変える ステップ7: フィクスチャを使ったテスト まとめ おわりに はじめに こんにちは、enechainのGXデスクでエンジニアをしている@ejiです。 GXデスクは、『日本気候取引所 - Japan Climate Exchange』 (以下 JCEX) のサービス開発を担当しており、 私は主にBFFとバックエンドのAPIをGoで開発しています。バックエンドのAPIは gRPC を使用しています。

                              GoでgRPCのAPIテスト環境を構築する - enechain Tech Blog
                            • Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ

                              前置き 以前、BuildInfoからバージョンを取得する方法を紹介しました。 blog.lufia.org go installで正規の公開されたバージョンをインストールした場合は、以下の出力においてmodの行が示すように、sum.golang.orgでチェックサム等が検証されてバイナリのメタデータに埋め込まれます。 $ go version -m dotsync dotsync: go1.22.2 path github.com/lufia/dotsync mod github.com/lufia/dotsync v0.0.2 h1:JWm92Aw8pSKJ4eHiQZIsE/4rgwk3h5CjEbJ/S30wiOU= build -buildmode=exe build -compiler=gc build -trimpath=true build DefaultGODEBUG=ht

                                Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ
                              • GoプロジェクトへのOpenTelemetry計装でeBPF自動計装を採用しなかった話

                                既存GoプロジェクトにOpenTelemetryを計装する機会がありました。eBPFによる自動計装ではなく、手動計装を選んだ理由を説明します。 GoアプリケーションへのOpenTelemetry計装手段 Goにおいては、OpenTelemetryの自動計装が公式で用意されていません。公式サイトにAutomaticの章がないことからわかります。おそらく、ランタイムの制約で実行時にアプリケーションの挙動を変えることが難しいのでしょう。 トレースに十分なスパンを含めるために、現状では以下の2つの計装手段があります。既存のGoアプリケーションに導入する手間や影響範囲をイメージいただくために、概要に絞って解説します。 手動計装 eBPFによる自動計装(Work In Progres) 1. 手動計装 まず、OpenTelemetryのSDKをインストールし、セットアップをします。 func main

                                  GoプロジェクトへのOpenTelemetry計装でeBPF自動計装を採用しなかった話
                                • リトライ処理を追加するとバッチが安定することがあることもそこそこあるので「avast/retry-go」を使ってみる - じゃあ、おうちで学べる

                                  はじめに インフラエンジニアは日々の業務でプログラムを書く機会が多く、その中で処理の実行やHTTPの通信などでリトライ処理を実装する必要があることが少なくありません。リトライ処理を実装する必要は必ずしもなくても、実装することでバッチが安定することがあります。もっと言っておくとリトライ処理を実装することで、一時的なエラーによる処理の失敗を回避し、バッチ処理の安定性が向上する可能性があります。実行基盤によってジョブの再試行の自動化、最大再試行回数を設定するやPod失敗のバックオフポリシーなどとの兼ね合いを考える必要もあると思います。あとはマジでガー不のバグを引き寄せることもあるので注意が必要です。 はじめに シンプルな例 最大リトライ回数の指定 次のリトライまでの待ち時間の設定 特定の例外のみリトライするケース さいごに 今回はGolangには「retry-go」というリトライ処理を簡潔に実装

                                    リトライ処理を追加するとバッチが安定することがあることもそこそこあるので「avast/retry-go」を使ってみる - じゃあ、おうちで学べる
                                  • Borgo Programming Language

                                    Borgo is a new programming language that compiles to Go. For a high-level overview of the features and instructions on running the compiler locally, check the README. This playground runs the compiler as a wasm binary and then sends the transpiled go output to the official Go playground for execution. use fmt enum NetworkState<T> { Loading, Failed(int), Success(T), } struct Response { title: strin

                                    • GitHub - microsoft/go: The Microsoft build of the Go toolset

                                      Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. This repository, microsoft/go, contains the infrastructure Microsoft uses to build Go. The submodule named go contains the Go source code. By default, the submodule's remote URL is the official GitHub mirror of Go, golang/go. The canonical Git repository for Go source code is located at

                                        GitHub - microsoft/go: The Microsoft build of the Go toolset
                                      • 「ライドシェア」解禁1カ月、ドライバーが見た実態

                                        4月8日から東京都などで「日本型ライドシェア」が解禁され、約1カ月が過ぎた。 東京に神奈川や名古屋、京都市域を含む先行エリアではすでに90社(4月26日時点)の運行が行われており、解禁前に議論の対象となった安全性の面では、今のところ大きな事故が起きたという声は聞こえてこない。 その理由はシンプルで、まだそれほど多くの人が乗車を経験していないということがあるように感じる。本稿では正確に把握することが困難な日本型ライドシェアの実情を、数字や事業者、ドライバーの視点から追っていく。 ライドシェア利用を試みたが… 現在のライドシェアは、配車アプリである「GO」や「Uber」「S・RIDE」「DiDi」の4つのアプリ内から、国交省から定められた時間帯にのみ乗車できるというものだ。 この内「Uber」を除くアプリでは、ライドシェア車両を指定することはできず、その「Uber」も稼働台数は限定的とされてい

                                          「ライドシェア」解禁1カ月、ドライバーが見た実態
                                        • Goの標準のutf8.RuneStart関数がエレガントすぎる

                                          先日以下の記事を書きました。 ここでUTF-8の最初の文字かどうかの判定を以下の自作した関数で実装していました。 const ( t1 = 0b00000000 tx = 0b10000000 t2 = 0b00000110 t3 = 0b00001110 t4 = 0b00011110 ) func isUTF8LeadByte(tmp byte) bool { if tmp&tx == t1 { return true } tmp >>= 3 if tmp == t4 { return true } tmp >>= 1 if tmp == t3 { return true } tmp >>= 1 if tmp == t2 { return true } return false }

                                            Goの標準のutf8.RuneStart関数がエレガントすぎる
                                          • 『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか

                                            2024/04/24(Wed)に行われたGotanda.rb#58の登壇資料です。 https://gotanda-rb.connpass.com/event/315058/ 『Railsオワコン』と言われる時代に、なぜブルーモ証券はテックスタックの1つとしてRailsを選んだのかの解説資料です。

                                              『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
                                            • Goのエラースタックトレースの歴史と今後

                                              Jetpack ComposeとGraphQLによるServer Driven UI/jetpackcompose-grahpql-serverdrivernui

                                                Goのエラースタックトレースの歴史と今後
                                              • Goの格言”Errors are values”の本質を読み解く

                                                24/4/23 Findy Goのエラーハンドリング 最新事情Lunch LTにて発表 https://findy.connpass.com/event/314417/

                                                  Goの格言”Errors are values”の本質を読み解く
                                                • Goのmultiple errorsについて (2024年4月版)

                                                  大規模UIKitベースアプリへのTCAの段階的導入/gradual-adoption-of-tca-in-a-large-scale-uikit-based-app

                                                    Goのmultiple errorsについて (2024年4月版)
                                                  • 冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces

                                                    スライド内にリンクが複数あるため以下のSPA版で見ることを推奨します :) https://upamune.github.io/go-lunch-lt-2024-04 元ネタのブログ: https://tech.layerx.co.jp/entry/2023/11/29/132325 layerx.go #0: https://layerx.connpass.com/event/317228/

                                                      冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
                                                    • actions/cache@v4ではヒットしなかったときcache-hit=='false'にならない - ぽよメモ

                                                      cache-hitとは v4における挙動変更(?) cache-hitがfalseを返さない ワークアラウンド cache-hitとは GitHub Actionsのキャッシュ用actionであるactions/cacheは、指定したキーに完全一致するキャッシュがヒットしたかどうかのパラメータをそのstepのoutputとして保持している。 つまり以下の様にすることで、キャッシュがヒットしたかどうかを判定し、何かアクションするということが可能である。 jobs: run: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/cache@v4 id: cache with: path: ./cache-dir key: your-cache-key - if: steps.cache.output

                                                        actions/cache@v4ではヒットしなかったときcache-hit=='false'にならない - ぽよメモ
                                                      • failureでお手軽エラーハンドリング

                                                        failureでお手軽エラーハンドリング 2024/04/23 Goのエラーハンドリング 最新事情Lunch LT morikuni

                                                          failureでお手軽エラーハンドリング
                                                        • Goで実装するAppStoreの返金検知システム | QualiArtsエンジニアブログ

                                                          はじめに 株式会社QualiArtsで「IDOLY PRIDE(以降、アイプラ)」のバックエンドエンジニアチームのリーダーをしている末吉です。 主にゲームAPIの開発やインフラの運用、チームメンバーの進捗管理や開発スケジュールの策定等を担当しています。 課金アイテムを取り扱ってるiOSアプリの場合、返金が発生することがあります。こちらはユーザー側でAppStoreに返金の申請を行うなど、様々な要因で発生します。 こちらの返金を検知をするためには、AppStoreでの仕様に合わせたシステムをプロダクト側で構築する必要があります。 そこで、本記事ではタイトルの通りGoを使用したAppStoreの返金検知システムについて紹介します。 前提として、本記事は2024年4月現在の仕様に基づいているため、今後プラットフォーム側の仕様が変更になる可能性がある点については注意してください。 全体の流れ まず

                                                            Goで実装するAppStoreの返金検知システム | QualiArtsエンジニアブログ
                                                          1