並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 18 件 / 18件

新着順 人気順

GOの検索結果1 - 18 件 / 18件

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

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

      最速で成果を出す方法|Go Kiritani / Chatwork 執行役員
    • 自社サービスのバックエンドを 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)
        • awslim - Goで実装された高速なAWS CLIの代替品を作った - 酒日記 はてな支店

          最初に3行でまとめ AWS CLIは便利です。しかし起動が遅いので、Goで実装された高速な(ただし機能は少ない)代替品を作りました。awslim といいます リリースバイナリは無駄に大きいので、必要な機能だけを組み込んだビルドを簡単にできるようにしてあります。ビルドして使うのがお勧めです どうぞご利用下さい github.com 以下はこれに至るまでの経緯とか、実装や使い方の話とかです。長いです。 作成の経緯 AWSの各種サービスにアクセスするための AWS CLI は、スクリプトやコマンドラインから処理を自動化するために大変便利なツールです。AWSでサーバーサイドの開発、運用している人であれば、ほぼ全員がお世話になっているんじゃないかと思います。 しかし、AWS CLI (コマンド名aws) には「起動が重い」という問題があるなとずっと思っていました。具体的には、aws --versio

            awslim - Goで実装された高速なAWS CLIの代替品を作った - 酒日記 はてな支店
          • Goでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ

            Goで単体テストを実装する場合、動的な言語のように「テスト実行中に外部への依存を置き換える」といったことはできません。代わりに、 外部への依存を引数で渡す 外部への依存をインターフェイスで渡す のように、テスト対象をテスト可能な実装に変更しておき、テストの時は外部への依存をモック等に置き換えて実行する場合が多いのではないかと思います。 個人的な体験でいえば、テスト可能な実装に置き換えていく過程で設計が洗練されていく*1ことは度々あるので、面倒を強制されているというよりは設計を整理するための道具といった捉え方をしているのですが、そうは言っても動的な言語に比べると面倒だなと感じるときは少なからずあります。既存の実装がテスト可能になっておらず、変更するコストが高い場合は特にそうですね。 そんなとき、気軽にモンキーパッチできると嬉しいんじゃないかと思って、テストの時だけ関数を置き換えられるようなラ

              Goでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ
            • 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
              • 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 ビルドを高速化する
                • メルカリ ハロの技術スタックとその選定理由 | メルカリエンジニアリング

                  こんにちは。メルカリ ハロのSoftware Engineer (Engineering Head)の@napoliです。連載:Mercari Hallo, world! -メルカリ ハロ 開発の裏側-の2回目を担当させていただきます。 2024年3月上旬にメルカリ ハロという新しいサービスが公開されました。メルカリ ハロは好きな時間に最短1時間から働ける「空き時間おしごとアプリ」です。 この記事ではメルカリ ハロを作るにあたり、どういった技術スタックやアーキテクチャを選定したのか、さらにその背景と意思決定をご紹介したいと思います。 この記事で得られること メルカリ ハロで採用されている技術スタックやアーキテクチャの全体像 その意思決定の理由とプロセス これから新規サービスを立ち上げるうえでのヒント 主な技術スタック メルカリ ハロで利用されている主な技術スタックは以下のとおりです。 バッ

                    メルカリ ハロの技術スタックとその選定理由 | メルカリエンジニアリング
                  • マイクロサービス化するならリビルドで!ビジネスロジックをGoで書き直してわかったこと - MonotaRO Tech Blog

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

                      マイクロサービス化するならリビルドで!ビジネスロジックをGoで書き直してわかったこと - MonotaRO 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の標準の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関数がエレガントすぎる
                        • IIJ、Markdown形式の文章を手軽にプレビューできる「cats_pr_dogs」を無償公開

                            IIJ、Markdown形式の文章を手軽にプレビューできる「cats_pr_dogs」を無償公開
                          • Next.jsとGoを使っていきます - トレタ開発者ブログ

                            こんにちは、VPoEの北川です。 今回はトレタで現在使用している技術スタックについて紹介します。 創業時から稼働している予約・顧客台帳サービス「トレタ」から現在の注力事業のモバイルオーダーサービス「トレタO/X」までをあらためて振り返ってみると、まるで異なる技術スタックになっているので歴史的な背景などを辿りながら紹介していきます。 技術スタックの変遷 予約・顧客台帳「トレタ」 会社名にもなっている予約・顧客台帳の「トレタ」は創業当時から稼働している築11年ほどのシステムです。 サーバーサイドにはRubyとRubyOnRailsで作られた巨大なコードベースのAPIサーバーがあり、予約台帳のiOSアプリやウェブ予約などのWebアプリケーションなどが利用しています。 長年このモノリシックなシステムを成長させてきたので、以前からトレタを知ってくださっている人にはトレタはRubyの会社と認知されてい

                              Next.jsとGoを使っていきます - トレタ開発者ブログ
                            • 「ライドシェア」解禁1カ月、ドライバーが見た実態

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

                                「ライドシェア」解禁1カ月、ドライバーが見た実態
                              • 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'にならない - ぽよメモ
                                • GitHub - 0x2E/fusion: A lightweight, self-hosted friendly RSS aggregator and reader

                                  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 - 0x2E/fusion: A lightweight, self-hosted friendly RSS aggregator and reader
                                  • Don’t return err in Go — akavel's digital garden

                                    Instead, add missing details relevant for debugging. Some people like to complain that Go requires writing tons of “if err != nil { return err }” blocks. Those people don’t understand Go errors. The thing is, what they complain about is actually a completely wrong way of handling errors in Go: return err is an antipattern. Let me show what I mean on some sample code: a helper library for configuri

                                    • GitHub - AccentDesign/gcss: CSS written in Pure Go

                                      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 - AccentDesign/gcss: CSS written in Pure Go
                                      1