タグ

jukuringoのブックマーク (4,704)

  • CQRS実践入門 [ドメイン駆動設計] - little hands' lab

    この記事では、CQRSの入門として、軽量CQRS、別名クエリモデルについて解説します。 DDDの参照系処理で発生する課題 解決策 CQRSのメリット、デメリット 実装時の注意事項 部分的導入について なぜQueryServiceの定義がUseCase層なのか 整合性をどうやって担保するのか よくある誤解 データソースを分ける必要があるのか イベントソーシングとの関係 過去資料との繋がり もっと詳しく知りたい方は 現場での導入で困ったら DDDの参照系処理で発生する課題 DDDで定義されている実装パターンを使っていると、基的には永続化層との入出力はRepositoryを使うことになります。 更新系の処理ではEntityやValueObjectでドメインの知識を表現し、Repositoryを使って集約単位で永続化するという構成をとると、非常にメンテナンス性の良いものになります。 参考過去記事

    CQRS実践入門 [ドメイン駆動設計] - little hands' lab
    jukuringo
    jukuringo 2024/09/20
  • 【Day 19】Repository の課題を QueryService で解決【じゃんけんアドカレ】 - Qiita

    じゃんけんアドベントカレンダー の 19 日目です。 初回 ... 【Day 1】とりあえず 1 クラスに全部書く【じゃんけんアドカレ】 前回 ... 【Day 18】OR マッパと DB マイグレーションツールを導入【じゃんけんアドカレ】 前回 jOOQ と Flyway を導入し、DB まわりを整理しました。 その中で、Repository は集約の単位でデータを扱うのがコツだと書きました。 しかし、実際にアプリケーションを開発していると、集約をまたがったデータを取得したい場面がまず確実に登場します。 今回は QueryService を導入し、集約をまたがったデータをうまく扱えるようにします。 追加する API Repository だけだと苦しい状況を考えるため、じゃんけんアプリケーションに新しい API を 1 つ追加しようと思います。 追加するのは、プレイヤーの一覧を取得する

    【Day 19】Repository の課題を QueryService で解決【じゃんけんアドカレ】 - Qiita
    jukuringo
    jukuringo 2024/09/20
  • SQLのインデックスとそのチューニングについてのオンラインブック

    開発者向けのSQLインデックス解説サイト、管理についての間違いない知識を提供します。 インデックスは開発時には忘れられがちである一方で、非常に効果的なSQLのチューニング方法です。Use The Index, Lukeでは、HibernateなどのORMツールの解説にとどまらず、SQLのインデックスについて基礎から説明します。 Use The Index, LukeはSQLパフォーマンス詳解のWeb上の無料版です。サイトを気に入って頂けたら、ぜひ書籍も購入してみて下さい。また、このサイトの運営をサポートする様々なグッズも販売しています。 MySQLOracleSQL ServerなどにおけるSQLのインデックスUse The Index, Lukeでは、ベンダにとらわれないインデックスの説明を心がけています。製品特有の事柄については、以下のような表示をしています。 DB2Use The

    SQLのインデックスとそのチューニングについてのオンラインブック
    jukuringo
    jukuringo 2024/09/10
  • Zag.js が良いかもしれない

    Zag.js を調べた背景 私は Chakra UI ユーザーなのですが、Chakra UI はスタイリング部分でランタイム CSS-in-JS(= emotion)を使用しているため、レンダリング時のパフォーマンス影響を考えると、どこかで移行するタイミングがありそうだと思っています。もちろん、Chakra UI がランタイム CSS-in-JS を捨ててくれれば移行は必要ありませんが、Chakra UI のロードマップを見たところ、明確にスケジューリングされていません(未来のどこかで移行はされそう)。そのため、移行先を探していたのですが、Chakra UI の作成者のアデバヨさんが作った Zag.js はとりあえず見とかないといけないよな、という感じで見始めました。 Zag.js が作られた背景 Chakra UI が抱えている技術的課題は先述の通り、ランタイム CSS-in-JS が内

    Zag.js が良いかもしれない
    jukuringo
    jukuringo 2024/09/08
  • ユーザーに刺さるUIデザイン実用テクニック37選

    UI Tipsで公開された「UI Tips for Landing Pages & Apps by Jim Raptis」より許可をもらい、日語抄訳しています。 シンプルなUIデザインテクニックで、より良いユーザーインターフェースをデザインし、ユーザーが満足する方法を一緒に学びましょう。 現役UIデザイナーのジム・ラプティス氏が実際の製品でテスト、検証した実用度の高いテクニック集なので、手軽に試すことができ、効果的にホームページやアプリのUIを改善できます。 時間がない人のために、今回紹介するテクニックのまとめがこちら。 各項目では実際のサンプルをつかって、「良い例」と「悪い例」を比較。すぐできる解決策と一緒に詳しく紹介しています。 ユーザーが恋に落ちるUIデザイン実用テクニック1. ソーシャルログイン2. より良いメニューデザイン3. グーテンベルグの法則4. モーダルの削除5. 不揃

    ユーザーに刺さるUIデザイン実用テクニック37選
    jukuringo
    jukuringo 2024/09/08
  • 24年度新卒エンジニアが研修を終えて - Classi開発者ブログ

    こんにちは。4月にClassiへ新卒で入社した伊森です。 私は4月から8月上旬までの約4ヶ月、Classiのエンジニアとして働くための新卒研修を受けてきました。 今回はその研修期間を経て、大まかな内容の振り返りや身についた考え方を紹介していきます。 入社前の状態 研修内容の概要 4月 5・6月 7・8月上旬 AWS研修 良かったところ 物足りなかったところ QA研修 実際に手を動かすテスト項目の作成課題 「品質が高い」とはどの状態を指す言葉?というディスカッション 万葉カリキュラム 研修プログラム以外にも学んだこと まとめ 入社前の状態 大学生時代はPythonを使用した画像処理を主に勉強しており、これまでWeb上で動くものを開発する世界に踏み込んだことはほとんどありませんでした。 そのため、Webの基的な概念であるHTMLなどはぼんやりとした理解に留まっており「触ったことはあるがそれで

    24年度新卒エンジニアが研修を終えて - Classi開発者ブログ
    jukuringo
    jukuringo 2024/09/08
  • 個人開発でもADR (アーキテクチャデシジョンレコード)を書くことの利点 - laiso

    起業なのか請負開発か趣味プロジェクト(ペットプロジェクト)かによって状況は異なりますが「私のチームの開発者は私1人だけです」という個人開発においても、ADRは有効なツールとなりえます。 ADRとは何か? ADR(アーキテクチャデシジョンレコード)は、ソフトウェアアーキテクチャにおける重要な設計判断とその根拠、影響、関係する検討事項などを記録した文書です。 一見、現代的な響きですが、その実態はシステム設計ドキュメントの一部です。 "ADR"で検索すると真っ先にヒットするアーキテクチャの入門書『Design It! ―プログラマーのためのアーキテクティング入門』では、ADRは「アーキテクチャ手法に対する開発者寄りのアプローチ」と説明されており、アーキテクトと開発者自身がアーキテクチャに関する意思決定を記録し、共有するための手法として位置づけられています。 アーキテクチャデシジョンレコード(A

    個人開発でもADR (アーキテクチャデシジョンレコード)を書くことの利点 - laiso
    jukuringo
    jukuringo 2024/09/08
  • 上司から「リーダーが明らかに間違った指示を出した時に従わないから君は協調性がない」と言われた話→どうしたらいいんだ?

    バルドPM @PM69728016 PMと言う名の雑用係です。最新技術の習得は諦めがち。気安くフォローしてください/お尻/下戸/適応障害 主に泣いてます😭「きぃいいいいい❗❗」が口癖 映画、結構見ます。 干芋: amazon.jp/hz/wishlist/ls… バルドPM @PM69728016 20代前半の頃、上司にされて未だにわからない質問 上司「バルド君は協調性がないよね。 例えば、設計AとBがある。Bは間違ってるから完成しないがリーダーがBに決めた。バルド君はどうする?」 俺「BをやってるフリしてAやります。」 上司「Bをやらないから協調性がない。」 pic.x.com/5znzab9rvj

    上司から「リーダーが明らかに間違った指示を出した時に従わないから君は協調性がない」と言われた話→どうしたらいいんだ?
    jukuringo
    jukuringo 2024/09/05
    上司は、Bで作った責任を部下のせいにして、あとからAで作り直させて、Aプランで逆転させた自分が英雄だと上に報告するシナリオがあるから。プランどおりに動いてほしいんだろう。
  • PHPにはエスケープ関数が何種類もあるけど、できればエスケープしない方法が良い理由

    このエントリは、PHP Advent Calendar 2021 の20日目のエントリです。19日目は @takoba さんによる PHPプロジェクトのComposerパッケージをRenovateで定期アップデートする でした。 SQLインジェクションやクロスサイトスクリプティング(XSS)の対策を行う際には「エスケープ処理」をしましょうと言われますが、その割にPHP以外の言語ではあまりエスケープ処理の関数が用意されていなかったりします。それに比べてPHPはエスケープ処理の関数が非常に豊富です。これだけ見ても、PHPはなんてセキュアなんだ! と早とちりする人がいるかもしれませんが、しかし、他言語でエスケープ処理関数があまりないのはちゃんと理由があると思うのです。 稿では、PHPのエスケープ処理用の関数を紹介しながら、その利用目的と、その関数を使わないで済ませる方法を説明します。 SQL

    jukuringo
    jukuringo 2024/08/28
  • 多段 ssh するなら ProxyCommand じゃなくて ProxyJump を使おう

    概要 AWS とかで踏み台ホスト経由(ここでは AWS っぽく bastion と呼ぶ)で ssh する必要があるなら ~/.ssh/config は↓みたいにしとくのが良いんじゃないかな? Host bastion Hostname bastionのIPアドレス User bastionのユーザ名 # ↓は規定のファイルだったり ssh-agent 使ってれば不要 IdentityFile bastion接続用の秘密鍵ファイル名 # ↓の3つはWindowsでは使えないので諦めて ControlMaster auto ControlPath ~/.ssh/cp-%r@%h:%p ControlPersist 10m Host 好きな接続先名 Hostname 接続先のIPアドレス User 接続先のユーザ名 # ↓は規定のファイルだったり ssh-agent 使ってれば不要 Identi

    多段 ssh するなら ProxyCommand じゃなくて ProxyJump を使おう
    jukuringo
    jukuringo 2024/08/26
  • Next.jsの考え方

    Next.js App Routerにおける設計やベストプラクティスを、筆者なりにまとめました。

    Next.jsの考え方
  • 非SPAなサービスにReactを導入する - クックパッド開発者ブログ

    投稿開発部の外村(@hokaccha)です。今回はReactについてのお話です。 ReactとSPA 最近JavaScriptやそれを取り巻くフレームワークなどの話題では、サーバ側はAPIのみを提供し、View(HTML)は全てJavaScriptで描画するような、いわゆるシングルページアプリケーション(以下SPA)についてよく語られます。 一方で、SPAを構築するにはコストがかかることも事実で、特にフロントエンドエンジニアが多くない環境では、従来通りサーバーサイドでViewを書きつつ動的な部分だけJavaScriptで処理するというアーキテクチャのほうが現実的な場合も往々にしてあります。 今回はこのような、サーバー側でHTMLを生成し、一部の動的な部分だけをReactで書くためのTipsを紹介します。 なお、基的にサーバーサイドはRails前提ですが、RailsにおけるReactの開発

    非SPAなサービスにReactを導入する - クックパッド開発者ブログ
  • 【PHP8.4】PHP8.4の新機能 - Qiita

    PHP8.4 / PHP8.3 / PHP8.2 / PHP8.1 / PHP8.0 2024/08/13、PHP8.4がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2024/11/21にPHP8.4.0がリリースされる予定です。 というわけでPHP8.4で実装されるRFCを見てみましょう。 RFC Property access hooks 賛成42反対2で受理。 プロパティフックです。 class HOGE{ public string $tel{ set{ if(!ctype_digit($value)){ throw new ValueError("電話番号は数値のみ"); } if(strlen($value) < 10){ throw new ValueError("電話

    【PHP8.4】PHP8.4の新機能 - Qiita
    jukuringo
    jukuringo 2024/08/16
  • 現代的なユニットテストでのコードカバレッジ(テストカバレッジ)の扱い方 - 千里霧中

    ユニットテストのコードカバレッジ(テストカバレッジ。ステートメントカバレッジやC0、C1など)は、不適切な運用が根強く見られます。多いのが、コードカバレッジの確保だけをテストの十分性目標にして、まずいテストを書いてしまうパターンです。 今回はこのコードカバレッジについて、現代的な開発を支えるための適切な運用について解説します。 コードカバレッジのみを直接のテストの十分性の目標にしてはいけない 結論から言うと、まずユニットテストは以下を目標として作成します。 ふるまいの仕様が実現されているか確認する プログラマが感じる品質リスク(いわゆる不吉な臭い等)が許容できる水準であることを確認する 法規制対応など、外部からのテスト要求に対応する コードカバレッジは、上記目標を達成することで副次的に確保されることを目指します。 注意点として、コードカバレッジの確保のみを直接の目標にすると弊害が大きくなり

    現代的なユニットテストでのコードカバレッジ(テストカバレッジ)の扱い方 - 千里霧中
    jukuringo
    jukuringo 2024/08/16
  • 情報の見つけやすさを追求する - 社内ドキュメンテーションの階層整理術 - KAKEHASHI Tech Blog

    カケハシのプラットフォームチームでソフトウェアエンジニアをしているすてにゃん (id:stefafafan) です。今回はチームに配属されて数ヶ月の私が、いかにして社内ドキュメンテーションの階層構造を整理し、情報の検索性を向上させたかについてお話します。 はじめに この記事の想定読者 課題意識 メンバーへの共有と相談 社外事例の調査 esa の階層整理 第 1・第 2 階層の整理 ストック情報とフロー情報を意識した階層の整理 esa の機能をフル活用する 効果や今後について はじめに カケハシでは全社的にドキュメンテーションツールとして esa - 自律的なチームのための情報共有サービス を利用しています。それぞれのチームやプロダクトごとに階層を切ってドキュメントを書いています。 プラットフォームチームでは認証基盤などの社内プラットフォームシステムを開発しているため、自チームが運用する各種

    情報の見つけやすさを追求する - 社内ドキュメンテーションの階層整理術 - KAKEHASHI Tech Blog
    jukuringo
    jukuringo 2024/08/16
  • さくらの開発チームにおけるTerraform/Ansibleの活用 | さくらのナレッジ

    はじめに さくらのクラウドにはいくつかの開発チームがありますが、その中で私が所属しているガンマチームにおけるTerraformやAnsibleの活用というテーマで川井が発表させていただきます。 内容としては、まずこの発表の目的を説明し、IaC (Infrastructure as Code)とはそもそも何かという話をして、それからさくらのクラウドでTerraformをどのように活用しているか、またAnsibleをどのように活用しているかを発表します。 目的 今回はIaCの勉強会ということで、IaCの理解と実践を目的としています。この勉強会に参加することで皆さんがTerraformやAnsibleを理解し、インフラ構築に活用できるようになることを目指したいと思います。 IaCの理解と実践 この発表ではIaCを以下のように定義します。 「IaC(Infrastructure as Code)と

    さくらの開発チームにおけるTerraform/Ansibleの活用 | さくらのナレッジ
    jukuringo
    jukuringo 2024/08/14
  • 誰も教えてくれないSIの本質、SIerの世界観

    記事について 国内の IT 業界について、ネット上では「SIer」VS「Web系」の構図がしばしば見られる。記事は前者、SIer の世界観をひとりの当事者として雑多にまとめたものである。記事としては読み物、特にポエムの類。 対象読者 以下を想定する。 ITエンジニアまたはその卵で、 SIerを知らないWeb系の人 SIerに入社した新人や中途入職者 SIerにてSEまたはマネージャーして働いている者 SIerにてSEではないが裏方で働いている者(開発、研究、調査、教育、管理など) 学習や就労の初歩として参考にしてもいいし、議論やキャリアのダシに使っても良いだろう。 筆者について 吉良野すた: https://stakiran.github.io/stakiran/ 国内の大手 SIer に勤めるサラリーマン。現場には出ておらず、裏方で支えてメシをべている。SI にも IT にもさほど

    誰も教えてくれないSIの本質、SIerの世界観
    jukuringo
    jukuringo 2024/08/14
  • PHPでデータベースに接続するときのまとめ - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。PDO に関しては大きく変わっていない部分が多いとは思いますが, PHP 8.x 以降での動作保証はありません。 あらかじめ読んでおきたい記事 Qiita - 【PHP超入門】クラス~例外処理~PDOの基礎 by @7968 初心者がやりがちなミス 以下のどれかに1つでも当てはまるコードは見直す必要があります.付録にリンクを貼っておきましたので,「該当するかも?」という人はクリックして飛んで読んでください.太字にしてあるものは脆弱性に直結する危険度の高いものです. mysql_query などの非推奨関数を利用している SET NAMES あるいは SET CHARACTER SET などで文字コードを指定している そもそもデータベース

    PHPでデータベースに接続するときのまとめ - Qiita
  • GopherがRust入門したので違いをまとめてみた

    はじめに ウホウホ。 Rustを使い始めてちょうど2年くらい経って、すこしRustのことがわかってきたので、改めてGoRustのそれぞれの違いを整理したいなと思いこの記事を書きました。 筆者はウェブ開発の経験しかないので、ウェブを中心にまとめています。 気づいたらかなりな量になってしまったのとGopher向けにRustを紹介するような記事になってしまいましたが、よければ読んでみてください。 筆者について Goを使い始めて7年ほど経っていて、これまでCLI/TUIツールをいくつか作ってきました。 スペシャリストではないですが、プロダクトでGoを書く分には特に問題ないレベルかなと思います。 Rust2022年夏ころから使い始めてちょうど2年ほど経ちました。 なにかツールを作ったわけではないですが、勉強がてらにいくつか作ったもの・書いたがあります。 普通にRustを書く分には問題ないですが

    GopherがRust入門したので違いをまとめてみた
  • Apache HTTPサーバーの同時接続数の設定について(Windows) - ITエンジニアの成長ブログ

    今回はApache HTTPサーバーの同時接続数の設定を確認していきたいと思います。動作環境としては、WindowsにインストールしたApache HTTPサーバーを対象とします。Webで検索してもWindowsにおけるApacheの設定について示した情報がとても少なく、何が正しいのかを判断するのに苦労しました。ですので、同じような境遇の方がいればお読みいただければ少しは助けになるかもしれません。よければ最後までお付き合いください! 動作環境 今回の確認で使用した動作環境は以下の通りです。 ・OS AWS EC2でWindows Serverを無料利用枠でサクッと立てています。Window Server 2019 Datacenterエディションです。 ・Apache Apacheのバージョンは、Apache 2.4.46です。 MPM(マルチプロセッシングモジュール)とは 同時接続数の設

    Apache HTTPサーバーの同時接続数の設定について(Windows) - ITエンジニアの成長ブログ
    jukuringo
    jukuringo 2024/08/06