並び順

ブックマーク数

期間指定

  • から
  • まで

281 - 320 件 / 6536件

新着順 人気順

バリデーションの検索結果281 - 320 件 / 6536件

  • サーバーサイドエンジニアがフロントエンドの開発に参加してみた話 - BASEプロダクトチームブログ

    BASE株式会社 ServiceDev Payment Group 所属の田仲です。 現在はエンジニアリングマネージャーを担当していますが、以前はサーバーサイドエンジニアとして開発をしていました。その頃の経験を紹介したいと思います。 BASEのエンジニアはPM・ディレクターから要件を聞き、設計を行います。 仕様や設計を元にサーバーサイドエンジニアはサーバーサイドの実装し、フロントエンドに関してはフロントエンドエンジニアが実装しています。 少し前のプロジェクトになるのですが、「送り状データダウンロードApp」の開発プロジェクトを担当した際にサーバーサイドだけではなくフロントエンドの開発にも携わることになりました。 普段、サーバーサイドエンジニアとして開発を行っているエンジニアがフロントエンドの開発も行うことで良い経験になったという話を紹介したいと思います。 送り状データダウンロードAppにつ

      サーバーサイドエンジニアがフロントエンドの開発に参加してみた話 - BASEプロダクトチームブログ
    • Amazon API Gatewayの新機能「HTTP API」のJWT Authorizersを理解する #reinvent | DevelopersIO

      ペイロードの中身にユーザー情報が含まれているので、どのようなユーザーのIDなどをトークンから取得できるようになっています。トークンからユーザー情報を引けるのは非常に便利ですが、トークンが確実に信用できるものでなければいけません。そこでヘッダーとペイロードの情報を使って、正規に署名されたものかどうか検証できるようになっています。 署名の検証は、JWT発行側が用意する公開鍵を使って行います。jwks_uri として公開することになっており、例えばGoogleからは以下のようなJSONが取得できます(JWK Setと言います)。 { "keys": [ { "kid": "57b1928f2f63329f2e92f4f278f94ee1038c923c", "e": "AQAB", "kty": "RSA", "alg": "RS256", "n": "1Zi0-4bNwZ7gGefz17U2N

        Amazon API Gatewayの新機能「HTTP API」のJWT Authorizersを理解する #reinvent | DevelopersIO
      • 角川ドワンゴ学園・次世代教務システムについて - ドワンゴ教育サービス開発者ブログ

        本稿では、Javaと独自フレームワークで構築された現行の教務システムをTypeScriptとNext.jsで構築された次世代教務システムへと移行していく過程で取り組んでいることを紹介していきます。 はじめに こんにちは。N 高等学校 / S 高等学校の教務システム開発チームの邑本です。ドワンゴでは、N予備校のシステムだけでなくN高等学校とS高等学校の教務システムも開発しています。本稿では、今まであまり触れてこられなかったN高、S高の教務システムについてお話しようと思います。 現在、教務システムの開発チームでは、Javaで構築されている現行の教務システムからTypeScript/Next.jsベースの次世代教務システムへの移行を試みています。 現行の教務システムの機能は多岐に渡るため、 既存業務の見直しによる変更がある場合 新規で機能を開発する場合 に限って次世代教務システムで開発し、小さな

          角川ドワンゴ学園・次世代教務システムについて - ドワンゴ教育サービス開発者ブログ
        • GitHubを圧倒的に便利にするRefined GitHub のTips集 - Qiita

          Help us understand the problem. What is going on with this article? 概要 2020年向け 開発者向けブラウザ拡張機能9選 の初っ端で紹介されているRefined GitHubを見て、即導入したら圧倒的なGithub体験を得られたのでそれを紹介します。 使いながら気づいたことを主に書いてるので、定期的に追加するかもしれません。 本記事はRefined GitHubのChrome版(v19.10.13)で動作を確認していますが、基本的にはFirefox版でも問題ないと思います。 リアクションにユーザアイコンを追加 Adds reaction avatars showing who reacted to a comment コメントに対するリアクションがある場合、誰が押したのかをオンマウスすることなくユーザアイコンで確認すること

            GitHubを圧倒的に便利にするRefined GitHub のTips集 - Qiita
          • TypeScriptの型定義からバリデーションコードを生成するツールを書いた

            create-validator-tsというTypeScriptの型定義からJSON Schemaを使ったバリデーションコードを生成するツールを書きました。 モチベーション expressなどでAPIを書くときに、Request/Responseが意図したものかどうかをバリデーションする必要があります。 特にreq.queryなどはStringが入ると予想しますが、オブジェクトが入ってくることもあります。 これは、expressの内部で使っているqsというURLクエリのパーサが、オブジェクトや配列へ展開する機能を持っているためです。 expressを使ってるサイトは ?q=text があるときに req.query.q には オブジェクトが入る可能性をちゃんと考慮しないといけない。 ?q[a]=text で req.query.q ; // { a: "text" } になる — azu

              TypeScriptの型定義からバリデーションコードを生成するツールを書いた
            • 集約の実装について考えてみた

              はじめに DDD の集約の実装について考えたことをまとめます。 題材 料理のレシピ作成を題材としてまとめていきたいと思います。 概要 概要は以下の通りです。 レシピには材料と作り方がある。 材料には食材や調味料などの名前と分量が必要である。 材料はメインとなる材料や合わせダレなどのカテゴリごとにグルーピングできるとよい。 作り方は具体的な手順を示すものである。 ドメインモデル 上記をドメインモデルで表現するとこのようなイメージです。 各種値の範囲はドメインとして決まっているわけではないですが、システム化する上で決めなければならないことだと思いますので、ドメインエキスパートとすり合わせながら運用に支障をきたさない範囲で決定すると良いのかなと思います。 今回は決定した値の範囲をドメインモデルに補足する形で記載しています。 ユースケース システムに対するユースケースは以下の通りとし、末端のユース

                集約の実装について考えてみた
              • 「minne」はなぜ「MVVM+UseCase+Repository」なのか 3つのアーキテクチャを選んだ5つの理由

                「Android Meetup」は、to C向けサービスを提供するGMOペパボ株式会社、株式会社ZOZOテクノロジーズ、株式会社サイバーエージェンがAndroid開発事情や、直近の取り組みについて発表をするイベントです。GMOペパボ株式会社の伊藤氏は、「minne byGMOペパボ」アプリケーション開発におけるアーキテクチャ選定について発表しました。 ハンドメイドマーケット「minne」アプリを担当 伊藤拓海氏(以下、伊藤):「中~大規模アプリのminneはどうアーキテクチャを選定したか」ということで、GMOペパボの伊藤が発表したいと思います。よろしくお願いします。 まず軽く自己紹介します。伊藤といいます。よろしくお願いします。GMOペパボではパートナー(GMOインターネットグループに置ける従業員の呼称)同士をあだ名で呼び合う風習があります。僕は名前が拓海なので「tick-taku」と呼ば

                  「minne」はなぜ「MVVM+UseCase+Repository」なのか 3つのアーキテクチャを選んだ5つの理由
                • 150万レコードを持つ画像テーブルの移行 - spacelyのブログ

                  株式会社スペースリー Railsエンジニアの大津です。 弊社サービスでは物件画像データの管理機能を提供しており、サーバーサイドのフレームワークにはRuby on Railsを、データベース管理にはMySQLを採用しております。これまで物件画像は用途ごとにテーブルを分けて管理していましたが、 アップロードした後に用途を変更できないため画像テーブルを1つに統合しました。 今回は統合する際に実施した旧テーブルから新テーブルへのレコード移行の手順をご紹介します。 統合前後の画像テーブルの構成 まず、統合前の物件画像の管理方法について説明します。 統合前は物件画像テーブルは部屋の写真を管理する内観画像テーブルと建物の写真を管理する外観画像テーブルの2つに分かれていました。 画像ファイルは各テーブルのimageカラムに格納され、Rails GemのCarrierWaveによりAWS S3バケットにアッ

                    150万レコードを持つ画像テーブルの移行 - spacelyのブログ
                  • 新卒研修で「ソフトウェアテスト研修」を実施しました! - pixiv inside

                    こんにちは。クリエイター事業部 FANBOX部でエンジニアをやっているkumaです。今回は新卒研修で行った「ソフトウェアテスト研修」についてのレポートをお伝えします! ピクシブにおける新卒研修 2022年4月1日、ピクシブ株式会社にも10名の方が新卒として入社してくれました。弊社では入社後の2週間前後を新卒研修期間としており、会社理解からビジネスマナー、プロダクト開発に関するトピックなど様々なものを学ぶ時間になっています。 今回この記事では、新卒研修の一つである「ソフトウェアテストについて」という研修についてお伝えします。本研修は、以前insideでも紹介して頂いたkuma & pnlyで担当いたしました。 inside.pixiv.blog ソフトウェアテスト研修 以降では、実際の研修資料を引用しながら我々が研修で取り上げた内容について一部紹介していきたいと思います。 “難しすぎない”を

                      新卒研修で「ソフトウェアテスト研修」を実施しました! - pixiv inside
                    • プログラミング初心者がKaggle Expertになるまでの10ヵ月間を振り返る - Qiita

                      Kaggle Expertになったので、イキってポエムを書こうと思いました。 AIに興味あるけどプログラミングすらできないんだよねという人向けの参考になれば幸いです。 1. 初期スペック (2019年2月) 機械工学系修士卒。よくいるメカニカルエンジニア 線形代数も統計も正直そんなに好きじゃない。力学の方が得意。 AI?あれでしょ。将棋超強いやつでしょ? パイソン?スト2のボクサーみたいなやつ? 2. 現在のスペック (2019年12月) Kaggle Expert (微妙?) 機械学習コンペでそれなりの成績 (Kaggle Kuzushiji Recognition 7th,Signate tellus 3rd 5th) 機械学習:なんとなくコーディングできる。 深層学習:なんとなくコーディングできる。 関連論文読める。簡単なものは実装できる。 業務適用も見えてきた 3. 機械学習を学ん

                        プログラミング初心者がKaggle Expertになるまでの10ヵ月間を振り返る - Qiita
                      • Argo CDによる継続的デリバリーのベストプラクティスとその実装 - Cybozu Inside Out | サイボウズエンジニアのブログ

                        こんにちは。Necoの池添(@zoetro)です。 現在San Diegoで開催されているKubeCon 2019に参加しているのですが、時差ボケで寝付けないのでこんなブログを書いています。 さて、現在我々はKubernetes上のアプリケーションの継続的デリバリーを実現するためにArgo CDというツールを利用しています。 github.com 本記事ではArgo CDについて簡単に解説した後、継続的デリバリーのベストプラクティスと具体的な実践例を紹介したいと思います。 Argo CD とは Kubernetes向けの継続的デリバリーツールとしては、Spinnakerや Jenkins Xなどが有名です。 これらのツールは継続的デリバリーのパイプラインを統合的に管理・実行するためのツールになっています。 一方のArgo CDは、パイプライン全体を管理するのではなくパイプラインの中の1つの

                          Argo CDによる継続的デリバリーのベストプラクティスとその実装 - Cybozu Inside Out | サイボウズエンジニアのブログ
                        • Backlogのコードメンテナンス性を向上させるために気をつけたこと【Backlog Play化プロジェクト】 | Backlogブログ

                          ヌーラボの江口です。約8年間Backlogの開発を担当しており、BacklogをJavaからScala / Play Frameworkに移行するプロジェクトには最初から最後まで関わりました(プロジェクトの概要は時系列でみる!4年の歳月をかけてPlay Frameworkで「大規模リプレイス」した話をご覧ください)。 本記事では、BacklogのScala / Play Framework化プロジェクトで「Backlogのサーバーサイドを進化させる“土台”を作る」をテーマに、どのようにBacklogのアーキテクチャを設計・実装したのかご紹介します。 はじめに 私は2012年の入社以来、Backlogの開発を担当しています。Backlogは10年以上続くサービスであるため、度重なる機能追加や修正を行うことで複雑化し、日頃開発をする上で様々な問題を感じていました。 今回のBacklogのSca

                            Backlogのコードメンテナンス性を向上させるために気をつけたこと【Backlog Play化プロジェクト】 | Backlogブログ
                          • JavaScript初学者が現場で活躍するフロントエンドエンジニアにレビューしていただいた内容【もりけん塾】 - Qiita

                            前置き 私が所属している「もりけん塾」で受けたコードレビューについてまとめていきます。 「もりけん塾」では、先生がマークアップエンジニアからフロントエンドエンジニアになるための課題を作成してくださっており、塾生はその課題を通してJavaScriptの基礎を学んでいきます。 本当に1段1段階段を登っていくように作られており、課題を終える頃にはある程度自走しながらコードが書けるようになります。 私もこの課題に挑戦し、先日課題を終えることができました。だいたい2~3ヶ月くらいかかったと思います。JavaScriptが全然わからない状態から、ここまで書けるようになるとは思っていなかったです。 JS課題はこちら 成果物 👈 README.mdに置いてます。 先を見越したコードを書く編 仕様が増えたときを想定する バリデーションを実装する課題でのレビューです。 名前のバリデーションでは、変数名を n

                              JavaScript初学者が現場で活躍するフロントエンドエンジニアにレビューしていただいた内容【もりけん塾】 - Qiita
                            • 個人開発でReactとFlutterを同時に使うとどうなるか

                              はじめに この記事は、個人で作っているサービスをアプリとWebの両方に展開しいて感じたことを書いたものです。 作っているもの 著者は、個人でRabbytという、デジタルキャンバスサービスを作っています。 タブレットやスマホに全画面で絵を表示することで、「タブレットで絵を飾れる」サービスです。 壁にかけたりスタンドを使ったりすれば簡単に絵が飾れます。 アプリもリリースを重ね、今は1.0.8になり、最近のリリースではファイルをアップロード出来るようになりました。 使用している技術を図にすると上のようになります。 色々使っていますが、 Go (バックエンド) Flutter (アプリ) React (Web) GraphQL (API) を使っていることが、この記事での重要な点です。 モノレポ Rabbytは1人で作っていて、リポジトリを分けても楽にはなりません。 そのため、必要なものは全て1箇

                                個人開発でReactとFlutterを同時に使うとどうなるか
                              • 今さら聞けないビジュアルリグレッションテストをChromaticで始める - Sansan Tech Blog

                                Bill One Entry*1グループの秋山です。 1. はじめに 2010年代前半に登場したReactやVue.jsに代表される宣言的UI実装は、大規模なSPAの構築を可能にしました。その一方、フロントエンド領域に新たなアーキテクチャが導入されたことで、それまでWebアプリケーション開発で定石とされたテスト手法を適用しづらいケースが増え、新たなベストプラクティスが求められるようになりました。 その要請に応える形で、2010年代後半にはフロントエンドのテスト手法に緩やかなパラダイムシフトがありました。この記事ではそのパラダイムシフトを振り返りながら、フロントエンドで必要なテストについて考察し、最後にChromaticを用いたビジュアルリグレッションテストを紹介します。 2. Testing Pyramid と フロントエンド テストを語る際によく持ち出されるメタファとして、Testing

                                  今さら聞けないビジュアルリグレッションテストをChromaticで始める - Sansan Tech Blog
                                • React Server Components は Web アプリ開発にどのような変化をもたらすか

                                  TL;DR React は単なる UI ライブラリにとどまらず Routing, Bundling, Server Technologies までを統合した技術になろうとしている React Server Components はパフォーマンスだけでなく、「PHP, Ruby on Rails のシンプルなサーバサイド HTML 描画の世界に戻しつつ、サーバサイドとクライアントサイドの実装を同じ技術でシームレスに実装できるようにする」ことができる それにより、開発者から見た複雑さを下げられ、かつエンドユーザは良いパフォーマンス・良い体験を得られる React Server Comonents (以下、RSC)について、インターネット上の記事では主にパフォーマンスについて語られることが多い印象です。しかし、RSC のもう1つ重要な点として、RSC は我々の Web アプリケーション開発の体験

                                    React Server Components は Web アプリ開発にどのような変化をもたらすか
                                  • 開発効率を追い求めた実装プラクティス集

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

                                      開発効率を追い求めた実装プラクティス集
                                    • GoでYAMLを扱うすべての人を幸せにするべく、ライブラリをスクラッチから書いた話 - Qiita

                                      この投稿は、 Go アドベントカレンダーの 6日目のものになります。 はじめに GoでYAMLを扱う際にデファクトになっているのは、おそらく github.com/go-yaml/yaml でしょう。 実装はC言語で実装された libyaml を Go に移植しつつ、 Go ならではの機能を足す作りになっているのですが、 cgo を使わずに pure Go で移植されており、開発者の気合を感じます。 枯れている libyaml を利用していることからも、 YAML の仕様を忠実に実装していることが期待できます。 ですが、このライブラリにはいくつか使いにくい点もあり、例えば以下のようなことはできませんでした 構造体を埋め込む場合に、埋め込む型をポインタで定義できない ( ※ ポインタなしは大丈夫 ) encoding/json とコンパチの インターフェース ( MarshalYAML()

                                        GoでYAMLを扱うすべての人を幸せにするべく、ライブラリをスクラッチから書いた話 - Qiita
                                      • nerman: AllenNLP と Optuna で作る固有表現抽出システム - クックパッド開発者ブログ

                                        事業開発部の @himkt です.好きなニューラルネットは BiLSTM-CRF です. 普段はクックパッドアプリのつくれぽ検索機能の開発チームで自然言語処理をしています. 本稿では,レシピテキストからの料理用語抽出システム nerman について紹介します. nerman の由来は ner (固有表現抽出 = Named Entity Recognition) + man (する太郎) です. クックパッドに投稿されたレシピから料理に関する用語を自動抽出するシステムであり,AllenNLP と Optuna を組み合わせて作られています. (コードについてすべてを説明するのは難しいため,実際のコードを簡略化している箇所があります) 料理用語の自動抽出 料理レシピには様々な料理用語が出現します. 食材や調理器具はもちろん,調理動作や食材の分量なども料理用語とみなせます. 「切る」という調理

                                          nerman: AllenNLP と Optuna で作る固有表現抽出システム - クックパッド開発者ブログ
                                        • TypeScriptコンパイラの読み方

                                          TypeScriptコンパイラリーディングをする上で、目当てのコードに辿りつくまでの手間を短縮するためのメモ書きです。コードリーディングの一般論や、TypeScriptコンパイラから読み取れる個別事象については極力省略しています。 TypeScriptの主要な処理系 多くのJavaScriptパーサーが拡張としてTypeScriptを読めるようになっています。また抽象構文木のフォーマットに事実上の標準があり、各パーサーはそれに従っています。AST Explorerでこれらのパーサーの出力を調べることができます。特に重要なのが以下の2つの処理系です。 TypeScript TypeScriptの型推論・リント・トランスパイル・モジュールバンドリング等ができる。 Babel TypeScriptのトランスパイルができる。 TypeScriptコンパイラの構成 libに標準ライブラリ (型定義フ

                                            TypeScriptコンパイラの読み方
                                          • 千葉県南部の状況

                                            テレビではろくに報道されていないが、陸の孤島状態にある。 古い建物や電柱は倒壊しており、店の商品などは売り切れている。 現地情報の情報共有を目的としたアカウント(私のアカウントではない)。 https://twitter.com/z85T0n1ilLQblo8 状況停電9/9 未明から停電が続いている。一部地域で復旧したという話が出ているが、未だに停電が続いている地域が多い。 復旧が9/10中となっている地域もあるが、9/11の予定となっている地域も多い。 TEPCOの復旧計画情報 http://www.tepco.co.jp/press/release/2019/1517279_8709.html 断水停電の影響で断水が発生している。 鴨川市の一部で水が出るようになったというツイートはあった。 通信キャリア各社で通信障害。 こちらも一部の場所でつながるというツイートはあった。 交通JR各

                                              千葉県南部の状況
                                            • Zod を使って CSV からの入力データをバリデーションする - ドワンゴ教育サービス開発者ブログ

                                              こんにちは、バックエンドエンジニアの日下です。 CSV から JSON へ変換するスクリプトを、TypeScript で実装する機会がありました。 今回は、CSV のデータのバリデーションに Zod を使った話をします。 スクリプトの目的 システム間のデータ連携が目的です。 連携元のシステムから CSV 出力されたデータを、連携先のシステムで利用する JSON へ変換します。 また、JSON への変換以外にも以下の要件があります。 CSV のデータをバリデーションする 連携先のシステムで利用できるデータであることを保証するために、バリデーションを実行します。 バリデーション失敗時に、日本語のエラーメッセージを表示する スクリプトの実行は業務担当のエンドユーザーが行うため、日本語のエラーメッセージを表示します。 CSV の読み込み 元データとなる CSV の読み込みは、csv-parse を

                                                Zod を使って CSV からの入力データをバリデーションする - ドワンゴ教育サービス開発者ブログ
                                              • GitHub Copilot for Businessの所感、みんなに聞いてみた - LIVESENSE ENGINEER BLOG

                                                はじめに LET運営の村山と毛利です。 社内の交流を活発にし、お互いの知識を伝搬する機会を設けるために、Livesense Engineer Talk(通称:LET)というチームを運営しています。 今回は、GitHub Copilot for Businessを社内導入して2ヶ月程経ったので、エンジニアにCopilotを使った感想を聞いてみました。 はじめに みんなの感想 ayumu838さん ここがよかった ここが惜しい 池谷さん ここがよかった ここが惜しい 赤坂さん ここがよかった ここが惜しい 中野さん ここがよかった ここが惜しい 富士谷さん ここがよかった ここが惜しい 渡辺さん ここがよかった ここが惜しい 鈴木さん ここがよかった ここが惜しい 今井さん ここがよかった ここが惜しい まとめ みんなの感想 みんなの感想をChatGPTに要約してもらうと、こんな感じになりまし

                                                  GitHub Copilot for Businessの所感、みんなに聞いてみた - LIVESENSE ENGINEER BLOG
                                                • 1ヶ月で10,000行くらいのコードを書いた話など.md

                                                  1ヶ月で10,000行くらいのコードを書いた話など.md この記事はpyspa advent calendar 2020の18日目の記事です。前日は、flagboyの配られたカードで勝負するでした。主旨は異なりますが、徒然草百十段の「双六の名人」が思い出されました。明日はYutaka Matsubara a.k.a. mopemopeさんの記事となります。お楽しみに。 1ヶ月で10,000行くらいのコードを書いた話 行数を書くと「いやいや、私はもっと高い生産性を持っている」、という方は少なくないだろう。登大遊氏に至っては、ネットワークプログラミングという複雑な領域での実装でありながら「1日に少なくとも3,000行程度、多く書くときで10,000行」と述べており、凡才さを思い知らされる。 さて、この記事は、私のような動物でも高効率にコードを書くために何をしたのかを備忘として残しておく主旨であ

                                                    1ヶ月で10,000行くらいのコードを書いた話など.md
                                                  • Re: ドメイン固有型(値オブジェクト含む)を再考する - Software Transactional Memo

                                                    blog.j5ik2o.me 値オブジェクトはドメイン固有型の一種です。なので、不変と等価判定だけではなく、なにかしらのドメイン固有の不変条件(invariant)を維持する責任があると考えます(もちろん型として切り出すわけですからその投資に見合うだけの見返りがないといけません)。 違う。値オブジェクトとはID以外で等価判定をするオブジェクトの事であって、RubyのHash、Pythonのdict、C++のstd::unordered_setすらも値によって等価判定を行うのでこれらは値オブジェクトであるがドメイン固有型ではない。RubyでHashに入れて渡されたユーザ入力値をValidationしてドメイン固有型に詰め直すのはもちろん必要ならやれば良いが、Hashクラスそのものにモンキーパッチなり特異クラスなりを行って不変条件を維持する責任を負った自分専用Hashを作って普通のHashクラ

                                                      Re: ドメイン固有型(値オブジェクト含む)を再考する - Software Transactional Memo
                                                    • OpenAPI Specification ドリブンな開発事例とそれを支えるツール - NTT Communications Engineers' Blog

                                                      これは NTT Communications Advent Calendar 2021 3日目の記事です。 こんにちは、イノベーションセンターの松田 (@take4mats) です。 当社の Smart Data Platform (SDPF) のサービスラインナップの多くは、お客さまがサービスご利用に必要な操作を統一的に行うための Web UI に加え、同等の Web API を提供しています。 API 仕様は Knowledge Center にてサービスごとに一般公開されているのをご存知でしょうか? (Knowledge Center で各サービス内の APIリファレンス のページをご覧ください。例えば こちらのリンク) この一般公開されている API 仕様はサービス開発初期に作成され、開発期間にも重要な役割を果たしています。 本記事では、その中で私が携わったサービスから、 API

                                                        OpenAPI Specification ドリブンな開発事例とそれを支えるツール - NTT Communications Engineers' Blog
                                                      • 「エンジニアDB」というサービスを開発しました!【Next.js / Rails / AWS / Terraform / Docker / GitHub Actions】 - Qiita

                                                        3.インフラ(全体構成)について ここから技術的なことについて話していきます。 まず大前提として、プロジェクトの全体構成は、Happiness Chain の卒業課題の条件に基づいて決めれらていました。これらの条件には以下が含まれます Rails APIモード / Reactで完全SPAのポートフォリオを作る。 本番環境と開発環境にDockerを使う。 本番環境にはECS Fargateを使う。 GitHub Actionsを使ってAWSに自動デプロイする。 Terraformでインフラをコード化する。 なので、これに倣って実装しています。 アーキテクチャの全体像 フロントエンドはVercelにデプロイして、バックエンドはAWSのECSにデプロイしています。 ブランチ運用は、GitHub flowを採用しています。 プルリク時にテストが走り、mainブランチにマージされるとデプロイされる感

                                                          「エンジニアDB」というサービスを開発しました!【Next.js / Rails / AWS / Terraform / Docker / GitHub Actions】 - Qiita
                                                        • CUE言語(cuelang)に入門しよう

                                                          Abstruct 本記事においては、The CUE Configuration Languageを用いて設定ファイルを記述することはどのようなメリットがあるのか。また、どのような使い方が想定されるのかについて議論する。 私は、実際の開発現場において、各マイクロサービスチームがKubernetesのManifestを生成するテンプレートとして活用している。 そのため、KubernetesのManifestをcuelangを用いて記述している。(この件に関する記事は現在執筆中だ。) その経験から、CUE言語がどのような言語であるかについてここで述べることにする。 Keyword: CUE, cuelang, configuration, 設定記述言語, JSON, YAML, Kubernetes, manifest Introduction あなたは普段どんな設定記述言語を利用しているだろう

                                                            CUE言語(cuelang)に入門しよう
                                                          • ドメイン駆動設計を参考にしながらJava×SpringBootで家計管理アプリを自作 - Qiita

                                                            2-3. 使用技術 アプリケーション作成 Java 17.0.2 Spring Boot 3.0.3 Spring Security 6.0.5 JOOQ 3.17.8(ORマッパー) データベース MySQL 8.0.32 UI HTML(Thymeleaf) CSS(Bootstrap 5.0.2) JavaScript(Chart.js 4.3.0) インフラ Fly.io (https://fly.io/) PlanetScale (https://planetscale.com/) 3. 実装するにあたって意識したこと 実務未経験者が初めて作成するアプリなので、何も考えずに作るとコードが無秩序な状態に陥ってしまうのではないかと思い、何かしら方針を決めたいと考えました。以前、書籍『現場で役立つシステム設計の原則』を読んだ際に、保守や変更に強いソフトウェアを作るための設計思想に「ドメ

                                                              ドメイン駆動設計を参考にしながらJava×SpringBootで家計管理アプリを自作 - Qiita
                                                            • クライアントサイドのバリデーションエラーのデータ型についての考察 - STORES Product Blog

                                                              業務委託で STORES の開発をしている @inouetakuya です。 先日 STORES のフロントエンドチーム内でクライアントサイドのバリデーションについて見直す機会があり、特にバリデーションエラーのデータ型をどうするかについての議論が興味深かったので、共有させていただきます。 背景 議論の背景について簡単に触れておくと、STORES のクライアントサイドでは、バリデーションのライブラリとしてこれまで joi-browser を使ってきました。 しかしながら、本家の Node.js 版の joi がブラウザ対応したことにより joi-browser が deprecated になったことを受けて、今後も joi を使い続けるかを検討したところ、 joi-browser と joi の最新バージョンとの間で API の差異がいくつかあり、joi-browser から joi への乗

                                                                クライアントサイドのバリデーションエラーのデータ型についての考察 - STORES Product Blog
                                                              • TypeScript 3.7の`asserts x is T`型はどのように危険なのか - Qiita

                                                                TypeScirptの動向を少し熱心に追っている方ならば、8月頭にAnders HejlsbergさんがTypeScriptリポジトリに次のプルリクエストを出したことは記憶に新しいでしょう。 Assertions in control flow analysis これはTypeScript 3.7で導入される予定の機能で、関数の返り値の型宣言においてasserts x is T (xは引数名でTは型)という構文を書くことが可能になるというものです。 この機能はたいへん面白いのですが、誤った使い方をするととても危険です。そこで、この記事では、assertsという新しい型述語1を正しく使いこなせるように皆さんをガイドします。 3行でまとめると assertsによる宣言はTypeScriptにより正しさがチェックされるわけではありません。 よって、assertsを使う場合安全性を保証する責任はコ

                                                                  TypeScript 3.7の`asserts x is T`型はどのように危険なのか - Qiita
                                                                • Rails + RSpec + OpenAPI3 + Committeeでスキーマ駆動開発を運用するTips - Timee Product Team Blog

                                                                  こんにちは、タイミーデリバリー開発チームの宮城です。 今回は弊社のOpenAPI3ベースのスキーマ駆動開発の運用方法を紹介します。 TL;DR 技術スタックは OpenAPI3, Swagger UI, Committee, ActiveModelSerializers Committeeを利用してOpenAPI準拠のRequest Specを行う OpenAPI3のrequiredキーワードに注意する 背景 タイミーデリバリーでは、RailsによるAPIサーバーと、Web管理画面としてVue.jsによるSPA、ユーザー向けiOSアプリとしてSwiftを採用しています。 1つのモノリスなRailsで利用者別にネームスペースを区切り、それぞれエンドポイントを提供しています。 サーバーサイドとクライアントサイドを分離し並行して開発を進めるためにスキーマ駆動開発を導入しました。スキーマ駆動開発の

                                                                    Rails + RSpec + OpenAPI3 + Committeeでスキーマ駆動開発を運用するTips - Timee Product Team Blog
                                                                  • 2021年お世話になったReact関連ライブラリ10選 #techtekt Advent Calendar 2021 - techtekt

                                                                    この記事は techtekt アドベントカレンダー2021 の 12日目の記事です。 こんにちは! テクノロジー本部 エンジニアリング統括部 サービス開発部でエンジニアをしている Yuto SAGAWA です。*1 皆様今年もReactライフを満喫できていますでしょうか? 個人的にはたくさんReactに触れる機会があり、非常に満喫することができました! そんな2021年の個人的にお世話になったReact関連のライブラリ、フレームワーク、ツールなどの紹介をしたいと思います。 next nextjs.org Next.jsはReactのフレームワークで、昨今では使用例も多く人気のフレームワークであることが伺えます。 SSR / SSG だけではなく、ISR(Incremental Static Regeneration)など、 Webアプリケーションのパフォーマンス改善の手助けとなることが期待

                                                                      2021年お世話になったReact関連ライブラリ10選 #techtekt Advent Calendar 2021 - techtekt
                                                                    • 【機械学習 × テニス】姿勢推定とLightGBMを用いたテニスのスイング認識【動作検出】 - はんぺんのIT日記(改)

                                                                      はじめに 手法の決定 開発環境 データ取得 動画撮影 アノテーション 関節位置のデータ モデリング 学習用データ データ加工 データ分割 学習 評価 評価用データ Feature Importance Confusion matrix 動作の誤検出 高度化検討 トラッキングの追加 姿勢の検出精度の高いモデルの使用 特徴量の再検討 予測モデルへの転換 関節位置データのAugmentation さいごに 参考 はじめに こんにちは。はんぺんです。 テニスのスイングの検出・分類モデルを作ってみました。 youtu.be モチベーションとしては、インテリジェントデバイス的な何かを作ってみたいというものです。 ちょうど魔法少女リリカルなのはのレイジングハートみたいなイメージです。 インテリジェントデバイスとは、AIを有し自ら思考するタイプのデバイスのこと。 出展:レイジングハートとは (レイジングハ

                                                                        【機械学習 × テニス】姿勢推定とLightGBMを用いたテニスのスイング認識【動作検出】 - はんぺんのIT日記(改)
                                                                      • React でつくるフォーム UI の単体テストと TDD

                                                                        はじめに 最近「単体テストの考え方/使い方」を読みました。 普段フロントエンドエンジニアとして実装をしている中で、自分が作っている単体テストについての言語化をサポートしてくれました。 この記事では、フォーム UI の実装を通して、コンポーネントに対する効果的な単体テストについて考察し、具体的なテストの書き進め方の一例を提示してみます。 最終的な成果物 この記事で実装するフォーム UI の最終的な成果物は codesandbox で確認できるようにしています。右のペインの「Tests」をクリックするとテストも実行できます。 注意 この記事は「単体テストの考え方/使い方」(以下、本書)の内容に触れていますが、読んでいなくても理解できるように補足をしているつもりです。それぞれのトピックで、文中に本書の該当ページの番号を「(p123)」のように表示しています(いずれも初版のものです)。 react

                                                                          React でつくるフォーム UI の単体テストと TDD
                                                                        • Real World HTTP 第3版 ミニ版

                                                                          TOPICS 発行年月日 2024年05月 PRINT LENGTH 207 ISBN 978-4-8144-0083-6 FORMAT PDF EPUB 本書は、2017年に発行し、2024年に第3版を発行した『Real World HTTP 第3版』のエッセンスを凝縮した、無料の電子書籍です。 HTTP/1.0、HTTP/1.1、HTTP/2と、HTTPが進化する道筋をたどりながら、ブラウザが内部で行っていること、サーバーとのやりとりの内容などについて、プロトコルの実例や実際の使用例などを交えながら紹介しています。 ミニ版のため、一部の内容を割愛しています。詳しくは本書の「まえがき」をご覧ください。 ミニ版の使用について ミニ版の図版やテキストは、著作権法で認められている引用の範囲に加えて、有志での勉強会、自社の社員向けの研修に用いるプレゼンテーション資料のために、全体の10~20%程

                                                                            Real World HTTP 第3版 ミニ版
                                                                          • Cloud Functions をローカル環境で統合テスト可能にした話 | BLOG - DeNA Engineering

                                                                            はじめまして。AIシステム部MLエンジニアリンググループ で学生インターンをしている 早坂( @takemioIO ) です。 普段はパケット処理などをやっているのですが、縁あってここでは MLOps の通常業務に携わっております。 私は二ヶ月間インターンとして開発に取り組んでいました。ここではその実装物の一つを紹介します。 この AI システム部 のとあるプロジェクトでは、 Cloud Functions と Cloud Pub/Sub を利用したデータパイプライン を構築しております。 そのプロジェクトは毎日のように変更が取り込まれ、非常に開発が盛んですが一方それゆえに破壊的な変更で足を撃ち抜いてしまいそれによって悩まされることがありました。 さらにはクラウドサービスを利用してるという部分からローカルでの検証環境がありませんでしたので、毎回 GCP に デプロイするしかなく、トライアン

                                                                              Cloud Functions をローカル環境で統合テスト可能にした話 | BLOG - DeNA Engineering
                                                                            • クライアントサイドからサーバサイドまで破壊するテンプレートエンジンを利用した攻撃と対策

                                                                              ユーザー入力として受け取ったテンプレートをコンパイル テンプレートレベルがProgramming Language Templateは安全にコンパイルするのが難しい 高度なテンプレートはプログラミング言語そのもの コンパイル時に任意のコードが実行できてしまう => ⚠Danger Programming Language Templateをコンパイルする危険例: ローカル メールでマクロ付きのWordファイルを開いて、ローカルで任意のプログラムが実行されてしまうケース マクロはプログラムそのもの 偽装メールが再び拡散、不正マクロを仕込んだ添付ファイルでマルウエア感染:マクロウイルスの再来? - @IT デフォルトではマクロは無効化されており、オプトインで有効化になっている Office ドキュメントのマクロを有効または無効にする - Office サポート Programming Lang

                                                                              • 複数のサブスキーマを持つデータへの対応におけるスキーマ記述言語の比較 | IIJ Engineers Blog

                                                                                プログラミング中、何度も同じような、でも、その都度少しずつ異なるコード(ボイラープレートコードとも呼ばれます)を記述しなければならない場面は多々発生します。 可能ならば、このようなパターン化された単調なコードの記述は省略して、より重要なロジックの実装に集中したいものです。 Web APIの開発においても、毎回のように実装が必要なパターン化された処理は多々あります。 リクエストやレスポンスのデータ(現在、ほとんどがJSON形式)のバリデーションもその代表です。 データ種別ごとに手動でバリデーション処理を記述するのでは無く、データ仕様の定義(データスキーマ)を与えれば、自動的にバリデーションするような仕組みが理想でしょう。 本稿では、そんなバリデータの調査や検証中に見つけた課題についてご紹介したいと思います。 ポリモーフィックパターン まず、以下のようなJSONデータを処理するケースについて考

                                                                                  複数のサブスキーマを持つデータへの対応におけるスキーマ記述言語の比較 | IIJ Engineers Blog
                                                                                • そのコンポーネント、CSSだけで実現できますよ【JavaScript必要なし】 - Qiita

                                                                                  以下は、Adrian Beceさんの記事、You can create these elements without JavaScriptの日本語訳です。 そのコンポーネント、CSSだけで実現できますよ(You can create these elements without JavaScript) 私達は、よくあるUI要素機能(アコーディオン、ツールチップ、テキストの切り取りなど)をJavaScriptで書くことに慣れてきました。しかし、HTMLとCSSが新しい機能を手に入れたことで、より少ないJavScriptでUI要素を作れるようになり、JavScriptはバリデーションやデータプロセッシングなど、ロジックにより集中できます。 いくつかの実装、まだ洗練されてなかったり柔軟ではありませんが、それでも小さなプロジェクトなどでは便利です。 なぜ、1つのアコーディオンのためにJavaScr

                                                                                    そのコンポーネント、CSSだけで実現できますよ【JavaScript必要なし】 - Qiita