タグ

takaya030のブックマーク (3,099)

  • Golang並行処理入門part1

    コレは何? Golangの並行処理に入門したときのメモです。普段はHCLやyamlを中心に扱っているため、久しぶりにGolangのお勉強がてらまとめました。 part2は以下です。 前提 並行処理 is 何?は書いてない Golangでよく出てくる並行処理(主にsync.WaitGroupとchannel)についてサラッと書いてる 理論とか丁寧な解説は書いてない Golangでの並行処理 WaitGroup 以下の場合に有効な並行処理 並行処理の結果を気にしない 他に結果を収集する手段がある ドキュメントはこちら:WaitGroup func main() { var wg sync.WaitGroup wg.Add(1) // カウントを1増やす go func() { defer wg.Done() // goroutine終了時にWaitGroupカウントを1減らす fmt.Prin

    Golang並行処理入門part1
  • Go言語での複数チャネルからのメッセージ受信 - ryochack.blog

    Goではgoroutineを使うことで並行処理をとても簡単に実行できるが、複数goroutineとの同期が難しい。 そこで、複数走らせたgoroutineのメッセージを用いた同期方法について考えてみた。 以下のように、複数のチャネルからのメッセージを受信する必要がある時、どうやって各goroutineからのメッセージを、同時に、最後まで、受信すればいいか? func f(msg string, n int) chan string { ch := make(chan string) go func() { for i:=0; i<n; i++ { ch <- msg + " please!" } close(ch) }() return ch } func main() { ch1 := f("beer", 4) ch2 := f("juice", 2) ch3 := f("water",

    Go言語での複数チャネルからのメッセージ受信 - ryochack.blog
  • Goのgoroutine, channelをちょっと攻略! - Qiita

    Gogoroutine, channelがわからない マルチスレッドってなんやねん! go ステートメントってなんやねん! <- なんやねんこれ!意味不明 これをやりましょう → Go by Example やっていれば、なんとなくわかってくる。かも 以下は Go by Exampleを少し変更を加えて実行した例です。 Goroutineとは Tour of go によると goroutine (ゴルーチン)は、Goのランタイムに管理される軽量なスレッドです。 まず、スレッドがちゃんと理解してない スレッド:一連のプログラムの流れ シングルスレッド:1つのスレッドだけからなるプログラム マルチスレッド:1つのプログラムで複数のスレッドを同時に実行する マルチスレッド最強やんけ!ずっとこれ使えば小早川セナじゃん! → 実際には、しっかり理解して使わないとパフォーマンスが低下したり、デッドロ

    Goのgoroutine, channelをちょっと攻略! - Qiita
  • 今すぐ「レイヤードアーキテクチャ+DDD」を理解しよう。(golang) - Qiita

    とはいっても記事を読み終わるのに三時間くらいかかる気がします。 対象読者 レイヤードアーキテクチャ+DDDの実装に困っている方 バックエンドエンジニアを目指す学生 APIサーバを開発したことがある方 はじめに アーキテクチャは学習コストが高いと言われています。その要因の一つとして考えられるのはアーキテクチャの概念を学んだとしても、アーキテクチャの細かい部分は実装者に左右されるので、ネット上にあるプログラムは概念とはズレがあるので混乱しやすいことだと思います。それに加えて他のサイトを参考にした時もやはり実装者による違いで混乱してしまうからです。 したがって、概念とズレがある部分はしっかり言及したうえで解説することが良いと思います。 アーキテクチャを採用する意味 レイヤ間が疎結合になるため、ユニットテストが行いやすいこと。 責務がはっきりしているので、保守性が高いこと。 途中からフレームワーク

    今すぐ「レイヤードアーキテクチャ+DDD」を理解しよう。(golang) - Qiita
  • Golang (net/http)とFirestoreで簡単なREST APIを作ってみた。 - 登山好きエンジニアのテックブログ

    1. 概要 今回の内容 今回作るもの 注意事項 実際に筆者が作ったサンプルコードはこちら 2. 環境設定 project設定 今回作ろうとしているAPIのディレクトリ構造 2. 全体像 3. controller層実装 controller層のインターフェース HandlerHttpRequestとHandlerHttpRequestWithParameterの違い 詳細な実装 http methodのハンドリング /api/users/:user_idのuser_idの取り出しについて 4. application層の実装 ビジネスロジックの一覧 全ユーザ情報取得 特定のユーザ情報取得 ユーザ情報の作成 ユーザ情報の更新 ユーザ情報の削除 5. infrastructrure層の実装 firestoreについて firestoreを使用するための準備 全ユーザを取得するクエリ userI

    Golang (net/http)とFirestoreで簡単なREST APIを作ってみた。 - 登山好きエンジニアのテックブログ
  • What's in an (Alias) Name? - The Go Programming Language

    The Go Blog What's in an (Alias) Name? Robert Griesemer 17 September 2024 This post is about generic alias types, what they are, and why we need them. Background Go was designed for programming at scale. Programming at scale means dealing with large amounts of data, but also large codebases, with many engineers working on those codebases over long periods of time. Go’s organization of code into pa

    What's in an (Alias) Name? - The Go Programming Language
    takaya030
    takaya030 2024/09/21
    Go言語のエイリアスについて
  • go testの時だけ時刻を固定する - newmo 技術ブログ

    はじめに こんにちは。newmoでソフトウェアエンジニアをやっている@tenntennです。 newmoには2024年8月に入社しました。この記事を書いているのは2024年9月なので、入社してだいたい1ヶ月ちょっとが経過したところです。 なお、筆者が入社した経緯などは次の記事を読んでください。 note.com 入社した当初、newmoのバックエンドコードのコードを眺めていると、次のように宣言された関数を見つけました。 func Now(_ context.Context) time.Time { return time.Now().In(time.UTC) } 単にtime.Now関数を呼び出して、LocationをUTCに設定しているだけです。 しかも、引数はブランク識別子になっているので使用していません。 しかし、筆者はこれを見て、これは後々のことを考えているなと感心しました。 ちな

    go testの時だけ時刻を固定する - newmo 技術ブログ
  • Goのtext/templateを用いてDynamoDBやOpenSearch向けの大量のJSONデータを作成した話 | フューチャー技術ブログ

    はじめにこんにちは、TIG所属の大江です。 性能テストを実施する際、テスト用の大量データを投入する場合があります。番相当のデータを入れるために、数千万ないしは数億のデータが必要になる場合もあり、データ生成には一工夫を要です。 記事では、大量データをDynamoDB/OpenSearch Serviceに投入した際、直面した壁と対応を紹介します。 投入方針様々な方法を調査した結果、以下の方法で投入するのが、効率が良いという結論に至りました。 DynamoDB: S3インポート機能OpenSearch: Bulk APIこれらの方法で投入するには、入力データをJSONファイル形式である必要があります。 また、対象システムでは数種のユニークIDを各項目に割り振る必要がありました。 そこで、Gotext/templateパッケージを使いることにしました。 以下、生成スクリプトでデータ生成した

    Goのtext/templateを用いてDynamoDBやOpenSearch向けの大量のJSONデータを作成した話 | フューチャー技術ブログ
  • Assistants APIのベクターストアで大規模コード解析に挑戦! - 虎の穴開発室ブログ

    こんにちは。虎の穴ラボ エンジニアの古賀です! 今回は、OpenAIの『Assistants API』を業務(ソースコードの調査や工数の見積もり)に活用した事例を紹介します。 はじめに これを試してみようと思った経緯としては、業務で大量のPHPのソースコードファイルについて、PHPのバージョンアップに伴う作業工数の見積もりを行うことになりました。 すべて人手で調査をするととても時間が掛かることが予想されたので、その際にPythonのプログラムとAssistants APIのFile Searchを使って、ソースコードファイルの仕様や概算の必要工数を出力するCLIのプログラムを作成し、ソースコードリーディングや見積もりに役立てることができるかどうかを検証してみました。 記事では最初にAssistants APIについて紹介し、その後にサンプルプログラムを紹介します。 Assistants

    Assistants APIのベクターストアで大規模コード解析に挑戦! - 虎の穴開発室ブログ
  • Amazon RDS for MySQL と Amazon Redshift のゼロ ETL 統合が一般公開され、ほぼリアルタイムの分析が可能に | Amazon Web Services

    Amazon Web Services ブログ Amazon RDS for MySQLAmazon Redshift のゼロ ETL 統合が一般公開され、ほぼリアルタイムの分析が可能に ゼロ ETL 統合では、複数のアプリケーションやデータソースにわたるデータを統合し、総体的なインサイトを取得してデータサイロを解消することができます。完全マネージド型でノーコードのほぼリアルタイムのソリューションが実現し、データが Amazon Relational Database Service (Amazon RDS) for MySQL に書き込まれてから数秒以内に Amazon Redshift でペタバイト規模のトランザクションデータを利用できるようになります。独自の ETL ジョブを作成する必要がなくなるのでデータインジェストが簡素化され、運用上のオーバーヘッドが削減されます。また、全

    Amazon RDS for MySQL と Amazon Redshift のゼロ ETL 統合が一般公開され、ほぼリアルタイムの分析が可能に | Amazon Web Services
  • Goの標準パッケージに追加されたイテレータ操作関数のご紹介 - 虎の穴開発室ブログ

    こんにちは。 虎の穴ラボでFantiaの開発を担当している Y.Kです。 先日、8月14日にGo言語のバージョン1.23がリリースされました。 🥳 Go 1.23.0 is released! 📝 Release notes: https://t.co/GXY18wS0ec ⬇️ Download: https://t.co/KjiWuBUQxl#golang pic.twitter.com/L3NMD3RAWx— Go (@golang) 2024年8月13日 バージョン1.23の目玉としてはやはり、バージョン1.22で試験的に入っていた「range-over func」が正式に導入されたことかなと思います。 「range-over func」とは「for-range構文」のrange句において以下の関数を受け取ることができるようにする変更です。 func(func() bool)

    Goの標準パッケージに追加されたイテレータ操作関数のご紹介 - 虎の穴開発室ブログ
  • The Best Golang Blogs

    The Best Golang Blogs Published on Jan 10, 2021 in technical-blogs by Zara Cooper 10 minute read Go recently turned eleven, so you can imagine how much the language and its ecosystem have evolved through the years. A strongly typed language, it’s become increasingly popular with its garbage collection and concurrency support. It’s massively performant, scalable, and resource-use efficient. Small w

    The Best Golang Blogs
    takaya030
    takaya030 2024/09/16
    The Best Golang Blogs for Learning Golang
  • オンプレエンジニアがAWSを触って思ったのと違うと感じたこと - Qiita

    はじめに この仕事を始めた当初(約20年前)はオンプレミスという言葉がありませんでした。いや厳密には私の周りではパブリッククラウドとオンプレミスを分けて話す人はおらず、インフラ構築といえば今でいうオンプレミスが中心でした(世の中的にはパブリッククラウドがサービスとして存在していました)。オンプレミスみたいに新しい概念が出てきた時にそれまでの概念を説明するためにできる言葉をレトロニムというそうです。 私が格的にパブリッククラウドの仕事をし始めたのは約3年前でAWSでした。研修ではAzureを先に触れていたのと、このを読んでいたという知識があった程度です。 ここではずっとオンプレミスのインフラ構築をしていた私がAWSに触れて最初に戸惑ったことを記事したいと思います。また、戸惑いましたということだけ書いても学びがないため対応したことも併せて記載します。AWSに慣れている人からすれば常識ですが

    オンプレエンジニアがAWSを触って思ったのと違うと感じたこと - Qiita
  • ginを使ってMVCモデルのWebアプリを作成する

    【環境】 MacBook Air (M1, 2020) OS: MacOS Big Sur version11.6 Docker Desktop for Mac version4.5.0 golangのフレームワークginを使って簡単なMVCモデルWebサイトを作成してみます。 MVCモデル Model, View, Controllerと役割を分けて整理するモデルです。 Model ビジネスロジックを担当する。具体的にはデータベースへアクセスしCRUDを実行する。 データをデータベースやgolangで使いやすい形に変換する。 View ブラウザに表示するhtml等、ユーザーが見て確認できる部分を担当する。 ここではgolangの標準パッケージhtml/templateをViewとする。 Controller ModelとViewの橋渡し役を担当する。 クライアントから送られたURIをro

    ginを使ってMVCモデルのWebアプリを作成する
  • テンセントとネットイース、成果乏しく対日ゲーム投資再考-関係者

    中国のテンセント・ホールディングス(騰訊)とネットイース(網易)は日ゲームスタジオへの投資の多くについて、再検討または大幅に縮小している。数年にわたる対日投資にかかわらずヒット作が生まれず、中国市場が復活を遂げたことが背景だ。 事情に詳しい関係者によると、ネットイースは東京の桜花スタジオで一部の従業員を残し、雇用を大幅に削減。2020年に華々しくオープンし、カプコンやバンダイナムコホールディングスなどの日ゲーム大手からベテランを採用していた渋谷のスタジオを、幾つか残されたプロジェクトの完了をもって閉じる意向だ。 深圳に社を置くゲーム販売で世界一のテンセントもまた、対日投資のペースと規模を再考していると関係者は説明。この関係者によれば、同社はすでに少なくとも幾つかの開発中ゲームへの資金提供方針を撤回、もしくは条件を厳しくしているという。 日は世界3位のゲーム市場だが、中国勢による

    テンセントとネットイース、成果乏しく対日ゲーム投資再考-関係者
  • 組み込みLinux向けのKubernetesサポートサービスを発表

    MontaVista Software(モンタビスタ)は2024年8月22日(現地時間)、組み込みLinux向けオープンソースソフトウェア「Kubernetes」のサポートサービス「MVKube(エムブイキューブ)」を発表した。 MVKubeは、構成が複雑でリソースに制約があるデバイスを対象としており、Kubernetesの機能を拡張する。また、長期的な安定性とセキュリティを確保し、ミッションクリティカルなシステム展開にも対応できる。CVE更新やバグ修正、テクニカルサポートも提供するため、一般的なKubernetesのライフサイクルを延長する。 MVKubeのサポートには2つのバリエーションがあり、1つは既存のKubernetesクラスタに対する長期サポートおよびメンテナンスを実施するもの、もう1つがMontaVista標準の構成を利用するものだ。同社の「MVXpert」サービスと組み合わ

    組み込みLinux向けのKubernetesサポートサービスを発表
  • Devboxによる分離した開発環境構築

    はじめに 現在、開発環境を構築するツールとして Docker がもっとも使われるものの1つとしてあげられる。 Docker 以外にもローカル環境を汚さず構築する方法はいくつある。そのうちの1つである Devbox について紹介する。 まずは、前提として環境を分離させないとどうなるか 開発する際に複数のプロジェクトを同時に取り組んでいる場合、複数のプロジェクトで異なるバージョンのパッケージやライブラリーが必要となり、依存関係がどんどん複雑になっていき、管理が煩雑となる。 Devboxとは Jetpack Technologies が開発した Docker 等の仮想化技術を使用することなく、ローカル環境から分離された環境を構築できるコマンドラインツール。 Devboxの特徴 1. 環境の分離 元のローカル環境と同じパッケージの異なるバージョンでも問題なくインストールできる。異なるプロジェクト

    Devboxによる分離した開発環境構築
  • 外資系IT企業で、ソリューションアーキテクトとして働く ~技術力とあわせて必要になる英語力 | gihyo.jp

    外資系IT企業で⁠⁠、ソリューションアーキテクトとして働く ~技術力とあわせて必要になる英語力 外資系ITのイメージとは? 外資系IT企業と聞くと、みなさんはどのようなイメージをまず思い浮かべるでしょうか? 一言で外資系といっても、GAFAM[1]のような世界的な大企業から日に進出してきたばかりのスタートアップ企業まで大小さまざまです。企業によって違いはあれど、共通してまず気になるのが「言語の壁」でしょう。ごく一部の日法人を除くと、日常業務において英語は必須スキルとなります[2]。例えば社内ドキュメントが英語のみだったり、入社面接も英語で行われるところがほとんどです。 これを聞いて「自分は英語ができないから外資系には入れないな」と思う方が多いかもしれません。英語が必要であることには変わりありませんが、そう結論づけるのは早計といえます。 私のキャリアは日IT企業でソフトウェアエンジニ

    外資系IT企業で、ソリューションアーキテクトとして働く ~技術力とあわせて必要になる英語力 | gihyo.jp
  • GitLab をリポジトリとして使う AWS Amplify Hosting でのアプリケーションのデプロイ方法 | Amazon Web Services

    Amazon Web Services ブログ GitLab をリポジトリとして使う AWS Amplify Hosting でのアプリケーションのデプロイ方法 今日の変化の激しいデジタル環境においては、企業や開発者が Web アプリケーションを迅速かつ安全にデプロイする効率的な方法を常に求めています。AWS Amplify Gen2は、GitLab の堅牢なバージョン管理システムと組み合わせることで、このチャレンジに対する効果的なソリューションを提供します。AWS Amplify Hosting では様々なリポジトリの選択肢をサポートしていますが、このブログでは GitLab をリポジトリとして使う AWS Amplify Hosting でのアプリケーションのデプロイ方法をご紹介します。 AWS Amplify Gen2 は、フロントエンド開発者が AWS 上でフルスタック アプリケー

    GitLab をリポジトリとして使う AWS Amplify Hosting でのアプリケーションのデプロイ方法 | Amazon Web Services
  • Ubuntu を業務PCで使いつづけて3年が経ちました。 〜Web開発にmacOSじゃなくて大丈夫なのか気になる方へ〜 - MNTSQ Techブログ

    MNTSQ(モンテスキュー)株式会社 ソフトウェアエンジニアの沼井です。 普段はRailsでのバックエンド開発をしつつ、Elasticsearchによる全文検索処理やインデクシングまわりの開発にも取り組んでいます。 私は現在、 Thinkpad X1 Carbon (2021年版)にUbuntu 20.04をインストールして開発を行なっています。MNTSQ社以前の経験も含めると、業務でのUbuntu使用経験は3年以上あります。 テック系スタートアップの、とりわけWebサービス・スマホアプリの開発シーンでは、macOSユーザーが99%(※個人の感想です)ということもあり、macOS以外の環境を(使いたくても)使うことが難しいと思っている人も多いと思います。 記事では、業務でのUbuntu利用の実情・課題・メリットなどを共有したいと思います。 TL; DR テック系スタートアップにおけるソフ

    Ubuntu を業務PCで使いつづけて3年が経ちました。 〜Web開発にmacOSじゃなくて大丈夫なのか気になる方へ〜 - MNTSQ Techブログ