並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 21 件 / 21件

新着順 人気順

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

  • golangで作るTCPIPプロトコル

    はじめに とりあえずIT業界に入ったら読んでおけという名著はいろいろありますが、その中の1冊がマスタリングTCP/IP入門編でしょう。 僕も買ってはいたものの読むのを途中で挫折していたので、今回しっかり読んでTCP/IPを再勉強してみたいと思います。 マスタリングTCP/IPを読みながらその他わからんことはググりつつ、golangでTCPIPプロトコルそのものを自作してみます。 方針は以下のようにします。 ethernetから作る データのやり取りにnetパッケージは一切使わない (訂正、PCのIPやMacアドレスを取るのにだけ使用しますた) データのやり取りに使うのはsyscallのsendtoとrecvfromだけ socketはRAW_SOCKETを使う golangやネットワークについても初心者の駆け出しですので間違えや実装ミス、変なコードがあるかもですが、生暖かい目でよろしゅうお

      golangで作るTCPIPプロトコル
    • Effective Error Handling in Golang

      This article explores Go error handling. Earthly is popular with Go developers for ensuring reproducible builds. Check it out. Error handling in Go is a little different than other mainstream programming languages like Java, JavaScript, or Python. Go’s built-in errors don’t contain stack traces, nor do they support conventional try/catch methods to handle them. Instead, errors in Go are just value

        Effective Error Handling in Golang
      • golangではスタックとヒープを気にする必要が無い

        調べようと思ったきっかけは、golang では以下のように ローカル変数のアドレスを戻り値としても問題ないということ。 package main import ( "fmt" ) type Animal struct { Name string Age int } func main() { animal := allocAnimal() fmt.Printf("allocate animal structure %p", animal) } func allocAnimal() *Animal { return &Animal{} } C/C++ ではローカル変数のポインタを戻り値とした場合、 スタック領域のポインタを関数外に渡してしまうため、コンパイル時点で警告が表示されます (なぜエラーにしない) 実行時には最悪、セグメンテーションフォールトで落ちます そのため、malloc や n

          golangではスタックとヒープを気にする必要が無い
        • 資料公開:「Golangを使ったバックエンドの実装入門」で DevelopersIO 2024に登壇しました #devio2024 | DevelopersIO

          ども、もこ(札幌オフィス)です。 本日開催のClassmethod Odyssey (DevelopersIO 2024) で登壇いたしましたので、資料とソースコードを公開します。 資料 ソースコード DEMOでお見せしたコードは下記にて公開しております。 https://github.com/mokocm/go-task-backend 所感 gRPC、なんとなく難易度が高そうなイメージがありますが、Protocol Bufferとの親和性も高く、非常に洗礼されたエコシステムとなっているため、是非これきっかけで興味を持っていただけると幸いです!

            資料公開:「Golangを使ったバックエンドの実装入門」で DevelopersIO 2024に登壇しました #devio2024 | DevelopersIO
          • Golang開発者のためのクリーンアーキテクチャ

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

              Golang開発者のためのクリーンアーキテクチャ
            • GitHub - siyuan-note/siyuan: A privacy-first, self-hosted, fully open source personal knowledge management software, written in typescript and golang.

              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 - siyuan-note/siyuan: A privacy-first, self-hosted, fully open source personal knowledge management software, written in typescript and golang.
              • Golang GenericsでREST APIを作る - Nature Engineering Blog

                Go 1.18が出てしばらく経ちました。みなさんGenerics使っていますか? @maaashです。 これは Nature Engineering Blog祭 の2日目の記事です。 祭り 最初は歓喜し、mapやfilter的なfor文を少しずつgithub.com/samber/loに切り替えたり、 internalなsliceパッケージを作ってみたり。 ですが心のどこかで欲求不満が蓄積されていくのを感じていました。 使い尽くしていないのでその真価が理解できていなくて物足りないような、 こんなに面白いおもちゃが与えられたのに遊び尽くしていないような感覚です。 Genericsを使ったコードを書きたい!と思いながら日々の業務でREST APIを書いていると、、 あれ、これはかの When To Use Genericsの結論にある: If you find yourself writing

                  Golang GenericsでREST APIを作る - Nature Engineering Blog
                • flurry on Twitter: "情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W"

                  情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W

                    flurry on Twitter: "情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W"
                  • Goの組織でバックエンドTypeScriptを採用してどうだったか / How was adopting backend TypeScript in a Golang company

                    2025/04/22 フルスタックTypeScriptの現在地:3社が本音を語るハイブリッド勉強会 https://toggle.connpass.com/event/349725/ Goの組織でバックエンドTypeScriptを採用してどうだったか @osuzu ソフトウェアエンジニア

                      Goの組織でバックエンドTypeScriptを採用してどうだったか / How was adopting backend TypeScript in a Golang company
                    • ((🐑++)) on Twitter: "パケットが帰ってくるとピングーが出てくるpingコマンドを作りました 楽しいwww https://t.co/VxeVtIt2IB #golang #cli #ping https://t.co/KoLlEou9Ou"

                      パケットが帰ってくるとピングーが出てくるpingコマンドを作りました 楽しいwww https://t.co/VxeVtIt2IB #golang #cli #ping https://t.co/KoLlEou9Ou

                        ((🐑++)) on Twitter: "パケットが帰ってくるとピングーが出てくるpingコマンドを作りました 楽しいwww https://t.co/VxeVtIt2IB #golang #cli #ping https://t.co/KoLlEou9Ou"
                      • DNS改竄検知ツールをgolangで作った(Slack通知付き) - Code Day's Night

                        DNSのNSレコード、MXレコードの改竄を検知(変更検知)し、オプションでSlack通知もできるツールを公開しました。 https://github.com/ichikaway/nschecker Go言語で開発し、LinuxとMacのバイナリもダウンロードできます。 すぐに実行できるため、cron指定しておけば意図しないレコードの変更がわかります。 作った経緯 最近、ドメインハイジャックの事件を目にするよになりました。 DNS設定の改ざんによるドメイン名ハイジャックに注意喚起(JPRS) | ScanNetSecurity 2020年6月にコインチェックのドメインハイジャック事件が起きています。 コインチェックのドメインハイジャックの手法を調査した - Shooting!!! この記事を読むと、改竄されたレコードは、ns-1515.awsdns-"0"61.orgのような一見正しそうだが

                          DNS改竄検知ツールをgolangで作った(Slack通知付き) - Code Day's Night
                        • 少人数での爆速開発を目指してgolang×GCPの技術選定をした話

                          この1年くらいでgolangとGCPを使ったWebアプリケーションをフルスクラッチで開発したので、その際の技術選定の理由だったりを言語化して残しておきたいと思い、HHKBを手に取りました。 少し長くなってしまいましたが、どなたかの参考になればと思います。 どんな人が書いてるの? 立ち上げ期のスタートアップCTOをしています。雑に言うとフルスタックエンジニアです。 開発歴はざっくり、Androidアプリの開発歴が一番長くて3年、バックエンド開発(Elixir × GCP)に転身して1年ほど担当、その後、これから言語化するプロジェクトを1年くらいかけてgolangで構築したところです。 今回の範囲からは外れますが、並行してNuxt.js×TypeScriptで書かれたフロントエンド開発も行っていたので、今はその辺りも一通り習得しています。 1. 方針 表題にもある通り、少人数での爆速開発を目指

                            少人数での爆速開発を目指してgolang×GCPの技術選定をした話
                          • Golangでいい設計を実践するための6つのツール

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

                              Golangでいい設計を実践するための6つのツール
                            • golangで作るTLS1.2プロトコル

                              はじめに 前回自作でTCPIP+HTTPを実装して動作を確認することができました。 しかしご覧頂いた方はおわかりのように、通信はHTTP=平文でやり取りされておりパスワードなど機密情報が用意に見れてしまう状態です。 普段我々がブラウザに安心してパスワードを入力しているのは通信がTLSで暗号化されているからです。ではそのTLSの仕組みはどうなっているのでしょう? 恥ずかしい限りですが僕はわかりません。😇😇😇 ということで以下を読みながらTLSプロトコルを自作してみてその仕組みを学ぶことにします。 マスタリングTCP/IP情報セキュリティ編 RFC5246 プロフェッショナルSSL/TLS 今回の実装方針です。 TLS1.2プロトコルを自作する 暗号化などの処理はcryptパッケージの関数を適時利用する tcp接続にはconnectを使う 鍵交換はまずRSAで作成する TLS_RSA_W

                                golangで作るTLS1.2プロトコル
                              • 【30歳/完全未経験/独学】webアプリを作製しました【Golang, Next.js, MySQL, Docker, GitHub Actions CI, AWS Fargate on ECS】 - Qiita

                                完成物 ER図 画面遷移図 figma, 原寸画像 AWS構成図 ※備考※ GitHub Actions CIは構築済みです。 GitHub Actions CD, apiのprivate subnet化にも取り組んでいます。 EC2インタンスは通常時停止です。 技術選定理由 プログラミング、IT業界ともに未経験で着手し独学で作りました。 Go 比較対象:JAVA、Ruby、Python、PHP コンパイラ言語であり実行速度が高速である 静的型付けであり、コンパイル前にバグを発見しやすい 静的型付けかつ記述自由度が低いことから、以下2点を利点と考えた 開発を中長期まで続けた際にも、加筆・改修しやすい 他人のコードを読んだ際に学びやすい Javaも多少書いてみたが、簡素にかけるGoの方がしっくりきた SHOWROOM、IRIAM、Twitch、AbemaTVといった動画配信サービスにも採用さ

                                  【30歳/完全未経験/独学】webアプリを作製しました【Golang, Next.js, MySQL, Docker, GitHub Actions CI, AWS Fargate on ECS】 - Qiita
                                • 【golang】sqlcコマンドで「SQLクエリから型安全なGoコードを生成」し、生産性を上げたい

                                  【golang】sqlcコマンドで「SQLクエリから型安全なGoコードを生成」し、生産性を上げたい by nao · 2022年6月25日 前書き:sqlcとは 本記事は、kyleconroy/sqlcの基本的な情報を紹介します。 sqlcは、DBスキーマ(DBテーブル定義)、SQLクエリ定義、設定ファイルの3点をインプットとして、型安全なCRUDコード + DBテーブルに対応したモデル(構造体)を自動生成します。ここでのモデルの自動生成には、複数テーブルをJOINしたクエリ用の構造体も含まれます。 個人的な視点では、sqlcは「SQLクエリを検証してから、そのクエリを実行するGolangコードを書いて、クエリ結果を受け取るための構造体を書くのが大変」という課題を解決するツールです。独自のDSL(Domain Specific Language)は殆ど登場しないので、SQLをゴリゴリ書ける

                                    【golang】sqlcコマンドで「SQLクエリから型安全なGoコードを生成」し、生産性を上げたい
                                  • golangで便利ツール作ろうと思ったらos/execでハマった話 - Qiita

                                    はじめに PoCの初期段階などで、いくつかのシステムを組み合わせて動作させるような場面では、 リポジトリが分散し、開発者ごとに違う言語で小規模なシステムを構築していることがあります。 そんな中で、動作確認をしたり、不具合を再現させたりする際、以下のような手作業が発生していました。 システムAを実行してCSVを吐く CSVをシステムB直下にコピーする システムBを実行して結果を得る プログラマーの三大美徳の怠惰担当の私は、手動で何かをすることが嫌いなので、自動化するツールを作成していきます。 シェルスクリプトで書いても良いのですが、実行するデータパターンが複雑だったり、分岐したりすると面倒なので、私はgolangで作成することが多いです。 この記事では、そんな中でハマった出来事と、回避方法をご紹介します。 根本解決していないものが多いので要注意&コメントお待ちしています。 先にまとめ 変なと

                                      golangで便利ツール作ろうと思ったらos/execでハマった話 - Qiita
                                    • Golang の Generics で使いたいものは大体 samber/lo にあった話 - Qiita

                                      はじめに 本記事は Go Advent Calendar 2022 の18日目の記事です。 Generics を使った関数でやりたかったことが、samber/lo に大体揃ってたという話をします。 すでに自前で書いてた関数もいくつかあったのですが、このライブラリを知り置き換えていったという体験談です。 ※結果的に「samber/lo のなかでこの辺り使えるかも」というものを私の独断と偏見でピックアップする記事になってます。 samber/lo とは samber/lo は 16日目のアベンドカレンダーの記事 でも取り上げられていまして、そこから説明を引用させていただきました。 samber/loは,多種多様な便利関数を提供するパッケージです。 JavaScriptのライブラリのLodashライクであるとREADMEにも記載があります。 個人的には大好きなパッケージでして,Map,Filte

                                        Golang の Generics で使いたいものは大体 samber/lo にあった話 - Qiita
                                      • 【Golang】fe3dback/go-arch-lintでアーキテクチャの破壊を防ぐ

                                        【Golang】fe3dback/go-arch-lintでアーキテクチャの破壊を防ぐ by nao · 公開済み 2025年2月13日 · 更新済み 2025年2月13日 前書き:アーキテクチャは容易に壊される アーキテクチャリンターであるfe3dback/go-arch-lintをnao1215/sqlyに導入したので、使用方法のメモを記事として残します。結論としては、初期設定が面倒ですが、期待通りの効果が得られました。なお、既存コードがカオスなアーキテクチャの場合、go-arch-lintを採用できないと思われます。 まず、アーキテクチャをリンターでチェックする発想に至った理由から、説明します。以前、ペアプロ中にドライバ側(実装する人)がアーキテクチャルールに反しているのを偶然目撃しました。違反内容は、「外部サービス操作用パッケージ内でのみ使用できる構造体をユースケースレイヤーから呼

                                          【Golang】fe3dback/go-arch-lintでアーキテクチャの破壊を防ぐ
                                        • proposal: cmd/go: add .ʕ◔ϖ◔ʔ as an alternate spelling of .go in file names · Issue #59968 · golang/go

                                          The new (apparently closed-source) programming language Mojo uses files named .mojo, but it allows .🔥 as an alternate spelling of .mojo, as in hello.🔥. Issue #45549 tracks handling of unicode in import paths, module paths, and file names. We have been proceeding cautiously due to the many subtle issues involved in cross-platform support, case-insensitive file systems, and so on: modules must wor

                                            proposal: cmd/go: add .ʕ◔ϖ◔ʔ as an alternate spelling of .go in file names · Issue #59968 · golang/go
                                          • PHPエンジニア視点で見るGolangの魅力とPHPとの違い

                                            昨年の9月、私はPHPエンジニアからGolangエンジニアへと転向しました。 それから1年が経ち、技術的な視点はもちろんのこと、開発プロセスへのアプローチにも変化が生まれました。 この記事では、Golangに触れ、得た経験や気づきを振り返ります。 PHPエンジニアの皆さんが、これからGolangを学びたいと思った際の参考になれば幸いです。 循環インポート PHPでは、循環依存に対する強制的な制約がないため、柔軟にクラスやファイル間で参照し合うことができます。 ただし、この柔軟さは設計が複雑になった場合に依存関係がスパゲッティ状になるリスクもはらんでいます。 そのため、PHPでも設計の段階で依存関係に気を配ることが求められます。 また、状況によってはPHPでも循環参照に起因するエラーが発生する場合があります。 一方、Golangでは循環インポートが明確に禁止されており、具体的には以下のような

                                              PHPエンジニア視点で見るGolangの魅力とPHPとの違い
                                            1