タグ

kazokmrのブックマーク (1,018)

  • 社内に詳しい人がいない領域のコードを触る時 - Konifar's ZATSU

    自分も含めて社内に詳しい人がいない領域のコードをいじることってあるよね。特に歴史の長いサービスだと当時触っていた人が誰もいないとか。仮にいたとしても1年くらい触ってないとほとんど忘れてしまって知らないのと同じような状態になっていたりする。 自分もそういうことが何度もあって、雑にスタンスややってることをまとめておこうと思う。 前提のスタンス 「これを倒したら俺がこの領域で一番詳しい最強になるんや」という気持ちを持ってる 詳しい人がいない状態で属人化とか気にしても仕方ない。まずは自分が詳しくなってから考えるでよい 自分用メモを作る キャッチアップしたことを書き残していく。ドキュメントじゃなくてSlackに垂れ流すでもいい 過去のドキュメント・やりとりを探す 全体像を把握できるドキュメントがないかを探すのを最初にやってる ここは近道はない。とにかく全部集めて全部読む気持ちで臨む Google D

    社内に詳しい人がいない領域のコードを触る時 - Konifar's ZATSU
    kazokmr
    kazokmr 2024/05/25
    詳しくなったと思ったのに、ある側面に切り出すと詳しい人が現れる。別の領域のある部分が実は影響があった。みたいなことが後から次々出てくることもある
  • 自社サービスのバックエンドを 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 へ切り替えるための整理
  • クレディセゾンでDXを進めてきた5年間を振り返る|小野 和俊

    はじめにクレディセゾンに来てちょうど5年が経ったので、これまでの取り組みをまとめてみようかと思う。書き進めていくうちにとても長くなってしまったので、1年につき3トピックに絞ってあとはカットした。それでも5年分なこともありかなり長くなったので、目次から各トピックに飛んでもらえればと思う。社内の関係者も読むかもしれず、「自分のやったことが載ってない!」と思うこともあるかもしれないが、内製開発案件だけでも53案件あり全部載せるととんでもない量になるので許してほしい。それから、振り返ってまとめると退職すると勘違いされるかもしれないけれど、退職するわけではありません! 2019年:ゼロからのスタート1-1. 内製開発エンジニア募集を始める「日のそれなりの規模の事業会社の中に、内製開発チームを立ち上げることはできるのだろうか?」 2019年3月、クレディセゾンに来たばかりの私にとってはこの質問への答

    クレディセゾンでDXを進めてきた5年間を振り返る|小野 和俊
    kazokmr
    kazokmr 2024/03/28
  • オブジェクト指向は必要なのか / Is object-oriented needed?

    2024/3/24に開催されたObject-Oriented Conferenceでの登壇資料です。 https://ooc.dev/2024/

    オブジェクト指向は必要なのか / Is object-oriented needed?
  • 変更履歴を記録する

    Version 1.1.0 # Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - v1.1 Brazilian Portuguese translation. - v1.1 German Translation - v1.1 Spanish translation. - v1.1 Italian

    変更履歴を記録する
  • 25000行超えのAPIドキュメントを分割した話

    はじめに COUNTERWORKSバックエンドエンジニアの伊藤です。 この記事ではAPIドキュメント分割の知見を紹介します。 弊社では OpenAPI を使用したスキーマ駆動開発を採用しています。 1ファイルで管理していたところ、25000行を超える行数となり管理コストが高くなっていました。 そこで分割作業を実施したのですが、どのような方針でどう対応したかを紹介します。 1ファイルで運用するデメリット そもそもどんなデメリットが発生していたのかを記載します。 全体の構造が把握しづらく、新規参画者への認知負荷が高い 行数が多すぎるため、RubyMine など IDE やエディタのパフォーマンスが落ちる 1ファイルの内部で複数の箇所を参照しているが、それぞれCommand fで該当部分を探す必要がある。そのため、見ているコードの箇所が頻繁に飛んで情報が追いづらい 実際にやったこと 方針 チーム

    25000行超えのAPIドキュメントを分割した話
  • ソフトウェアエンジニアのライブラリアップデートの向き合い方 - Uzabase for Engineers

    こんにちは。ソーシャル経済メディア「NewsPicksNewsPicks Stage.事業のエンジニアをしています、林です。 業務では Next.js / Rust / Go などを用いて、経済・ビジネス情報に特化した動画配信サービスであるNewsPicks Stage.の開発・運用を行っています。 はじめに 突然ですが、皆さんは自身のソフトウェアのライブラリアップデートは行えていますか? 皆さんはどのようにライブラリアップデートを行なっていますか? 新機能を試したくて? npm iで失敗してから頑張る? Renovate / dependabot が自動Mergeされる環境? もしくは対応担当が特定の日にまとめてMergeする運用? しかし多くの開発者は、アップデートに対して「うまくいっている」と言えないのではないでしょうか?自身も様々なプロダクトを開発してきた経験上、日々の中ではどう

    ソフトウェアエンジニアのライブラリアップデートの向き合い方 - Uzabase for Engineers
    kazokmr
    kazokmr 2024/03/22
    主要なライブラリはGitHubリポジトリにスター付けてHomeでリリース確認したりRC版で事前に動作確認とかしたりする
  • Best Practices for Writing Tests with React Testing Library

    React Testing Library has become the de facto standard for testing React components. Focus on testing from the user's perspective and avoidance of implementation details in tests are some of the main reasons for its success. Properly written tests not only help prevent regressions and buggy code, but in the case of React Testing Library, they also improve the accessibility of components and the ov

    Best Practices for Writing Tests with React Testing Library
  • 賢い質問のしかた

    翻訳: アラビア語 インドネシア語 ベラルーシ語 ブラジルポルトガル語 中国語 チェコ語 オランダ語 フランス語 グルジア語 ドイツ語 ギリシャ語 ヘブライ語 ポーランド語 ポルトガル語 ルーマニア語 ロシア語 セルビア語 スペイン語 スウェーデン語 タイ語 If you want to copy, mirror, translate, or excerpt this document, please see my copying policy. 多くのプロジェクトのウェブサイトがヘルプの項目からこのドキュメントにリンクを張っている。それは私達の意図した使い方なので構わない ―― しかしあなたがそのようなリンクをプロジェクトのページに追加しようとしているウェブ管理者ならば、リンクの傍らに目立つように、私達があなたのプロジェクトのサポート窓口ではないことを明示してほしい。 その注意書き無くし

  • Feature Flag Deep Dive

    チーム勉強会で Feature Flag とトランクベース開発の話をしました (追加訂正と書かれているスライドは、勉強会後議論した結果を反映したものです)

    Feature Flag Deep Dive
    kazokmr
    kazokmr 2024/03/13
    担当してるプロダクトに複数の機能追加が頻繁にあって期間もバラバラだからfeature flgとか有ったほうがいいかなと思ってた所だった
  • 「1日1万歩で健康」説はやっぱり本当? 歩数や座位時間と死亡率の関係を調査、7万人を対象に【研究紹介】

    オーストラリアのシドニー大学などに所属する研究者らが発表した論文「Do the associations of daily steps with mortality and incident cardiovascular disease differ by sedentary time levels? A device-based cohort study」は、1日の歩数と、全死因死亡率およびCVD(心血管疾患)発症率の関連性を調査した研究報告である。 この研究は、UKバイオバンク(英国)の参加者を対象に実施。対象となった参加者7万2,174人(平均年齢61.1、女性57.9%)は、24時間7日間にわたって加速度計を装着し、1日の歩数と座位時間の測定を受けた。追跡期間(平均6.9年)中に1,633人が死亡し、6,190人がCVDを発症した。 keyboard_arrow_down 研究内容

    「1日1万歩で健康」説はやっぱり本当? 歩数や座位時間と死亡率の関係を調査、7万人を対象に【研究紹介】
    kazokmr
    kazokmr 2024/03/12
    1年前に病気に掛かった頃は在宅で1日に2000歩も行ってなかった。病院で再発防止には毎日6000歩って言われて10000歩近く毎日歩いたり立って仕事する時間を増やしたりとにかく座ってる時間を減らすようにしてる
  • 【追記あり】漫画家・鳥山明先生の訃報に対する反応と関係者からの追悼コメント

    自分が見つけた範囲内のまとめなので「この人のコメントも」というのがあれば教えてください。 心よりご冥福をお祈り申し上げます。

    【追記あり】漫画家・鳥山明先生の訃報に対する反応と関係者からの追悼コメント
  • 好きな作品の公式アカウントが誤ったURLを添付してツイート→悪用されないように誤ったURLのドメインを自費購入して転送処理する猛者が現れる

    『青春ブタ野郎はスクールメモリーの夢を見ない -青ブタ展-』公式アカウント @aobutaten 「青春ブタ野郎はスクールメモリーの夢を見ない -青ブタ展-」の公式アカウント|東京会場2024年3月12日(火)~24日(日)開催!|名古屋、大阪、京都でも開催決定!!|鴨志田一×溝口ケージが描く思春期ファンタジー|出演:石川界人、瀬戸麻沙美、東山奈央、種﨑敦美、内田真礼、久保ユリカ、水瀬いのり、雨宮天 #青ブタ展 tenji.ao-buta.com 『青春ブタ野郎はスクールメモリーの夢を見ない -青ブタ展-』公式アカウント @aobutaten / 📣#青ブタ展 グッズラインナップ公開! \ 東京会場 グッズラインナップを公開致しました。 スペシャルドラマCD、パンフレット、キャラファイン等 展示会オリジナル商品を発売です!お見逃しなく!! ▼詳細はこちら tenji-ao-buta.co

    好きな作品の公式アカウントが誤ったURLを添付してツイート→悪用されないように誤ったURLのドメインを自費購入して転送処理する猛者が現れる
    kazokmr
    kazokmr 2024/03/03
    公式でさえ間違えやすい似たURLだしこのまま公式がこのドメインを引き継いでもいいのでは
  • キャッシュと向き合う、キャッシュと共に生きる / cache pattern

    PHPerKaigi 2024の登壇資料です。 https://phperkaigi.jp/2024/ - https://speakerdeck.com/moznion/pattern-and-strategy-of-web-application-caching - https://soudai.hatenablog.com/entry/cache-strategy

    キャッシュと向き合う、キャッシュと共に生きる / cache pattern
  • テストピラミッド万歳 | POSTD

    クイックサマリー:「テストピラミッド」は、自動テストをUI、サービス、ユニット単位に整理することで、開発に自動テストを組み込む方法を示すために作成されました。2012年に定義されて以降、このモデルは次第に使われなくなってきたように思いますが、当に廃れてしまったのでしょうか。この記事では、最新のテスト戦略を紹介するとともに、今日のソフトウェア開発におけるテストピラミッドの関連性を検討します。 筆者の同僚であるジャン・フィリップ・ピエトルチェクが、かつてコードを書く開発者の責任について、次のように述べました。 none「我々の仕事の成果を最終的に使用する人々は、(中略)我々がただ最善を尽くすだけでなく、実際に機能するものを作ることを期待しているのです。」 — ジャン・フィリップ・ピエトルチェク 彼の言葉は、私たちが書くコードをそれに依存する人々の観点からとらえている点で非常に印象に残りました

    テストピラミッド万歳 | POSTD
  • うるう日にしか発生しないバグ

    昨日うるう日にしか発生しないバグに遭遇した。Javascriptを書く人には有名な話だとは思うので大して面白くはないかもしれないが一応メモ。 詳しくは書けないがバグが発生した関数の仕様としてはざっくりと下記のような感じ。 対象の年月日が基準日の1年前から1年後の間に含まれる場合はtrueを返しそうでない場合はfalseを返す 引数として2020-12-24というフォーマットの文字列が渡される(判定対象の日) 引数として2021-01-01というフォーマットの文字列が渡される(+-1年の基準日) Javascriptで書く (例) 対象の日: 2024/10/10 基準日: 2024/01/28 この時、trueになる範囲は2023/01/28 ~ 2025/01/28。なので2024/10/10はtrue。2023/01/28も2025/01/28もtrueになる。閉区間。 とあるコードの

    うるう日にしか発生しないバグ
  • 何のための個人目標設定?

    EMゆるミートアップ vol.6 〜LT会〜 https://em-yuru-meetup.connpass.com/event/308552

    何のための個人目標設定?
    kazokmr
    kazokmr 2024/03/02
    あるべきはこういうことなんだろうけど、自分がこれまで所属してきた会社は「会社が賞与査定と人事考課を定量的に評価するため」の設定がほとんどだった
  • 去年、閏年生まれの友達に「今年は歳とらないの羨ましいなw」と言ったらキレ気味に民法の話をされた

    山口慶明🇺🇸で何とか生きてる @girlmeetsNG Twitterは大人のおしゃぶり/たかがSNS、そんなムキにならないで楽しくやりましょ/業はアメリカ🇺🇸とメキシコ🇲🇽で給料泥棒。 twitter.com/search?q=from%… 山口慶明🇺🇸で何とか生きてる @girlmeetsNG 今年は閏年ですが昨年の今頃、2月29日生まれの友人に「今年は歳とらないの羨ましいなw」と言ったら「民法上、歳をとるのは誕生日の0時ではなく前日の24時なので2月29日生まれの人が歳をとるのは28日の24時。4年に1度しか歳をとらないわけではない。これ2月29日生まれ全員が知ってる常識な」とキレ気味に言われたのを思い出すw その時ついでに 「4月1日生まれの子供が3月31日生まれの子と同じ一つ上の学年になるのも同じ理屈で、法律上3月31日の24時が歳をとる日だから」という話も聞け

    去年、閏年生まれの友達に「今年は歳とらないの羨ましいなw」と言ったらキレ気味に民法の話をされた
    kazokmr
    kazokmr 2024/02/29
    所得税の扶養控除対象も12月31日時点の年齢で決まるので1/1生まれと1/2生まれが境界値だったはず
  • You Don't Need Next.js | ドクセル

    [beta] Next.jsクイズ2 • <p>にはなにが表示されるでしょうか? /app/page.tsx "use client"; import { useCallback, useEffect, useState } from "react"; export default function Home() { const [date, setDate] = useState(); const fetchDate = useCallback(async () => { const response = await fetch("/api"); const data = await response.json(); setDate(data.date); }, []); useEffect(() => { fetchDate(); }, [fetchDate]); return ( <

    You Don't Need Next.js | ドクセル
  • 【ソフトウェア設計】モジュールをどう分割するのか?

    はじめに 前々回や、前回に引き続き、ソフトウェア設計の指針に関する話をしたいと思います。 関数やクラス、そしてサービスなどシステムの塊の単位をモジュールと呼び、モジュールを作る事で、認知負荷を下げ複雑性と戦うという話をしてきました。では、モジュールは「いつ」分割するのが良いでしょうか? また、他にも共通モジュールを不用意に作ってしまって苦労した人も多いのでは無いでしょうか? 今回はそのあたりの話をしていきます。 TL;DR 以下があればモジュール設計を見直す 単純な要件/普段の利用に対して、タイプ量や約束事が多い 共通モジュールが「使われ方」に依存する モジュールの役割を一言で説明できない コード管理や性能/データ整合性など利用に際してのペナルティが高い 分割 is NOT 正義 - FizzBuzz Enterprise Edition 複雑性を排除するためにモジュール分割をすることは重

    【ソフトウェア設計】モジュールをどう分割するのか?
    kazokmr
    kazokmr 2024/02/26
    先にモデリングしたり、まずは継承は使わずに書いてから考えるみたいなことをしてる