並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 1057件

新着順 人気順

golangの検索結果241 - 280 件 / 1057件

  • 持続可能な開発を目指す ~ ドメイン・ユースケース駆動(クリーンアーキテクチャ) + 単方向に制限した処理 + FRP

    この記事は、開発を持続可能にできるようなアーキテクチャとその適用方法を考察するものです。 骨子はできていますが、実装経験をフィードバックして詳細を若干変更するかもしれません。 勉強不足な点もあるので、意見を歓迎します。 開発においてよくある問題点 ビジネスロジックの本質が何だったか見失う。ソースコードのどこまでが業務上の関心で、どこからがそれを実現するための技術上の関心か分からなくなる。 入出力双方向の処理が散在して処理が追い切れなくなる。特にイベント処理でどこに飛ぶかわからないコールバック地獄になる。 初期化・つなぎ込み・統合者的オブジェクトが小さな機能単位で生まれて統一感が無くなる。 状態を持つ値が大量に散在して副作用を起こしバグを生む。 これらの問題の結果、小さな単位ごとに個人のノウハウで"良い"設計がされ、機能を追加しようとしたときにどういう方針で行えばよいか分からなくなる。 解決

      持続可能な開発を目指す ~ ドメイン・ユースケース駆動(クリーンアーキテクチャ) + 単方向に制限した処理 + FRP
    • Webフレームワークのパフォーマンス比較

      Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

        Webフレームワークのパフォーマンス比較
      • テストコードの改革を進めている話 | メルカリエンジニアリング

        はじめに この記事は、Merpay Tech Openness Month 2023 15日目の記事です。 こんにちは。メルペイ加盟店精算チームのバックエンドエンジニア@r_yamaokaです。 今日は現在自分がリードして取り組んでいるテストコードの改善について紹介したいと思います。 抱えている課題 私が所属している加盟店精算チームのマイクロサービスは加盟店さま向けサービスとして欠かせないものであり、メルペイ最初期から存在するサービスです。他のマイクロサービスにあまり無い特徴として多数のバッチ処理を行っている点が挙げられます。 お客さま(メルペイユーザー)がお店で行った決済は、一定の頻度で集計し決済手数料を差し引いた上で加盟店さまの銀行口座へ振り込むことになります。 最終的な振込金額を算出するまでの流れとしては 個々の決済金額のリコンサイル(会計マイクロサービスとの金額照合) 日次集計 締

          テストコードの改革を進めている話 | メルカリエンジニアリング
        • Go + gRPCによるマイクロサービス構築 - 一休.com Developers Blog

          こんにちは。宿泊事業本部の宇都宮です。 最近、とあるマイクロサービスをローンチしました。このアプリケーションの業務的な役割は諸事情により省略しますが、以下のような特性をもっています。 社内の多くのサービスから利用される 一休.com 一休.comレストラン 一休.comギフト 一休.com海外 このサービスが落ちると、主要サービスの予約処理が止まる 😱 想定されるリクエスト数は、平常時で30req/sec、ピーク時には60req/sec程度になります。行う処理はシンプルで、DBにいくつかSELECT文を投げて、ビジネスロジックに沿った結果を返すことです。 また、基盤系のアプリケーションなので、各開発者の開発環境(WindowsとMacが混在)でも動作する必要があります。 したがって、このアプリケーションに求められる要件は、 高パフォーマンス 高信頼性 クロスプラットフォームで動作すること

            Go + gRPCによるマイクロサービス構築 - 一休.com Developers Blog
          • 1ms 以下のリアルタイムオブジェクト検出/画像処理を目指して Goの配信サーバサイドで通知ぼかしを実装してみたこと - Mirrativ Tech Blog

            こんにちは ハタ です。 今回は以前iOSのクライアントサイドで実装していた通知ぼかし機能をサーバサイド(配信サーバ)上に再実装した事を書きたいなと思います 今回はかなり内容を絞りに絞ったのですが、長くなってしまいました、、 目次機能があったのでつけてみました、読み飛ばして読みやすくなった(?)かもしれません 目次 目次 通知ぼかし機能とは サーバサイド通知ぼかし プロトタイプの実装 苦労の始まり その1 画像処理速度 苦労の始まり その2 データ量 さらなる計算量の削減を求めて さらなる最適化へ Halide の世界へ 簡単な halide の紹介 苦労の始まり その3 いざ リリース リリースその後 We are hiring! 通知ぼかし機能とは 通知ぼかし機能は、ミラティブ上での配信中に写り込んでしまったiOSの通知ダイアログをダイアログの中身を見えないようにぼかし処理をしてあげる

              1ms 以下のリアルタイムオブジェクト検出/画像処理を目指して Goの配信サーバサイドで通知ぼかしを実装してみたこと - Mirrativ Tech Blog
            • pecoの基礎の基礎 - Qiita

              「pecoってツールらしきものが流行っている」と思いつつ、導入とか難しそうと思って後回しにしていたんですが、気がついたら自分の手元のbash設定ファイルにpecoを使う関数が定義されていたので、改めて初歩からやってみました。 説明に使用しているシェルはお馴染みのbashです。 pecoとは GitHubのpecoのサイト とてもシンプルなツールで 「標準入力から受けた行データをインクリメンタルサーチして、選択した行を標準出力に返す」 コマンドです。 シンプルゆえに様々な組み合わせで効果を発揮します。あらゆる場面での選択肢を標準入力に渡して、選択された結果を標準出力から受け取って加工してコマンド実行をする、というのが基本的な流れ。 説明じゃ伝わらないので実例を体験したほうが早いかも。 peco のインストール pecoで検索すると「pecoはGoでできている」とか出てきて「Goってなんぞや」

                pecoの基礎の基礎 - Qiita
              • サーバーレスなバックアップシステムを AWS SAM を用いてシュッと構築する - クックパッド開発者ブログ

                こんにちは。昨晩のお夕飯は鮭のカレー風味ムニエル定食だったインフラ部 SRE グループの @mozamimy です。 鮭のカレームニエル定食 pic.twitter.com/G2c1ij2wpp— ᕱ⑅ᕱ もざみ (@mozamimy) February 6, 2018 今回は、SRE グループでの取り組みのひとつであるマルチクラウドバックアップを題材にして AWS SAM、CodePipeline (CodeBuild および CodeDeploy を含む) を用いたサーバーレスアプリケーションの構築、ビルドおよびデプロイについて書いていきたいと思います。また、1月に Lambda で Golang が利用可能になった こともあり、CodePipeline の進捗を Slack に投稿する Lambda function を Golang で作ってみたので、そちらもあわせて解説したいと思

                  サーバーレスなバックアップシステムを AWS SAM を用いてシュッと構築する - クックパッド開発者ブログ
                • goからiOSまで一人でアプリ開発をしてたらいつの間にかマインクラフトエンジニアになった話 - Qiita

                  by @mixiappwchr おしゃべりマルチとは 今回UUUM株式会社様からアプリ開発の受託をうけ おしゃべりマルチ という音声チャットをやりながら、マインクラフトPE など、ゲームのマルチプレイができるというアプリをリリースさせていただきました。 マインクラフトだけではなく、モンストや、白猫プロジェクト、その他マルチゲームで使ってもらえると楽しいアプリとなっています。 主な設計 今回 複数のサーバーをくみあわせて、音声チャットマルチプレイを実現しています。 3つのサーバーとアプリが連携 APIサーバー 音声サーバー マイクラプロキシ兼リアルタイムイベントサーバー の3つが協調して動きアプリにサービスを提供します。 本来マイクラマルチは同一内WiFIだと気軽にできるのですが、インターネット越しとなると、ルーターのポートを解放したり、なんだかんだ面倒な点が多いのですが、このアプリをいれる

                    goからiOSまで一人でアプリ開発をしてたらいつの間にかマインクラフトエンジニアになった話 - Qiita
                  • Go by Example

                    Go is an open source programming language designed for building scalable, secure and reliable software. Please read the official documentation to learn more. Go by Example is a hands-on introduction to Go using annotated example programs. Check out the first example or browse the full list below. Unless stated otherwise, examples here assume the latest major release Go. Hello World Values Variable

                    • Goで実装された高速な
仮想待合室サーバの実装と詳解

                      ペパボのテックカンファレンスで話しました。

                        Goで実装された高速な
仮想待合室サーバの実装と詳解
                      • Go言語で幸せになれる10のテクニック - Qiita

                        はじめに Go近辺を徘徊していて見つけたブログポスト。 Ten Useful Techniques in Go Goな方々には常識なのかも知れないけど、Go初心者の私にとっては面白かったのでちょっとまとめてみる。 紹介されているのは以下の10個の項目。 Use a single GOPATH Wrap for-select idiom to a function Use tagged literals for struct initializations Split struct initializations into multiple lines Add String() method for integers const values Start iota with a +1 increment Return function calls Convert slices,maps,et

                          Go言語で幸せになれる10のテクニック - Qiita
                        • Go言語でag(The Silver Searcher)ライクな高速検索ツールをつくった。EUC-JP/Shift-JISも検索できマス。

                          いまや高速パターン検索といえばag(The Silver Searcher)ですが、検索対象がUTF-8のテキストを前提としているため、EUC-JPやShift-JISといったファイルを検索するのに課題があります。 これまで、それらの日本語文字セットを検索できるようにするため、色々とagの改造、公開を行っていました。 ag(The Silver Searcher)でEUC-JP/Shift-JISのファイルも検索できるようにしてみた 日本語圏特化型ag -白金- の配備が完了しました しかし、特定の国の文字コードだけに特化した修正というのをmasterに取り込んでもらうわけにもいかず、派生ブランチとして追随するのも、やはり面倒… そこで年始にGo言語を触ったのをきっかけに、Go言語でパターン検索ツールをつくってみました。 せっかくなのでポストagを目指して、プラチナサーチャー(The Pl

                            Go言語でag(The Silver Searcher)ライクな高速検索ツールをつくった。EUC-JP/Shift-JISも検索できマス。
                          • 分散ユニークID採番機 katsubushi と Web アプリケーションへの応用例 / katsubushi

                            YAPC::Fukuoka

                              分散ユニークID採番機 katsubushi と Web アプリケーションへの応用例 / katsubushi
                            • Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える - pospomeのプログラミング日記

                              devfest 2017 tokyo の発表資料です。 Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える from pospome 当日は入室できない人もいたらしい & 機材トラブルで10minほど開始が遅れてしまった ということで申し訳なく思っています。 また、立ち見する価値がある内容を提供できたのだろうか? とも思っています。 スライドは単体でも発表内容が伝わるように文章を多めに載せているので、 是非確認してみてください。 100ページ越えていますが・・・。 #DevFest_room2 入れなかった。。— t.junichi (@tjun1) 2017年10月9日 ものすごい立ち見人数 #Devfest17 #DevFest_room2— バトルプログラマー柴田智也@少女終末旅行 (@tomoya_shibata) 2017年10月9日 ルーム2これから並ぶ方はま

                                Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える - pospomeのプログラミング日記
                              • 金融を“サービス”として再発明するための技術スタック

                                こんにちは。Finatextでエンジニアのマネジメントをしている河本です。 当社は「金融を“サービス”として再発明する」をミッションとして掲げ、ビジネスの成長とともに技術領域も拡大させてきました。 エンジニアチームは今、私たちが「BaaS (Brokerage as a Service)」と呼んでいる証券サービスのためのシステム基盤と、そのBaaS上のサービス開発に力を注いでいます。 今回は、そんな当社の技術スタックについて紹介したいと思います。 開発環境・CI/CDGitHubSwaggerSonarCloudPostmanTerraformAWS CodeBuildAWS CodePipelineコードはGitHubで管理され、API 仕様管理には Swagger が使われています。SonarCloud を用いてソースコードの健全性やテストカバレッジの可視化を行っています。API開発の

                                  金融を“サービス”として再発明するための技術スタック
                                • そろそろ理解しておきたいのでDockerのソースコードをビジュアルに読む! - Qiita

                                  まずはツールの紹介 昨今、注目を浴びているアプリケーションコンテナを作ったり管理したりできるDocker。 そろそろ中身も理解しておきたいところ。特に最近はlibcontainerというのができて、lxc依存すら切り離されているとの噂。 ただ、結構ソースコードの量も大きくなっているので(2014/4月現在 テストコード除いて70000行弱)、 さっと大まかに理解するためのツールを書いてみました。 このツールはgoのastからパッケージの間の依存関係を読んで、graphvizの解釈するdot言語に吐き出すツールです。 たとえば、最近話題のgo-xslateの全体像をつかもうと思ったら、 のようにすることで、 拡大 こんな感じにパッケージ間の依存関係を図示することができます。 これだけでも何となくどんな構造になってるかわかってきそうですね。 不安定性の表示 govizにはdot言語の出力の他に

                                    そろそろ理解しておきたいのでDockerのソースコードをビジュアルに読む! - Qiita
                                  • Private Presentation

                                    Private content!This content has been marked as private by the uploader.

                                      Private Presentation
                                    • Go 言語と React で考える「いい感じなURL設計」入門

                                      Description 白ヤギコーポレーションさま主催の「最先端情報吸収研究所(AIAL)」のプレゼンテーションで使用したドキュメントです。 「URL」を軸にして、サーバーサイドを Go 言語、クライアントサイドを React (+ TypeScript) で実装する場合の要点を紹介しました。 - いい感じな URL と わるい感じな URL - RESTful API のおさらい - Echo と REST API と URL - React と SPA と URL - いい感じの URL設計を目指す旅 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. interface FooterProps { company:string } export class FooterComponent extends React.Compo

                                        Go 言語と React で考える「いい感じなURL設計」入門
                                      • シュッと golang に入門する話 - ちなみに

                                        photo by ajstarks なんか最近みんな書いてる golang 。OSS へのコントリビュートチャンスも増えてきました。自分でバリバリ書くには時間も自信もない。でも、バグ修正くらいならやってみたい。それくらいの目的のために最低限必要な知識を書いてみました。 この記事では、自分ではバリバリ書けないけれど、golang の OSS プロジェクトには貢献したいという人向けに、出来るだけシュッと学べるように重要なポイントのみ絞って紹介していきます。 初心者向けの優しい解説記事という訳ではないので、自分で調べるためのキッカケとしての読み方を想定しています。また、自分自身が想定読者のため、間違ったことを書いている可能性もあります。という逃げも書いておきます。 開発環境 基本的に Mac OSX + HomeBrew + Atom を前提とします。といいつつ、golang も Atom もす

                                          シュッと golang に入門する話 - ちなみに
                                        • 強い思想: Go を Web 開発に採用する上で

                                          Go は Web 開発に向いているか? 最も向いている領域は「CLI ツール」「ミドルウェア」「マイクロサービス」だと思っている。なぜならそれらはコードベースを比較的小さく抑えることを前提としているからだ。 Go は大きなコードベースを抱えやすい設計の言語になっていない。 ミドルウェアとマイクロサービスに関しては小さく作ることが正義。 CLI ツールに関しては単一責務なツールであれば小さくなるが,複数を束ねるツールであっても Web サービス開発に比べれば考えることは少なくて済む。 Web 業界における「一般的な Web 開発」,すなわちモノリスを基本とした中規模以上の開発にははっきりと 向いていない と言うべきだろう。 フラットパッケージは正義か? 私が SNS で何度か言及した以下の記事がある。 フラットパッケージ戦略は,確かに Go の文化圏においては一定の支持を集めている。Go の

                                            強い思想: Go を Web 開発に採用する上で
                                          • 「10〜30分で何となく分かるGo」という資料 - moriyoshiの日記

                                            を Python Hack-a-thon #2 のために作りました。単なるまとめなので、間違いがあったらぜひ指摘してください。 10〜30分で何となく分かるGoView more documents from ... .... 追記: サンプルコードの zip はこちら

                                              「10〜30分で何となく分かるGo」という資料 - moriyoshiの日記
                                            • Ubie は Go と Node.js の会社になります

                                              Ubie では、創業当初から Server-Side Kotlin を推進してきましたが、全社的な技術選定を再度行い、これからは Go と Node.js を中心とすることにしました。 本記事では、Go と Node.js を選定した理由や、それを普及させる取り組み、そして選定の流れを紹介します。 経緯 これまで Ubie では技術スタックを発散させてきていて、現在は Kotlin、Go、Node.js、Ruby、Python のバックエンドサービスが動いています。以前は新規開発が多く、それぞれに携わるメンバーが技術選定をすることにより、最大瞬間風速を出せるなどのメリットがありました。しかし、現在では弊害が目立ってきています。 まず、事業成長に伴って運用の重要性が増しています。人材が潤沢とは言えないスタートアップにおいて、様々な技術スタックを安定運用することはコストが高すぎると感じています

                                                Ubie は Go と Node.js の会社になります
                                              • Netflixのオープンソースソフトウェア - たけぞう瀕死ブログ

                                                ここのところHystrixについて調べていたのですが、Netflixは他にもGitHub上で様々なOSSを公開しています。 github.com Javaのものが中心ですがPythonやGo、Cで書かれているものもあります。ライブラリ的なものからミドルウェアや運用ツールまで多岐に渡っており、NetflixがAWSを利用しているということもありAWS上での利用に特化したものもあります。また各プロダクトのドキュメントもしっかりしており、以下のような専用のサイトも立ち上げられており、社内で開発したものを積極的にOSS化するという方針が伺えます。 netflix.github.io HystrixやEurekaなどを筆頭に有名なものも多いのですが、なにぶん数が多くどのようなものがあるのかを把握するのも割と一苦労な感じなのですが、Netflixでは自社のOSSを紹介するMeetupが継続的に開催され

                                                  Netflixのオープンソースソフトウェア - たけぞう瀕死ブログ
                                                • Webエンジニア向けセキュアコーディング学習サービス「KENRO」のトライアルを一般開放しました - Flatt Security Blog

                                                  こんにちは、Flatt Security執行役員の @toyojuni です。 弊社はWebエンジニア向けのセキュアコーディング学習プラットフォーム「KENRO(ケンロー)」を提供しています。この度、商談の中で限られたお客様にのみ提供していた「KENRO」のトライアル利用を 無償・期間無制限で一般開放 することとしましたので、そのお知らせも兼ねつつ一般開放に至った背景などをこちらのブログでお話ししようと思います。 「KENRO」とは? 「KENRO」のトライアルとは? トライアル一般開放の背景 トライアルはどのような人にオススメ? トライアルの利用方法 最後に 「KENRO」とは? 「KENRO」は、Web 開発に必要なセキュリティ技術のハンズオンの研修・学習を行うことができる、環境構築不要のクラウド型学習プラットフォームです。 https://flatt.tech/kenro これまでエ

                                                    Webエンジニア向けセキュアコーディング学習サービス「KENRO」のトライアルを一般開放しました - Flatt Security Blog
                                                  • Gopherの道を歩む – Node.jsからGo言語への移行 | POSTD

                                                    私は大学時代に、興味本位でJavaScriptを始めて、それ以来ウェブページを幾つか作成してきました。JavaScriptは常にC言語やJavaの合間の楽しい息抜きでしたが、アニメーションや、ユーザをあっと言わせるようなちょっとしたことを提供するといった、特殊な目的にかなり限られた言語だと考えていました。JavaScriptは覚えやすく、開発者に具体的な結果をすぐにもたらしてくれるので、コーディングする方法を学びたいと思っている人に私が教えた最初の言語でした。JavaScriptにHTMLとCSSを少し組み合わせれば、ウェブページが出来上がります。プログラミング初心者には喜ばれます。 その後、あることが2年前に起こりました。当時、私は、主にサーバーサイドのコードとAndroid用のアプリのプロトタイプに取り組む研究職に近い立場にいました。すぐにNode.jsの存在が目に留まりました。バック

                                                      Gopherの道を歩む – Node.jsからGo言語への移行 | POSTD
                                                    • Goへのヘイトに対する考え方

                                                      https://www.kbaba1001.com/entry/2021/09/17/073149 (該当記事が削除されました) RubyのサービスをGoで置き換えるのは3倍人手がかかる 何するにも機能不足 JSONの読み書きにわざわざ構造体書くの面倒 同僚がGoを選ぼうとしたら愚かな選択ですねと答える サーバーサイド開発にGoを使うのは危険 っぽい内容だったかと。 だいぶGoの特徴や既存の言語との考え方の違いが広まってきてるのかなぁと思っていた矢先だったので十年くらい前のような指摘をあえて今されていてびっくりした。 正直、ここに書かれたようなヘイト項目は既出すぎるので、もし影響の大きい項目を多くの人が同様に嫌っているならばGoはここまでの人気のある処理系になることはなかったと思う。(もしくは多くの人が嫌ってはいるが影響の小さい項目ということ) Goは出た当初、こういうヘイトが世界中のブロ

                                                        Goへのヘイトに対する考え方
                                                      • Introducing Wire Protocol Buffers

                                                        EngineeringLeveraging Linux Internals to Supercharge Osquery ...Using /proc to find fileless malware EngineeringEvolution of Developer Productivity at Square - Pa...Investing in reliability and test engineering

                                                          Introducing Wire Protocol Buffers
                                                        • Goはオブジェクト指向言語だろうか? | POSTD

                                                          “オブジェクト指向”の意味を本当に理解するには、この概念の始まりを振り返ることが必要です。最初のオブジェクト指向言語はSimulaという言語で、1960年代に登場しました。オブジェクト、クラス、継承とサブクラス、仮想メソッド、コルーチンやその他多くの概念を導入した言語です。おそらく最も重要なのは、データとロジックが完全に独立したものであるとする、当時では全く新しい考え方をもたらしたことでしょう。 Simula自体には馴染みがない方も多いかもしれませんが、Simulaからインスピレーションを得たとされるJavaやC++、C#、Smalltalkといった言語は皆さんよくご存知でしょう。さらにそこからインスピレーションを得たものとしてObjective-CやPython、Ruby、JavaScript、Scala、PHP、Perlなど様々な言語があり、Simulaは現在使用されているポピュラーな

                                                            Goはオブジェクト指向言語だろうか? | POSTD
                                                          • Slackcat

                                                            Pipe command output and upload files to Slack from your terminal! Scroll Down Get Started • Download the latest build for your platform: Linux: wget https://github.com/bcicen/slackcat/releases/download/1.7.2/slackcat-1.7.2-linux-amd64 -O slackcat sudo mv slackcat /usr/local/bin/ sudo chmod +x /usr/local/bin/slackcat OSX: brew install slackcat OR curl -sLo slackcat https://github.com/bcicen/slackca

                                                              Slackcat
                                                            • 自社サービスのバックエンドを 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 へ切り替えるための整理
                                                              • Goのプログラミングパターン

                                                                QCon London 2016において、Peter Bourgon氏は「Successful Go Program Design, 6 Years On」というプレゼンを行い、Goでプログラミングするときに使うべきパターンと避けるべきパターンについて説明した。 GOPATH: 環境変数PATHにGOPATH/binを加え、関係バイナリを簡単にアクセスできるようにする。Bourgon氏は一つのグローバルなGOPATHを使うことを推奨する。たいていの場合、これでうまくいく。自分のコードと外部依存のコードを明確に分離したい人は、2つのGOPATHを作るのが好みだろう。gbを使って、環境変数をセットせずにプロジェクトごとに構築するという選択肢もある。 リポジトリ構成: リポジトリの構成はプロジェクトに依存する。プライベートなプロジェクトで決して公開しないなら、好きな構成で構わない。オープンソース

                                                                  Goのプログラミングパターン
                                                                • Kubernetesエンジニア向け開発ツール欲張りセット2022

                                                                  はじめに 本記事では、筆者や筆者の同僚がKubernetes関連の開発をしているときによく利用しているツールを紹介します。 主にKubernetes上で動くプログラムをGoで書いたり、マニフェストのYAMLを書いたりするエンジニアが対象となります。 本記事の内容は極力環境依存を減らし、Linux, WSL2, Macなどの環境で利用可能となっています。 WSL2(Ubuntu 20.04)、およびM1 Macで動作確認していますが、環境によって多少の違いが生じることもあるのでご了承ください。 基本となるツール make & brew 本記事ではmakeコマンドを利用します。 Ubuntuの場合は以下のコマンドでインストールをおこなってください。 Macの場合は、以下のページを参考にHomebrewとCommand line tools for Xcodeをインストールしてください。 Doc

                                                                    Kubernetesエンジニア向け開発ツール欲張りセット2022
                                                                  • jsライブラリ選定はopenbaseが超絶便利 - Qiita

                                                                    openbaseとは https://openbase.io Find and compare open-source packages with user reviews, categorization, and unparalleled insights about packages' popularity, reliability, activity, and more. 手を抜いてdeeplでw ユーザーレビュー、カテゴリ分け、パッケージの人気、信頼性、アクティビティなどについての他の追随を許さない洞察力で、オープンソースパッケージを見つけて比較してください。 現在、多くのプログラミング言語はパッケージマネージャがあって、何らかの方法でパッケージについての情報を取得することができると思います。 パッケージの選び方 自分の場合はjs系が殆どなので、ライブラリを選ぶ方法は以下のような感

                                                                      jsライブラリ選定はopenbaseが超絶便利 - Qiita
                                                                    • Big Sky :: gocode やめます(そして Language Server へ)

                                                                      はじめに まず始めに言っておかなければなりません。 gocode 今まで本当にありがとう この記事は、Go 言語歴10年になる僕がこれまで愛用してきた Go 言語のコード補完ソフトウェア gocode の歴史と功績、そして今、gocode 自らがその役割を終えようとしている姿をぜひ皆さんに知って頂きたいという思いから Go Advent Calendar 2018 の記事として起こしました。この記事では gocode が歩んできた歴史と苦悩を少しでも皆さんに分かる様に解説させて頂きつつ、そして次にやってくる Go 言語のコード補完の未来についてご紹介したいと思います。Vim について多めに書かれていますが、Visual Studio Code での Go 開発にも影響する話です。 gocode とは gocode は nsf 氏が開発した Go 言語のコード補完サーバです。 GitHub

                                                                        Big Sky :: gocode やめます(そして Language Server へ)
                                                                      • 「技術をアウトプットするところに技術は集まる」ソウゾウ エキスパートチームの役割 | メルカリエンジニアリング

                                                                        ソウゾウのエキスパートチーム所属の@mhidakaです。今回はソウゾウのエキスパートチームが、どんな活動をしているのか紹介します。 エキスパートチームについて ソウゾウでは「技術をアウトプットするところに技術は集まる」という思いから、 稼働の50%以上を技術コミュニティへの貢献や技術の普及に取り組むエキスパートチームが存在します。 私以外に@tenntennが居て、ふたりのミッションにはコミュニティへの貢献も含まれています。 現在、チームは二人で構成されており、メンバーごとに担当する技術分野が違います。 Go/GCPであればGo Conferenceやgolang.tokyoなどを運営している@tenntenn、 AndroidであればDroidKaigiや技術書典などを運営する@mhidakaという役割分担をしています。 エキスパートチームは次のような目的を持って活動をしています。 社内

                                                                          「技術をアウトプットするところに技術は集まる」ソウゾウ エキスパートチームの役割 | メルカリエンジニアリング
                                                                        • Go言語でTCPやソケット通信を多重化,高速化するsmux(ソケットマルチプレクサ)をつくった · THINKING MEGANE

                                                                          サーバ間で分散処理を行う際の相互通信におけるボトルネックを解消するため,smux(Socket multiplexer)を開発している. サーバ間の相互通信におけるボトルネックとその解決策 一対のサーバ間で多数のリクエストとレスポンスが送受信され,信頼性の高い通信としてTCPを利用する場合,コネクション確立のオーバーヘッドを排除するために接続の再利用が行われる.しかしながら,クライアントは送信に対する受信を待つ必要があるため,レスポンスまでに幾許かの処理時間を要する状況では送信のキューがたまってしまう.そこで複数の接続を利用することでこれを解消する方法が取られるが,追加の接続はリソース使用に関するオーバーヘッドを発生させてしまう.なにより各接続におけるレスポンス待ち時間は依然として解決しておらず,接続の利用面から見て非効率である.そこで,単一の接続において,仮想的に並行送受信を行う方法が提

                                                                            Go言語でTCPやソケット通信を多重化,高速化するsmux(ソケットマルチプレクサ)をつくった · THINKING MEGANE
                                                                          • 【Linux】100万ファイルくらいあるディレクトリのファイルのリストを高速に表示したい - 地方エンジニアの学習日記

                                                                            概要 ファイル名のリストだけ高速に欲しいみたいな場合に大量にファイルがあるディレクトリでlsを打って返ってこないみたいなのが地味にストレスになったりするので高速に済ませる手段が無いかを調べてみた。 1ディレクトリに100万ファイル程度 計測前にecho 3 > /proc/sys/vm/drop_cachesを都度実行し10回程度計測 計測 ls -l めっちゃ遅い real 0m24.052s user 0m5.668s sys 0m8.071s straceをしてみるとこんな感じ。-lをつけるとメタデータを取りに行くのでこれが遅いらしい。sysが長い % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 44.6

                                                                              【Linux】100万ファイルくらいあるディレクトリのファイルのリストを高速に表示したい - 地方エンジニアの学習日記
                                                                            • GoでとあるAPIサーバを実装し直した話 | メルカリエンジニアリング

                                                                              サーバサイドエンジニアの @b4b4r07 です。この記事は Go Advent Calendar 2016 の 19 日目です。今回は Go (Revel フレームワーク) で書かれていた API サーバをフルスクラッチで書き直したお話をします。 Revel とは A high productivity, full-stack web framework for the Go language 公式の説明にあるように、Revel は高機能でフルスタックな Web フレームワークです。 複雑なルーティングや、パラメータのパーシング、テンプレート機能など、Web アプリケーションを作ろうとなったときに必要な手段はたいてい兼ね揃えているようです。公式ドキュメントに詳しく書かれています。 Revel 以外にも Go 製の Web フレームワークは多数あり、有名どころだと以下のようなものが挙げられ

                                                                                GoでとあるAPIサーバを実装し直した話 | メルカリエンジニアリング
                                                                              • goroutineはなぜ軽量なのか - Carpe Diem

                                                                                概要 以前の記事で christina04.hatenablog.com Goはスレッドよりはるかに軽量なgoroutineでC10K問題を解決する、という話をしましたが、goroutineが軽量なのはなぜか?という理由を深掘りしたことがなかったのでしてみました。 環境 golang 1.11.1 Darwin 17.7.0 軽量と呼ばれる理由は2つ 大きく分けると以下の2つのポイントがあります スレッドに比べてメモリ使用量が低い スイッチングコストが低い それぞれ説明していきます。 goroutineがスレッドに比べてメモリ使用量が低いのはなぜか スタックとヒープのメモリの使い方を理解すると分かります。 ヒープはメモリの下層、プログラムコードのすぐ上にあり、上に向かって成長します。一方スタックは仮想アドレス空間の一番上にあり、徐々に下に成長していきます。 ref: イベントループなしでの

                                                                                  goroutineはなぜ軽量なのか - Carpe Diem
                                                                                • セキュアにGoを書くための「ガードレール」を置こう - 安全なGoプロダクト開発に向けた持続可能なアプローチ - Flatt Security Blog

                                                                                  The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/) The design is licensed under the Creative Commons 3.0 Attributions license. 種々の linter が様々なプロダクトの品質を高めてきた、というのは疑う余地のない事実です。実装の初歩的な問題をエディタ内や CI/CD パイプライン中で機械的に検出できる環境を作れば、開発者はコーディングやコードレビューの邪魔になる些末な問題を早期に頭から追い出し、本質的な問題に集中できます。 また、そのような環境づくり(e.g. linter のルールセットの定義、組織独自のルールの作成、…)は、まさに開発組織のベースラインを定義する作業として捉えることができます。一度誰かが定義

                                                                                    セキュアにGoを書くための「ガードレール」を置こう - 安全なGoプロダクト開発に向けた持続可能なアプローチ - Flatt Security Blog