yanap1214のブックマーク (4,225)

  • テストコードの改革を進めている話 | メルカリエンジニアリング

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

    テストコードの改革を進めている話 | メルカリエンジニアリング
    yanap1214
    yanap1214 2023/06/27
  • DBやめてみた / DNS water torture attack and countermeasures

    2023/06/21 TechFeed Experts Night#21 〜 Webパフォーマンス・チューニング最前線 : 後編(DB、CDN、キャッシュ、OS編)

    DBやめてみた / DNS water torture attack and countermeasures
    yanap1214
    yanap1214 2023/06/22
  • Goのメモリ管理 / Memory management in Go

    継続的プロファイルによる大規模アプリケーションの性能改善 / Improving massive application clusters with continuous profiling

    Goのメモリ管理 / Memory management in Go
    yanap1214
    yanap1214 2023/06/02
  • 「Go Style Guide」から学んだ可読性の高いコードの書き方

    Go Conference 2023 ( 2023/06/02 Fri. ) https://gocon.jp/2023/ 登壇資料 株式会社アンドパッド プロダクトテックリード 小島 夏海 みなさん、Googleが公開したGo Style Guideは読みましたか? ソフトウェア開発は継続的な活動であり、一般的に複数人で行うことが多いです。 継続的に複数人で開発を行う場合、自分が書いたコードを他人が読んだり修正したりすることが非常に多いです。 そのため可読性の高いコードを書くことは開発効率やメンテナンス性の向上に役立ちます。 Goはシンプルな言語ですが、どのように書くべきか悩むことが全くないわけではなく、そのような時従来はEffective Go/Uber Go Style Guide/OSSコード等を参考にどのように書くか決めていたと思います。 これらに加え、昨年末にGoogleからG

    「Go Style Guide」から学んだ可読性の高いコードの書き方
    yanap1214
    yanap1214 2023/06/02
  • Software Design、WEB+DB PRESS全巻読破のすすめ

    Web開発の歴史の復習の仕方 悲報: WEB+DB PRESSが休刊 22年以上続いていたWEB+DB PRESSが休刊するそうです。Software Design、WEB+DB PRESS共に年間購読していたのですが、とても残念です。 日語と英語、少し中国語の技術書を普段から読み漁っているのですが、ほどガッツリでなく、ブログよりはちゃんとバリデートされた上でトレンドをおさえた雑誌文化は割合日的で、他の言語圏だとあまりない文化だとも感じています。 技術評論社からでているSoftware Design、WEB+DB PRESSなのですが、Software Designの創刊が1990年11月で、WEB+DB PRESS Vol.1が2000年12月で10年の差があります。 どちらかというとSoftware Designがインフラ&バックエンドでWEB+DB PRESSがバックエンド&ク

    Software Design、WEB+DB PRESS全巻読破のすすめ
    yanap1214
    yanap1214 2023/05/03
  • 読みやすいコードを書くためのガイドライン

    はじめに 長くシステム開発に携わっていると、最初は素早く開発することができたけども、今では新たな機能を付け加えるのに、多くの時間を費やすようになったという話をよく聞きます。 初めはシンプルだったソースコードも年月が過ぎていくなかで、機能追加やバグ修正、変更を行なっていくと、コードが非常に複雑化していき、開発者が修正するコストの増加やコード品質の低下につながります。設計の良くないコードや複雑化したコードは、同じ処理をするのにも余計にコードを書く必要がでてくるからです。 今回は、コードを複雑化して品質を低下させないために、普段意識しているソフトウェア設計や手法を紹介していきたいと思います。色々書いていますが、結果的にクリーンアーキテクチャー成分が多めになってしまいました。 「読みやすいコード」が持つメリット コードを読みやすくすることは開発全体に好影響を与え、特に以下の点において最大限効果を発

    読みやすいコードを書くためのガイドライン
    yanap1214
    yanap1214 2023/04/25
  • 【個人開発】世の「家事やれよ論争」を撲滅するスマホアプリをリリースしました - Qiita

    なぜ家事は紛争を呼ぶのか 私の周りも結婚・出産をする友人が増えました。 そこで必ずと言っていいほど上がる議題がこれ。 「夫()がぜんっぜん家事をやらない」 日で婚姻制度が発足してから早100年。 これだけ長い年月「夫婦」という形が取られているのに、なぜこんなにも初歩的な不満が世に蔓延するのでしょう。 私も結婚して5年経ちます。 知人からの愚痴なども収集した結果、いくつかの原因が考えられました。 その1. 人は「自分が一番やってる」と思う生き物である これは私がサラリーマンとして働いてて出した結論です。 殆どの人が「自分は結構仕事してる」と思いがちです。(これはマジ) 少なくとも同等の仕事量だとまず間違いなく「自分のほうが仕事してる」と勘違いします。 そのため、仮に夫婦が全く同じ量の家事を分担してたとしても、 それが正確に見える化されない限り、必ず「俺(私)のほうが家事をやってる」と

    【個人開発】世の「家事やれよ論争」を撲滅するスマホアプリをリリースしました - Qiita
    yanap1214
    yanap1214 2023/04/24
  • Don't write clean code, write CRISP code — Bitfield Consulting

    I’m sure we’re all in favour of “clean code”, but it’s one of those motherhood-and-apple-pie things that no one can reasonably disagree with. Who wants to write dirty code, unless maybe it’s for a porn site? The problem, of course, is that few of us can agree on what “clean code” means, and how to get there. A rule like “methods should only do one thing”, looks great on a T-shirt, but it’s not so

    Don't write clean code, write CRISP code — Bitfield Consulting
    yanap1214
    yanap1214 2023/04/22
  • プロを目指す人のためのTypeScript入門、とても良かった! - Mitsuyuki.Shiiba

    を、読んだ。とても良かった。 gihyo.jp 2回読んだ 去年の9月くらいに1回読んで、先月からもう1回読んだ(んで、読んだメモを見ながらもう1回パラパラとめくった)。 1回目は理解。 2回目は記憶と索引づくり。 基的なことは、ある程度、頭の中に入ったと思う。んで、これは覚えなくてもコンパイラが教えてくれるからいいか、とか、ちょっと踏み込んだ話とかは、出会ったときに「あぁ、かすかに記憶にあるかも」ってを開いて確認する。くらいには、なったかな。 脚注も面白かった 著者の、うひょさん。知識がすごい感じがする。その中の、表面の部分を初学者向けに易しく書いてくれてるように思った。んで、ちょっとだけ踏み込んだ話をしてるときとか、脚注とかが楽しそう。 脚注をいっこずつ確認しながら読んだのは、初めてかも。それくらい脚注も面白かった。 僕が読んだ順番 何年か前に、JSPrimerでJSの勉強をして

    プロを目指す人のためのTypeScript入門、とても良かった! - Mitsuyuki.Shiiba
    yanap1214
    yanap1214 2023/04/21
  • 100億レコード超のDBを“障害ゼロ”でマイグレーション 新卒1年目が考えた2つのアプローチと3つの工夫

    インターネットやAIを駆使しながら、領域に捉われずにさらなる挑戦を行うDeNAの取り組みを紹介する「DeNA TechCon 2023」。ここで成田氏が登壇。PocochaのDBをマイグレーションしたことについて話します。 新卒1年目が100億レコード超のDBマイグレーションをした話 成田篤基氏:発表を始めます。みなさんはじめまして。成田と申します。私は2021年にディー・エヌ・エーに新卒で入社して、現在入社から2年が経とうとしています。 私は新卒1年目で、大規模なデータベースマイグレーションを行う貴重な経験ができました。日はそのマイグレーションプロジェクトについて、体験から得た学びをみなさんにお伝えします。題して「新卒1年目が100億レコード超のDBマイグレーションをした話」です。どうぞよろしくお願いいたします。 目次です。日はこちらの目次に沿って発表を進めていきます。 まずは私たち

    100億レコード超のDBを“障害ゼロ”でマイグレーション 新卒1年目が考えた2つのアプローチと3つの工夫
    yanap1214
    yanap1214 2023/04/16
  • Goのクリーンアーキテクチャで参考になりそうなもの

    はじめに Goでクリーンアーキテクチャっぽく実装したいモチベーションがあり、そのためにはコードを読むのが一番だと思ったので、参考にしていったリポジトリをまとめてみます。 観点としては スター数が比較的多いもの(400以上) READMEにアーキティクチャについての考えが明記されているもの を中心にピックアップしました。 Goの実装で参考にしたリポジトリ Goとは関係ないかもしれないが参考にしたリポジトリ おわりに 何かの参考になれば幸いです。

    Goのクリーンアーキテクチャで参考になりそうなもの
    yanap1214
    yanap1214 2023/04/15
  • UIデザインに必須の16の論理ルール! デザインは細部のちょっとした作り込みが使いやすさを決める

    UIデザインはシンプルで論理的なルールを理解することで、情報に基づいたデザインの意思決定を効率的におこなうことができます。UIデザインをより使いやすく改善する16の論理ルールを紹介します。 長い記事なので、時間がある時にゆっくりご覧ください。 16 little UI design rules that make a big impact by Adham Dannaway 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに 1. スペースを利用して関連要素をグループ化する 2. 一貫性を保つ 3. 見た目が似ている要素は同じように機能するようにする 4. 明確なビジュアルヒエラルキーを作成する 5. 不要なスタイルを削除する 6. カラーは意図的に使用する 7. インターフェイス要素のコントラスト比が3:1であることを確

    UIデザインに必須の16の論理ルール! デザインは細部のちょっとした作り込みが使いやすさを決める
    yanap1214
    yanap1214 2023/04/14
  • CTO 3度目の正直 / My 3rd CTO Career

    CTO Meetup #1 in P2B Haus. ビールxCTO といえば P2B Haus https://kichijoji.p2b.haus/

    CTO 3度目の正直 / My 3rd CTO Career
    yanap1214
    yanap1214 2023/04/13
  • エンジニアリングマネージャーの理想と現実

    NLP2024 参加報告LT ~RAGの生成評価と懇親戦略~ / nlp2024_attendee_presentation_LT_masuda

    エンジニアリングマネージャーの理想と現実
    yanap1214
    yanap1214 2023/04/13
  • 【React】爆速コーディングが捗る自作スニペットのすすめ

    はじめに VSCodeでのコーディング時にスニペットを使っている方はどれくらい居るのでしょうか。恐らくほとんどはプリセットに備わっているものか、適当な拡張機能をインストールしていると思われます。 自作する機能もありますが、少し前までは必要性を感じていませんでした。 できるだけ共通の環境に慣れておきたい 多数派に合わせておきたい タイピングとコーディングの能力があれば、少し構文が長くても苦痛ではない しかし、定型的に書くコードが決まっても手間が変わらないことに面倒臭さを感じていました。 そこで考えを改めてスニペットを作り込んしたら作業効率が飛躍的に上がりました。 なぜスニペットを自作した方がいいのか これ以降はJavaScript, TypeScript, React.jsの前提とします。 他言語の場合は当てはまらない可能性があります。 1. 拡張機能は網羅されていない かなりダウンロードさ

    【React】爆速コーディングが捗る自作スニペットのすすめ
    yanap1214
    yanap1214 2023/04/11
  • Swift未経験の医師が、ChatGPTを使って30分でiOSアプリを作った話|Shohei

    株式会社Ubie、プロダクト開発スペシャリスト・医師の原瀬です。 今回は、今注目されているChatGPTを使って、ごく初歩的なiOSアプリを作ってみたので、ここにまとめてみました。ChatGPTの凄さは既に様々な場所で取り扱われていますが、百聞は一見にしかず、ということで実際に自分で触ってわかったこと、感じたことを共有したいと思います。 私自身はヘルステックベンチャーで勤務していますが、バックグラウンドは医師でコーディングやSwiftも全くの未経験です。 ちなみに、自分の経験したことをそのまま書き出したい、という気持ちがあるので、このnoteの作成には一切ChatGPTを使っていません。 なぜアプリを作ってみようと思ったのかそもそも、なぜエンジニアリソースが豊富な環境の中、自分自身でアプリを作ってみようと思ったのか。「単純な興味です」と言ってしまえばそれまでかもしれませんが、以前から感じて

    Swift未経験の医師が、ChatGPTを使って30分でiOSアプリを作った話|Shohei
    yanap1214
    yanap1214 2023/04/09
  • 「Winny」のネットワークはシンプルな組み合わせでできている Port0の対応も可能にした“仕組み”と“すごい特徴”

    映画『Winny』の公開に伴い、記憶から消えかけている20年前の諸々の思い出話をする「Winnyとは何だったのか v2.0b7.1」。ここでAki@めもおきば氏が登壇。P2Pの基礎知識とWinnyの特徴について話します。 セッションの構成 Aki@めもおきば氏(以下、Aki@めもおきば):では「Winnyのネットワークのおもしろさ」ということで話をしたいと思います。ふだん、技術同人誌を「めもおきば」というサークルで出してるAkiと申します。15分ほどお時間いただきます。よろしくお願いします。 さて、今回の構成ですが、前半でWinnyのネットワークがどういうものだったかをおさらいをしながら、後半ではWinnyがたくさんのバージョンアップを重ねて最終的なかたちに至ったわけですが、そのバージョンアップのダイジェストみたいなものを振り返りながら、Winnyの開発史みたいな感じで振り返っていこう

    「Winny」のネットワークはシンプルな組み合わせでできている Port0の対応も可能にした“仕組み”と“すごい特徴”
    yanap1214
    yanap1214 2023/04/08
  • Web パフォーマンスのための HTML 最適化 | メルカリエンジニアリング

    Merpay Advent Calendar 2019 の2日目は @1000ch (id:hc0001) がお送りします。この記事は2019年11月16日に福岡で開催された Frontend Conference Fukuoka 2019 のセッション、HTML Optimization for Web Performance の書き起こし記事です。 docs.google.com なぜ HTML の最適化が重要なのか 先日公開された Chromium Blog: Moving towards a faster web をご覧になられたでしょうか。Google は Web ページのパフォーマンスの重要性を様々な形で啓蒙してきましたが、この記事では Chrome のもとになっている Chromium に、Web ページのパフォーマンスをブラウザ UI として表示する機能を追加し、ユーザーが

    Web パフォーマンスのための HTML 最適化 | メルカリエンジニアリング
    yanap1214
    yanap1214 2023/04/06
  • とってもやさしいフロントエンド入門

    まず、新しいアイデアが提案されると、ステージ0の「Strawman」と呼ばれる段階に入ります。ステージ0のアイデアが価値のある提案として見なされ、大まかな形で問題点や解決策を説明できるようになると、ステージ1の「Proposal」と呼ばれる段階に進みます。そして、提案がある程度まとまって仕様の草案として認められると、ステージ2の「Draft」と呼ばれる段階に上がります。さらに細かいところまで練り上げられて、仕様がほぼ完成した状態になると、ステージ3の「Candidate」の段階になります。最後に、2つ以上のブラウザがその機能を実装していて、ECMAScript の編集者に承認されると、ステージ4の「Finished」と呼ばれる段階になります。 ステージ4に上がった提案は、毎年 6 月のタイミングで ECMAScript の新しいバージョンとしてリリースされます。リリースする際は、ECMAS

    とってもやさしいフロントエンド入門
    yanap1214
    yanap1214 2023/03/25
  • Terraformセキュリティベストプラクティス

    文の内容は、2023年3月21にNIGEL DOUGLAS が投稿したブログ(https://sysdig.com/blog/terraform-security-best-practices)を元に日語に翻訳・再構成した内容となっております。 コードとしてのインフラストラクチャ ー(IaC) を使用する場合、Terraform はデファクトのツールです。 リソース プロバイダーに関係なく、組織はそれらすべてを同時に操作できます。 コンフィギュレーションエラーがインフラストラクチャー全体に影響を与える可能性があるため、疑いの余地のない側面の 1 つは Terraformセキュリティです。 この記事では、Terraformを使用するメリットを説明し、いくつかのセキュリティベストプラクティスを参照しながら、Terraformを安全な方法で使用するためのガイダンスを提供したいと思います。

    Terraformセキュリティベストプラクティス
    yanap1214
    yanap1214 2023/03/25