dnskimoxのブックマーク (1,406)

  • 2022年における開発組織のパフォーマンス計測とNewsPicksの取り組みについて - Uzabase for Engineers

    NewsPicksの高山です。 2020年と2021年は「開発生産性」またはほぼ同義の「開発者体験」に注力した2年でした。特に2021年は、自分でも少しウザいぐらいに登壇やブログやインタビューでこの話をしていました。(後半からは「開発生産性」から派生してKotlinの話が主でした) tech.uzabase.com codezine.jp hatenanews.com zine.qiita.com zine.qiita.com tech.uzabase.com hatenanews.com 今回のブログでは、2021年のNewsPicks開発組織のパフォーマンス計測の現状と、界隈の動向についてまとめていきます。 背景 デプロイ頻度の計測 Findy Teams Four Keys まとめ 宣伝 背景 『LeanとDevOpsの科学』によると、一般的にアジャイル開発で良いとされる開発スタイル

    2022年における開発組織のパフォーマンス計測とNewsPicksの取り組みについて - Uzabase for Engineers
    dnskimox
    dnskimox 2024/07/20
  • corepack is 何?

    追記: 2023-11-19 corepack v0.20.0 にて、CLI のコマンド体系が一新されて多少わかりやすくなりました (PR#291)。新しいコマンドは README を参照。 追記: 2022-02-03 Node.js v14.19.0 に corepack が標準バンドルされました。 corepack がバンドルされていない Node.js v12 系は 2022-04-30 に EOL を迎えるので、あと 3 ヶ月もすればアクティブな Node.js 環境には必ず corepack が揃っているという状態になりますね。引き続き experimental ステータスのままではありますが。 追記: 2021-09-08 Node.js v16.9.0 で corepack が標準バンドルされました。まだ experimental 扱いですが。 デフォルトでは yarn も

    corepack is 何?
    dnskimox
    dnskimox 2024/07/17
  • 「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで

    2024.05.28 『データモデリングでドメインを駆動する』読書感想会 https://kichijojipm.connpass.com/event/315276/

    「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで
    dnskimox
    dnskimox 2024/07/17
  • PdM/EMが気づくべき「技術負債」の異変

    技術負債が溜まっている勘所について。現場のエンジニアは実際のシステムを触っているので変更や追加をする過程で当事者になるのでおおよそ異変に気づく。 一方、実際にそのシステムに対となるプロダクトに関わっているのはエンジニアだけではない。PdMEM、事業責任者がいる中でこのメンバーにどう常に変化し続けるシステムアーキテクチャの異変に気づいてもらうのか、自ら気づかせるのかは至難の業である。 とはいえ、つばり一番わかり易いのは工数の予測精度の幅がある。 以下の3つのフェーズがあったときにそれぞれのズレが大きい場合は負債が溜まっていることが多い。(特に、1.と3.) 一般的な視点と現場システムへの理解度のズレ詳細から開発手前での予測のズレ予測工数と実績工数のズレここでいう工数予測がズレるのはエンジニアリングスキルの問題ではなく、システムに関する理解度の認知問題によってズレるケースが該当する 1.一般

    PdM/EMが気づくべき「技術負債」の異変
    dnskimox
    dnskimox 2024/07/11
  • 納得感のある決定事項の共有方法 - Konifar's ZATSU

    意思決定の場にいない人に対して決定事項を共有する際、いくつか気をつけておくといいなぁと考えていたことを雑にまとめておきたい。 決定する前から進捗をちょっとずつ共有しておく 決定前の話なので後の祭りかもしれないが、いきなり結果をドーンだと相手を戸惑わせることがあるので事前に議事録を共有したり中間で説明する機会を作ったりするとよい 背景と前提条件を伝える なぜやるのかわからないまま結果だけ共有すると納得してもらいにくい。決定する上での前提条件を知らないと余計な反発をうむこともあるので注意が必要。それまでずっと考えてきた当事者は気づきにくいが、びっくりするくらい前提知識が違うことがある。相手は何も知らないものとして、イチから説明した方がよい 決定までの経緯を伝える 結論より経緯の伝え方が重要。どのような議論があってそんな決定になったか、完結に伝えましょう 捨ててきた選択肢も伝える 結果に至るまで

    納得感のある決定事項の共有方法 - Konifar's ZATSU
    dnskimox
    dnskimox 2024/06/25
  • 参加者がつくる対話の場 オープンスペーステクノロジー | オブジェクトの広場

    2018年7月20, 21日に開催されたエンタープライズアジャイルの集いで、オープンスペーステクノロジーによるワークショップがありました。オープンスペーステクノロジーは参加者が主体となって対話を進める手法です。初顔合わせの参加者が多い中でもワークショップは非常に盛り上がり、オープンスペーステクノロジーという手法の凄さを改めて感じました。一方で、参加者のほとんどがオープンスペーステクノロジーという手法をご存じなく、残念にも思いました。もっと広くこの手法を知って欲しいと思い、オブジェクトの広場としてもオープンスペーステクノロジーの説明記事を書くことにしました。 エンタープライズアジャイルの集いの1日目に行われた基調講演については、『エンタープライズアジャイルの集い 基調講演レポート』にレポートがありますので、合わせてご覧ください。 オープンスペーステクノロジーとは 私の理解でオープンスペーステ

    参加者がつくる対話の場 オープンスペーステクノロジー | オブジェクトの広場
    dnskimox
    dnskimox 2024/06/25
  • 良いコードってどんなコードですか?という質問を受けたら何と答えるか - snoozer05's blog

    技術顧問先で、一生懸命コードに向き合っているプログラマーになりたての方から、次のような質問をもらいました。 最初に面談した時、1年後にいいコードが書ける、上手に書けることを目標にしましたが、 先日スクール時代の同期(それぞれRubyの会社で働いている)と話したところ、会社ごとにレビューの仕方やコードに関する基準がさまざまなようで、良いコードとはなんなのか疑問に感じました。「いいコード」とは、みたいな部分で島田さんの考え方をお聞きできたら嬉しいです。 この質問にぼくは次のような回答をしたのですが、「この質問が来たら他の人はどんな回答するんだろうな」に興味があるので、ここにしたためておきます。もしよかったら「若者にこれを聞かれたら自分ならこう答える」をコメントなどで残していってもらえたら嬉しいです。 とても大事な疑問を見つけられたんだなあと思います。 「良さとは何か」ということに向き合う必要の

    良いコードってどんなコードですか?という質問を受けたら何と答えるか - snoozer05's blog
    dnskimox
    dnskimox 2024/06/20
  • 高度に発達したウォーターフォールはアジャイルと見分けがつかない - An Epicurean

    tl;ldr ウォーターフォールという言葉を悪口として使うのは良くないんじゃない? 空想上の開発手法ウォーターフォールと進化したウォーターフォール アジャイル開発の説明がされるとき、アンチパターンとして「ウォーターフォール」が使われることがあります。これは「ダメな開発現場」と同義で使われており、共通仮想敵としての空想上の開発手法とも言えます。 それは、曰く、硬直化していて変化や手戻りを許さず、一道でフィードバックサイクルがない、数十年アップデートされていない古臭い手法のことらしい。 もちろんそういう開発をしている現場もまだ数多く存在するでしょう。ただ、ウォーターフォールをカイゼンし進化させている人達もいます。そういう人たちの話を聞くと、例えば以下のような話を聞きます。 一ヶ月で1ウォーターフォールを回す 前の手順に戻る手続きが定められている 初期フェーズから開発者を巻き込む 定期的なレビ

    高度に発達したウォーターフォールはアジャイルと見分けがつかない - An Epicurean
    dnskimox
    dnskimox 2024/06/20
  • Scalaで複数のリストをzipするならlazyZipがおすすめ(きれいに収まる) - Lambdaカクテル

    Scalaでコードを書いていて、複数のリストをzipすることがあった。 val xs: List[Int] = ??? val ys: List[Int] = ??? val zs: List[String] = ??? xs.zip(ys).zip(zs) // => List[((Int, Int), String)] しかしzipは2つのリストからList[(A, B)]を作るので、複数回zipすると奇妙な型になってしまう。この場合はList[((Int, Int), String)]になってしまった。こういう型になるとmapなどで使うときに面倒だ。 lazyZip コレクションメソッドを探していると、lazyZipメソッドというのがあることを知った(Scala 2.13から導入されたようだ)。使い方はzipと同じだが、mapなどを使うタイミングにまでタプルを作るのを遅延させてくれる

    Scalaで複数のリストをzipするならlazyZipがおすすめ(きれいに収まる) - Lambdaカクテル
    dnskimox
    dnskimox 2024/06/17
  • スプラトゥーンの非同期処理の話 ~なにがラグのせいなのか~|まけトピア

    さて、みなさんはこういう叫びを聞いたことはありませんか? 「ラグやば!これ絶対当てたのに死なねえんだけど!」 「ラグすぎてワープするんだけど!」 「同期ズレえぐ!!!」 スプラトゥーンは、インターネットを介してゲームの情報をやり取りすることで、離れた人たちとも遊べる対戦アクションゲームです。 まず、大前提として、インターネットを介している時点で、少なからず通信遅延(ラグ)が発生します。ラグのないゲームは存在しません。 スプラトゥーンでは、通信環境が悪くても比較的不快になりにくい実装がされているのですが、これの仕様が結構ややこしくて、自分のプレイのガバさをラグのせいにする人もしばしば見かけます。 (とんでもないラグがあるともちろんキツイですが) この記事では、 一般的なゲームにおける通信同期方式 スプラトゥーンにおいては、どうやって何を同期しているか これはラグのせいなのか、自分のガバのせい

    スプラトゥーンの非同期処理の話 ~なにがラグのせいなのか~|まけトピア
    dnskimox
    dnskimox 2024/06/12
  • Playwright × Gaugeで拓くE2Eの新境地 〜 社内の自前E2Eが最高な話|Akihiro Yokota

    こんにちは、アルプでQAエンジニアをやっているyokota(@katawara)です。 アルプではQAエンジニアの働き方として3つのロールがあり、以下のように分類されています。 ・リードQAエンジニア(L-QA) : 組織全体のQAプロセスを改善する責務を担う ・チームQAエンジニア(T-QA) : プロダクトチーム内のQAプロセスを改善する責務を担う ・オートメーションQAエンジニア(A-QA) : プロダクトチームが行っているテストとは別軸の自動テストを作成を担う QAエンジニアの幅広い業務を整理し、3つのジョブディスクリプションを作ってみた より引用この記事を書いている2024年5月現在では、一人でいろいろな帽子を使い分けているといった塩梅なのですが、今回はA-QAとしての帽子をかぶり、E2Eテスト(自動テスト)の話をしてみたいと思います。 アルプでのE2E事情アルプで使われているE

    Playwright × Gaugeで拓くE2Eの新境地 〜 社内の自前E2Eが最高な話|Akihiro Yokota
    dnskimox
    dnskimox 2024/05/31
  • [翻訳]SQSとKinesisの特徴の違いと使い分け方。 - Qiita

    KinesisとSQSはとても似ているサービスで、どのように使い分けたらよいか、どんな違いがあるのかが 気になっていました。 そんな時、以下の記事を見つけました。 とても良い記事なので、翻訳記事を紹介します。 以下翻訳記事: 私達がWorkviaのメッセージングシステムを設計する際、Kinesisをメッセージストレージ及びデリバリメカニズムとして利用することを検討しました。 最初は、kinesisはどのような課題も解決できる特徴を持っているように見えました。 Kinesisはテラバイト級のデータを保管でき、古いメッセージの再送をする機能を持っていて、複数のメッセージコンシューマを利用することをサポートしていたからです。 しかし、もう少し細かな点まで確認していくと、Kinesisは特別なユースケースにはとても適していることがわかりました。 そしてあなたのアプリケーションがそのユースケースに適

    [翻訳]SQSとKinesisの特徴の違いと使い分け方。 - Qiita
    dnskimox
    dnskimox 2024/05/31
  • 注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools

    公開日 2024/05/27更新日 2024/05/27注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 現代のITサービスは、ユーザーに高品質で安定した体験を提供するために、より効率的で柔軟な技術選定が不可欠です。 特集では、注目企業のシステムアーキテクチャ設計に携わるエンジニアの方々より、それぞれの技術選定における工夫と、未来を見据えた展望についてご寄稿いただいています。 各企業がどのように課題を乗り越え、開発生産性や品質を向上させるためにどのようなアプローチを採用しているのか ー この記事を通じて、実際の現場で活用される最先端の技術や戦略を学び、皆さんのプロジェクトに役立つ洞察を得ていただければ幸いです。 ※ご紹介はサービス名のアルファベット順となっております airCloset - 株式会社エアークローゼット エアークローゼットは日初・国内最大級、女

    注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools
    dnskimox
    dnskimox 2024/05/28
  • git checkout の代替としてリリースされた git switch と git restore - kakakakakku blog

    2019年8月にリリースされた Git 2.23 から,Experimental(実験的機能)として新コマンド git switch と git restore が使える.今までずっと使ってきた git checkout は機能が多すぎたため,機能を分割し git checkout の代替としてリリースされた.個人的にリリースされてから,できる限り git switch と git restore を使うようにしてるけど,まだ無意識に git checkout を使ってしまうこともある.最近 git switch を教える機会があったため,ブログにまとめておく. github.blog なお,以下の検証は Git 2.26.0 を使った. $ git --version git version 2.26.0 1. git switch を使う git switch を使って「ブランチ操作」

    git checkout の代替としてリリースされた git switch と git restore - kakakakakku blog
    dnskimox
    dnskimox 2024/05/22
  • 時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog

    IETFに「New UUID Formats」という提案仕様が提出されています。 これは、時系列順にソート可能なUUID version 6, UUID version 7, UUID version 8を新しく定義するものです。 詳しい背景は提案仕様にゆずりますが、ULIDを始めとして、時系列順にソート可能な一意な識別子を利用したいというユースケースがあります。例えば、データベースのキーとして使えば、ソートせずとも順番に並びますし、書き込む際も順々に書き込めるのでデータアクセスが局所的になります。 今回は簡単に、それぞれのUUIDのフォーマットを眺めていきます。なお、フォーマットは異なりますが、バージョンを示す値は同じ位置にあります。 UUIDv6 UUIDv6は128bit長で、UUIDv1と似てるフォーマットを取ります。 1582年10月15日(グレゴリオ暦)からの100ナノ秒単位で

    時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog
    dnskimox
    dnskimox 2024/05/21
  • データベースでユニークキーにUUIDを使うメリットは何ですか?連番やタイムスタンプまたは複合などではいけないのでしょうか?どうも視認性が悪く使いにくく感じますし連番でも衝突しない気もします。

    回答 (7件中の1件目) まずはUUID及びその対案として用いられる連番(自動採番)のメリット・デメリットを整理します。 (タイムスタンプキーや複合キーなどもその効率性から設計上有用なシーンはありますが、比較から除外します。) * UUIDを使うことのメリット * * データベースにSQLを送信する前からアプリケーションレイヤーでIDを生成できる。 * * トランザクション処理を実装しやすい場合がある。 * IDを推測しにくい。リソースが列挙可能ではない。 * UUIDを使うことのデメリット * * レコード・インデックスサイズが増加する。 * * ...

    データベースでユニークキーにUUIDを使うメリットは何ですか?連番やタイムスタンプまたは複合などではいけないのでしょうか?どうも視認性が悪く使いにくく感じますし連番でも衝突しない気もします。
    dnskimox
    dnskimox 2024/05/16
  • 【翻訳】テスト駆動開発の定義 - t-wadaのブログ

    このブログエントリでは、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent BeckがTDDの定義を改めて明確化した文章を、許可を得たうえで翻訳し、訳者の考察を沿えています。 きっかけ 2023年の年末、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent Beckは、substackにTDDに関するポストを連投して論戦を繰り広げていました。TDDはその誕生から20年以上が経ち、その間に「意味の希薄化」が発生して議論が噛み合わなくなっていました。意味の希薄化(Semantic Diffusion)とは、新しく作り出された用語が広まる際に来の意味や定義が弱まって伝わる現象です。 私(和田)はTDDと関わりの深いキャリアを歩んできました。Kent Beckの著書『テスト駆動開発』の翻訳者であることもあり、TDDの正

    【翻訳】テスト駆動開発の定義 - t-wadaのブログ
    dnskimox
    dnskimox 2024/03/28
  • ピクシブでの開発 - 金髪の神エンジニア、kamipoさんに開発の全てを教わった話

    爆速で成長していた、ベンチャー企業ピクシブ 面接の時の話はこちら=>ピクシブに入るときの話 そんな訳で、ピクシブでアルバイトとして働くこととなった私は、初出勤の日を迎えた。 (↑ピクシブのユニークなオフィス) ほぼ何も分からず始まった開発 プログラミングスキルはほぼ無く、やることも決まっていなかった私は、早速開発の統括をしていたCTOの青木さんからの指示を仰いだ。

    ピクシブでの開発 - 金髪の神エンジニア、kamipoさんに開発の全てを教わった話
    dnskimox
    dnskimox 2024/01/23
  • 会議全部ふっとばして社員の集中力を10xした話(ビッグバン) - 10X Product Blog

    こんにちは!経営企画の仕事をしているudonです。1年半前の見習いQA以来、2度目の文章です。今回は10X社内の会議のルールを整理し、そして全社員の未来のカレンダー予定を一旦全部消す、通称「ビッグバン」の第一回を実施したのでその背景や内容について書きます。 (イメージ) 10Xでは社内におけるコミュニケーションを大きく「同期」「非同期」に分けています。同期は会議や突発的な電話など同じ場にいることが前提であるコミュニケーションを指し、Slackなど非同期は必ずしも同じ時間での往復を前提としない文章やドキュメントによるコミュニケーションを指します。入った当初は「ドウキ・・?ヒドウキ??」とドキドキしてた私ですが、2年も経つと慣れてしまいました。慣れって怖いですね。 話が長いという皆様の期待を裏切ることなく、タイトルにもなっているビッグバン(会議の全削除)の話にいくまで5,000文字嵩んでしまっ

    会議全部ふっとばして社員の集中力を10xした話(ビッグバン) - 10X Product Blog
    dnskimox
    dnskimox 2023/12/28
  • EKSクラスターへ「kubectl」コマンドでアクセスする際の認証・認可の仕組みと設定 | DevelopersIO

    上記のデフォルトロールに当てはまらないアクセス権限を定義したい場合は、新たなロールを定義することになります。 例えば、ポッドの参照のみ行えるアクセス権限は、以下のロールで定義できます。 pod-reader-clusterrole.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: pod-reader rules: - apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list"] $ kubectl apply -f pod-reader.yaml clusterrole.rbac.authorization.k8s.io/pod-reader created ただし、実際には「ポッドの参照のみ」のアクセス権

    EKSクラスターへ「kubectl」コマンドでアクセスする際の認証・認可の仕組みと設定 | DevelopersIO
    dnskimox
    dnskimox 2023/12/14