並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 6519件

新着順 人気順

バリデーションの検索結果121 - 160 件 / 6519件

  • DB初心者が自作DBMS始めてみた - Qiita

    この記事は DeNA 24 新卒 Advent Calendar 2023 の 23 日目の記事です。 TL;DR DBMSの基本的な仕組みを知るのに有益だったリソース CMUのDBMS講義 先人の素晴らしい自作DBMSの解説記事&ソースコードリーディング 小さな小さな自作DBMSの設計と実装 最小限SELECTやINSERTなど基本的なSQLが動く この記事のゴール データベースの内部構成を超ざっくり理解するために有用なリソースを知り、そして(全開発者のロマンである)自作 DBMS に一歩踏み出すきっかけになればうれしいです。 モチベーション 自分は普段業務でアプリケーションのような割と高レイヤーな開発がメインなこともあって、ミドルウェアやOS、ネットワークと言った低めのレイヤーに憧れを持っており、この気持ちをまずは自作DBMSをやってみることによって解放してあげようと思ったことがきっか

      DB初心者が自作DBMS始めてみた - Qiita
    • LINEユーザー8300万人を対象とするアンケートを1週間で開発するには? コロナ禍におけるLINEの施策とフロントエンド開発

      2020年6月17日に行われたイベント「UIT meetup vol.9『The new normal for frontend』」に、LINE株式会社のフロントエンドエンジニアであるChanghee Kim氏が登壇しました。「コロナ禍、私たちにできたこと」という講演タイトルで、新型コロナ対策のための全国調査を行った際のフロントエンド開発について紹介しました。講演資料はこちら コロナ禍での仕事の変化 Changhee Kim氏:それでは「コロナ禍、私たちにできたこと」というタイトルで発表させていただきます。まず自己紹介ですが、Kim Changhee(キム・チャンフィ)と申します。LINEでは2018年からフロントエンドエンジニアとして働いています。 LINEではたくさんの外国籍社員が働いています。私もその1人で、韓国出身のエンジニアです。ふだんはLINE公式アカウントの管理画面アプリを開

        LINEユーザー8300万人を対象とするアンケートを1週間で開発するには? コロナ禍におけるLINEの施策とフロントエンド開発
      • 【2024年】ITエンジニア本大賞まとめ

        アジャイルプラクティスガイドブック チームで成果を出すための開発技術の実践知 チーム・組織にプラクティスを導入し、根付かせるために! 116の手法を一冊にまとめた“実践”の手引き チームでのアジャイル開発には、開発技術やツールなどの「技術プラクティス」の活用が重要です。 プラクティスはそれぞれの目的や役割を意識することで効果を発揮します。しかし、目まぐるしく状況が変化する開発では、当初の目的を忘れて、プラクティスに取り組むこと自体が目的化してしまうチームも少なくありません。 本書は、チーム・組織でアジャイル開発に取り組んできた著者が、プラクティスの効果的な選択・活用のしかたについて、自らの実践経験に基づいてまとめたガイドブックです。 架空の開発現場を舞台にしたマンガとともに、チーム開発の様々なシーンで役立てられるプラクティスを、幅広くかつわかりやすく解説しています。開発現場に備えておけば、

          【2024年】ITエンジニア本大賞まとめ
        • Firestoreセキュリティルールの基礎と実践 - セキュアな Firebase活用に向けたアプローチを理解する - Flatt Security Blog

          こんにちは、株式会社Flatt Security セキュリティエンジニアの梅内(@Sz4rny)です。 本稿では、Cloud Firestore (以下、Firestore) を用いたセキュアなアプリケーション開発を行うためのアプローチについて説明するとともに、そのアプローチを実現するセキュリティルールの記述例を複数取り上げます。 本稿を読むことで、そもそも Firestore とは何か、どのように Firestore に格納するデータの構造を設計、実装すればセキュアな環境を実現しやすいのか、また、Firestore を利用するアプリケーションにおいてどのような脆弱性が埋め込まれやすいのかといったトピックについて理解できるでしょう。 なお、本稿は以前に投稿した記事と共通する部分があります。理解を補強するために、こちらの記事も適宜ご覧ください。 flattsecurity.hatenablo

            Firestoreセキュリティルールの基礎と実践 - セキュアな Firebase活用に向けたアプローチを理解する - Flatt Security Blog
          • 最速の生年月日入力フォームを求めて - LIVESENSE ENGINEER BLOG

            こんにちは。転職ドラフトでWebアプリケーションエンジニアをやっている@iwtnです。 転職ドラフトでは自社開発企業に特化したエージェントサービスを始めました。 agent.job-draft.jp そこでサービスの申し込みフォームを作ったのですが、その中に生年月日の入力がありました。 生年月日ということは日付の入力。 ブラウザの実装もリッチになってきて、デフォルトでinputタグの type="date" を使うだけでカレンダーまで表示されます。素晴らしいですね! しかしこの実装の問題は多くの人が指摘しています。実際あまりよいUIとは言えません。 動作はバラバラ、特にスマホでは入力しにくい 実装はブラウザに依存します。なので統一したUIをユーザーに提供できません。 caniuse.com もちろん普段使っているブラウザで慣れていればそれがその人にとってのベストのUIにはなりえます。 しか

              最速の生年月日入力フォームを求めて - LIVESENSE ENGINEER BLOG
            • ゆるふわMLOps入門 - Re:ゼロから始めるML生活

              MLOpsに関してちゃんと勉強中でして、色々事例とか調べてました。 とは言うものの、現在ではMLOpsを様々な観点から語られて、MLOpsという言葉にいろんな意味が含まれています。 という事情から色々探していたら、こちらをお見かけしました。 medium.com 書籍へのリンクはこちらです。 n月刊ラムダノート Vol.1, No.1(2019)(紙書籍+PDF版) – 技術書出版と販売のラムダノート こちらの書籍では基本的な背景からきれいに整理されていました。 こちらを参考にしつつ、頑張ってMLOpsの動向について整理してみたので、そのメモです。 それでは張り切って書いていきます。 tl;dr; 背景・問題設定 機械学習は学習のアルゴリズムよりその周辺のほうが大きい 機械学習システムに携わる人の役割の違いによってうまくいかないことがある 機械学習システムの構築・運用する上で課題も多い 問

                ゆるふわMLOps入門 - Re:ゼロから始めるML生活
              • ドメイン固有型(値オブジェクト含む)を再考する - かとじゅんの技術日誌

                Value Objectが盛り上がっているらしい。 Value Objectについて整理しよう - Software Transactional Memo Value Objectの説明に異論がないものの、主題はValue Object Obsessionのほうですよね。 こちらも聞いてみた。 fukabori.fm よい機会なので、よくわかっているつもりの、値オブジェクトというかドメイン固有型について再考してみよう。 それは値か属性か それはエンティティの全メンバーやデータベースの全列のために「顧客郵便番号」「送付先郵便番号」「事業所郵便番号」「契約日」などのクラス(メンバではなくクラス!)を定義して、immutableな振る舞いを強制する事を以てValue Objectであると言い張り、ドメイン知識の断片をそれぞれのクラスに書き散らして「高凝集になった」「型システムが守ってくれる」と喜

                  ドメイン固有型(値オブジェクト含む)を再考する - かとじゅんの技術日誌
                • ドメイン駆動設計(DDD)を整理

                  またクラスを利用していないため、オブジェクト指向の特性「継承」「カプセル化」「ポリモーフィズム」は利用していません。この部分が厳密なドメイン駆動設計(DDD)のニュアンスと異なるので「風味」という言葉を使っています。 全体概要と用語の整理 まず初めにドメイン駆動設計の全体の概要と出てくる用語について紹介します。 自分は言葉を理解しないとコードの理解に落とし込めなかったので詳しく解説をしていきます。 各用語の具体的な実装は後の章で紹介します。 すべての用語において理解しやすいように「ユーザー管理システムを実装する」例を用いて解説を入れています。(解説の都合で書籍とは異なる例を採用しています) ドメイン駆動設計とは ドメイン駆動設計はその名の通り、「ドメインの知識」に焦点をあてた設計方法 「ドメイン」とは、ソフトウェア開発におけるプログラムを適応する対象となる領域 ドメインについて ドメイン駆

                    ドメイン駆動設計(DDD)を整理
                  • サブミット (送信) ボタンをデフォルトで無効化しない | Accessible & Usable

                    公開日 : 2021年10月14日 (2023年10月11日 更新) カテゴリー : アクセシビリティ / ユーザビリティ ウェブのフォームにおいて、サブミットボタンをデフォルトで無効化しておいて、ユーザーの入力不備がなくなったときにボタンを有効化する UI があります。たとえば、利用規約などの文書を読んで同意する旨のチェックを入れないと、あるいは、入力必須フィールドにすべて正しく情報を入れないと、ボタンがアクティブにならない、というものです。 サブミットボタンがデフォルトで無効化されているフォームの例。 このような UI は、アクセシビリティやユーザビリティの観点で、以下の問題があります。 そこに存在しているはずのサブミットボタンが使用できないことに対して、その理由をユーザーが理解できずに、混乱してしまう恐れがある。(ユーザーの側に誤っているという自覚がなくても、ちょっとした見落としや入

                      サブミット (送信) ボタンをデフォルトで無効化しない | Accessible & Usable
                    • has()疑似クラスでコーディングが変わる! CSS最新スタイリング - ICS MEDIA

                      2024年のブラウザならCSSの:has()疑似クラスが使えます。この:has()疑似クラスは非常に強力なポテンシャルをもっています。というのも:has()疑似クラスを使えば、どんな関係のセレクターも指定可能になります。これを使えば多彩なセレクターが記述できるようになり、より表現力豊かなCSSを実現できます。この記事では:has()疑似クラスを使ったCSSの表現手法やテクニックを紹介します。 サンプルを別ウインドウで開く コードを確認する :has()疑似クラスの基本的な使い方 :has()疑似クラスの使い方について簡単に説明します。:has()疑似クラスは渡したセレクターを持つ親要素を選択します。たとえば、次のようなHTMLとCSSがあるとします。 <p class="text"> <strong>メロス</strong>は激怒した。必ず、かの邪智暴虐の王を除かなければならぬと決意した。

                        has()疑似クラスでコーディングが変わる! CSS最新スタイリング - ICS MEDIA
                      • PlantUML で始めるリレーションシップ駆動要件分析 (RDRA) - Qiita

                        はじめに ソフトウェア開発において、エンジニアが開発対象のドメインの業務に精通していない場合、書く内容やかける時間に程度はあれど 業務分析 や 要件定義 が必要になります。しかし、要件定義の方法論についての話題がネット上に上がることも少なく、書籍などもあまり話題になっていない印象があります (私の観測範囲では)。なので、私の場合、要件定義の実務では公の方法論を体系的に学ばずに、実務で見てきたものを自分なりにアレンジして対応してきました。 そんなとき、モデルベースの要件定義の方法論として リレーションシップ駆動分析 (RDRA) というものがあることを知りました。モデリングはずっと取り組んできていることなので、興味が湧いて少し調べてみると PlantUML でも表現できるというではありませんか! PlantUML Example for RDRA 2.0 ハンドブック そこで、RDRA2.0

                          PlantUML で始めるリレーションシップ駆動要件分析 (RDRA) - Qiita
                        • tRPCを導入したら爆速でWebサービスをリリースできた話

                          この記事は 「個人開発Advent Calendar 2022」 8日目の記事です。 はじめに 先日リリースされた、SplarateというWebサービスの開発をお手伝いしています。そこで導入したtRPCが驚くほど便利だったので、実際の体験を交えてその使いやすさを紹介します。 tRPCとは? tRPC allows you to easily build & consume fully typesafe APIs without schemas or code generation. https://trpc.io/docs/ tRPCは、スキーマやコード生成なしで型安全なAPIを簡単に構築し、呼び出すことのできるライブラリです。 tRPC is for full-stack TypeScript developers. と謳われているように、TypeScriptに特化して作られており、Ty

                            tRPCを導入したら爆速でWebサービスをリリースできた話
                          • JSON Schema をクックパッドマートの商品登録画面に導入した話 - クックパッド開発者ブログ

                            主にバックエンドのエンジニアとしてクックパッドマートの開発に携わっている塩出( @solt9029 )です。 美味しい食材をユーザにお届けするサービスであるクックパッドマートでは、日々街の販売店や地域の生産者が商品の登録を行っています。 商品を登録する際、販売者は消費期限をはじめとする様々な品質保証の情報を正確に入力する必要があります。 しかし、商品の種類や状態に応じて記載するべき品質保証の情報は異なるため、全項目が羅列されるフォームでは正確な入力が困難であり、販売者および商品の審査を行う社内の運用メンバに対して大きな負担をかけていました。 そこで、 JSON Schema を利用して複雑なフォームの出し分けを自動で制御し、またバックエンド側でのバリデーションも行うことが出来る仕組みを導入しました。 その結果、商品の種類や状態を選択するだけで、適切な品質保証の情報が自動的に入力され、必要な

                              JSON Schema をクックパッドマートの商品登録画面に導入した話 - クックパッド開発者ブログ
                            • 翻訳: Parse, don’t validate (バリデーションせずパースせよ)

                              これまで、型駆動設計を実践することが何を意味するのか、簡潔でシンプルな説明を見つけるのに苦労してきました。誰かに「どうやってこのアプローチを思いついたのですか?」と尋ねられることが多いのですが、満足のいく答えを出せないことがよくあります。そのアイデアが突然のひらめきで浮かんだわけではなく、正しいアプローチを空から引っ張り出す必要がない、反復的な設計プロセスがあると分かってはいるのですが、そのプロセスを他の人にうまく伝えることができていませんでした。 しかし、およそ1ヶ月前、JSON を静的型付け言語で、そして動的型付け言語にパースしたときに経験した違いについてTwitter上で振り返っていた時、ついに私が探していたものを見つけました。そして、そのスローガンはたった3つの英単語で表せます。 Parse, don’t validate (バリデーションせずパースせよ) 型駆動設計のエッセンス

                                翻訳: Parse, don’t validate (バリデーションせずパースせよ)
                              • テストコードを書く上で個人的に気をつけている5つのこと - Qiita

                                はじめに エンジニアの皆様、テストコードはちゃんと書けておりますでしょうか?(挨拶) どんな開発言語や開発手法を導入していたとしても、アプリケーションの機能実装とテストは表裏一体であると言えます。場合によっては機能の作り込みよりも時間をかけるべきケースが多いくらい重要である(・・・と信じたい)反面、デッドラインが近づくにつれて真っ先に工数が削られやすく軽視されがちな工程でもあります。 時間に追われてテストコードを書いた結果、テストの体をなしていないコードになっていたり後で見返したときに記述が煩雑すぎてメンテ不能になっていたり・・・といった苦い経験は誰しもがあるかと思います。かくいう自分もそんなことは多々ありました。 そんな今までの経験則を基に「自分がテストコードを書くにあたってどんなことを意識しているのか?」をいくつかピックアップして備忘録も兼ねて紹介したいと思います。 一応注意なのですが

                                  テストコードを書く上で個人的に気をつけている5つのこと - Qiita
                                • 「良いコードとは何か」で消耗するのはもうやめよう - DMM Developers Blog

                                  これはなに? こんにちは、DMM.comのミノ駆動です。 プラットフォーム開発本部 Developer Productivity Group 横断チームにて、 プラットフォームの設計品質向上に取り組んでいます。 さて、ネット上ではソフトウェア開発における「良いコードとは何か」をめぐって、 いろんな意見が交錯したり、 ときには激論を呼んだりします。 収拾がつかないこともしばしばです。 この記事は、良いコードを考えるうえでの要素を整理し、 建設的な議論を助けることを目的とします。 これはなに? この記事の理解目標 良いコードをめぐる議論 議論1: 何をもって良いコードなのか 議論2: 良いコードはどうやったら書けるのか 議論3: 「綺麗なコード(良いコード) vs 動くコード」問題 議論改善のために提案します 提案1: ソフトウェア品質特性の観点でコードの良し悪しを判断しよう 提案2: 原理原

                                    「良いコードとは何か」で消耗するのはもうやめよう - DMM Developers Blog
                                  • 大阪都構想の投票結果を区ごとに分析してみた - Qiita

                                    はじめに 私は現在大阪市に住んでおり、一昨日の都構想投票はテレビにかじりつきながら見ていました。 経過を見ていて思ったのが、区ごとの結果の差が顕著に出ており、分析対象として適したデータが得られそうだと感じたため、詳しく分析してみました。 ※下図はおおさか維新の会HP掲載の、都構想における新旧区分け GitHubに、使用したスクリプトやクレンジング後のデータをアップロードしています Qiitaのガイドラインにあるように、あくまで技術記事としての領分を超えないよう、政治的な深い考察は避け、得られた事実のみを列挙していこうと思います。 また、私は因果推論のような高度な分析のスキルは持ち合わせていないので、「さらに深い知見を得るためにはこうしたらいい」 というような手法に関するアドバイスがございましたら、コメント頂けると大変ありがたいです! 結論 結論に至るまでの手順は次章以降で述べますが、以下の

                                      大阪都構想の投票結果を区ごとに分析してみた - Qiita
                                    • UTF-8で動くRailsがShift_JISな外部システムと通信する方法 - BOOK☆WALKER inside

                                      こんにちは。 メディアサービス開発部Webアプリケーション開発課のフサギコ(髙﨑)です。部署名が変わりました。 Ruby on Railsによるバックエンドの実装運用と、AWSによるサービスインフラの設計構築を中心とした、いわゆるテックリードのような立ち位置で働いています。 本記事では、UTF-8環境下で動くRailsがShift_JISな外部APIと通信する方法についてお話しします。 前提知識 文字コード UTF-8環境下で動くRailsがShift_JISな外部システムと通信するには Shift_JISな外部APIに対してPOSTリクエストする べた書きとしては Railsにおいては Shift_JISで使用できない文字が混ざっていないかをバリデーションする Shift_JISな外部システムからPOSTリクエストを受ける おまけ: ユーザのブラウザにShift_JISでPOSTさせる

                                        UTF-8で動くRailsがShift_JISな外部システムと通信する方法 - BOOK☆WALKER inside
                                      • 保守・理解しやすいコードを書きたい! 〜VSCode拡張機能で循環的複雑度と戦う〜 - Qiita

                                        参考: 循環的複雑度 ちなみに githubで最もやべー関数を発掘するという記事では、循環的複雑度が高い関数が紹介されています。 ものによってはリンク切れしてしまっていますが、最も複雑度が高いのはnode(JavaScript)のjo関数で5505だそうです。想像もつかない... どのようにすれば循環的複雑度を低く抑えられるのか? 計算方法から考えると、forやifによる分岐を減らしていくことが必要となります。 そのために、分岐の入るロジックを別関数として切り出し、1つの関数でやる事を絞り、分離することを理想として目指していきます。 とはいえ、いちいち複雑度の計算なんてしていられないですね。 そこで役に立つのが次のVSCode拡張機能です。 Code Metrics (VSCode拡張機能) この拡張機能は、TypeScriptやJavaScriptの関数・メソッドに循環的複雑度を表示して

                                          保守・理解しやすいコードを書きたい! 〜VSCode拡張機能で循環的複雑度と戦う〜 - Qiita
                                        • 実案件から学んだ、本当に役立つUIデザインの法則50 ユーザビリティチェックリスト総集編|i3DESIGN Designers

                                          「ユーザビリティチェックリスト」ということで、UIデザインの「あるある」を取り上げ、改善案とセットでまとめています。 今回は、10のヒューリスティクスをもとに分類してみました。10のヒューリスティクスについては、以前記事にまとめています。 具体的な事例を一緒に取り上げ、よりわかりやすく解説していますので、こちらもあわせてご覧ください。 また弊社ホームページにて、ユーザビリティチェックリストをダウンロードいただけます。こちらも合わせてご活用ください。 1. システムステータスの可視化(Visibility of system status)1-1. 入力項目が多いときはステップを分けるフォームの入力項目が多い場合は、項目をグルーピングして画面を分割しましょう。 フォームが長すぎると、ユーザーは入力を途中で辞めてページから離脱してしまうかもしれません。 その上で、ステッパーを設置して現在の進捗

                                            実案件から学んだ、本当に役立つUIデザインの法則50 ユーザビリティチェックリスト総集編|i3DESIGN Designers
                                          • Reactでウェブフォームを作る2021

                                            Webのフォームは、いつでもベストプラクティスを悩むものの一つです。React を使うとして完全に自作でやるのか?それともフォームライブラリを使うか?フォームライブラリならどれを使うか? 今の時代 Formik を選ぶ理由はありませんが、React Hook Form と React Final Form のどちらを使うかはとても悩ましいです。 React Hook Form は利用経験者・採用実績が多い、速度が速いなど様々な利点はありますが、React 哲学に反する作りなどクセの強さが難点です。あと良くも悪くも利用シーンが豊富でドキュメントも豊富で迷子になりがちです。 React Final Form は Final Form の React wrapper です。個人的にはこちら React 的使いやすさに反すると感じてること、React Final Form として見たときにドキュメ

                                              Reactでウェブフォームを作る2021
                                            • Hotwireの良かった点、辛かった点、向いているケース、向いていないケース - 猫Rails

                                              (自分はRailsを書くことが多く、フロントエンドの経験は乏しいです。見方にだいぶ偏りがあると思いますので、そのあたり差し引いてお読みいただければと思います〜🙇‍♂️) こんにちは〜。Hotwireを仕事で使う機会があったので、実際に使ってみて感じた、良かった点、辛かった点、向いているケース、向いていないケースを共有します〜。 Hotwireとは? Turbo Driveとは? Turbo Framesとは? Turbo Streamsとは? Stimulusとは? Hotwireのデモ 良かった点 サーバーサイドに集中できる Railsの資産をフルに活かせる 後付けで段階的にSPA風の挙動を追加できる 学習コストが低い 開発コストが低い WebSocketは必須ではない 辛かった点・辛くなりそうな点 DOM更新時にレスポンスを待たないといけない SPAのユーザー体験とはだいぶ違う He

                                                Hotwireの良かった点、辛かった点、向いているケース、向いていないケース - 猫Rails
                                              • Firebase利用時に発生しやすい脆弱性とその対策10選 - Flatt Security Blog

                                                はじめに こんにちは。株式会社Flatt Securityセキュリティエンジニアの梅内(@Sz4rny)です。 本稿では、弊社がこれまでに実施してきたFirebase診断の事例や筆者独自の調査をもとに、Firebaseを活用して開発されたサービスにおいて発生しやすい脆弱性の概要やそれにより引き起こされるリスクおよびその対策を深刻度や発生頻度の評価を踏まえつつお伝えします。本稿を通じて、Firebaseを活用したサービスにおいて発生しやすい脆弱性にはどのようなものがあるのか、また、そのような脆弱性を埋め込むことなくセキュアなサービス実装を実現するためにはどのような観点に気をつければよいのかについて理解を深めていただけますと幸いです。 なお、本稿では「Firebase活用時に限って発生しうる脆弱性(例:Firestoreのセキュリティルールにおけるバリデーション不備)」と「Firebaseを活

                                                  Firebase利用時に発生しやすい脆弱性とその対策10選 - Flatt Security Blog
                                                • TypeScript エラー処理パターン - Object.create(null)

                                                  M 年前にも N 年後にも人類は同じ話をしている. まとめ エラーの発生方法は throw と return に大別できる throw には簡潔さ, return には明瞭さと型安全性といった特徴がある どちらの方法がより適しているかはプログラムの規模, エラーの種類, ハンドリングの方法などが判断の材料になる 実際にどちらの方法を使うかは上の判断材料と, フレームワークやプロジェクトのコーディング規約なども合わせて複合的に決めるのがよい エラー発生方法の分類 まず前提として, 関数から呼び出し元にエラーを伝える方法は以下の 2 つに大別できます. 逆にこの記事ではこれ以上の具体的な方法についての議論はしません. throw エラーを throw して呼び出し元に伝える方法です. 例えば以下のようなものが当てはまります. throw new Error("...") Promise.rej

                                                    TypeScript エラー処理パターン - Object.create(null)
                                                  • 人の作ったWebアプリケーションのコードを見るときに注目しているところ - Runner in the High

                                                    普段見ているものをなんとなく書き出してみた。 インターフェイス あえてやってないとか、レイヤ的にやる必要がないというケースもある。しかし、ある程度の規模のソフトウェアには大抵インターフェイスが現れる。インターフェイスがないコードはユニットテストもないことが多い。したがって、インターフェイスが現れないコードは責務分離が行われてない可能性を感じたりする。 言語機能上インターフェイスがない動的型付け言語の場合には、ダックタイピングを意識したコードが書かれているかをチェックする。ダックタイピングでなくとも、例えばRubyだったら抽象クラスと実装クラスの分離が行われているかを見たりする。 バリデーションロジック すべてのバリデーションが、フレームワークの機能で実装されてたりしないかをチェックする。MVCとかクリーンアーキテクチャ的な実装であれば、それぞれのレイヤでどういうバリデーションをしているのか

                                                      人の作ったWebアプリケーションのコードを見るときに注目しているところ - Runner in the High
                                                    • Laravel大規模開発入門!MVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                                      Laravel大規模開発入門!MVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について ナイル株式会社メディアテクノロジー事業本部の工藤さんにMVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について解説いただきました。 こんにちは、ナイル株式会社メディアテクノロジー事業本部で開発マネージャをしています工藤@ta99toです。 今回は大規模で複雑度の高い開発をMVCフレームワークベースで構築する際に僕が課題と捉えているポイントやその具体的な解決手法について解説させていただきたいと思います。 「MVC以上の責任分離イメージがつかないよ!」 「DDDとかクリーンとかオニオンとかあのへんの設計パターンの導入モチベーションが不明」 「どうやっても最終的には複雑になって追加開発や修正開発が怖い状態になっちゃう」 ↑このような悩みを持った方に対して

                                                        Laravel大規模開発入門!MVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                                      • 【t-wada】自動テストの「嘘」をなくし、望ましい比率に近づける方法【Developer eXperience Day 2024 レポート】 | レバテックラボ(レバテックLAB)

                                                        TOPコラムテック最前線レポート【t-wada】自動テストの「嘘」をなくし、望ましい比率に近づける方法【Developer eXperience Day 2024 レポート】 【t-wada】自動テストの「嘘」をなくし、望ましい比率に近づける方法【Developer eXperience Day 2024 レポート】 2024年8月8日 プログラマ、テスト駆動開発者 和田 卓人 学生時代にソフトウェア工学を学び、オブジェクト指向分析/設計に傾倒。執筆活動や講演、ハンズオンイベントなどを通じてテスト駆動開発を広めようと努力している。『プログラマが知るべき97のこと』(オライリージャパン、2010)監修。『SQLアンチパターン』(オライリージャパン、2013)監訳。『テスト駆動開発』(オーム社、2017)翻訳。『事業をエンジニアリングする技術者たち』(ラムダノート、2022)編者。テストライブ

                                                          【t-wada】自動テストの「嘘」をなくし、望ましい比率に近づける方法【Developer eXperience Day 2024 レポート】 | レバテックラボ(レバテックLAB)
                                                        • 個人開発OSSが世界に勝てなかった話

                                                          ゆーすけべー氏の「OSSで世界と戦うために」にインスパイアされました。5年間pyserdeというOSSのライブラリを開発・メンテしてきた筆者が、ちょっとだけ世界と戦ってみたけど全然勝てなかったという話です。Honoとはプロダクトの規模も開発にかける情熱も全然違うけど、単純にポストモーテムは読み物として面白いかなと思ったので書いてみます。また、5年間の開発で学んだやってよかったことや失敗などもシェアできればと思います。 pyserde pyserdeは筆者が2019年から開発メンテナンスしているOSSで、RustのserdeというライブラリにインスパイアされたPython用のシリアライゼーションフレームワークです。 以下のようにクラスを定義すると、型アノテーションに基づいたデータ変換やバリデーションのコードが内部的に生成され、強い型付けのクラスを生成することができます。強い型付けのクラスはラ

                                                            個人開発OSSが世界に勝てなかった話
                                                          • firebaseでのパスワードログイン機能の実装をやりきるためのTips

                                                            Firebase Authentification は OAuth 2.0 フローにのっとったログイン方法以外にも Email/Password を使ったログイン方法も提供しています。 このログイン形式をちゃんと使おうとすると、これまでは Provider が担ってくれていたパスワードの編集、パスワードの再発行、メールリンクでのログイン、アドレスの本人確認など様々なことを考慮しなければいけません。 この記事ではそういった考慮をした Email / Password ログインに挑戦します。 基本的にはmanage-users, password-auth, email-link-authといった公式ドキュメントを読むと IPASS ログインに必要なことは書いてあるのですが、action URL を自前で用意するフローを採用するとそれらのドキュメントで賄えなくなり試行錯誤をたくさんしなければい

                                                              firebaseでのパスワードログイン機能の実装をやりきるためのTips
                                                            • "壊れにくい"データ基盤を構築するためにMackerelチームで実践していること - Hatena Developer Blog

                                                              こんにちは。MackerelチームにおいてCRE(Customer Reliability Engineer)をしているid:syou6162です。主にカスタマーサクセスを支えるデータ基盤の構築や、データ分析を担当しています。 今回は、壊れにくいデータ基盤を構築するため、Mackerelチームで実践していることを紹介します。 なぜ壊れにくいデータ基盤を構築するのか データ基盤が“壊れている”とはどういうことか 壊れてないだけでなく、壊れたら気付ける 前提とするシステム構成 壊れたことに気付けるよう監視する 1. バッチジョブが失敗したことに気付く 2. 投入されたデータの性質を監視する 3. ビューが壊れてないかを監視する 4. 利用状況を監視する そもそも壊れてない状態を保つ 1. データリネージを元に修正できるようにする 2. 使われていないテーブルやビューは定期的に掃除 おわりに 参

                                                                "壊れにくい"データ基盤を構築するためにMackerelチームで実践していること - Hatena Developer Blog
                                                              • クソコードを読ませない

                                                                クソコードを読ませない💩 https://uit.connpass.com/event/291443/ 免責事項 「クソコードという言葉を使うな」と思った人、いると思います。 攻撃的で、解像度も荒くて、建設的でない言葉だと私は思っています。 一方で、目にすることも多い言葉であり、具体例に関してはふわりとした共通認識が持たれているのと、そういったコードに対するダメージコントロールの話なので、便宜上クソコードという言葉を使います。とあるソースコードに対してクソコードと呼ぶのはよくないですが、クソコードという概念そのものについて話すことに対しては有益だと思います。 自己紹介 sadnessOjisan JS/TS, Rust, 最近 Go, PHP マイブーム: 優光というラーメン屋 クソコードとは何か クソコードとは何でしょうか? 知りません。 インターネットミーム? https://tog

                                                                  クソコードを読ませない
                                                                • インクリメンタルに新しい技術を取り入れる方法。TypeScriptへの移行を例にしたプロセス

                                                                  こんにちはKARTE Blocksチームです。 日々プロダクトを開発していると新しい機能が増えます。 一方で古くなる機能も増えるため、負債となった部分がボトルネックとなり、新規開発へも影響してきます。 そのため、古くなった部分を解消しながら、新しい技術をインクリメンタルに取り込んでいく必要があります。 この記事は「KARTE Blocksリリースの裏側」という連載の2日目の記事です。全10回

                                                                    インクリメンタルに新しい技術を取り入れる方法。TypeScriptへの移行を例にしたプロセス
                                                                  • 俺の管理画面 2023年冬 - KAYAC Engineers' Blog

                                                                    面白法人カヤック技術部の谷脇です。私は元気です。 この記事は面白法人グループ Advent Calendar 2023の5日目のエントリーです。 というわけでこの記事では、現環境(私が取り組んでいる業務のこと)ベストの管理画面の技術選択について考えたことを書き連ねていきます。 前提知識 管理画面の定義 ここで読者と私の目線を合わせるため、この記事上での管理画面の定義をしておきます。 管理画面はサービスの運営上必要な操作やデータの閲覧をまとめたWebアプリケーションです。また、このWebアプリケーションは一般ユーザーには開放されておらず、サービス運営者側のみ閲覧と操作が可能となっている、とします。 管理画面を作る動機 ここではTonamelの管理画面について、考えて導入したことを書きます。 tonamel.com Tonamelはゲーム大会やイベントを開催するためのプラットフォームです。We

                                                                      俺の管理画面 2023年冬 - KAYAC Engineers' Blog
                                                                    • マークアップを進化させる WAI-ARIA の基本

                                                                      マークアップを進化させる WAI-ARIA の基本 私 @masuP9 WAI-ARIAとは何か WAI Web Accessibility Initiative ARIA Accessible Rich Internet Applications WAI-ARIAは、ウェブコンテンツおよび アプリケーションのアクセシビリティと相互運用性を改良するためのフレームワークを提供する技術仕様である。 Accessible Rich Internet Applications (WAI-ARIA) 1.2 日本語訳 WAI-ARIAは ウェブのアクセシビリティを 高めるための技術仕様 WAI-ARIAはなぜ必要か アプリケーション化するウェブ Notion Figma G Suite 3D CAD etc... 意味も振る舞いも 既存のHTMLでは表現できなくなってきた 例えば タブUI 開いてい

                                                                        マークアップを進化させる WAI-ARIA の基本
                                                                      • CSSの変数(カスタムプロパティ)の基礎知識、便利な使い方を詳しく解説

                                                                        CSSの変数(カスタムプロパティ)の基礎知識、便利な使い方を詳しく解説します。Webページやスマホアプリのレイアウト、コンポーネントなど、実際の使用例がたくさんあるので、実用的なテクニックが満載です。 CSS Variables 101 by Ahmad Shadeed 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに CSSの変数(カスタムプロパティ)とは 変数名の付け方 CSSの変数のスコープ CSSの変数のフォールバック CSSの変数の効果的な使用例 インラインでCSSの変数を定義 メディアクエリでCSSの変数を定義 CSSの変数の継承 CSSの変数のバリデーションの仕組み CSSの変数の興味深い発見 デベロッパーツールで使用できる便利なテクニック 終わりに はじめに CSSの変数(別名: カスタムプロパティ)がブ

                                                                          CSSの変数(カスタムプロパティ)の基礎知識、便利な使い方を詳しく解説
                                                                        • ビジネスとエンジニアリングをつなぐ「アナリティクスエンジニア」とは。リクルートが“価値あるデータ整備”のための新たな職種に着目した理由 - はてなニュース

                                                                          世間でデータの利活用やDX(デジタルトランスフォーメーション)の手法が盛んに議論される一方、データの利活用環境やそれを整備するデータ組織・人材について「理想と現実のギャップ」に苦しむ企業は少なくないでしょう。 そうした企業にとって、事業で得られたデータをスピーディーな意思決定につなげたり、そのプロセスを牽引する人材を育成したりすることは、喫緊の課題であるように思います。 データを活用してカスタマー・クライアント双方の「不の解消」を目指すリクルートも例外ではなく、これまでさまざまな課題に直面してきました。そんな中、同社のデータ推進室では2022年、「データに基づく意思決定の実現」を目標に、D3M(Data Driven Decision Making)部を設立。高精度な意思決定を実現すべく、高品質なデータを提供するアナリティクスエンジニアという職種を導入しました。 一般的に、アナリティクスエ

                                                                            ビジネスとエンジニアリングをつなぐ「アナリティクスエンジニア」とは。リクルートが“価値あるデータ整備”のための新たな職種に着目した理由 - はてなニュース
                                                                          • なぜUserクラスは負債化しやすいのか “風刺動画”から理解する情報システム開発とモデリング

                                                                            「“開発者体験”で世界をエンパワメントする1日。」と題し、チームや組織の課題に日々取り組む方々に向けて開催された「Developer eXperience Day CTO/VPoE Conference 2021」。ここで、READYFOR株式会社の仙塲氏が「『Userクラス』で考える技術的負債解消の観点」をテーマに登壇。まずは情報システム開発とモデリングの定義について紹介します。 クソコード動画『Userクラス』 仙塲 大也(以下、仙塲氏):こんにちは。ミノ駆動と言います。不運な時間がやってまいりました。まじめなセッションだらけなのに、はたしてこういう動画を流していいものかと。完全にネタ枠です。 このセッションの説明です。多くのサービスで技術的負債になりやすい筆頭格として、Userクラスがあります。本セッションでは、Userクラスの負債により引き起こされる弊害を描いた、風刺動画を上映しま

                                                                              なぜUserクラスは負債化しやすいのか “風刺動画”から理解する情報システム開発とモデリング
                                                                            • ドキュメントベースの型安全なモバイルアプリ行動ログ基盤の構築 - クックパッド開発者ブログ

                                                                              こんにちは。PlayStation 5が一向に買えない@giginetです。普段はモバイル基盤部というところでiOSの基盤開発をしています。 皆さん、行動していますか?我々は日々Webサービス上で様々な行動をしています。サービス開発において、改善に活かすための効率的な行動ログの収集方法はしばしば課題になります。 今回は、サービス開発者がモバイルアプリ上で簡単にログを定義し、分析を行えるログ基盤を導入した事例について紹介します。 行動ログとは何か モバイルアプリの行動ログとは、ユーザーのアプリ上の操作や利用状況を取得、集積するためのものです。 例えば、特定の画面を表示したり、特定のボタンをタップしたり、といったユーザー操作を起点として送信されています。 集められたログは、サービス開発のための分析や実態把握に役立てられます。 最近はFirebase Analyticsなど、PaaSの形態で提供

                                                                                ドキュメントベースの型安全なモバイルアプリ行動ログ基盤の構築 - クックパッド開発者ブログ
                                                                              • React Hook Formを1年以上運用してきたちょっと良く使うためのTips in ログラス(と現状の課題)

                                                                                はじめに 早いものでこちらの記事が公開して約1年、ログラスでReactを書き始めて1年以上が経ちました。 今回はフロントエンドのアプリの中でも特段重要なフォーム、特にReact Hook Formについての解説をしていきます。 今回のTipsは公式がベストプラクティスとして発表しているものではなく、あくまで個人が1年間の経験の上で良いとしているものであしからず。 なるべく何故良いかの説明もしていきます。 目次 useFormをラップしてタイプセーフにする React Hook Formへの依存するコンポーネントを分ける yupを使って見通しの良いバリデーションを実装する 1. useFormをラップしてタイプセーフにする ログラスでは useForm をそのまま使うことはせずラップしています。理由は一部の型づけがゆるく実行時例外が起きる可能性があるためです。 問題なのは defaultVa

                                                                                  React Hook Formを1年以上運用してきたちょっと良く使うためのTips in ログラス(と現状の課題)
                                                                                • イベント駆動とドメインモデルの完全性を意識したアーキテクチャ設計

                                                                                  こんにちは。LINEヤフー株式会社で、出前館というプロダクトのサーバーサイドエンジニアをしている古田大志です。 株式会社出前館はLINEヤフーのグループ会社です。資本業務提携を結んでいて、LINEヤフーが開発などをサポートしています。 詳しくはこちらをご参照ください。(https://corporate.demae-can.co.jp/pr/news/demaecan/line.html)(外部サイト) 今回の記事では、その出前館における開発の内容を紹介させていただきます。 出前館はデリバリーサービス事業のプロダクトで、開発においてはマイクロサービスアーキテクチャを採用しています。出前館のマイクロサービスの1つに、クーポンに関するドメインの責務を持ったコンポーネントであるクーポンサービスがあります。 クーポンサービスでは、ビジネスエンハンスに伴う「非機能要件の増大」や「仕様の複雑さの肥大化

                                                                                    イベント駆動とドメインモデルの完全性を意識したアーキテクチャ設計