タグ

urahsamのブックマーク (522)

  • たった2つのステップを意識するだけで書けない単体テストがほぼなくなる - Qiita

    はじめに この記事は レガシーコード改善ガイド: 保守開発のためのリファクタリング を参考に手を動かしてみて、ある程度自分の中で体系的にまとまった知識のアウトプットです。 この記事で扱う内容 この記事で扱うのは主にレガシーコードで単体テストを書く際のハードルになりがちな 依存関係の排除 に関する手法を紹介します。 この記事を読んだ後に、 『この観点を持っておけば単体テストをスムーズに書いていけそう!』 『今までモック使ってたけど意外とモック使わなくても書けるね!』 となったらいいな、と思います。 ちなみに、今まであんまりテスト書いたことないよーて人は以下の記事など参考にして一度やってみてください。 前提の話: この記事の旨は「テスト書きにくいプロダクトコードも依存関係を排除すれば楽にテスト書けるよ」なので、それ設計的にアウトでは?リファクタリング耐性低くない?みたいな話は度外視してます。

    たった2つのステップを意識するだけで書けない単体テストがほぼなくなる - Qiita
  • 【翻訳】テスト駆動開発の定義 - 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のブログ
  • 本に書いてあるスクラムと、お前らのいうスクラム開発は別物だということにいい加減気づいてくれ

    前振り タイトルは煽りの激しい釣りです。ごめんなさい。 Web業界で今流行っている自称スクラムと、RSGTで語られるような来のスクラムとの間のギャップが大きすぎて説明が面倒臭くなったのでこの記事を書きました。 いい加減「私たちは自称スクラム開発を完璧に回しているから、スクラムの恩恵を将来得られるだろう」「私たちは来のスクラムとはかけ離れた別物のスタイルで開発をしている。だからスクラムの恩恵は永遠に得られない」という二重思考を他人にするようお願いするのにも飽きましたしね。 さて題といきましょう 題 世間で、特に渋谷や五反田や六木のWeb企業ではスクラムというものはとても流行っています。 しかしどう考えても、Web企業でよくお目にかかるスクラムと国内トップカンファレンスであるRSGTで語られるスクラムとの間には大きな隔たりがあります。 「うちはスクラムやってます」 カジュアル面談で耳

    本に書いてあるスクラムと、お前らのいうスクラム開発は別物だということにいい加減気づいてくれ
  • 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 | ドクセル
  • Macユーザーのぼくがリアルに使っているアプリ12選|やす

    1日中ずっと仕事Macを使っているぼくがほんとに使っているアプリを順不同で12個あげていこうと思う。 GoogleMicrosoft、など定番アプリは除外している。 1.AltTab 現在使用しているアプリを一覧表示して選択できるアプリ。 たくさんアプリを開いていて使いたいアプリが埋もれてしまったときとか、2つのアプリを行き来したいときに便利。 Windowsだと標準の機能みたいだ。 「開いているウインドウがないアプリを隠す」という設定にして格段に使いやすくなった 2.Alfred Macのすべての起点となるアプリ。 アプリの起動、ファイルやフォルダ、ウェブサイト、Google Driveの検索、離席時のスクリーンセーバー起動、計算機などできることは数しれず。 ぼくがよく使うのは、 ・Dropbox内のフォルダ検索 ・Google Drive内のファイル検索 ・計算機(地味だが使いやす

    Macユーザーのぼくがリアルに使っているアプリ12選|やす
    urahsam
    urahsam 2024/02/25
  • SaaS アーキテクチャ概要

    SaaS をアーキテクトをするにあたって、どのような事を考えればよいのか?をまとめました。 このスライドでまとめているのは SaaS とは、ビジネスモデル x 技術であることを理解する SaaS アーキテクトでどのように SaaS を作っていくのか?を考える SaaS KPI で…

    SaaS アーキテクチャ概要
  • 業務でAWSを利用する時に知っておくべきポイント10選 - Qiita

    2024年1月時点のAWSベストプラクティスに従って作成しました 好評でしたら続編も検討します 1. 環境ごとにアカウントを分離する 番、検証、開発ごとにアカウントを分割しましょう ✕良くない例 ◎良い例 最初にアカウント分割しておかないと、後で分割するのはとても大変です アカウントを分割することで「検証と思って作業したら、実は番だった」のような事故を減らすことができます コストがアカウント単位で集計されるため、環境ごとのコストを簡単に算出することができます AWS Organizationsを使用することで、各環境に応じた権限設定が簡単にでき、ガバナンスを強化することができます AWSアカウントはAWS Control TowerのAccount Factoryを使用することで、クレジットカード情報を都度入力することなく簡単にアカウントの払い出しが可能です また、AWS Contro

    業務でAWSを利用する時に知っておくべきポイント10選 - Qiita
    urahsam
    urahsam 2024/02/12
  • マリオカートのER図について考える - Qiita

    さて、 今回はオフィスにて「ER図とは?」を学ぶランチを開催しました🍔 ゲームDBなんて考えたことが無いので、ER図アウトプットに至るまでを記事に残してあげようと思います。 今回は、リリース時に同僚みんなで遊んでいたスマホゲーム「マリオカート ツアー」を使って マリカーのフレンドランキング画面を出すために必要なDB設計を考えます。 軽いランチなので、事前に参加者が通勤中の電車内で作成できるくらいのボリュームを目指しました。 データベースとは・・・?という初心者メンバーでもイメージしやすいように。 こういうアウトプットは初めてですが、徐々に慣れていきたいです。 【開催概要】 ・参加者:ファッションIT企業のPMエンジニア、事務・・・などなど ・開催時間:1時間(事前アウトプット作成:20〜30分程度) ・その後:SQLを初心者と書いてみるランチも実施しました。 →BigQueryがSQ

    マリオカートのER図について考える - Qiita
    urahsam
    urahsam 2024/02/07
  • UXだけでは足りない何か | ベイジのUIラボ~業務システムとSaaSのUIを考える

    UXについて色々と考えることがあり、少し言葉にまとめてみた。何が正しいという話ではないが、率直に感じていることである。 意図されたBad UX 車を運転する人なら経験したことがあると思うが、「近づかないと識別できない信号」というのがある。 この手の信号は、近付くまで青なのか赤なのか判別できない。そのため信号の近くになるまで、このまま進むべきか、ブレーキを踏むべきか、とドキドキさせられる。 先日までペーパードライバーだった私は、当初、スムーズな運転を妨げてストレスを感じさせるこの信号を、液晶の表示角度などの計算を誤った設置ミスだと思っていた。 しかしこれは、複雑な交差点などでの交通事故を防ぐために意図的に仕掛けられたもののようである。 いちドライバーとしては、けっして心地よい体験ではない。しかし、社会全体にとっては良い方向に向かうようデザインされた信号といえる。 このような「意図的にユーザー

    UXだけでは足りない何か | ベイジのUIラボ~業務システムとSaaSのUIを考える
    urahsam
    urahsam 2024/02/07
  • Reactの状態を理解して適切にHooksを利用する

    Reactと状態は切っても切れない関係です。なぜなら、Reactは状態に基づいて画面を更新するコンポーネントベースのUIライブラリだからです🤝🏻 そんなReactの状態を管理・操作しやすくしてくれているのが、React 16.8から登場したフックです。それゆえ、フックを正しく利用するにあたってReactの状態の理解は非常に重要であり、Reactの状態の理解があやふやだと、予期せぬ挙動やバグのもとになりかねません。 今回の記事では、Reactの状態を理解しながら適切な箇所で適切なHooksを選択していくプロセスを再確認できた!自信を持ってReactをコントロールできるようになりそう!と言えることをゴールとしています🎉 今回使用した即席匿名メモアプリのコードベースです。 サークルでは、コミットに沿って説明をしていきました。(あくまで即席なので細かいこと気にしながら作ってませんorz) 【

    Reactの状態を理解して適切にHooksを利用する
  • Ajaxから始まった一つの時代の終わり

    最近の流れを見ていての感想文なので、ideaとして投稿します。筆者のバックグラウンドとしては、Remixの商業記事を書いたり、App Routerの商業記事を書いたりしている人です。 さて、筆者は2022年の秋から、社内システムではありますがRemixをプロダクション運用しています。また、Next.jsのApp Routerについても、パラダイムとしてはRemixにインスパイアされた部分が多い[1]おかげで、順調にキャッチアップできています。 RemixとApp Routerは、ルーティングとデータフェッチを高度に統合しており、Progressively Enhanced SPA(PESPA)と呼ばれることもあるそうです。PESPAについては、次の記事が話題になりましたね。 このPESPAであるRemixを実運用する中で、フレームワークの手触りが近年触ってきたものと大きく違っている点があっ

    Ajaxから始まった一つの時代の終わり
  • SPAの歴史とRemix SPAモードという到達点 / the SPA's chronicle reaches to remix

    Niigata 5分 Tech #4と、モニクル社の社内LT大会で喋ったやつです https://niigata-5min-tech.connpass.com/event/307076/

    SPAの歴史とRemix SPAモードという到達点 / the SPA's chronicle reaches to remix
  • 知識0から、ちょっとUIデザインに詳しくなるnote|やました

    前回は、「UIデザインってそもそも何なの?」という概論的な説明と、UIデザイン未導入の組織の中でみんなでデザインを始めてみるための施策(プロトタイピングとユーザビリティ評価)を話しました。 今回はサービス、プロダクト開発において、デザイナーではない人でも知っていて損はないUIデザインの重要ポイントについて説明します。主に以下の3つのテーマについて順番に議論をしていきます。 デバイスやソフトによるUIの違い ユーザーにかかる身体的・認知的負荷を理解する UIの重要概念(ナビゲーション、インタラクションなど)を知る 「ちょっと」と銘打っておきながらめちゃくちゃ長いnoteになってしまったので、気になる項目だけ読むか、何回かに分けて読んでいただくことをおすすめします、。 ※どこか内容に間違ってる部分やご意見ありましたらコメントいただけたら嬉しいです。 デバイスやソフトによるUIの違い皆さんがお使

    知識0から、ちょっとUIデザインに詳しくなるnote|やました
  • スイカゲームの作り方

    はじめに Go言語用のEbitengineというゲームエンジンに興味があったので、試しにスイカゲームもどきを作りってみました。Ebitengineを使うと意外と簡単にスイカゲームもどきを作る事ができたので、なるべく分かりやすく作り方を紹介してみようと思います。 まずは先に完成品をお見せします。ちなみにフルーツの回転は面倒くさいので実装しないことにしました。 ちなみにEbitengineはwasmでも普通に動きます。ビルドしたものをこちらに置いたのでブラウザから実際に動かす事ができます。 それではスイカゲームもどきを作って行きましょう。 描画する まず一番初めにフルーツの画像を作るところから始めます。これはリンゴ、オレンジ、ブドウ、パイナップル、メロン、スイカのつもりです。 続いてフルーツを定義します

    スイカゲームの作り方
  • パスワードはおしまい! 認証はパスキーでやろう

    はじめに パスワードは古来より認証に良く使われる方法ですが、その運用の難しさからセキュリティの懸念とその対策としての運用の複雑さ(複雑で長い文字列、90日でパスワード変更など)が要求される大きく問題をもった仕組みです。 その根的な解決策としてFIDO Allianceを中心に推進されている 「パスワードレス」 が注目されています。これはPINや生体認証とデバイス認証を使ったMFAからなっており、フィッシングやパスワード流出に強い上に、ユーザも複雑なパスワードを覚えなくて良い、という大きなメリットがあります。最近はこの流れでPassKeyというものが登場し、Apple/MS/Googleのプラットフォーマが対応したことで、格運用に乗せれるフェーズになってきました。というわけで以下に解説動画を作ったのですが、動画中で時間の都合で触れきれなかったところや、JavaScriptによる実装のサン

    パスワードはおしまい! 認証はパスキーでやろう
  • 実録レガシーコード改善 / Working with Legacy Code: the True Record

    2024/01/15(月) 12:00 〜 13:00 t-wadaさんが後世に残したい、実録レガシーコード改善 https://findy.connpass.com/event/304101/ テストコードが無いコードを引き継いだところからはじまる、実際に2018年に行った受託開発案件のエ…

    実録レガシーコード改善 / Working with Legacy Code: the True Record
  • 失敗例から学ぶSOLID原則

    PHPカンファレンス北海道2024 https://fortee.jp/phpcon-hokkaido-2024/proposal/7d223fcd-ecc8-4cfb-92b2-4987749463d8 Lについての補足記事 https://asumikam.com/entry/2024/0…

    失敗例から学ぶSOLID原則
  • スクラムとデッドライン壊れゆくチームをつなぎとめるもの/Scrum and Deadlines

    の医療システムの再構築を目指すスタートアップ「カケハシ」のフロントエンド領域でのチャレンジ / Challenges in the frontend domain at “Kakehashi”

    スクラムとデッドライン壊れゆくチームをつなぎとめるもの/Scrum and Deadlines
  • 【DDD入門】TypeScript × ドメイン駆動設計ハンズオン

    TypeScriptとドメイン駆動設計(DDD)を組み合わせ、APIを構築するハンズオンガイドです。このでは、DDDとは何かという基礎的なところからソフトウェア開発における戦略的設計、戦術的設計まで、包括的な知識を提供します。 戦略的設計では、ビジネスの要求に合わせたドメインモデルの設計をイベントストーミングを用いて行います。その後、戦術的設計では、具体的なコードの実装に関連するDDDの原則と実践を学びます。 TypeScriptを使ってコードを書きながら、DDDの概念を実際のプロジェクトに適用するヒントを紹介します。

    【DDD入門】TypeScript × ドメイン駆動設計ハンズオン
  • 開発効率を追い求めた実装プラクティス集

    この記事は MICIN Advent Calendar 2023 の24日目の記事です。 前回はSaneさんの「データ基盤チームで社内インターンをやってみて」でした。 はじめに abekohです。MICINでMiROHAの開発をしております。 記事では、書籍等から得た設計・実装パターンの知識や、実際にプロダクト開発で試して得られた経験などから編み出した、開発効率向上のためのWeb API開発のプラクティスを紹介します。 筆者が関わっているMiROHAは治験の業務支援を取り扱うプロダクトです。MiROHAの開発における特性として、以下のようなものが挙げられます。 治験業務に関するドメインが特有で複雑 前例が少なく、MVPを追求中。プロダクトのアプローチが頻繁に変わる 外部品質は高い水準が求められる これらの特性を意識して開発を促進させるために日々試行錯誤しております。 複雑なドメインに対す

    開発効率を追い求めた実装プラクティス集