並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 48件

新着順 人気順

golangの検索結果1 - 40 件 / 48件

  • 2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ

    最近はお客さんとの勉強会でDockerのドキュメントをつまみ食いして読むというのをやっていますが、改めて最新版を読んでみて、いろいろ思考が整理されました。2020年の20.10のマルチステージビルドの導入で大きく変わったのですが、それ以前の資料もweb上には多数あり「マルチステージビルドがよくわからない」という人も見かけるので過去の情報のアンラーニングに使っていただけるように改めて整理していきます。 仕事でPythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編で触れた内容もありますが改めてそちらに含む内容も含めて書き直しています。 本エントリーの執筆には@tk0miya氏から多大なフィードバックをいただきました。ありがとうございます。 基本的なメンタルモデル現代的な使い方を見ていくために「Dockerを使ってビルドする」というのはどのようなものか考えを整

      2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ
    • 独力でWebサービスを開発・構築できるフルスタックエンジニアへのロードマップ─幅広いスキルを「Udemy夏のビッグセール」で学ぶ! - はてなニュース

      Webで新規サービスを立ち上げる際に、UIからインフラ周りまで一人で面倒を見られるエンジニアは、少人数のスタートアップでなくとも非常に頼れる存在です。どんな課題に直面しても技術力で乗り越える、そんなスキルフルなエンジニアに憧れる方も多いでしょう。 この記事では、フロントエンドのプログラミング(JavaScript周辺)からサーバーサイド、インフラ、さらに開発手法まで、Web開発で必要になるさまざまなレイヤーのフルスタックなスキルの現在地と、関連するUdemyの講座を紹介します。 株式会社ヘンリーでVPoEを務める松木雅幸(@songmu)さんの執筆です。 フルスタックエンジニアに必要なスキル さまざまな講座でまとめて学習してみよう Udemyでは夏のビッグセールを開催中! ※この記事は、株式会社ベネッセコーポレーションによるタイアップ広告です。記事末に、はてなブックマークした方にAmazo

        独力でWebサービスを開発・構築できるフルスタックエンジニアへのロードマップ─幅広いスキルを「Udemy夏のビッグセール」で学ぶ! - はてなニュース
      • レベルアップしたい人必見 Qiita記事43選 - Qiita

        はじめに 本記事ではレベルアップしたいエンジニアが読んでおくべきQiita記事を紹介します。厳選に厳選を重ねた43記事です。全ての記事を読んでおく必要はありませんが、ちょっとでも「分からないな」「興味あるな」など思ったタイトルがあれば読んでみてください。 次の4種類に分類して紹介しています。参考にしてください。 フロントエンド バックエンド インフラ・Linux周りの知識 その他 それでは、早速紹介していきます! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 フロントエンド まず最初はフロントエンドエンジニアに読んでおくべきとおすすめできるQiita記事を11個選びました!フロントエンドエンジニアとしての基礎が身に付く

          レベルアップしたい人必見 Qiita記事43選 - Qiita
        • Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog

          情報を発信する人のところに情報が集まることを日々実感しているので、Linuxのメモリ管理に特に詳しいわけではないのですが最近遭遇した問題について自分の理解を書いておきます。ざっと調べても同じことを書いている人を見つけられなかったので、公開には意義があると考えています。識者の方がフィードバックをくださると嬉しいです。 ※ AIの出力をベースに書いているのでいつもと少し文体が違います。 背景 要約 調査 再現の難しさ Goアプリケーションの調査 pprofによる分析 GCログの調査 Linuxの調査 Goランタイムの調査 GoのGCとTHP khugepagedの問題 Goランタイムにおける回避策 回避策の削除 max_ptes_noneのデフォルト値について MADV_NOHUGEPAGEをやめた理由 調査内容まとめ 解決策 検証 C言語 Go言語 まとめ 背景 Go言語で書かれたOSSのア

            Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog
          • タイムスタンプの精度を落とすときは切り捨てろ - methaneのブログ

            とあるプロジェクトでナノ秒からミリ秒への変換で四捨五入してきた人がいて、時刻を扱うときは保存精度未満は切り捨てるべきというのが常識になっていないなーと思ったので。 2023-10-01 を、何年か表示する時に、2024年に丸める人はいないだろう。 13:45 が何時か表示する時も、13時と表示するだろう。(口頭で何時?と聞かれたら14時と答えるかもしれないけれど) つまり、ある精度で表した時刻は、実際には次のような半開区間を示しているのである。 2023-01-01 00:00:00 <= 2023年 < 2024-01-01 00:00:00 13:45:00.000 <= 13:45 < 13:46:00.000 そして、そう決めたからには一貫して同じように、指定精度未満は切り捨てというルールを維持しなければならない。秒以下は四捨五入で、とかやってはいけないのだ。 一貫しないと何が問題

              タイムスタンプの精度を落とすときは切り捨てろ - methaneのブログ
            • 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で生産性を上げる
              • 注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools

                公開日 2024/05/28更新日 2024/07/25注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 現代のITサービスは、ユーザーに高品質で安定した体験を提供するために、より効率的で柔軟な技術選定が不可欠です。 本特集では、注目企業のシステムアーキテクチャ設計に携わるエンジニアの方々より、それぞれの技術選定における工夫と、未来を見据えた展望についてご寄稿いただいています。 各企業がどのように課題を乗り越え、開発生産性や品質を向上させるためにどのようなアプローチを採用しているのか ー この記事を通じて、実際の現場で活用される最先端の技術や戦略を学び、皆さんのプロジェクトに役立つ洞察を得ていただければ幸いです。 ※ご紹介はサービス名のアルファベット順となっております airCloset - 株式会社エアークローゼット エアークローゼットは日本初・国内最大級、女

                  注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools
                • すぐに役に立つものはすぐに陳腐化してしまうから方法ではなく設計の本を読む - API Design Patterns の読書感想文 - じゃあ、おうちで学べる

                  あなたがさっきまで読んでいた技術的に役立つ記事は、10年後も使えるでしょうか?ほとんどの場合でいいえ はじめに 短期的に効果的な手法や知識は、ソフトウェア開発の分野において、急速に価値を失う傾向があります。この現象は、私たちが何を重点的に学ぶべきかを示唆しています。最も重要なのは、第一に基本的な原理・原則、そして第二に方法論です。特定の状況にのみ適用可能な知識や即座に結果を出すテクニックは、長期的には有用性を失う可能性が高いです。これは、技術や手法が時間とともに進化し、変化していくためです。 learning.oreilly.com 「API Design Patterns」は、このような考え方を体現した書籍です。しかも480 ページもあります。本書は単なる手法の列挙ではなく、Web APIデザインの根幹をなす原則と哲学を探求しています。著者のJJ Geewax氏は、APIを「コンピュータ

                    すぐに役に立つものはすぐに陳腐化してしまうから方法ではなく設計の本を読む - API Design Patterns の読書感想文 - じゃあ、おうちで学べる
                  • 並列処理がとても苦手なPythonはプロセスを分けよう コードを書く時に意識したい2つのTipsと2つの落とし穴

                    Go、Python、Kotlin、Rust、TypeScript の5つの言語について「並列処理、並行処理の手法」というテーマに絞り解説する「並列処理をGo/Rust/Kotlin/Python/JSで解説!思想の違いを体感しよう」。Python編では橘氏が登壇。Pythonで並列処理を行う際の設計方針と、実装上の癖について話します。 西川氏の自己紹介 西川大亮氏(以下、西川):ここからはPython編の「ちょっとしたデータ分析の並列化」というタイトルで、西川から話します。 GOに勤める西川です。今やっているのは、タクシーやハイヤーの営業支援。「お客さんを乗っけていない時間、どこを走ったらいいの?」とか「どういうところで待っていたら注文来やすいの?」というところのナビをする、「お客様探索ナビ」というサービスのいろいろなことをしています。小さなサービスなのでいろいろやっている感じですね。 P

                      並列処理がとても苦手なPythonはプロセスを分けよう コードを書く時に意識したい2つのTipsと2つの落とし穴
                    • 一年の計は元旦にあり! Udemy新年のビッグセールで2024年に学びたいこと、挑戦したい資格、新しいスキルを見つけよう - はてなニュース

                      ※ Udemy「新年のビッグセール」は終了しました。はてなによるAmazonギフトカードプレゼントキャンペーンもそれにあわせて終了しています。ご応募ありがとうございました。 あけましておめでとうございます。これまでもUdemyの大きなセールでは目玉の講座を紹介してきた当ニュースですが、2024年1月1日から1月10日まで開催される「新年のビッグセール」では、新しい年にふさわしい夢とキャリアが広がる講座を紹介します。 各種資格試験の対策講座をはじめとして、マスターしたいプログラミング言語や開発手法、昨年から引き続き話題の生成AI、ウェブ解析やプロジェクトリカバリ、簿記や会計、英会話など多様なビジネスキャリアに直結する講座をピックアップ。映像制作や3Dモデリング、GA4や3Dアニメーション制作といった講座も取り揃えています。 一年の計は元旦にあり。みなさんが2024年に挑戦したい目標や習得した

                        一年の計は元旦にあり! Udemy新年のビッグセールで2024年に学びたいこと、挑戦したい資格、新しいスキルを見つけよう - はてなニュース
                      • BudouX: 読みやすい改行のための軽量な分かち書き器

                        .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

                          BudouX: 読みやすい改行のための軽量な分かち書き器
                        • 内製オブジェクトストレージサーバ「b3」でコスト最適化を目指した話 - Mirrativ Tech Blog

                          インフラストリーミングチームの近藤 (@udzura) です。今回は、ミラティブで内製しているオブジェクトストレージサーバ「b3」の紹介記事を書きたいと思います。 今回の記事は、6月にGopher Talkというイベントで発表した「Go製ミドルウェアを実践投入するにあたりやったこと」をベースに、内容を詳細にしたり直近の開発状況に合わせて更新したものです。一部内容はこの発表と重複していますがご了承ください。 オブジェクトストレージサーバを内製した背景 1. 大量オブジェクトの操作や増え続ける転送量に対応したい 2. 一定期間しかファイルの保持をしない 3. オンメモリ/SSD/HDDを組み合わせたチューニングがしたい オブジェクトストレージb3の特徴 S3 互換の基本的なAPIを実装 LSM-Tree index+WALなDB/マージ操作に対応 I/O 帯域を制限可能 非同期レプリケーション

                            内製オブジェクトストレージサーバ「b3」でコスト最適化を目指した話 - Mirrativ Tech Blog
                          • ルールは現場で死にました - The Rules of Programming の読書感想文 - じゃあ、おうちで学べる

                            本日は人生の数ある選択肢のなかから、こちらのブログを読むという行動を選んでくださいまして、まことにありがとうございます。 はじめに プログラミングの世界には多くの指針や原則が存在します。Chris Zimmerman氏の「The Rules of Programming」(邦題:ルールズ・オブ・プログラミング ―より良いコードを書くための21のルール)は、不変の知恵を凝縮した一冊です。これらの原則は、多くの開発現場で活用できる有益な内容となっていると思いました。 The Rules of Programming: How to Write Better Code (English Edition) 作者:Zimmerman, ChrisO'Reilly MediaAmazon 本書は、大ヒットゲーム『Ghost of Tsushima』などで知られるゲーム制作スタジオ、Sucker Pun

                              ルールは現場で死にました - The Rules of Programming の読書感想文 - じゃあ、おうちで学べる
                            • Go でマルチスレッドプログラミングする際に最低限知っておくべきこと - Cybozu Inside Out | サイボウズエンジニアのブログ

                              この記事は、CYBOZU SUMMER BLOG FES '24 (クラウド基盤 Stage) DAY 10 の記事です。 こんにちは。クラウド基盤本部の野島です。Go は goroutine やチャネルなどの仕組みが備わっており、簡単にマルチスレッドなプログラムを書くことができる言語だと言われています。しかし、マルチスレッドプログラミングには独特の罠があり、何も知らない人が雰囲気でコードを書くとわかりにくいバグを仕込んでしまうリスクが非常に高いです。 この記事では、マルチスレッドプログラミングに詳しくない人に向けて、そのような罠を避けるための方法を紹介します。この記事は Go の基本的な使い方を知っていることを前提としています。 這い寄るデータ競合の恐怖 まずは以下のようなプログラムを考えてみましょう。これは複雑な計算を行って結果を返すような HTTP サーバーのコードです。 // 複雑

                                Go でマルチスレッドプログラミングする際に最低限知っておくべきこと - Cybozu Inside Out | サイボウズエンジニアのブログ
                              • DB初心者が自作DBMS始めてみた - Qiita

                                この記事は DeNA 24 新卒 Advent Calendar 2023 の 23 日目の記事です。 TL;DR DBMSの基本的な仕組みを知るのに有益だったリソース CMUのDBMS講義 先人の素晴らしい自作DBMSの解説記事&ソースコードリーディング 小さな小さな自作DBMSの設計と実装 最小限SELECTやINSERTなど基本的なSQLが動く この記事のゴール データベースの内部構成を超ざっくり理解するために有用なリソースを知り、そして(全開発者のロマンである)自作 DBMS に一歩踏み出すきっかけになればうれしいです。 モチベーション 自分は普段業務でアプリケーションのような割と高レイヤーな開発がメインなこともあって、ミドルウェアやOS、ネットワークと言った低めのレイヤーに憧れを持っており、この気持ちをまずは自作DBMSをやってみることによって解放してあげようと思ったことがきっか

                                  DB初心者が自作DBMS始めてみた - Qiita
                                • ちょっとJavaのsynchronizedをGoに移植しようとしたはずが、なぜか1万文字の作文ができた - エムスリーテックブログ

                                  AI・機械学習チームのブログリレーも9日目になりました。同チームの横本@yokomotodです。 本日はJavaとGoを題材に並行プログラミングまわりの自由研究をしたお話をしてみたいと思います。 3部構成で、パート1では発端となった「排他制御」について、パート2では「メモリの可視化」について、それぞれJavaとGoを比べてみました。 最後にパート3では、それらの動作を規定する「メモリモデル」について、わかりやすく解説されているリソースを紹介します。 長過ぎる! 3行で!! パート1: synchronized = 「排他制御」? Java synchronized vs Go sync.Mutex Goで再入可能なロック? 仮にGoで再入可能なロックを実装するなら? Javaが再入可能を選択した理由 パート2. sycnhronized = 「排他制御」+「メモリ可視性の保証」 Javaの

                                    ちょっとJavaのsynchronizedをGoに移植しようとしたはずが、なぜか1万文字の作文ができた - エムスリーテックブログ
                                  • 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を導入した話
                                      • Python普及しろ協会に入会したい

                                        この記事はタナイ氏によるPython滅ぼす協会に入会したいを読んでから執筆したものです。 この記事の趣旨はPython滅ぼす協会に入会したいに対する反論という形をとりながら、タナイ氏により「バカの言語」と揶揄され、「使ってエンジニアを名乗るというのは」「滑稽」とまで言われたPythonの立場を再考することです。 追記 本記事は「Pythonはこれだけ優れた言語だからみんな使おう!」というものではなく「言うほど酷くないと思うよ」程度のものです。 型アノテーションがあるからと言って静的型付けを軽視しているわけでもなければ、map関数をもってmapメソッドを不要だと言っているわけでもありません。 この記法は嫌い〜この記法が好き〜と表明することは個人の自由ですが、同様に「この記法は実はこういう意味があって〜」という意見があればそれを聞いた上で、物事を判断して欲しいです。もちろん、聞いても意見が変わ

                                          Python普及しろ協会に入会したい
                                        • 円安を乗り越えるための Arm アーキテクチャへの移行が完了! そのプロセスを公開します - カミナシ エンジニアブログ

                                          こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシでは、クラウドインフラストラクチャに AWS を採用していますが、昨今の円安を受けて円換算での請求額は右肩上がりで増え続けています。サービスの規模や特性に関わらず、パブリッククラウドを利用する多くの日本企業で頭痛の種になっているのではないでしょうか。 円安になる前から継続的にコスト最適化には取り組んできましたが、クイックウィンで実施できるものはやり尽くしており手詰まり感がありました。しかし、我々スタートアップにおいて適正なコストに抑えることはランウェイ(キャッシュ不足に陥るまでの残存期間)を伸ばす意味でも重要なため、現状に甘んじることなく次の最適化ポイントを探していました。 Arm アーキテクチャ移行によるコスト最適化への期待値 AWS は Arm ベースの Graviton プロセッサを開発しており、

                                            円安を乗り越えるための Arm アーキテクチャへの移行が完了! そのプロセスを公開します - カミナシ エンジニアブログ
                                          • 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
                                            • 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
                                              • GoでSQLの複雑なクエリのテストを書いてみた - ZOZO TECH BLOG

                                                はじめに こんにちは。ブランドソリューション開発本部FAANSバックエンドブロックの佐野です。普段はサーバーサイドエンジニアとして、FAANSのバックエンドシステムを開発しています。 FAANSとは、弊社が2022年8月に正式ローンチした、アパレル店舗で働くショップスタッフの販売サポートツールです。例えば、コーディネート投稿機能や成果確認機能などを備えています。投稿されたコーディネートはZOZOTOWNやWEAR、Yahoo!ショッピング、ブランド様のECサイトへの連携が可能です。成果確認機能では、投稿されたコーディネート経由のEC売上やコーディネート閲覧数などの成果を可視化しています。 本記事では、成果データの集計処理におけるBigQueryのクエリ実行処理のユニットテストをGoで実装した取り組みと、その際の工夫についてご紹介します。 目次 はじめに 目次 成果データの集計処理とは 抱え

                                                  GoでSQLの複雑なクエリのテストを書いてみた - ZOZO TECH BLOG
                                                • 資料公開:「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開発者のためのクリーンアーキテクチャ
                                                    • Azure OpenAI Serviceの日本語記事まとめ

                                                      Azure OpenAI Serviceについての日本語記事のまとめです。主に公式ドキュメント以外のブログやZenn/Qiitaの記事をまとめています。ボリュームが多いので、目次から気になる項目を選択してご覧ください。 ※長く使える知見のまとめにしたかったので一過性のニュース的な記事や内容が重複している機能紹介記事などは意図的に掲載していません。 この記事はGitHubで管理されています。まとめへの追加修正はプルリクエストまたはIssuesでお気軽にお寄せください! また、以前に本記事をご覧いただき、そこからの差分を知りたい場合はGitHubのHistoryも併せてご覧いただけると把握しやすいかと思います。 概要 まずはここから Azure OpenAI Service を使い始める Azure OpenAI Serviceの概要から実際のリソースデプロイ、プレイグラウンドとAPIでの呼び

                                                        Azure OpenAI Serviceの日本語記事まとめ
                                                      • Go製アプリケーション/ライブラリにおけるメンテナンス性を重視したGoのバージョン管理戦略 - Diary of a Perpetual Student

                                                        2024-08-28 GOTOOLCHAIN=auto時にはtoolchainディレクティブに指定したものより新しいGoがインストールされていても戻るわけではないという話を追記しました。 Go言語では半年に1回メジャーリリース(マイナーバージョンの更新)がやってきます。ちょうどこの8月にGo 1.23がリリースされたばかりです。Go言語のメジャーリリースは最新2つ分までサポートされるポリシーであることがhttps://go.dev/doc/devel/releaseに書かれています。現在であればGo 1.23やGo 1.22はサポートされており、Go 1.21はサポートが切れているということです。 また、サポートされているバージョンでは、不定期でマイナーリリース(パッチバージョンの更新)がやってきます。バグ修正や脆弱性対応がメインですね。 Goがリリースされると、Goでアプリケーションを作

                                                          Go製アプリケーション/ライブラリにおけるメンテナンス性を重視したGoのバージョン管理戦略 - Diary of a Perpetual Student
                                                        • goのエラーをスタックトレースも含めて構造化ログで残したい - エムスリーテックブログ

                                                          こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 golangでずっと課題に思っていたエラーの処理について試行錯誤してみました。 イオンモール センソックシティは、カンボジアにある商業施設。本文には関係ありません。 エラー処理のベストプラクティスは? ぼくがかんがえるエラー処理の要件 検討したパッケージ 構造化ログ パッケージの検討 pkg/errors cockroachdb/errors goark/errs go-errors/errors go-errors/errors がよさそう? pkg/errors や cockroachdb/errors は使えないのか ラップして使う errors.WithStack(err) と呼びたい slogで使う errors.Join() に対応したい まとめ We are hiring! エラー処理のベス

                                                            goのエラーをスタックトレースも含めて構造化ログで残したい - エムスリーテックブログ
                                                          • ISUCON13で優勝しました(チーム NaruseJun)

                                                            11月25日に開催されたISUCON13でチームNaruseJunとして参加し優勝しました。 メンバーはここ4年同じで、大学時代のサークル仲間の@sekai・@takashi・とーふとふの三人です。 昨年のISUCON12でも優勝したので、チームNaruseJunは二連覇となります。 最終スコアは468,006点でした。 スコアの推移は以下の通りです。 かなり順調にスコアを伸ばしていますね。後述しますが17時直後にめちゃくちゃ伸びているのは、ログを止めた結果です。 その他のスコアは↓ ISUCON13 受賞チームおよび全チームスコア : ISUCON公式Blog 事前準備 今年はチーム全員が忙しかったので、チームで最初に集まったのは11/14でした。 その日は30分くらいで今年の流れの確認と、素振りの日(11/18)を確定して解散しました。 ありがたいことに過去優勝チームとしてLodgeで

                                                              ISUCON13で優勝しました(チーム NaruseJun)
                                                            • Google、オープンソースのメンテナの負担をAIなどで軽減する「Project Oscar」を発表

                                                              Googleは、オープンソースのプロジェクトにおいてメンテナが行っているさまざまな作業を、生成AIなどによる支援で軽減する「Project Oscar」を、インドのバンガロールで行われたイベント「Google I/O Connect Bengaluru 2024」で発表しました。 オープンソースプロジェクトには、Issueやプルリクエストやフォーラムでの質問などがコントリビュータから寄せられるため、メンテナはこれらに目を通して、不足している情報があれば指摘し、関連する情報があれば補足し、質問に返答するなど、コードを書く以外のさまざまな作業をしなくてはなりません。 プロジェクトが大きくなればなるほど、こうした作業の負荷は大きくなっていきます。 これらの作業を軽減し、コードを書くという最も楽しい作業に多くの時間をメンテナが割けるように支援するのが「Project Oscar」だと説明されていま

                                                                Google、オープンソースのメンテナの負担をAIなどで軽減する「Project Oscar」を発表
                                                              • ミニマムな React Web アプリケーションの技術スタックを大公開! - inSmartBank

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

                                                                  ミニマムな React Web アプリケーションの技術スタックを大公開! - inSmartBank
                                                                • Go言語によるクリーンアーキテクチャの実装例紹介

                                                                  はじめに CastingONEでバックエンドエンジニアをやっている清水です。 この記事ではクリーンアーキテクチャについて学んだけど具体的にどのように実装すれば良いのかという悩みがあったので実装例をまとめてみた記事になります。 クリーンアーキテクチャで実装されたサンプル実装のうちGitHubのスター数が多いリポジトリをピックアップして、設計内容を紹介していきます。 具体的にどこにどんな実装をするべきなのかも含めて紹介していきます。 処理を一部省略して紹介するため実際の処理内容を確認したい場合はGitHubでご確認お願いします。 クリーンアーキテクチャとは クリーンアーキテクチャは、ソフトウェア設計の原則を適用して、依存性の方向性を逆転させ、ビジネスロジックから詳細(フレームワークやデータベース)を分離するアーキテクチャパターンです。これにより、テストしやすく、メンテナンス性が高く、柔軟性のあ

                                                                    Go言語によるクリーンアーキテクチャの実装例紹介
                                                                  • Goコンパイラのお勉強(3)~配列の効率的な操作に関する最適化~ - Techtouch Developers Blog

                                                                    はじめに string と byte のキャスト最適化 1. map のキー指定のためのキャスト 2. string を byte 毎に処理するためのキャスト 3. 比較のためのキャスト memclr による配列ゼロクリア最適化 ガベージコレクションのマークスキャン回避 おわりに 参考文献 はじめに SRE の izzii (𝕏: @ahneahneahne) です。今回をもって「Go コンパイラのお勉強」と題した連載ブログが完結です!仕事の話とは直接関係がないネタだったので、書く内容に悩むということはなく気持ちよくかけました。さて、今回は「配列の効率的な利用」と題して golang/go CompilerOptimizations で扱われている残り物の紹介をしていきます笑 残り物とは言っても知ると知らないとでは Go コードの読み方が変わるかと思いますので、ぜひ! [第 1 回] G

                                                                      Goコンパイラのお勉強(3)~配列の効率的な操作に関する最適化~ - Techtouch Developers Blog
                                                                    • 【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
                                                                      • 使い込んで厳選したNeovimプラグインたちをご紹介します

                                                                        筆者はこれまで、定期的にVimのプラグイン紹介の記事を定期的に投稿していたのですが、2019年のVim AdventCalenaderに投稿したNeovimでモダンなPython環境を構築するv2(LSPを添えて)以降、ほとんどプラグイン紹介記事を執筆していませんでした。 他のかたの記載されるNeovim環境構築記事を見るたびに、筆者も自分の環境を紹介したいと常々思っていました。 ワシの使っているNeovimプラグインは200個近くあるぞ vim沼: NeovimのReact、TypeScript、Tailwind CSS用セットアップ Neovimでのフロントエンド開発環境 2022 しかしNeovim v0.5のリリース以降、増え続けるluaプラグインの洪水に飲まれ、筆者のNeovim環境はプラグインを入れては消しを繰り返し、安定しない日々を過ごしていました。 Neovim v0.5リ

                                                                          使い込んで厳選したNeovimプラグインたちをご紹介します
                                                                        • ChatOpsによる運用作業の自動化 - ZOZO TECH BLOG

                                                                          はじめに こんにちは、技術本部SRE部カート決済SREブロックの遠藤・金田です。 普段はSREとしてZOZOTOWNのカート決済機能のリプレイスや運用を担当しています。本記事では自作のコマンドラインツールをSlack + AWS Chatbot + AWS Lambdaを使用してChatOps化した事例をご紹介します。「日々の運用業務をコマンドラインツールを実装して効率化したものの今ひとつ広まらない」「非エンジニアにも使えるようにしたい」と考えている方の参考になれば幸いです。 目次 はじめに 目次 背景・課題 ChatOpsとは AWS ChatBotとは 構成 AWS ChatBot チャットツール側の設定 Slack Workflow Lambda 実装のポイント ChatBotのアクセス制御 User Roleの運用方法 ガードレールポリシー コマンドラインツールのLambda関数化

                                                                            ChatOpsによる運用作業の自動化 - ZOZO TECH BLOG
                                                                          • コントリビュートで沢山の人が救われる。mattn氏が語る、好循環を実現するアウトプット活動の仕組み

                                                                            コントリビュートで沢山の人が救われる。mattn氏が語る、好循環を実現するアウトプット活動の仕組み 2024年8月6日 mattn 大学卒業後、ソフトウェアハウスやSIerなどでソフトウェア開発に携わる。vi派生のテキストエディタVimの日本語化やプラグイン、Go言語などでOSS(オープンソースソフトウェア)の開発・コミュニティ運営に参加し、2019年からGoogle Developers Expert。2021〜2023年 GitHub Stars。著書に『みんなのGo言語』(2016年、2019年に改訂2版、技術評論社、共著)、『Go 言語プログラミングエッセンス』(2023年、技術評論社、単著)がある。関西在住。 X:@mattn_jp GitHub 前回はアウトプットのためのお題選びに際して、巷のエンジニアがよく選びがちな TODO アプリについてお話させていただきました。 いった

                                                                              コントリビュートで沢山の人が救われる。mattn氏が語る、好循環を実現するアウトプット活動の仕組み
                                                                            • 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 ビルドを高速化する
                                                                              • 3Dモデルの配信サーバーでRustとZstandardを採用して数倍のパフォーマンス向上を実現した - pixiv inside

                                                                                はじめに こんにちは、VRoid部所属のエンジニアのyueです。 この度VRoid Hubで3Dモデルの配信サーバーの見直しを行い、技術選定から始めRustとZstandard (zstd)を採用した実装に切り替えました。 結論から見るに従来のNode.js製サーバーと比べて以下のことを実現しました。 最大のレスポンス時間が 1.5 ~ 2.5s から 300 ~ 400msまで低下 平均のレスポンス時間が 700 ~ 800ms から 150 ~ 200msまで低下 サーバーのCPU使用率が ~ 50% から ~ 10%まで低下 docker image のサイズが ~ 346mb から ~ 21mb程度まで削減 配信されるファイルサイズが平均 10 ~ 20% 軽量化されました レスポンス時間 CPU使用量 (上からAVG(MAX), AVG, AVG(MIN)) メモリー使用量に関し

                                                                                  3Dモデルの配信サーバーでRustとZstandardを採用して数倍のパフォーマンス向上を実現した - pixiv inside
                                                                                • 【Go】公式ツール "eg" を使って効率的にGoのコードをリファクタリングする - Qiita

                                                                                  はじめに こんにちは、ken です。お仕事では Go をよく書きます。 最近、Go の公式パッケージであるgolang.org/x/toolsを眺めていたら、なにやら有用そうなパッケージを見つけたので今回はそれについて書こうと思います。 それはegというリファクタリングツールです。 eg とは eg は、例ベースで Go コードをリファクタリングするためのツールです。このツールを使用することで、特定のコードパターンを別のコードに置き換えることができ、効率的にリファクタリングが行えます。 先ほど貼った公式ドキュメントに詳しい説明があるかと思いきや The eg command performs example-based refactoring. For documentation, run the command, or see Help in golang.org/x/tools/ref

                                                                                    【Go】公式ツール "eg" を使って効率的にGoのコードをリファクタリングする - Qiita