並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 19 件 / 19件

新着順 人気順

golangの検索結果1 - 19 件 / 19件

  • VSCodeで生産性を上げる

    はじめに こんなツイートを見て執筆をしようと思いました。 実際に、VSCodeは機能の追加や拡張機能の開発が活発に行われており、かつUIもユーザーフレンドリーであるため人気のエディターだと思います。VSCodeを使いこなせるのとそうでないのではエンジニアリングの生産性に大きな差が出てしまうと思います。 パンくずの設定 '>' を入力します。 '>' preferences: Open User Settings (JSON)を入力します。 僕のsettings.jsonは以下です。 { "workbench.colorTheme": "GitHub Dark", "terminal.integrated.fontFamily": "MesloLGM Nerd Font", "terminal.integrated.profiles.osx": { "fish": { "path": "/o

      VSCodeで生産性を上げる
    • Go界隈で巻き起こった go:linkname 騒動について - ANDPAD Tech Blog

      お久しぶりです、ANDPADボードの tomtwinkle です。 この記事はGoの go:linkname 騒動は 6/18に行われた Go Bash で話した内容を要約したものです。 そもそも go:linkname とは何かといえば internal packageやprivate var/funcなど普通はアクセスできないオブジェクトシンボルをエイリアス出来るようCompilerに指示して、アクセス可能にするcompiler directiveです。 go:linkname はprivateな変数へアクセス可能な便利なものでしたが unsafe packageのimportを必須とする通り、せっかく互換性や安全を考慮して作られているGoプログラムを簡単に破壊できる諸刃の剣でした。 詳細は発表スライドを見てください。 go:linkname 禁止騒動 Go 1.23 のリリースまで2

        Go界隈で巻き起こった go:linkname 騒動について - ANDPAD Tech Blog
      • モノレポの開発環境でDocker ComposeをやめてTaskfileを導入した話

        こんにちは、Sally社 CTO の @aitaro です。 マーダーミステリーアプリ「ウズ」とマダミス制作ツール「ウズスタジオ」、マダミス情報サイト「マダミス.jp」を開発しています。 はじめに この記事ではウズの開発当初から利用していた Docker Compose をやめることにした背景についてご紹介します。 Docker Compose は各マシンの開発環境での差異を吸収するというメリットがあり、多くの開発現場で導入されていますが、Docker Composeの抱えているデメリットを勘案して、最終的に一部を残して辞める決断をしました。 Docker Composeの特徴 Docker Composeは、複数のコンテナを定義し、管理するためのツールです。ウズの開発環境では、バックエンド、フロントエンド、データベースなどをそれぞれコンテナ化して、Composeで一括管理していました。こ

          モノレポの開発環境でDocker ComposeをやめてTaskfileを導入した話
        • Node.jsでTypeScriptのコードを実行できるようになるかも - hiroppy's site

          module: add --experimental-strip-types by marco-ippolito · Pull Request #53725 · nodejs/node It is possible to execute TypeScript files by setting the experimental flag --experimental-strip-typ... 💁‍♀️ まだマージされてない点に注意してください --experimental-strip-typesというフラグを実行時に付けることにより、Node.jsでTypeScriptのコードを実行できるようになるPRが出てきました。 背景 TC39でも型注釈の話題(議事録を読むとブラウザとの兼ね合いもあり道のりは長そう)が存在するほどJSのコードにおいて、型は当たり前となっています。 Node.jsと同

            Node.jsでTypeScriptのコードを実行できるようになるかも - hiroppy's site
          • Golang開発者のためのクリーンアーキテクチャ

            はじめに クリーンアーキテクチャは、ソフトウェア設計の分野で非常に重要な概念です。 しかし、その理解は容易ではなく、明確な正解が存在するわけではありません。 多くの人が異なる解釈を持ち、他の設計思想と混在していることもあります。 この記事では、自分なりの視点からクリーンアーキテクチャを解釈し、その整理した内容を共有します。 このアーキテクチャの目的は、システムの各層を独立させ、変更に強く、テストしやすい設計を実現することです。 この記事では、クリーンアーキテクチャの基本概念、Golangでの実装方法、およびディレクトリ構成について詳しく説明します。 なお、この記事では個人的な見解を述べており、必ずしも正解を書いているわけではありません。もし誤りがあれば、ぜひご指摘いただけると幸いです。 クリーンアーキテクチャの基本概念 クリーンアーキテクチャの元となったのは、ロバート・C・マーチン(通称「

              Golang開発者のためのクリーンアーキテクチャ
            • ミニマムな React Web アプリケーションの技術スタックを大公開! - inSmartBank

              はじめに こんにちは。サーバーサイドエンジニアの mokuo です。 最近、ミニマムな React アプリを実装する機会がありました。 社内のメンバーにアドバイスをもらいながら、今(2024年前半) React アプリをミニマムに作るならこんな感じかな、という構成になった気がするので、ご紹介したいと思います。 実例の1つとして参考にしていただけますと、幸いです。 はじめに 本文 📝 機能要件 ⚒️ 採用したツール (npm モジュール) 📁 ディレクトリ構成 👨‍💻 プロトタイピングの実施 🍩 おまけ コンポーネント設計について フロントエンドに DDD のエッセンスを取り入れてみたい おわりに 本文 📝 機能要件 社内の限られた CS メンバーのみが利用する、管理画面を開発しました。 バックエンドは Golang で実装される API サーバーで、認証機能以外だと、2つの機能

                ミニマムな React Web アプリケーションの技術スタックを大公開! - inSmartBank
              • Go1.23で導入予定のイテレータを完全理解する✌️

                イテレータについて完全理解するぞ!!!! 皆さん、Go1.23で導入予定のイテレータすごい楽しみですよね? 筆者はすごい楽しみです。Go1.18でジェネリクスが導入されて書き方の幅が広がったように、今回のイテレータもGoの書き方の幅を広げる機能になるのではと予想しております! https://github.com/golang/go/issues/61405 を見ると分かるように「add range over int, range over func」の機能はGo1.23のマイルストーンに積まれています。 「range over int」の機能についてはGo1.22で既に実装されています[1] 。「range over func」は来たるGo1.23に実装予定だと思われます。このブログでは、導入予定の型/関数とその使い方を深ぼっていきたいと思います! このブログの中では「range ove

                  Go1.23で導入予定のイテレータを完全理解する✌️
                • sqlcを新規サービスに採用してみた!

                  golang.tokyo #35 〜カンファレンス 後夜祭!〜 LT会登壇資料 https://golangtokyo.connpass.com/event/317973/

                    sqlcを新規サービスに採用してみた!
                  • 「Python」と「Go」を徹底比較 どちらのプログラミング言語を学ぶべき?

                    ダウンロードはこちら 世の中には幾つものプログラミング言語が存在する。開発者がこれから学ぼうとするプログラミング言語を選ぶことは簡単ではない。そこで指標になるのが、近年の勢いだ。開発者の間で人気が高まっているプログラミング言語を選ぶことは、トレンドに追従したり、求人市場でより良い職を得たりする際に役立つ可能性がある。 「Python」と「Go」(「Golang」とも)は、どちらも近年人気のプログラミング言語だ。それぞれ独自の文法や仕組みを持っており、適する用途も異なる。本資料は、サンプルコードと共にPythonとGoの違いをさまざまな面から解説する。両者の違いを理解し、適切なプログラミング言語を選ぶための手掛かりを得よう。 中身を読むには、「中身を読む」ボタンを押して無料ブックレットをダウンロードしてください。 連載:「Python」と「Go」の違いを比較

                      「Python」と「Go」を徹底比較 どちらのプログラミング言語を学ぶべき?
                    • gRPC Over HTTP/3

                      Introduction At the time of writing, HTTP/3 is supported by 30.4% of the top 10 million websites. This market penetration is astounding, but it seems like all of this progress has been possible almost exclusively by work on browsers, load balancers and CDN providers. What about the backend? How’s HTTP/3 doing there? The answer, sadly, is not as incredible. Because of this, I have been very interes

                        gRPC Over HTTP/3
                      • Why People are Angry over Go 1.23 Iterators

                        NOTE: This is based on, but completely rewritten, from a Twitter post: https://x.com/TheGingerBill/status/1802645945642799423 TL;DR It makes Go feel too “functional” rather than being an unabashed imperative language. I recently saw a post on Twitter showing the upcoming Go iterator design for Go 1.23 (August 2024). From what I can gather, many people seem to dislike the design. I wanted to give m

                        • Dockerコンテナを活用したテストツール【Testcontainers】 - RAKUS Developers Blog | ラクス エンジニアブログ

                          はじめに Testcontainersとは Testcontainersのメリット ハンズオン 環境設定 goプロジェクトの作成 必要なパッケージのインストール テストコードの作成 コンテナリクエストの設定 コンテナの起動 コンテナのホストとポートの取得 結果の確認 まとめ はじめに こんにちは! エンジニア2年目のTKDSです! 前回はDaggerを紹介しました。 今回もコンテナ技術を活用して、テストを容易にするツールについて紹介します。 今回取り上げるのは、統合テストやエンドツーエンドテストのためにDockerコンテナを利用するライブラリ、Testcontainersです。 Testcontainersとは Testcontainersはさまざまなプログラミング言語(Java、Go、Python、Node.jsなど)向けに提供されており、Daggerと同様にテスト用のコンテナを簡単に作

                            Dockerコンテナを活用したテストツール【Testcontainers】 - RAKUS Developers Blog | ラクス エンジニアブログ
                          • データベースのER図を最新の状態に保ちつつ、いつでも閲覧できるようにした - SO Technologies 開発者ブログ

                            こんにちは、CTO室の丸山です。相変わらず某CTOからの無茶振りを捌いております。 今回は、今開発しているSaaSサービスのER図を、なるべく手をかけずに最新状態に保ちながら、いつでも閲覧できるようにするために実践したことをご紹介できればと思います。 前提環境 今回ご紹介する方法は以下の環境下で実現しています。 インフラ: GCP データベース: PostgreSQL データベースのスキーマ管理: sql-migrate CI/CD: Github Actions モチベーション 開発・データ分析を行う上で、データベースのスキーマ構造を俯瞰的に把握するための手段としてER図を書いているのですが、これを最新の状態に保ち続けるのは割と面倒であると常々感じていました。 そこで、Schemaspyを使用してデータベースのスキーマ構造からER図を生成するようにしたものの、以下のような手順をスキーマ構

                              データベースのER図を最新の状態に保ちつつ、いつでも閲覧できるようにした - SO Technologies 開発者ブログ
                            • 誰でもMicrosoftの従業員になりすましてメールを送れるバグが発見される

                              MicrosoftのメールクライアントであるOutlookに電子メールを送信する際に、誰でもMicrosoftの従業員になりすました電子メールを送信できるバグが発見されています。 I want to share my recent case: > I found a vulnerability that allows sending a message from any user@domain > We cannot reproduce it > I send a video with the exploitation, a full PoC > We cannot reproduce it At this point, I decided to stop the communication with Microsoft. pic.twitter.com/mJDoHTn9Xv— slons

                                誰でもMicrosoftの従業員になりすましてメールを送れるバグが発見される
                              • Go言語の学習 その9 (複数の戻り値を返す関数) - Cou氏の徒然日記

                                Go言語(Golang)では、複数の戻り値を返すことができるようです。 CとはJavaだと戻り値は1つなので、結構新鮮です。 [calc/devide.go] package calc func Divide(a int, b int) int { return a / b } func Reminder(a int, b int) int { return a % b } func Divide2(a int, b int) (int, int) { return a / b, a % b } Devide2関数を新たに定義して、商と余りの2つのint型の値を返すようにします。 戻り値が複数ある場合は、カッコで囲って、その中に型を羅列すればいいようです。 そして、return文でも、カンマ区切りで羅列すればOK。 (順番は当然意識しないといけないですが…) [main/main.go]

                                  Go言語の学習 その9 (複数の戻り値を返す関数) - Cou氏の徒然日記
                                • golangci-lintのModule Plugin Systemが良さそうなので使ってみた

                                  はじめに この記事では、golangci-lintのv1.57.0でリリースされたModule Plugin Systemについて既存のPlugin機構を交えて解説します。 弊社サービスSNKRDUNKのバックエンドはGoで実装されておりLinterはgolangci-lintを使っています。 Pluginで動かしているLinterもあり、その影響でローカル環境でgolangci-lintを実行するのがやや手間になっており、何か良い方法がないかと調べていたらModule Plugin Systemというものがリリースされていたので、自分自身の理解のためにも今回の記事を書くに至りました。 golangci-lintのPlugin Systemについて まずはじめに、golangci-lintにlinterを追加する方法は以下の2通りあります。 1. public linterとしてgolan

                                    golangci-lintのModule Plugin Systemが良さそうなので使ってみた
                                  • go-readabilityをwasmにしてCloudflare Workersで本文抽出する - *iroi*

                                    先日Cloudflare Workersでウェブページの本文を抽出したくなったことがありました。本文抽出といえば、@mozilla/readabilityが使えそうです。しかし依存に含まれるnwsapiにはFunctionコンストラクタが多用されており*1、Cloudflare Workersでは動作しません。これを修正するのも大変そうです。 そこで、TinyGoを使用してgo-readabilityをwasmにコンパイルしてみることにしました。 TinyGo のドキュメントUsing WASM | TinyGo のままではCloudflare Workersでは動かなかったので、TinyGoに含まれるwasm_exec.jsを少し修正したり*2、 import側もwasmファイルをfetchしているのを変更したり*3すると無事動きました。 動作するコードは https://github.

                                      go-readabilityをwasmにしてCloudflare Workersで本文抽出する - *iroi*
                                    • Go言語の学習 その10 (エラーハンドリング) - Cou氏の徒然日記

                                      Go言語(Golang)では、複数の戻り値を返すことができるのですが、その代わり、Javaのような例外スローというものがないです。 といっても似たような機構はあり、Go言語では、エラーハンドリングの慣習としては、戻り値の最後に errorsパッケージで作ったエラーを返すというもの。 そして上位(呼び出し側)は、その戻り値をチェックするようです。 [calc/devide.go] package calc import "errors" func Divide2(a int, b int) (int, int, error) { if b == 0 { return 0, 0, errors.New("Do not divide by 0.") } return a / b, a % b, nil } 上記のように最後の戻り値として「error」オブジェクトを返すようにします。 その際、 エ

                                        Go言語の学習 その10 (エラーハンドリング) - Cou氏の徒然日記
                                      • Go開発者のための遊び場を用意する - Kindで始めるKubernetesの開発環境構築 - じゃあ、おうちで学べる

                                        はじめに Kind (Kubernetes in Docker) は、ローカル環境でKubernetesクラスタを簡単に構築できるツールです。そう、「簡単に」と言いましたが、「簡単」の定義は人によって大きく異なりますから。ある人にとっては「簡単」でも、他の人には「アラート対応を猫に教えるくらい難しい」かもしれません。 「何回説明しても伝わらない」はなぜ起こるのか? 認知科学が教えるコミュニケーションの本質と解決策 作者:今井むつみ日経BPAmazon さあ、気軽に「簡単な」Kubernetes体験の世界へ飛び込みましょう。途中で迷子になっても、パニックにならないでください。結局のところ、私たちプログラマーは迷子になることが仕事なのですから。 サンプルコード 動いているものをおいておくと記事の安心感と信頼性に繋がるので置いておきます。 github.com Kind公式ドキュメント kind

                                          Go開発者のための遊び場を用意する - Kindで始めるKubernetesの開発環境構築 - じゃあ、おうちで学べる
                                        1