タグ

ブックマーク / qiita.com (163)

  • 【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
  • 【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
  • PHPでデータベースに接続するときのまとめ - Qiita

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

    PHPでデータベースに接続するときのまとめ - Qiita
  • VSCode上でシーケンス図/クラス図/フローチャートをサクッと書きたい ~Mermaid Graphical Editor~ - Qiita

    VSCode上でシーケンス図/クラス図/フローチャートをサクッと書きたい ~Mermaid Graphical Editor~初心者umlVSCode新人プログラマ応援mermaid はじめに Mermaid Graphical EditorというVSCode拡張機能にとても感動したので一筆書きました こんな方におすすめ シーケンス図/クラス図/フローチャートをサクッと書きたいけどmermaidとか難しそう 😢 できること VSCode上でポチポチしながらシーケンス図/クラス図/フローチャートを描けるようになる mermaid記法のコードも自動生成されるよ 個人的メリット mermaidの学習コスト0 紙で書くよりも修正しながら書きやすい 導入手順 (簡単7steps) (1) VSCode上で「Mermaid Graphical Editor」という拡張機能をインストールする (2)

    VSCode上でシーケンス図/クラス図/フローチャートをサクッと書きたい ~Mermaid Graphical Editor~ - Qiita
    jukuringo
    jukuringo 2024/05/27
  • より良い Git コミットメッセージを書こう - Qiita

    より良いコミットメッセージを残すことは Git を使った開発をする上で重要なことです。優れたコミットメッセージは、それを読んだ人がコードを理解するのに大いに役立ちます。 では、どのようなメッセージが良いもので、どのようなメッセージが悪いものなのでしょうか? それについて掘り下げていきたいと思います。 基的な Git Commit Message の書き方 詳しいところは、以下の3サイトを参照してください。特に「How to Write a Git Commit Message」には基がすべて書かれています。 How to Write a Git Commit Message https://cbea.ms/git-commit/ Gitのコミットメッセージをうまく作成する7つのルール (「How to Write a Git Commit Message」の和訳記事) https://

    より良い Git コミットメッセージを書こう - Qiita
    jukuringo
    jukuringo 2024/04/29
  • Postmanを使い始めた時に知っておきたかった地味に便利な機能10選 - Qiita

    普段何気に使っているPostman。最近まで「手軽にGUIで疎通を試せて、設定を共有できてべんり〜」くらいで使っていました。 けどふと「実はもっと便利な機能があるのでは?」と思って調べてみたところ、色々出てきたのでせっかくなのでシェアしたいと思います。 たまたまですがちょうど10選! 地味に便利な機能10選 VSCode拡張 PostmanにはVSCode拡張機能があります。 インストールするだけで、VSCodeのサイドバーから利用可能です。 日語設定 日人なので日語で使いたい。 右上の歯車→Settingsから以下の通り選択することで日語化が可能です。 変数の定義 複数のAPIで同じ値を使いたい場合があるとします。例えばテスト用のユーザーIDなどです。 Postmanではそんな値をAPIファイルに逐一ハードコードする必要はなく、変数に保存することが可能です。 Postman Ec

    Postmanを使い始めた時に知っておきたかった地味に便利な機能10選 - Qiita
    jukuringo
    jukuringo 2024/04/23
  • DDD を成功させるためにドメインエキスパートと「言葉集め会」で「生の言葉」を聞いてみよう - Qiita

    記事は READYFOR 株式会社の READYFOR Advent Calendar 2023 の [15日目] です。 ※ 記事の内容は所属会社の公式発表・見解を示すものではありません。 ■ 「言葉集め会」とは? 弊社 READYFOR では2年ほど前より DDD に関する取り組みを行っています。 「言葉集め会」とは、そんな弊社にて実施した コンテキストマップの作成や精度向上 を主目的とした 『ドメインエキスパートの皆さんを招待し、仕事で使う「言葉」とその関係性を改めて見出してみる』イベント です。 同僚の方が前職の体験を元に考案したもので、準備を除き全体でおよそ4時間という少し長丁場のプラクティスとなります。 その経験について日はお話をさせて頂きます。 ■「言葉集め会」で期待できること 「言葉集め会」を実施することで、以下の効果を期待することができます。 エンジニア目線 自社の

    DDD を成功させるためにドメインエキスパートと「言葉集め会」で「生の言葉」を聞いてみよう - Qiita
    jukuringo
    jukuringo 2024/01/09
  • 今さら聞けないログの基本と設計指針 - Qiita

    はじめに 皆さんのログに対する理解はどんなものでしょうか?仕組みから設計方法まで完璧に理解しているエンジニアもいれば、なんとなく使用しているエンジニアも多いことでしょう。 ログとは、システムに着いてエラーや障害の発生、利用者による操作や設定の変更、外部との通信などを時系列に記録したものです。ログに関する理解を深めることで、複雑なシステム開発や運用が可能となります。また、AWS、Azure、GCPなどのクラウドサービスを利用している場合はシステムの開発が可能になるだけでなく、経費削減に繋がる可能性も考えられます。 記事では、ログの基を押さえるためにその設計方法について解説します。少しでも自信がない方は、ご一読ください。 ログを出力する理由は? ログの基や、ログの設計について解説する前にそもそもログを出力する理由を押さえましょう。大きく4つの理由が考えられます。 ・問題が発生した時に調査

    今さら聞けないログの基本と設計指針 - Qiita
    jukuringo
    jukuringo 2023/11/12
  • リーダブルコード・PSRから学ぶ 命名規則 - Qiita

    先日の社内ランチ勉強会にて発表した内容をまとめます。 リーダブルコードJavaC++等で書いてあり、サンプルコードがしっくりこないことがあります。 今回は私が最も馴染みがあるPHPに落とし込んで読んでいきます。 参考資料 リーダブルコード(2章 名前に情報を詰め込む) PHP Standards Recommendations PSR-0, 1, 2を日語に翻訳してみました 1. 命名規則(フォーマット) ① キャメルケース 先頭文字を除いた単語の頭文字を大文字にする記法を指します。 ローワーキャメルケース(lower Camel Case) アッパーキャメルケース(Upper Camel Case) ② スネークケース(snake_case/SNAKE_CASE) 単語と単語の間をアンダースコアで接続する記法を指します。 ローワースネークケース(lower_snake_case)

    リーダブルコード・PSRから学ぶ 命名規則 - Qiita
    jukuringo
    jukuringo 2023/09/27
  • 要件定義~システム設計ができる人材になれる記事 - Qiita

    はじめに 株式会社デジサク がお送りするプログラミング記事、 今回は要件定義・システム設計について扱っていこうと思います。 プログラミングを勉強していて、こんな事を感じた経験はないでしょうか。 「勉強してもプロダクトが作れない」 「そもそも開発ってどうやるの?」 「要件定義ってなに?」 その悩みを解決するために、まずは開発の全体感を理解しましょう。 下図『ソフトウェア開発プロセス』をご覧ください いつも勉強しているプログラミングは 『実装』 の部分に該当します。 つまり、プログラミングの実力を発揮する前に4つも壁が存在するのです。 そのため、記事では実装(プログラミング)を開始する前に必要となる、 『企画~設計』 について順を追って説明して行きます。 特に、エンジニアが理解しておくべき 『要件定義』『設計』 にフォーカスします。 なお、開発全体において実装(プログラミング)に使用する時間

    要件定義~システム設計ができる人材になれる記事 - Qiita
    jukuringo
    jukuringo 2023/08/05
  • 【PHP】.env は絶対に使おう - Qiita

    はじめに プロジェクト個人開発で .env ファイルを使用しないことはほぼないと思います。 .env ファイルとは開発や番など環境ごとに変わるDB情報やGitで管理したくないパスワードなどプロジェクトの設定を書いたファイルです。 今回は簡単に .env を読み込み出力するというプログラムを作成しました。( Laravel (フレームワーク)を使用するときは直接 .env を読み込まず config ファイルから読み込むことにご注意ください) この記事でわかること .env の使用方法 目次 はじめに この記事でわかること 目次 導入 composer .gitignore .env メインファイル 参考文献 導入 composer ライブラリを導入します。 GitHub(Installation)

    【PHP】.env は絶対に使おう - Qiita
  • python-dotenvを使って環境変数を設定する - Qiita

    初めに APIのキーやDBのパスワードなどをべた書きするのはあまり良くないと教わり環境変数に入れる方法を考えた際にpython-dotenvを使うことにしました。 公式のgitはこちらです。 python-dotenvのインストールと.envファイル作成 インストール

    python-dotenvを使って環境変数を設定する - Qiita
  • Pythonで例外を投げるときのベストプラクティス - Qiita

    目的 ライブラリ開発やデータ分析ツールの作成の際に適切に例外処理を行うことで、頑健かつバグの発見をしやすいシステムを作れるようになる。Pythonは他言語と比べて例外処理のオーバーヘッドが軽いので積極的に利用することで、高速かつ安全なコードを書くことができます。 推奨行為 例外処理を定義する際に従うべき項目についてまとめました。 投げる例外は適切に文書化する 最も重要なことです。定義した例外がどういうものなのかを適切にドキュメント化しましょう。毎度毎度書くのは面倒なので、名前だけで伝わるような命名にする、__str__ に詳細な説明を書く、もしくはSphinxなどのドキュメント自動生成ツールを使うのがオススメです。ドキュメント生成の自動化については、マスターブランチのマージと同時にドキュメントをS3に公開する。が参考になります。 ライブラリ共通の例外を作成し、全てそれを継承させる これをす

    Pythonで例外を投げるときのベストプラクティス - Qiita
    jukuringo
    jukuringo 2023/06/16
  • Poetryを使ってPythonパッケージ(CLI)作成 - Qiita

    概要 Python用のパッケージ管理ツールPoetryを使って郵便番号から住所を取得するPythonパッケージを作成しコマンドラインから実行できるようにしてみる。 作業ディレクトリ作成

    Poetryを使ってPythonパッケージ(CLI)作成 - Qiita
  • なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita

    なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】UXUIDesignUIデザイン画面設計 1.はじめに エンジニアの私がデザインを気で勉強した結果、デザイナーとエンジニアはそもそも思考が大きく違っているということがわかりました。 今回は「それ」をデザインに苦手意識のあるエンジニア方にも理解してもらえたらと思い、わかりやすくまとめてみました。 2.アプリの画面デザインを考えてみよう まず、こんなアプリを考えてみてください。 フィットネストレーナーが使うアプリ トレーニングルームでお客様とお話しながら使う 端末はタブレット そして 会員の個人情報確認 前回までのトレーニング状況の確認 次回の予約受付 といったことをします。 使える情報としては、こんな感じです。 あなたならどう画面デザインをするか、もしお時間があったら考えてみてください。

    なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita
  • エンジニアの職務経歴書 〜正しい魅力の伝え方〜 - Qiita

    はじめに 昨今の採用現場においてはソフトウェアエンジニアは売り手市場と言われ数年が経過していますが、2023年現在においても、デジタルトランスフォーメーションの加速により、これまでのIT企業の募集だけではなく、様々な企業がソフトウェアエンジニアを募集している状況にあると思います。 知り合いのリクルーターに話を聞くと、ここ最近米国のBigTech企業や、日初のベンチャー企業のレイオフが目立ちますが、それはごく一部であり、多くの企業では引き続きソフトウェアエンジニアの需要は最も高く、この先10年以上はこの高い需要は続くだろうと言っていました。 引用元: 【2023年最新】厳選!エンジニア採用に強い15の採用媒体比較~最新市場動向や採用戦略も徹底解説 - type 私自身が就職した10年数年前は望んでソフトウェアエンジニアに就く人は理系出身のプログラミング趣向が強い人ばかりという印象でしたが、

    エンジニアの職務経歴書 〜正しい魅力の伝え方〜 - Qiita
    jukuringo
    jukuringo 2023/01/26
  • PHPの薄いDBライブラリ「Idiorm」を使ってみた - Qiita

    Idiormとは PDOをそのまま使って業務システムを組んでいたのですが、大きくなるにつれてツラくなってきたので、ラッパーライブラリを探すことにしました。 以前はDoctrineを使っていたのですが、今の業務で使うには高機能すぎる感じがしたので、薄いライブラリを探していたところ、Idiormというのが良さそうだったので試してみることにしました。 $user = ORM::for_table('user') ->where_equal('username', 'j4mie') ->find_one(); $user->first_name = 'Jamie'; $user->save(); $tweets = ORM::for_table('tweet') ->select('tweet.*') ->join('user', array( 'user.id', '=', 'tweet.use

    PHPの薄いDBライブラリ「Idiorm」を使ってみた - Qiita
  • TypeScript: satisfiesオペレーターの使い所のひとつとして - Qiita

    TypeScript 4.9で追加されたsatisfiesオペレーターですが、「これ何に便利なの?」「使いみちある?」という声を聞くところですが、使いどころのひとつとして、あるかなと思ったのがあったので紹介したいと思います。 僕もsatisfiesオペレーター自体、使い所を模索しているところなので、いちアイディアとして読んでいただければと思います。そのうえで、感想やツッコミなど頂けると嬉しいです。 JavaScriptで書いてた頃 一旦、TypeScriptは忘れて、JavaScriptを書いてた頃のマインドセットでコードを考えてみます。 たとえば、次のようなオブジェクトリテラルをJSONにしたいと考えたとします。

    TypeScript: satisfiesオペレーターの使い所のひとつとして - Qiita
  • Spring Boot 3.0 (Spring Framework6.0) へのアップデートで対応したこと - Qiita

    概要 自分自身の学習用に作成した Spring Boot アプリケーションを3.0に上げました。その際に対応したことをまとめます。 複雑なアプリでは無いので修正内容も限定的ですが誰かの参考になればと思います。 尚、修正箇所は Spring Security関連が多めです。また 言語はKotlinですがJavaの場合でも同じ対応でOKだと思います。 TL;DR 修正内容はPRを作成しているのでよければそちらをご覧ください。 いくつかの修正はSpring Bootのアップデートと関係ないのでここでは説明しません。 修正点 主に自分がつまずいた点を挙げていきます。詳細を確認したい場合は冒頭のPRをご覧ください。 依存関係のアップデート spring-boot-starter-xxx のバージョンを全て 2.7.5 から 3.0.0 上げました。 つまずいた点 spring-security-te

    Spring Boot 3.0 (Spring Framework6.0) へのアップデートで対応したこと - Qiita
  • Bolt for Python + AWS Lambda & S3 で運用するほぼゼロコスト Slack アプリ - Qiita

    こんにちは、Slack の公式 SDK 開発と日の Developer Relations を担当している瀬良 (@seratch) と申します 次世代プラットフォーム機能が盛り上がりつつある昨今ですが、以下の記事でも書きました通り、Bolt フレームワークも引き続きご利用いただけます。 この記事では、Bolt for Python を使ってほぼゼロコストで運用することができる Slack アプリのデザイン例についてご紹介します。 Bolt for Python とは? Bolt とは、Slack が提供する公式の Slack アプリ開発フレームワークです。全てのプラットフォーム機能をサポートしており、Express.js のルーティング機能に似たインターフェースでリスナー関数を登録するだけで、様々なイベントに応答するインタラクティブな Slack アプリを簡単に開発することができます。

    Bolt for Python + AWS Lambda & S3 で運用するほぼゼロコスト Slack アプリ - Qiita
    jukuringo
    jukuringo 2022/12/03