並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 1166件

新着順 人気順

単体テストの検索結果121 - 160 件 / 1166件

  • Chromium にコントリビュートするための周辺知識 | blog.jxck.io

    Intro Chromium にコントリビュートするためには、ソースコードを理解する以外にも、もろもろ必要な周辺知識がある。 ドキュメントはかなり整備されている方ではあるが、そのドキュメントにたどり着くのが難しい場合もある。 レビュアーなどが親切に教えてくれるものをローカルにメモしているが、それも散らばってきたため、ここにまとめることにする。 まずは初期状態で公開するが、どんどん更新していき、長くなっても分割しないで追記を繰り返そうと考えている。 関連サイト 始めて取り組もうとすると、まずどこを見ればわからないところから始まる。 似たようないくつかのサイトがあり、使い分けがされているからだ。 code search https://source.chromium.org/chromium/chromium/src コードをインタラクティブに検索するためのサイト Workspace 風の U

      Chromium にコントリビュートするための周辺知識 | blog.jxck.io
    • Terraform を使用するためのベスト プラクティス  |  Google Cloud

      フィードバックを送信 Terraform を使用するためのベスト プラクティス コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 このドキュメントでは、複数のチームメンバーやワーク ストリームで Terraform を使用した効果的な開発を行うためのガイドラインと推奨事項について説明します。 このガイドでは Terraform の概要は説明しません。Google Cloud で Terraform を使用する方法については、Terraform を使ってみるをご覧ください。 スタイルと構造に関する一般的なガイドライン 以下の推奨事項は、Terraform 構成の基本スタイルと構造を対象としています。この推奨事項は、再利用可能な Terraform モジュールとルート構成に適用されます。 標準のモジュール構造に従う Terraform モジュールは、標準のモジュ

        Terraform を使用するためのベスト プラクティス  |  Google Cloud
      • Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers

        はじめに こんにちは。ソーシャル経済メディア「NewsPicks」の QA/SET チームの海老澤です。 先日 弊社で E2E テスト実行するために Playwright を導入したため紹介させてください。 E2Eテストとは E2Eテスト(エンドツーエンドテスト)とは、ソフトウェア開発におけるテスト手法の一つで、アプリケーションが実際の運用環境と同様の条件下で正しく動作することを確認するためのテストです。 システムの開始点から終了点までを通じて、ユーザーの視点でアプリケーションのフローを追い、機能全体が連携して期待通りに動くかを検証します。具体的には、ユーザーが行うであろう一連の操作をシミュレートして、データがシステムを通じて適切に流れるかや、最終的なアウトプットが正しいかどうかを確認します。E2Eテストにより、部分的な単体テストや統合テストでは見逃されがちな問題を発見することができます。

          Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers
        • 【2024年】ITエンジニア本大賞まとめ - Qiita

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

            【2024年】ITエンジニア本大賞まとめ - Qiita
          • Rails+Next.jsでGraphQLを導入する時に考えたこと - Timee Product Team Blog

            こんにちは、タイミー開発プラットフォームチームで業務委託として働いている宮城です。 タイミーはリリースから4年が経過したプロダクトで、2022年の前半から一部領域でGraphQLを利用し始め現在導入を進めています。 本記事では、GraphQLをプロダクトに導入する上で判断に迷った箇所や課題に対して、タイミーでの意思決定とその理由を紹介します。参考にしていただければ幸いです。 GraphQLの選定理由についてはこの記事では触れませんが、CTOの@kameike が以下のイベントで詳しく紹介する予定です。まだ参加申し込みは可能ですので、興味がある方はぜひ合わせてご覧ください。 timeedev.connpass.com なお、本記事のタイトルはソウゾウさんの以下の記事にインスパイアされています。 engineering.mercari.com GraphQLの「Getting Startedの

              Rails+Next.jsでGraphQLを導入する時に考えたこと - Timee Product Team Blog
            • Nuxt 3 を今すぐオススメしたい 15 のポイント

              2022/11追記: Nuxt 3 の stable リリースに合わせて新しく記事を書き直しました。 祝・正式リリース!5つのテーマで理解する Nuxt3 の魅力 上記の記事の方が最新の情報を詳しく網羅していますので、そちらを読んで頂くことをオススメします。 Nuxt.js バージョン3のPublic Betaが公開されて約2ヶ月が経ちました。 私自身この2ヶ月、プライベートでNuxt 3を触っているのですが、かなり気に入っています。 とにかく開発体験が向上していて、一言で表すと「開発していて楽しい」フレームワークです。あまりにも気持ちよく開発できるので、Nuxt 3が公開されてから明らかに睡眠時間が減っています。 ただ、実際に何が変わったのか、どんなところが良いのか、よくわからずにとりあえず様子見している方もいると思います。 Vue 3の目玉機能であるComposition APIはVu

                Nuxt 3 を今すぐオススメしたい 15 のポイント
              • プロ驚き屋AIをチームのSlackに招待しタイムラインを荒らす - Qiita

                20XX 年、我々人類は進化著しい AI に驚くしかない日々が続いています。ソーシャルメディアに驚きがあふれインプレッションを競う様はまさに大海賊時代、いいねの海賊王に俺はなる、とばかり飛びぬけて耳目を引く超新星 ( スーパールーキー ) が頭角を現しています。 「プロ驚き屋」としばしば称されるルーキーたちは X ( 旧 Twitter ) のタイムラインに現れては情報の正確性を重んじるエンジニアや研究者を戸惑わせます。チームやコミュニティ内の Slack はそうした喧噪から離れたオアシスといえるかもしれません。そんなオアシスにプロ驚き屋を召喚しタイムラインを荒らすのが今回の目的です。次に実際の例を示します。 なかなか模倣できているのではないでしょうか。オアシスは今、ジャングルに変わりました。私たちが生きている世界では正確で吟味された情報だけにアクセスしたいという願いは実現されないので、現

                  プロ驚き屋AIをチームのSlackに招待しタイムラインを荒らす - Qiita
                • 米ガートナー「ソフトウェアエンジニアリングのハイプサイクル2023年」を発表。「生成AI」や「プラットフォームエンジニアリング」は過度な期待のピーク

                  米ガートナー「ソフトウェアエンジニアリングのハイプサイクル2023年」を発表。「生成AI」や「プラットフォームエンジニアリング」は過度な期待のピーク 米調査会社のガートナーは、「Hype Cycle for Software Engineering, 2023」(ソフトウェアエンジニアリングのハイプサイクル2023)を発表しました。 ガートナーのハイプサイクルは、技術の登場から安定までを5つのステージに分けて説明したものです。5つのステージは、「黎明期」から始まり、「『過度な期待』のピーク期」「幻滅期」「啓発期」「生産性の安定期」まで。この途中で消えていく技術もあります。 毎年8月頃に「先進テクノロジーのハイプサイクル」が発表されているのはよく知られていますが、同社はそれ以外のさまざまな分野におけるハイプサイクルも発表しています。今回発表されたのもそうしたものの1つで、ソフトウェアエンジニ

                    米ガートナー「ソフトウェアエンジニアリングのハイプサイクル2023年」を発表。「生成AI」や「プラットフォームエンジニアリング」は過度な期待のピーク
                  • Software Design連載 2021年10月号 スナップショットテストの可能性を追求する - MonotaRO Tech Blog

                    こんにちは、辰巳です。 第3回は「スナップショットテスト」をテーマにお送りします! 「組織が拡大する中で、十分な設計情報がない状況でも、複雑に改修が積み重なったソフトウェアをいかに安全かつ正確に変更できるか?」 本記事では、数多くの大幅なシステム変更の経験を経て、この課題に対してモノタロウがいま実践しているグッドプラクティスを紹介します。 本記事の初出は、 Software Design2021年10月号「Pythonモダン化計画(第3回)」になります。過去の連載記事は以下を参照ください。 第1回 Software Design連載 2021年8月号 Python製のレガシー&大規模システムをどうリファクタリングするか 第2回 Software Design連載 2021年9月号 「テストが無い」からの脱却 スナップショットテストの可能性を追求する モノタロウは、事業者向けの間接資材を販売

                      Software Design連載 2021年10月号 スナップショットテストの可能性を追求する - MonotaRO Tech Blog
                    • 2023年、読んで印象に残った本 - Don't Repeat Yourself

                      あけましておめでとうございます。年がもう明けてしまいましたが、2023年に読んでよかった本について簡単に書いていこうと思います。noteで書いていましたが、こちらのブログをしっかり使わないといろいろもったいなと思ったので、技術に関係ない話題ではありますがこちらに書いていきます。 技術書 単体テストの考え方/使い方 フロントエンド開発のためのセキュリティ入門 知らなかったでは済まされない脆弱性対策の必須知識 プロを目指す人のためのTypeScript入門 安全なコードの書き方から高度な型の使い方まで 技術書でないもの サピエンス減少 縮減する未来の課題を探る ネガティヴ・ケイパビリティで生きる 2050年の世界 見えない未来の考え方 訂正可能性の哲学 GitLabに学ぶ 世界最先端のリモート組織のつくりかた ドキュメントの活用でオフィスなしでも最大の成果を出すグローバル企業のしくみ 2024

                        2023年、読んで印象に残った本 - Don't Repeat Yourself
                      • [CEDEC 2023]「テストエンジニアが伝える テストを実施する前に考えるべきテストの話」聴講レポート。開発が参加し,欠陥を未然に防止するテストの大切さ

                        [CEDEC 2023]「テストエンジニアが伝える テストを実施する前に考えるべきテストの話」聴講レポート。開発が参加し,欠陥を未然に防止するテストの大切さ ライター:箭本進一 ゲーム開発者向けカンファレンス「CEDEC 2023」で,「テストエンジニアが伝える テストを実施する前に考えるべきテストの話」と題された講演が行われた。ソフトウェアを作る前に一歩立ち止まり,必要になるテストについて打ち合わせをすれば,コストや手間を削減できるという。ソフトウェアのテストといえば,完成後に行うものというイメージがあるが,その前に行うべきテストとは,どのようなものなのだろうか? 開発が参加し,欠陥を未然に防止するテストの大切さ 10X / B-Testing Qualityチームの風間裕也氏 講演を行ったのは,10X / B-Testing Qualityチームの風間裕也氏。ソフトウェアのテストに関す

                          [CEDEC 2023]「テストエンジニアが伝える テストを実施する前に考えるべきテストの話」聴講レポート。開発が参加し,欠陥を未然に防止するテストの大切さ
                        • DI って何でするのかわからない人向けに頑張って説明してみる「本来の意味」 - Qiita

                          DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる を、単体テストにフォーカスしたら単体テストが本来の目的では無い的なコメントが散見されました。 確かに DI コンテナは元々は SOLID 原則の D に該当する依存性逆転の原則 (Dependency inversion principle) の「具体ではなく、抽象に依存しなければならない」に大きく関係するものになります。 Wikipedia から引用します。 ソフトウエアモジュールを疎結合に保つための特定の形式を指す用語。 この原則に従うとソフトウェアの振る舞いを定義する上位レベルのモジュールから 下位レベルモジュールへの従来の依存関係は逆転し、結果として下位レベルモジュールの 実装の詳細から上位レベルモジュールを独立に保つことができるようになる。 例えば以下のように上位レベルのモジュール(Present

                            DI って何でするのかわからない人向けに頑張って説明してみる「本来の意味」 - Qiita
                          • ベタープログラマ を読んだ

                            ベタープログラマ を読んだので自分的に刺さった点をまとめる。 6章 航路を航行する⌗ 新たなメンバーが開発チームに参加する際にどのようにすれば速やかに生産的になることができるかについての章。 最善な策はすでにプロジェクトへの理解があるメンバーに導いてもらうこと。もしそれができなければ次のようなことを調べるとよい。 ソースの取得の容易さ⌗ ソースの取得がどれだけ簡単か。健全なプログラムはコードベース全体を得るための単一のチェックアウトのみを必要とする。 コードのビルドの容易さ⌗ 一般的でないツールにビルドが依存していないか コード自身に適切で簡単なドキュメンテーションがあるか 手作業なしで1つのコマンドでビルドを行うことができか コードの一部に取り組んでいるときにその部分だけをビルドすることができるか ビルド中に潜在的な問題を曖昧にしているかもしれない無数の警告が出ていないか テスト⌗ 単体

                              ベタープログラマ を読んだ
                            • Gitワークフロー設計について - 電通総研 テックブログ

                              みなさんこんにちは、電通国際情報サービス(ISID)Xイノベーション本部ソフトウェアデザインセンターの佐藤太一です。 この記事では、Git を使った仕事のやり方(以降は Git ワークフローと記載)を設計する上での検討事項を説明します。 これによって、読者の皆さんがGitワークフローを適切に定義できるようになることを主たる目的としています。 また、筆者の能力不足によって記載しきれなかった考慮事項について、より深く Git を使いこなしている識者からの指摘を受ける機会を得ることを副次的な目的とします。 この記事には書かれていないものの、検討すべき事項について知見のある方はブログ記事を書いたり、Twitter等のSNSで指摘してくださるとありがたいです。 はじめに 基本的な考え方 Git ワークフロー設計における考慮事項 チームの人数 monorepoの検討 参考文献 プロジェクト管理ツールと

                                Gitワークフロー設計について - 電通総研 テックブログ
                              • 求人票の作り方: QAリードを実例に5ステップのフレームワークと中間成果物を公開します - MonotaRO Tech Blog

                                こんにちは、鈴木です。 求人票の作成を経験しました。実際に公開した求人票を実例として、どのように考え、どのようなプロセスで、どのような中間成果物を生み出しながら取り組んだのか。具体的な内容を共有します。 「先に知っておきたかった!」と思うものや、検索しても見つからなかったものなど、多くの知見を得ることができました。 それらを公開することで、これから求人票の作成に関わる人のお役に立てれば幸いです。 QAリード採用はじめました はじまりは兄弟会社の組織図 求人票を書こう! ってどうすれば!? 求人票作成のフレームワーク 1. 現在を書き出す 1.1. 思っていることを書き出す 1.2. 現在使っているモノを書き出す 1.3. 現在おこなっているコトを書き出す 2. 未来を書き出す 2.1. 将来おこなっているコトを書き出す 2.2. 将来使っているモノを書き出す 3. その職種が必要な理由を書

                                  求人票の作り方: QAリードを実例に5ステップのフレームワークと中間成果物を公開します - MonotaRO Tech Blog
                                • テストのためだけに`interface`を書きたくないでござる — KaoriYa

                                  golangでテストのためだけにinterfaceを書くのが死ぬほど嫌だったので編み出した技を紹介します。 TL;DR テスト(=mock)のためだけにinterfaceは切りたくない 型エイリアスとビルドタグを組み合わせるとinterfaceがなくてもモックが作れる この手法に必要なモックを自動生成するプログラムを作った interfaceは本当に必要なシーンで使うべき Background 現在モックを使った単体テストは一般的です。 Javaでの例を挙げると、モックしたいコンポーネントについて予めinterfaceを定義しておき、モックではそのインターフェースを実装するのが定石です。 しかしgolangのinterfaceはJavaなどのそれとは若干性質が異なるため、テスト=モックのためだけにinterfaceを書くのはオーバーワーク気味です。 そうテストのためだけにinterface

                                  • Rails開発者が採用面接で聞かれる想定Q&A 53問(翻訳)|TechRacho by BPS株式会社

                                    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: 53 Ruby on Rails Interview Questions and Answers - Better Programming - Medium 原文公開日: 2020/04/03 著者: GreekDataGuy -- データサイエンティスト、フルスタックエンジニア、起業家。トロント在住。 日本語タイトルは内容に即したものにしました。 私はこれまで100人を超えるRuby on Rails開発者と面接を重ね、私自身も職階に関する面談をいくつも受けました。本記事は、これまで私が受けたり尋ねたりした質疑応答をまとめたものです。 2020年現在、どれほど多くの大企業がRailsを利用していることを知ったら皆さんは驚くかも知れません。Shopify、Airbnb、GitHub、Dribble、Etsy、Kickstarter

                                      Rails開発者が採用面接で聞かれる想定Q&A 53問(翻訳)|TechRacho by BPS株式会社
                                    • [Next.js] 開発中のページを開発環境でのみ表示し、本番環境のビルドには含めないようにする

                                      はじめに この記事について こんにちは、 @zomysan(Twitter) です。この記事では、Next.js で開発をしているWebアプリケーションのフロントエンドを対象に、開発途中のページをどう扱うかということについて書きます。 新しい機能やリニューアルのための開発を始めてあたらしいページを追加したものの、まだ途中なのでユーザーに見せられる状態ではない、ということはよくあると思います。ユーザーには見せたくないけど、開発環境やステージング環境では確認したい。でも本番環境には出したくない。そういうときどうしたら良いのでしょうか? この記事の対象 この記事は以下のような人を対象としています。 Next.js で Web アプリケーションを実装している 開発中のページを本番環境に露出したくない まとめ 今回、私は以下のように実現してみました。 開発中のページについて、拡張子を .page.d

                                        [Next.js] 開発中のページを開発環境でのみ表示し、本番環境のビルドには含めないようにする
                                      • ITエンジニア本大賞 2024のベスト10が決定!技術書・ビジネス書両部門に話題書がずらり、大賞は?

                                        ITエンジニア本大賞は、皆さんが1年間に読んだ中でITエンジニアに最もおすすめしたい本を選ぶイベントです。 このたび、昨年11月から始まった一般投票の集計が終わり、技術書部門とビジネス書部門のベスト10が決定。特に得票数の多かった両部門の各3タイトルが、2月15日(木)のプレゼン大会へと進出することになりました。 「Developers Summit 2024」内で開催されるプレゼン大会では、著者や編集者など関係者が本の狙いや魅力、制作秘話をアピールし、会場での投票によって大賞を決定します。 ベルサール羽田空港(東京都大田区)での開催でオンライン配信はありませんので、プレゼンを聞きたい方やすぐに結果を知りたい方は、ぜひ現地でご観覧ください(参加には事前登録が必要です)。 プレゼン大会の詳細と参加方法を見る 技術書部門ベスト10(50音順で、★印がプレゼン大会へ) ★『1冊ですべて身につくJ

                                          ITエンジニア本大賞 2024のベスト10が決定!技術書・ビジネス書両部門に話題書がずらり、大賞は?
                                        • ハンズオン:React チュートリアルからはじめる TypeScript と単体テスト

                                          import { useState } from 'react'; function Square({ value, onSquareClick }) { return ( <button className="square" onClick={onSquareClick}> {value} </button> ); } function Board({ xIsNext, squares, onPlay }) { function handleClick(i) { if (calculateWinner(squares) || squares[i]) { return; } const nextSquares = squares.slice(); if (xIsNext) { nextSquares[i] = 'X'; } else { nextSquares[i] = 'O'; } on

                                            ハンズオン:React チュートリアルからはじめる TypeScript と単体テスト
                                          • 入門 継続的デリバリー

                                            継続的デリバリーとは、コード変更を必要に応じて迅速かつ安全に、継続的にリリースできるようにするための開発手法です。本書は、初めて継続的デリバリーに取り組む読者向けに、必要な知識とベストプラクティスをていねいに紹介する入門書です。基本的な概念や技術、アプローチの解説はもとより、章ごとに事例を使用しながら、継続的デリバリーを実践する際に直面するさまざまなシナリオを取り上げ、その全体像・世界観を包括的に理解することができます。 序文 はじめに 第1部 継続的デリバリーとは 1章 『入門 継続的デリバリー』へようこそ 1.1 継続的デリバリーは必要? 1.2 なぜ継続的デリバリー? 1.3 継続的デリバリーとは 1.4 インテグレーション 1.5 継続的インテグレーション 1.6 何をデリバリーするのか? 1.7 デリバリー 1.8 継続的デリバリーと継続的デプロイメント 1.9 継続的デリバリー

                                              入門 継続的デリバリー
                                            • 大規模クラウドインフラ設計・構築案件の歩き方(AWS-28)がインフラエンジニアに刺さりまくりな内容だった | iret.media

                                              AWS Summit Japan 2024 Day1の「大規模クラウドインフラ設計・構築案件の歩き方」のセッションについてレポートです。 控えめに言っても満足度の高いセッションでした。 大規模なクラウドインフラの設計構築運用に関わる方なら首がもげるくらい頷きが多い内容であり、アーカイブが公開された際はもう一度見たいと思うほど…。 セッションの内容には「設計書の一覧サンプル」や、「アプリ/インフラチームの責任分界」といった界隈でも関心が高い内容に触れられています。 考え方のひとつとして参考にしていきたい内容がモリモリでしたので、シェアさせていただきます。 セッション概要 大規模クラウドインフラ設計・構築案件の歩き方 Level 300: 中級者向け スピーカー: アマゾン ウェブ サービス ジャパン合同会社 仲谷 岳志 様 クラウド技術のコモディティ化により、エンタープライズ分野では近年、A

                                                大規模クラウドインフラ設計・構築案件の歩き方(AWS-28)がインフラエンジニアに刺さりまくりな内容だった | iret.media
                                              • NTTデータが生成AI使うシステム開発手法を全技術者に展開、人月型契約が見直しに

                                                NTTデータは法人向けシステム構築に生成AI(人工知能)を本格導入する。生成AIを利用したシステム開発手法やツール群を社内で整備し、2024年度から国内外の開発部門に展開する。 NTTデータは業務システム開発に携わるエンジニアが国内と海外を合わせて約10万人在籍する。生成AIを使う開発手法を全エンジニアに習得させ、営業など関係する職種も含めて全社員19万5000人が利用できる体制を目指す。 既に実証では開発工数を7割削減できたなど大きな成果事例が出ているという。システム構築の生産性が大幅に向上すると、受注できる案件を増やせる一方で、案件の単価や顧客単価が下がりかねない矛盾も抱える。システム構築の受注金額は、必要な工数を積算して算定根拠にする「人月型」の契約が主流だからだ。NTTデータは「課題を整理して、成果報酬型など顧客と新たな契約形態も検討を進める」(担当する技術革新統括本部システム技術

                                                  NTTデータが生成AI使うシステム開発手法を全技術者に展開、人月型契約が見直しに
                                                • 正しいクラウドはある意味で遅い - Software Transactional Memo

                                                  TL;DR 正しく設計するとキャパシティは常にカツカツになる これはpyspaアドベントカレンダーの8日目の記事です。前日はShibukawaさんです。 世はクラウド時代、ソフトウェアはひとたび作られたら何億回実行されても摩耗するものではないので、どんな間抜けなロジックであろうと動く以上は別のどこかで瑕疵が出てくるまで使い倒されるのは日常茶飯事である。 サービスを負荷の前提の上に定義する クラウドより前の時代においてサービスを支えるマシンは「ロードアベレージが1.0を超えてなければとりあえずOK、超えたらマシンを増やして負荷を分散する」というノリのベストプラクティスがよく言われていたがそれはサーバ資源の確保にそれなりに時間がかかる時代の常識であって、クラウド時代でサーバは分単位で確保できるようになった。 クラウドの利点としてその即時的なスケーラビリティが常套句として使われて久しいが、これは

                                                    正しいクラウドはある意味で遅い - Software Transactional Memo
                                                  • Goでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ

                                                    Goで単体テストを実装する場合、動的な言語のように「テスト実行中に外部への依存を置き換える」といったことはできません。代わりに、 外部への依存を引数で渡す 外部への依存をインターフェイスで渡す のように、テスト対象をテスト可能な実装に変更しておき、テストの時は外部への依存をモック等に置き換えて実行する場合が多いのではないかと思います。 個人的な体験でいえば、テスト可能な実装に置き換えていく過程で設計が洗練されていく*1ことは度々あるので、面倒を強制されているというよりは設計を整理するための道具といった捉え方をしているのですが、そうは言っても動的な言語に比べると面倒だなと感じるときは少なからずあります。既存の実装がテスト可能になっておらず、変更するコストが高い場合は特にそうですね。 そんなとき、気軽にモンキーパッチできると嬉しいんじゃないかと思って、テストの時だけ関数を置き換えられるようなラ

                                                      Goでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ
                                                    • GoのWebアプリ開発でフラットパッケージにした話 | フューチャー技術ブログ

                                                      2023.10.5追記: Goチームからプロジェクトの目的に応じたディレクトリ構造についてのドキュメントが公式に公開されています。 https://go.dev/doc/modules/layout 2020/11/13 「やってみてよかったことまとめ」、「やってみて困ったこと」、「外部モックサービスを使ったユニットテストの未来」の章を追記 2020/11/18 「やってみてよかったことまとめ」にSNSでもらったフィードバック内容を追記 はじめにこんにちは、TIG 真野です。秋のブログ週間連載の第9弾です。 1年弱ほどGo言語でWebAPIアプリケーション開発を行っていますが、かなり割り切った構成・テスト方針を採用しました。そろそろ1年弱になり機能開発も比較的落ち着き、保守運用フェーズの割合も徐々に増えてきた頃合いなので、やったこと・学び・反省といった振り返りを共有します。 Goのパッケー

                                                        GoのWebアプリ開発でフラットパッケージにした話 | フューチャー技術ブログ
                                                      • ヤフーでは開発迅速性と品質のバランスをどう取ってるか(2022年)

                                                        ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog 皆さんは「No Measurement, No Improvement」という言葉をご存じでしょうか。これは「測れないものは改善できない」という意味で、熱力学者であるウィリアム・トムソン博士の言葉とされています。 下図はGoogle社のDORA(DevOps Research and Assessment)を参考にして作成しました。開発スピードとサービスの品質を改善するためには計測が必要です。計測のための4つの指標を紹介します。 四つの指標で計測し、開発スピードとサービスの品質を改善 開発スピードの分析に利用する指標は、1つ目が「Change Lead Time(開発が始まってから本番にデプロイされるまでの時間)」、2つ目が「De

                                                          ヤフーでは開発迅速性と品質のバランスをどう取ってるか(2022年)
                                                        • t-wadaさんと学ぶレガシーコード改善ワークショップのつくり方~虎の巻~ - Qiita

                                                          昨年、テスト駆動開発のエバンジェリストである和田卓人(t-wada)さんと共同で、社内で2回のレガシーコード改善ワークショップを開催しました。概要については、以下の記事に詳しく書かれています。 このワークショップの最大の特徴は、実際の製品のソースコードを対象に自動テストの作成やリファクタリングを行うことです。 題材となるコードを探す作業から始めるため、準備には手間がかかりますが、開発チームがレガシーコードに向き合うスキル・マインドを育成するために非常に有効な手法だと感じています。このため、今年も他の製品開発チームを対象に同様のワークショップを計画しています。 この記事では、今後の開催に向けてこれまで運営として取り組んできたことをまとめ、「レガシーコード改善ワークショップの良いところ」と「ワークショップ開催の具体的な流れ」として説明します。 レガシーコード改善ワークショップの良いところ 参加

                                                            t-wadaさんと学ぶレガシーコード改善ワークショップのつくり方~虎の巻~ - Qiita
                                                          • 東証がSREによるレジリエンス向上に挑む理由。過去のシステム障害から何を学んだのか?(後編) ソフトウェア品質シンポジウム2022

                                                            東証がSREによるレジリエンス向上に挑む理由。過去のシステム障害から何を学んだのか?(後編) ソフトウェア品質シンポジウム2022 9月22日と23日の2日間、一般財団法人日本科学技術連盟主催のイベント「ソフトウェア品質シンポジウム2022」がオンラインで開催され、その特別講演として株式会社日本取引所グループ 専務執行役 横山隆介氏による「日本取引所グループシステム部門の取組み ~システムトラブルからの学びと今後の挑戦~」が行われました。 現在、日本取引所グループ傘下の東京証券取引所(以下、東証)は、過去に何度か大きなシステムトラブルを経験し、それを教訓として組織とシステムの改善を続けています。 そこで今回、シンポジウム企画委員会からの要望を受けて行われた特別講演で、東証がこれまでのシステム障害から何を学び、そこから何を変化あるいは進化させてきたのか。わずか2年前のNASのハードウェア障害

                                                              東証がSREによるレジリエンス向上に挑む理由。過去のシステム障害から何を学んだのか?(後編) ソフトウェア品質シンポジウム2022
                                                            • 小さく始めて大きく育てるMLOps2020 | | AI tech studio

                                                              AI Labの岩崎(@chck)です、こんにちは。今日は実験管理、広義ではMLOpsの話をしたいと思います。 MLOpsはもともとDevOpsの派生として生まれた言葉ですが、本稿では本番運用を見据えた機械学習ライフサイクル(実験ログやワークフロー)の管理を指します。 https://www.slideshare.net/databricks/mlflow-infrastructure-for-a-complete-machine-learning-life-cycle 参考記事のJan Teichmann氏の言葉を借りると、 エンジニアがDevOpsによって健全で継続的な開発・運用を実現している一方、 多くのデータサイエンティストは、ローカルでの作業と本番環境に大きなギャップを抱えている クラウド含む本番環境でのモデルのホスティングが考慮されないローカルでの作業 本番のデータボリュームやス

                                                                小さく始めて大きく育てるMLOps2020 | | AI tech studio
                                                              • Infrastructure as Codeのつらみの原因を探れ 恐怖症による負のサイクルを断ち切る“予測可能性”

                                                                ソフトウェア開発、ITインフラ運用、そしてその境界線上にあるトピックをカバーし、特にDevOpsを実現するための自動化、テスト、セキュリティ、組織文化にフォーカスした「DevOpsDays」。ここでソフトウェアエンジニアのチェシャ猫氏が「Infrastructure as Code の静的テスト戦略」をテーマに登壇。まずはInfrastructure as Codeについてと、そのつらみから発生する“オートメーション恐怖症”を防止する方法を紹介します。 「コード化の“つらみ”をいかにうまく防ぐか」が今日のテーマ チェシャ猫氏:チェシャ猫と言います。Twitterは@y_taka_23の名前でやっているので、よろしくお願いいたします。今日は「Infrastructure as Code の静的テスト戦略」をテーマに選びました。Infrastructure as Codeはここ数年で、非常にメ

                                                                  Infrastructure as Codeのつらみの原因を探れ 恐怖症による負のサイクルを断ち切る“予測可能性”
                                                                • ソースコードのハッシュ値を利用したCIの高速化 - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                                  こんにちは、kintoneチームの川向です。 ソースコードハッシュ値計算ツールであるsverを導入してCIの高速化を行ったので、その紹介をさせてください。 この仕組みにより、通常は1時間かかるCIの実行時間が最善のケースでは20分程度に短縮可能になりました。 導入前の課題 解決方法の検討 sverを使ったテストのスキップによるCI高速化 kintoneでのsverの利用方法 sver設定ファイルの書き方 キャシュの保存先(GitHub Actions Cache、Amazon S3) sverを使ったジョブの書き方 sver情報生成ジョブ: ハッシュ生成とキャッシュの存在確認 ビルドジョブ: 依存ファイル以外に依存しないことの確認 テストジョブ: ジョブ成功後にキャッシュ保存 下流ジョブのifの書き方 結果 課題と今後の展開 まとめ 導入前の課題 kintoneのCIの大まかな構成は以下の

                                                                    ソースコードのハッシュ値を利用したCIの高速化 - Cybozu Inside Out | サイボウズエンジニアのブログ
                                                                  • テストコードをただ書くだけで満足している人々をこの記事でビンタしたい - Qiita

                                                                    まえがき 世間ではテストをしないこと/テストを書かないことを悪とするみたいな文化が定着してきたのか、テストを書かない開発というのが減ってきてると思います。 では「正しくテストを書けているか」「テストを書く文化を生かしているか」というとどうでしょう? これらの問いに答えられずテストを書くことをゴールにして満足していると、それは宝の持ち腐れならぬテストコードの持ち腐れとなります。 執筆のモチベーション この記事を印刷して札束のごとくビンタするのが目的です。 以下に該当すること”だけ”を考えているような場合はビンタされるかもしれません。(絶対ではないですが危ない可能性があります) うちはテスト書いてるから大丈夫!ちゃんと開発工数とは別に単体テスト工数も見積もってるよ! ちゃんとホワイトボックス的に書いてカバレッジ担保しているからうちはちゃんとテストしてるよ! コード修正の都度ちゃんとテストコード

                                                                      テストコードをただ書くだけで満足している人々をこの記事でビンタしたい - Qiita
                                                                    • Next.jsを4年間使用してたどりついた、エンタープライズアプリケーションのフロントエンド開発・構築手法 | POSTD

                                                                      はじめに 目まぐるしく進化するフロントエンド開発の世界では、常に最新の知識や技術をいち早く取り入れることが、エンタープライズアプリケーションの開発を成功させる上で欠かせません。Tailwind CSS、TypeScript、Turborepo、ESLint、React Queryなどを含む強力なツールキットとNext.jsを4年間使用してきた結果、開発に役立つさまざまな知見やベストプラクティスが得られました。この記事では、大企業向けフロントエンドアプリケーションのパフォーマンス、保守性、拡張性を最大限に高める設計・構築手法を紹介したいと思います。 注記:ここに記載する内容はあくまでも個人的な見解であり、筆者が推奨する手法が必ずしも適さない場合もあります。 効果的なエンタープライズ向けフロントエンドアーキテクチャの基本原則 エンタープライズ規模のアプリケーション向けにフロントエンドソリューシ

                                                                        Next.jsを4年間使用してたどりついた、エンタープライズアプリケーションのフロントエンド開発・構築手法 | POSTD
                                                                      • モバイルアプリの大規模開発における組織的なソフトウェア改善の一事例と考察|mhidaka

                                                                        こんにちは。mhidakaです。技術書典やDroidKaigiのオーガナイザーという側面以外にもメルペイ所属のAndroidエンジニアという立場も持っています(みなさんあまり知らないと思いますので書いておきます)。 今日はメルカリ・メルペイでのモバイルアプリ大規模開発での、とあるアプローチをメモしておきます。内容は社内レビューを受けてマネージャの承認が取れたものなので安心して読んでください(自分のブログで書いてるのは真面目に書くと大変そうに感じる話題だったのと、なるべく楽しんでもらえるようカジュアルな口調で書きたかったからです) メルカリ・メルペイでモバイルエンジニアの開発対象というと主にアプリケーションです。大規模開発の重要な要素はアプリケーションだけではありませんが(考慮すべき要素はたくさんあるんですよ)今日はアプリのはなしです。本記事では一般化できるよう努めていますが大規模開発では組

                                                                          モバイルアプリの大規模開発における組織的なソフトウェア改善の一事例と考察|mhidaka
                                                                        • TypeScriptプロジェクトにスキーマ駆動開発を持ち込み、より型安全な世界へ - Sansan Tech Blog

                                                                          Bill One Entry*1グループの秋山です。 本題に入る前にお知らせです。9/12 (火) にTypeScriptを活用した型安全なチーム開発をテーマとしたイベントを開催します。 ぜひ、お気軽にご参加ください! sansan.connpass.com 1. はじめに 1-1. スキーマ駆動開発とは 1-2. Testing Trophyとの関係性 2. 構成 2-1. 最初の構成と課題 2-2. 最終的な構成 3. バックエンド 3-1. スキーマから型ファイルを作る 3-2. APIハンドラに型を与える 3-3. バリデーターを追加する 3-4. huskyでスキーマ変更を検知する 4. フロントエンド 4-1. スキーマからAPIクライアントを作る 5. パターンマッチングを持ち込む 6. まとめ 1. はじめに 1-1. スキーマ駆動開発とは 詳しい解説は他の記事に譲り、一言

                                                                            TypeScriptプロジェクトにスキーマ駆動開発を持ち込み、より型安全な世界へ - Sansan Tech Blog
                                                                          • 今まで手作業でインフラ構築をしていた組織がAnsibleを使うときに気をつけて欲しいこと - Qiita

                                                                            この記事は Ansible 2 Advent Calendar 2019 24日目 の記事です。 自己紹介+この記事の説明 サーバーサイドのインフラの設計や構築周りをやっているあんでぃーと申します。 どちらかというと大手(?)SIerに勤めています。 弊社では、一昨年〜去年あたりから色々なプロジェクト(以下PJ)で「Ansibleを使いましょう」という指令が発射されるようになりました。 それまでのやり方はウォーターフォール型で、 Excelで設計書作ってレビューして Excelで構築手順書を作ってレビューして 単体テスト仕様書を作ってレビューして 構築手順書と設計書を見ながら実機をカチャカチャして構築して 単体テスト仕様書と設計書を見ながら実機をカチャカチャして正しく構築されてることを確認して といった感じのまごころドリブンなやり方です。 まぁ複数人でシステムを作るにあたっては一般的(であ

                                                                              今まで手作業でインフラ構築をしていた組織がAnsibleを使うときに気をつけて欲しいこと - Qiita
                                                                            • Lambdaのテスト領域に関する技術共有会を開催しました | DevelopersIO

                                                                              はじめに CX事業本部の佐藤智樹です。 今回は先月中頃に実施したLambdaのテスト領域に関する技術共有会の資料と当日にいただいた意見を紹介します。技術共有会自体はお客様含め5人ほどで実施予定でしたが、社内の方を誘ったところ15人程と大人数でディスカッションしながら知識を深めました。有意義な時間となったのでブログで共有します。 本記事はLambdaに対してどのようなテストをすべきか、Lambdaでこれからテストを書くがどうやれば良いか悩んでいる方などは参考になるかと思います。いくつか紹介するテストパターンのメリット/デメリットもあげるので、テスト選定の上で参考にしてください。 例となる題材がなければ抽象的な話ばかりになり分かりづらくなるので、今回は以下のIoTデータ収集システムをベースにどうテストを書いていくか検討します。IoTデバイスからきたデータをRDSに保存するシステムです。色々書い

                                                                                Lambdaのテスト領域に関する技術共有会を開催しました | DevelopersIO
                                                                              • 単体テストは「2:8の法則」でだいたい品質が担保できる 網羅率・期待値を担保した適切なソリューション

                                                                                上流品質を担保するために必要な3つのこと 高橋寿一氏(以下、高橋):Dailyで上流品質を担保するために必要な3つのことです。単体テスト、リファクタリング、要求仕様、ユーザーストーリーのテストケース展開という3つのアクティビティをしっかりやっていただくと、上流でも品質がかなり担保されていくんじゃないのかなと思っています。 単体テストに関しては、基本的には「網羅率を担保してください」みたいなことなので、シンプルです。ただ、まだまだ知られていませんが、0から70パーセントとか80パーセントに持ってくるのは地獄のような作業なので、だいたいみなさん諦めちゃうんです。 でも、テクノロジーが進んでいるのでそこまでやる必要はなくて、「2:8の法則」ですよね。ソフトウェア全体の2割の危ないところだけをテストすれば、だいたい品質は担保されますという。超いい加減な言い方をしましたが、そういうものがあります。

                                                                                  単体テストは「2:8の法則」でだいたい品質が担保できる 網羅率・期待値を担保した適切なソリューション
                                                                                • GitHub Copilot はどのようにして空気を読むか? - ABEJA Tech Blog

                                                                                  "Everything is true," he said. "Everything anybody has ever thought." この記事は ABEJAアドベントカレンダー2023 の 17 日目の記事です。 こんにちは。システム開発部の石川 (@ishikawa) です。昨年のいまごろは Objective-C ばかり書いていましたが、今年は念願の Swift で QR コードリーダーを書き直したり、React Native の C++ コードをデバッガで追いかけて不思議なバグの修正をした年でした。 react-native で 196,607 回 fetch() すると通信できなくなるバグを直した https://t.co/lvNC3PL85b— takanori_is (@takanori_is) 2023年9月21日 普段の業務では TypeScript と Go、Pyt

                                                                                    GitHub Copilot はどのようにして空気を読むか? - ABEJA Tech Blog