タグ

k1LoWのブックマーク (5,065)

  • 【Go言語】Response Bodyの安全な取り扱い方法 - Qiita

    APIなどを叩く際に、net/httpパッケージを使用して特定URLにリクエストを投げることが一般的かと思います。リクエストをしたら戻ってくるResponse、特にそのBodyをどんな時にCloseするべきなのか?を正確に知りたくなったので、Response Bodyの安全な取り扱い方法を調べてみました。 他の記事では、内部詳細まで詳しく解説されている記事がありますが、記事では、僕のようなGo初心者向けにポイントで理解できるような構成でまとめています。 参考にするべきURLも併記するようにしていますので、内部仕様など詳細が気になる方は参考URLも併せてご覧ください。 【結論】Response Bodyを安全に取り扱う2つのポイント リクエストで得たResponse Bodyを安全に取り扱うために、まずは下記の2つのポイントを意識してコードを書くことが重要です。 POINT1:Respon

    【Go言語】Response Bodyの安全な取り扱い方法 - Qiita
    k1LoW
    k1LoW 2023/09/05
  • 【Nginx】Rate Limitのexpireあたりの実装を眺めてみた - 地方エンジニアの学習日記

    この記事は「nginx Advent Calendar 2022」の17日目の記事です。 ngx_http_limit_req_moduleを使うことでリミットの制限を行うことが出来る。ここで疑問に思ったがめちゃめちゃ大量にアクセス元があるサイトでこの実装をしたときどういうメモリの使い方をしてるんだろうと思って調べてみた。 アクセスログとかからアクセス元ごとにカウントする際のいい感じの方法って何になるんだろ?何も考えずにやるとアクセス元の数だけキーが増えてメモリ全然足らん!となりそう。— Ryuichi@Gurasan:|| (@ryuichi_1208) 2022年12月17日 例えば全世界のパブリックIPから一度にアクセスを受けた際にメモリの制限をしていないと32bit(4byte)で格納しておくと43億あるので4[B] * 4,300,000,000 = 17.2 [GB]のメモリが

    【Nginx】Rate Limitのexpireあたりの実装を眺めてみた - 地方エンジニアの学習日記
    k1LoW
    k1LoW 2023/09/05
  • Goコンパイラのお勉強(2)~高階関数のためのインライン展開とエスケープ解析~ - Techtouch Developers Blog

    はじめに インライン展開 インライン展開とは 高階関数のパフォーマンスが落ちる例 インライン展開の制約 エスケープ解析 エスケープ解析とは 高階関数のパフォーマンスが落ちる例 さいごに 参考文献 はじめに 先々月にも Go コンパイラの最適化に関するブログ記事を書いたのですが、多くのブックマークを頂けて感謝です! SRE の izzii です。 github.com 上のドキュメントを参考にしつつ Go コンパイラの最適化に関する記事を連載していきます。記事は 2 目です。 [第 1 回] Goコンパイラのお勉強(1)~ゼロ幅の型によるメモリ利用の最適化と未定義動作~ [記事] Goコンパイラのお勉強(2)~高階関数のためのインライン展開とエスケープ解析~ [第 3 回] Goコンパイラのお勉強(3)~配列の効率的な操作に関する最適化~ 文字数の関係でタイトルでは高階関数という言葉を

    Goコンパイラのお勉強(2)~高階関数のためのインライン展開とエスケープ解析~ - Techtouch Developers Blog
    k1LoW
    k1LoW 2023/09/04
  • 複雑さに立ち向かうためのコードリーディング入門

    iOSDC Japan 2023登壇資料

    複雑さに立ち向かうためのコードリーディング入門
    k1LoW
    k1LoW 2023/09/03
  • 忙しさを解消したって能力と関心のない業務は遂行されない - ミネムラ珈琲ブログ

    社内でよく「マネージャー忙しい問題」みたいなのが話題になる。これはマネージャーに時間がないことによって、xxx(チームによって異なる任意の領域、ヒューマンマネジメントとかを想像してください)が疎かになっているという問題意識から発していると思う。 忙しさを解決すること自体が無意味だとは思わないが、それによってxxxが向上することはおよそないと思う。なぜならその忙しいマネージャーがxxxをやってないのは、時間がないからではなくてxxxに対する能力と関心がないからだ。 仮に忙しさを解消するアクションを取ったところで、その人は自分の能力を発揮できて関心がある領域に空いた時間を投下するだろう。 人間がある仕事をやるかどうかは、関心>>能力>>>>>>>>>>>.....(もはやここに不等号がある意味すらない)>>>>>>>時間だと思う。 自分の時間に対して裁量があるなら、どんなに忙しくても関心のある

    忙しさを解消したって能力と関心のない業務は遂行されない - ミネムラ珈琲ブログ
    k1LoW
    k1LoW 2023/09/02
  • ハッカーの呪いと共に生きる ~ The hacker is dead, long live the hacker! - An Epicurean

    私がWeb業界に入ったのは、ハッカーに対する憧れからです。その原体験を大事にしたいという気持ちを今でも強く持っています。 もう20年近く前になりますが、Web2.0の時代、私は傍観者でした。世界ではGoogleを筆頭として、日でも、はてな社などが、エンジニアドリブンで個性的なサービスを生み出していました。他にもmiyagawaさんなど、個人で世界的に使われるようなOSSを開発している人もいました。書籍「ハッカーと画家」で描かれるような、ハッカーが個人技で大企業を出し抜く痛快さがありました。 そのように、WebサービスにせよOSSにせよ、同年代のハッカーが自分の技術でイノベーションを起こし、世の中に影響を及ぼしていることに羨望の眼差しを向けていたのです。 サブカル的な空気感も好ましく思っていました。西海岸のコンピュータ文化はヒッピーカルチャーの影響を受けていたのは間違いないでしょう。当時の

    ハッカーの呪いと共に生きる ~ The hacker is dead, long live the hacker! - An Epicurean
    k1LoW
    k1LoW 2023/09/02
    私もハッカーの呪いに囚われていると思う。同じようにその呪いと共に生きていきたいと思っている。
  • テストでしか使わないパッケージをgo.modに含めない方法 - Copy/Cut/Paste/Hatena

    元エントリは↓で、これが全てです。 dev.to 最高じゃんhttps://t.co/c1hfSYhgx2— k1LoW (@k1LoW) 2023年8月26日 Goでツールではなくライブラリ(パッケージ)を作っているとき、テストにしか使わないパッケージがgo.modに入って依存関係ができてしまうのが、いつも気になっていました。 ただ、「まあ別にいいかな」と思っていたのですが、ちょうど標準パッケージだけで機能が実現できるパッケージができたので、どうしてもgo.modを綺麗にしたくなりました。 そして、えいっと調べてみたらすぐに解決方法が見つかったのでした。 テストでしか使わないパッケージをgo.modに含めない方法 方法は次の通りです*1。 テスト用に go_test.mod ファイルを用意して -modfile オプションを使って go_test.mod ファイルを指定して go tes

    テストでしか使わないパッケージをgo.modに含めない方法 - Copy/Cut/Paste/Hatena
    k1LoW
    k1LoW 2023/08/31
    書きました。もっと良い方法があれば是非教えてください。
  • OSSなどから学んだヒューマンスキルと経験を武器に。人生最大の挫折を越えてなおも歩む螺旋のキャリア - Findy Engineer Lab

    サーバーサイドからインフラ領域を中心としたWebエンジニアとして、リードエンジニアからプロダクトマネージャー、CTOと、順調にマネジメントの階段を上がってきた松木雅幸(Songmu)さん。その後、再びプレイヤーとして転職し、現在またマネジメントに取り組んでいます。この螺旋(らせん)のキャリアと呼ぶ働き方の変遷と、それを支えるOSSへの取り組み方について寄稿いただきました。 ▲ベストスピーカーを獲得したYAPC::Tokyo 2019での登壇(写真提供:Japan Perl Association) 私は、小粒ながら多くのOSSを開発してきました。他にも技術的な情報発信や、ISUCONでの優勝経験、エンジニア向けSaaSのプロダクトマネージャーやCTOといった経歴があるため、技術力でキャリアを築いてきた人間だと思われがちです。しかし実は、エンジニアの中では相対的に高めなヒューマンスキルを武器

    OSSなどから学んだヒューマンスキルと経験を武器に。人生最大の挫折を越えてなおも歩む螺旋のキャリア - Findy Engineer Lab
    k1LoW
    k1LoW 2023/08/29
  • ドコモネットワークの品質低下、結局どうなっているか、よくわからない

    今年4月に品質低下を認めて、今夏までの対応を進めると発言 7月末には改善状況を記したリリースも ドコモが、ネットワーク品質改善に向けた取り組みの目処としていた夏が終わろうとしています(この暑さは9月のいつまで続くんだという感じですが)。 ドコモネットワークについては、今年の初め頃からSNSを中心に「速度が遅い」「アンテナが立っているのにデータが来ない」といった投稿を見る機会が増えました。4月になって、ドコモはそうした声があることを認めて(「ドコモ、最近のネットワーク逼迫を「認識している」 5G拡大とエリアチューニングで対策」)、今夏までに品質改善に向けた取り組みを進めるとしていました。

    ドコモネットワークの品質低下、結局どうなっているか、よくわからない
  • Introducing go_test.mod

    How to avoid meta test dependencies across Go modules Since the Go v1.14 release, the go command now includes a little known flag called -modfile that can be used to manage multiple set of dependencies within the same repository. The -modfile flag can also be really helpful to also manage better what are the dependencies that importers of your package end up bringing into their project, specially

    Introducing go_test.mod
    k1LoW
    k1LoW 2023/08/26
  • Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository

    Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository

    Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository
    k1LoW
    k1LoW 2023/08/26
  • errors.Join ❤️ defer

    A common gripe I’ve had with Go is that the mantra is “you should handle errors”, but at the same time the ergonomics of handling errors from (io.ReadCloser).Close() in a defer call is cumbersome. But fear no more! With the Go 1.20 release, there’s a nifty way to handle this with the new errors.Join. Let me first explain a bit about the issue. Usually if you want to do the “right” thing and check

    k1LoW
    k1LoW 2023/08/24
  • テストデータを貯めて感じたこと

    https://toruby.connpass.com/event/286678/ の発表資料です。

    テストデータを貯めて感じたこと
    k1LoW
    k1LoW 2023/08/22
  • それ、課題じゃないですよ

    「アクティブ数が増えない」 「コンバージョン率が悪い」 「リリースした〇〇が使われない」 「オンボーディングがうまくできていない」 デジタルプロダクトの改善する際に取り上げられるフレーズたち。これらのフレーズが多くの会話やアイデア発散の起点となることがあります。しかし、これらはすべて課題ではなく、症状です。「アクティブ数が増えない」のは、開発陣の行動やステークホルダーの判断の結果(症状)であり、課題そのものではありません。真の課題を特定するためには、「なぜアクティブ数が増えなかったのか?」という深掘りする問いかけが必要となります。 単に「アクティブ数が増えない」という症状だけを見て対策を立てるのは、医者が具体的な診断をせずに治療を始めるのと似ています。このアプローチで一時的な改善が見られることもあるかもしれませんが、真の原因を突き止めずにアプローチをすると、その結果から学ぶことは少ないでし

    それ、課題じゃないですよ
    k1LoW
    k1LoW 2023/08/22
  • octocovとGitHub Actionsでテストカバレッジ監視をする | Wedding Park CREATORS Blog

    こんにちは。Photoraitエンジニアのヒエイです。 octocovをGitHub Actionsで使ってテストカバレッジを監視している話をします。 https://github.com/k1LoW/octocov テストカバレッジ値やテストコード実行時間を管理できるツールです。特徴的なのがメトリクス一覧やラベルバッジ作成を行えるだけでなく、Github上だけで監視ツールとして完結できるところが便利だと感じています。 octocovはGithub Actionsと連携することで、テストカバレッジ情報の生成を行えます。 Pull requestとoctocov Github Actionsでテストを実行し、テストカバレッジ値をPull Request(以下PR)で表示することができます。 以下例では、PHPUnitを実行してPRにテストカバレッジを表示させます。 まずアプリケーションに.o

    octocovとGitHub Actionsでテストカバレッジ監視をする | Wedding Park CREATORS Blog
    k1LoW
    k1LoW 2023/08/21
  • Goの抽象構文木(AST)でBoilerplate Codeを自動生成する

    この記事は、Merpay Advent Calendar 2022 の19日目の記事です。 こんにちは。メルペイのPayment PlatformチームでPaymentServiceの開発を担当するエンジニアの @huhu です。主にPaymentServiceに関わるマイクロサービスの開発や運用をしています。 この記事では、私のチームで行ったGoの抽象構文木(AST)でコードを自動生成する取り組みに関して紹介します。 背景 PaymentServiceは決済トランザクション管理の基盤サービスとして、エッジレイヤーのサービス(外部サービスも含め)が提供する各種決済手段を利用して、表層のサービス(メルカリ、NFC、コード払いなど)に必要な決済フローを共通APIとして提供しています。我々の提供している多彩な決済手段を表すEntityが存在していて、例えば支払い方法ではお客さまの残高の決済を表す

    Goの抽象構文木(AST)でBoilerplate Codeを自動生成する
    k1LoW
    k1LoW 2023/08/17
  • AIはどのような仕事ができるようになったのか?ChatGPTで変わる「優秀な人材」

    この図はざっくりと3つの領域に分かれます。まず左下が従来のプログラミングの領域です。これは簡単に言うと「プログラムは間違ってはいけない定形な仕事を奪う」ということです。次にその上の士業が責任を取る領域です。これは「責任」を取る人がいないと成立しない仕事です。ミスが発生した際に罰則を与えるという形で、ミスの発生を防いでいます。最後に右側のホワイトカラーの仕事の領域です。ホワイトカラーの仕事は入出力が不定形であり、作業フローも非定型であったりします。そのため、多少のミスはあっても仕方ないという前提の上で仕事が行われています。 機械学習がビジネスに組み込まれるにつれ、ホワイトカラーの仕事領域はそれらによって少しずつ代替されつつあります。その図がこちらになります。 ホワイトカラーの担っていた領域は、表データの機械学習(重回帰や、Lasso回帰、SVM、RandomForest、LightGBMなど

    AIはどのような仕事ができるようになったのか?ChatGPTで変わる「優秀な人材」
    k1LoW
    k1LoW 2023/08/17
  • 認可のアーキテクチャに関する考察(Authorization Academy IIを読んで)

    みなさま、認可の設計に苦しんでいるでしょうか?私は苦しんでいます。苦しまなかった瞬間などありません。昔「アプリケーションにおける権限設計の課題」を執筆しましたが、あれから3年以上が経ちます。 当時は認可の設計に関する情報がうまくまとまっている記事などほとんど無く、調べに調べて得たナレッジを書き記したのが上記の記事です。3年以上経ちますが、苦悩が今も特に変わっていないことが驚きです。 ただし、世の中的には認可のライブラリであったりサービスというのは少しずつ増えてきている印象があります(Auth0の OpenFGA であったりOsoの Oso Cloud 、Asertoの Topaz )。 認可の設計に関する記事も少しずつ増えている印象があり、その中でも記事で紹介したいのがAuthorization Academyです。 これは認可サービスである Oso Cloud やOSSのライブラリ o

    認可のアーキテクチャに関する考察(Authorization Academy IIを読んで)
    k1LoW
    k1LoW 2023/08/14
  • 現代的システム開発概論

    2023年度リクルート エンジニアコース新人研修の講義資料です

    現代的システム開発概論
    k1LoW
    k1LoW 2023/08/10
  • Kafka is dead, long live Kafka

    TL;DRWarpStream is an Apache Kafka® protocol compatible data streaming platform built directly on top of S3. It's delivered as a single, stateless Go binary so there are no local disks to manage, no brokers to rebalance, and no ZooKeeper to operate. WarpStream is 5-10x cheaper than Kafka in the cloud because data streams directly to and from S3 instead of using inter-zone networking, which can be

    Kafka is dead, long live Kafka
    k1LoW
    k1LoW 2023/08/10