タグ

practiceに関するrmatsuokaのブックマーク (12)

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

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

    テストコードの改革を進めている話 | メルカリエンジニアリング
  • クールなURIは変わらない -- Style Guide for Online Hypertext

    クールなURIとは? クールなURIとは変わらないもののこと。 どんなURIが変わってしまう? URIは変わらない:人がそれを変更するのだ。 理屈の上では、人々がURIを変更するべき(もしくはドキュメントのメンテナンスをやめてしまう)理由は全くありません。しかし、現実には山ほど理由があります。 理論上では、ドメイン名空間の所有者はその空間を所有しており、したがってその中に含まれるURIも所有権を持ちます。ドメイン維持料が支払えない場合を除いて、その名前を保有し続けることを妨げるものはありません。そして理論上は、あなたのドメイン名のもとにあるURIは、完全にあなたの管理下にあり、望む限りそれを安定的に保つことができるのです。 ウェブからあるドキュメントが消えてしまう唯一の納得できる理由は、そのドメイン名を保持していた会社が廃業してしまうか、サーバーを維持できなくなったという場合ぐらいでしょう

  • 大規模ソフトウェアを手探る

    括弧内は投稿日. 新しいものを上に書き足します. (過去ログ), (過去レポ) (投稿日 2023/10/04) 2023年度版ホームページ開設 テキスト テキスト GDBを使えるようになろう. 動画版 vscodeの場合 Globalを使おう. 動画版 Windowsで開発するのはおすすめしない. 仮想マシンにLinuxを入れるのを推奨します 補足資料: uftraceについての紹介ブログ uftrace 紹介編 gnumericへ適用編 教科書執筆後, 補足資料として執筆 (自分も教科書の代わりにブログを書いてみた). 参考: uftraceが上手く行かないときの代わりになるかもしれないツール libitrace 説明スライド イントロ (説明予定: 第1回) Gitについて (説明予定: 第2〜3回), イントロスライド 提出物について (説明予定: 後半) レポートその他の提出手続

  • kumagiさんは、OSSのコードを読むとき、普段どのような目的で読みますか?おすすめの読み方などはありますでしょうか? OSSの規模ですが、redisほどの規模を想定しています。 redisのソースコードを読むとして、どのような目的でどのように読むでしょうか? | mond

    kumagiさんは、OSSのコードを読むとき、普段どのような目的で読みますか?おすすめの読み方などはありますでしょうか? OSSの規模ですが、redisほどの規模を想定しています。 redisのソースコードを読むとして、どのような目的でどのように読むでしょうか? そのOSSで注目されている機能を理解したくてコードを開くときが多いです。 大抵のちゃんとしたソフトウェアはコード規模が数万行を超えているので、毎秒1行読んでも端から読んだら1時間では終わりません。ですのでいかにコードを読まずにあたりを付けるかが鍵です。ドキュメント内でそのソフトウェア固有の単語の中から興味のあるものを抜き出し、git cloneしてその単語がある場所を検索してそれっぽい物を見つけます。後はその前後の処理を読んだり普通の事をしています。 例えば知り合いから「Redis使っているんだけどLPOPコマンドがやけに遅いんだ

    kumagiさんは、OSSのコードを読むとき、普段どのような目的で読みますか?おすすめの読み方などはありますでしょうか? OSSの規模ですが、redisほどの規模を想定しています。 redisのソースコードを読むとして、どのような目的でどのように読むでしょうか? | mond
  • 「読みやすいコードのガイドライン―持続可能なソフトウェア開発のために」を読んだ! - mochikoAsTechのdig日記

    先日、社内で技術書に関するイベントが行われた。執筆経験を持つ社内のエンジニア諸氏から話を聞ける、という面白そうなイベントだったので有難く参加してきたんだけど、そこで質問を投げたところ、著者である石川さんからご厚意でこちらのを頂戴した。 ばばーん!「読みやすいコードのガイドライン―持続可能なソフトウェア開発のために」です! gihyo.jp 実はもともとこのツイートを見て気になっていたんだけど、「私には難しすぎるんでは…」とためらって買っていなかっただったので、とてもうれしい! クライアント開発を担当している石川宗寿が執筆した「読みやすいコードのガイドライン -持続可能なソフトウェア開発のために」が10月22日に発売されます。 著者に執筆のきっかけやこだわった点などをインタビューしましたので、書籍情報とあわせてぜひご覧ください。https://t.co/5e7n9UZ2Oz— LINE

    「読みやすいコードのガイドライン―持続可能なソフトウェア開発のために」を読んだ! - mochikoAsTechのdig日記
  • Goで書くテスタブルなCLIツールの作り方 | gihyo.jp

    CLIツールをテストする難しさ ターミナルなどで動作するCLI(コマンドラインインタフェース)ツールは、パッケージを公開して利用してもらうライブラリと比べてテストがしにくいと感じる読者も多いでしょう。 CLIツールは、ファイル/標準入力からの入力や、ファイル/標準出力/標準エラー出力への出力があることが多いです。また、コマンドライン引数やオプション(フラグ)によって変わる挙動のパターンが多いため、網羅的なテストが大変です。 入出力についても単一のファイルを読み書きするだけではなく、ディレクトリごと作成したり、特定のディレクトリ以下を再帰的に読み込むような処理もよくあります。 main関数にすべての処理をすべて書くような作りのCLIツールだと、実際にビルドしてテストスクリプトなどから動かしてテストするしかありません。しかし、せっかくCLIツールをGoで書いているのであれば、テストもGoで書き

    Goで書くテスタブルなCLIツールの作り方 | gihyo.jp
  • software that sucks less | suckless.org software that sucks less

    Home of dwm, dmenu and other quality software with a focus on simplicity, clarity, and frugality. Read more about our philosophy and join us on the mailing list. News Atom feed 2024-04-05 st 0.9.2 released: download This reverts a commit and a regression with cursor move with wide glyphs, for example with GNU readline. 2024-03-20 Below are some highlights of the changes for the recent releases of

    rmatsuoka
    rmatsuoka 2022/10/30
    簡素さ明確さ質素さを意識してソフトウェアを作っているプロジェクト
  • デスクトップ環境をdisposableに保つ - あんパン

    もう5年以上続けている取り組みのひとつにデスクトップ環境をdisposableに保つというのがある。いつでも何があっても即座に環境を捨てて作り直せるようにするということ。EC2やVPSのインスタンスに対してAnsibleでプロビジョニングできる状態にしておけば即座に新しいホストを立てて古いホストを捨てられる、そんな状態を目指すということ。具体的には以下のようなことを心がけている。 書類のマスターデータを端末上に置かない デスクトップ環境をdisposableに保つ第一歩は、とにかく手元になんらかのデータのマスターを置かないことにつきる。端末上にマスターデータを置いていると当然新しい環境を用意する際にデータ移行が必要になる。移行をしないためにはこれらを手元に置かないようにする。書類はGoogle DriveやNASに入れる、ソースコードは全てGitHubに上げておく、などなど。現代では機密情

    デスクトップ環境をdisposableに保つ - あんパン
  • よくわかるcontextの使い方

    Goの標準パッケージにはcontextパッケージというものが存在します。 このパッケージは、net/httpやdatabase/sqlのような現実の事象と対応している何かが存在するようなパッケージではないため、初学者にとっては使い道がわからない、となってしまいがちです。 しかしcontextパッケージは、複数のゴールーチンを跨いだ処理を実装する際には非常に強力な力を発揮する、とても便利なパッケージなのです。 このでは、「contextとは何か?」というところから「どのように使えばいいのかわかる」ところまでたどり着けるように、Goのcontextまわりのことを解説しました。

    よくわかるcontextの使い方
  • ソフトウェアの複雑さに立ち向かう1つの哲学 :『A Philosophy of Software Design』 を読んだ - こまぶろ

    あけましておめでとうございます、になるはずだったのですが、後から読んだ『Googleのソフトウェアエンジニアリング』の方を先に記事にしたので新年2目の更新です。 ky-yk-d.hatenablog.com さて、題。最近のお気に入りポッドキャストであるe34.fmで激賞されていた『A Philosophy of Software Design』を読みました。初版は2018年に出ていて、今回は2021年に出た第2版を読みました。 スパゲッティコードを想起させる装丁 A Philosophy of Software Design, 2nd Edition (English Edition) 作者:Ousterhout, John K. Amazon scrapbox.io どんな? 書籍のテーマはソフトウェアの複雑さです。複雑さとは、システムを理解したり変更したりするのを困難にさせるも

    ソフトウェアの複雑さに立ち向かう1つの哲学 :『A Philosophy of Software Design』 を読んだ - こまぶろ
  • go generate のベストプラクティス - Qiita

    概要 Go 言語におけるコード生成 (go generate) について、自分の中でベストプラクティスと思えるものが増えてきたので、ここでまとめて紹介してみたいと思います。 2020/05/30 初版 2020/06/03 次の節を追加 マップを元データとするときは要素の出力順をソートする 使用するコードジェネレータのバージョンをモジュールに記録する 2020/06/03 次の資料を公開 go generate 完全入門 (プログラミング言語Go完全入門 質問会 発表資料) wtz.go と time について go generate のベストプラクティスを説明するにあたり、この記事では wtz.go と time の 2 つのライブラリを実例としてとりあげます。 wtz.go は筆者が Go 標準ライブラリの time の Windows ランタイム部分を参考にして作成したもので、 Wi

    go generate のベストプラクティス - Qiita
  • C言語プログラミングの覚え書き(改訳) - アスペ日記

    原文: Notes on Programming in C Rob Pike 1989年2月21日 Copyright (C) 2003, Lucent Technologies Inc. and others. All Rights Reserved. Lucent Public License Version 1.02 前書き KernighanとPlaugerによる“The Elements of Programming Style” (「プログラム書法」木村泉訳)は重要で影響力のあるです。このにはそれだけの価値があります。しかし、その中の簡潔なルールが、来意図されたような哲学の簡潔な表現としてではなく、よいスタイルのレシピとして受け取られているように私は時々感じます。このが変数名は意味を持つようにつけられるべきだと言うなら、名前が使い方を説明するちょっとしたエッセイのような

    C言語プログラミングの覚え書き(改訳) - アスペ日記
  • 1