「Pythonで単体テストを書くとき、実装ファイルの中にテストコードを書いてはいけないのですか?」RustやGoといったモダンなコンパイル言語の経験があるエンジニアが、Pythonのプロジェクト構成を見たときに抱く素朴な疑問です。Rustでは src/lib.rs の中に mod tests を書くのが当たり前ですし、Goでも main.go の隣に main_test.go を置くのが一般的です。 しかし、Pythonのデファクトスタンダードは 「src/ とは別に tests/ ディレクトリを切る」 というスタイルです。 なぜ言語によってテストコードの配置場所(文化)がこれほど異なるのでしょうか? その背景には、単なる「好み」の違いではなく、「コンパイルの仕組み」 と 「配布(デプロイ)の仕組み」 という技術的な必然性が隠されています。本記事では、Rust,C++, Pytho

現在のAI開発においては「バイブコーディング」が一つの潮流となっている。バイブコーディングは、開発者が目標を説明することで、エージェントがまとまったコードを生成してくれるものだ。ただし、バイブコーディングではコードが正しく見えても実際には動かないこともよくある。この課題を解決するため、Spec Kitは仕様書を実行可能な成果物として扱い、プロジェクトと共に進化させる手法を提案するものだ。 仕様駆動開発では、仕様書がエンジニアリングプロセスの中心となる。仕様を書くだけではなく、それを基に実装、計画、タスク分解が行われる。開発者の主な役割は方向性の指示であり、コーディングエージェントが実際の記述作業を担当する。 このプロセスは以下の4つのフェイズで構成される。 Specify(仕様作成):開発者がプロジェクトの概要(何を作りたいのか、なぜそれを作りたいのか)を説明し、コーディングエージェントが

WIPで新しい開発手法 WIP(Work-in-progress):仕掛り作業という意味 WIPという文字が付いていると、その作業はまだ終了しておらず、作業中であるとわかる。 一つの作業においても作業が様々あるので、それを細分化して書いておく。 例)進行中のチケットの状態 【WIP】#12345 ○○機能の新規追加 [✔] ○○.php にformを作成する [✔] ○○テーブルを作成する [ ] formをカスタマイズする [ ] formの挙動を確認する [ ] CSSの適応 [ ] テスト レビューワー(コードチェック)はWIPの状態を見ることで、その作業がどこまで進行しているかがわかり、タイトルの【WIP】が外れていたらその作業は完了(レビュー待ち)というように一目でわかるようになる。プロジェクト管理において、今あるチケットがどういう状態なのか「見える化」することができるようにな

生成AIが人間の介在なしに自律的にソフトウェアテストを生成し実行、バグや脆弱性を発見してくれるAIテストエージェント「Spark」登場ドイツに本社を置き、コード分析ツールなどを提供するCode Intelligence社は、起動すればあとは生成AIが人間の介在なしに自律的にソフトウェアテストを生成し実行することで、対象となるソフトウェアのバグや脆弱性などを発見してくれるAIテストエージェント「Spark」を発表しました。 An exciting milestone in softwaresecurity testing: ???? ???????????? ???????? ?????, ??? ?? ???? ????? ???? ????? ???? ??????? ????? ???????????! Read the PR: https://t.co/wfuautln8i#AI

ソフトウェアアーキテクトのための意思決定術 リーダーシップ/技術/プロダクトマネジメントの活用 作者:Srinath Perera,島田 浩二インプレスAmazon 私は現在、会社でアーキテクト[*1]という職位についています。実際のところは、自分の半分くらいの時間でチームのテックリードを務めつつ、半分くらいの時間でアーキテクトをしているという時間配分です。アーキテクトというのは、勤務先ではテックリードの上位に置かれているようなイメージで、テックリードがチーム単位での技術的なリードを司る職位だとすると、アーキテクトはチームの上位概念である事業領域単位での技術的なリードを司る職位、ということになります。 アーキテクトの主な仕事は、基本的にはテックリードと変わらず技術的な意思決定です。さまざまなトレードオフを掻い潜りながら、その時点での最適な結論を出すのがお仕事といったところでしょうか。ただ、
「OpenAPIを利用すると何ができるようになる?」 「OpenAPIとSwaggerは何が違う?」OpenAPIとはWebアプリケーション同士の安全な通信のために、どのような項目・形式で仕様を記載すべきか定義したフォーマットのことです。Excelなどで管理していたAPI仕様書をOpenAPIを用いて作成することで、フォーマットが統一されて管理しやすくなります。また、生成AIを活用すれば、さらに作業を効率化することも可能です。本記事では、以下の内容を詳しく解説します。OpenAPIの概要OpenAPIでできることOpenAPIのメリット・デメリットOpenAPIの書き方OpenAPIを利用する際に役立つツール本記事を読むことで、OpenAPIを導入することでできるようになることや、Swaggerとの違いが分かります。 開発やテストを効率化したいと考えている企業の方は、ぜひご

The “Test Pyramid” is a metaphor that tells us to group software tests into buckets of different granularity.It also gives an idea of how many tests we should have in each of these groups. Although the concept of the Test Pyramid has been around for a while, teams still struggle to putit into practice properly. This article revisits the original concept of the Test Pyramid and shows how you can


まさかこの学生も、自分の間違った数学のテストの答案用紙(当時は粘土板)が4000年後に後世に晒されるとは思いもよらなかっただろう。 間違いをやらかしたのはバビロニアの学生だった。 現在のイラクにあるキシュ遺跡から発掘された問題の粘土板は、直径およそ8.2cmの小さな円形のもので、現在はオックスフォード大学のアシュモレアン博物館に所蔵されている。 いったい何の問題を間違えたのか?三角形の面積を求める計算だ。 4000年前の粘土板に数学テストの間違った回答 キシュ遺跡からは、古代バビロニアの数学教育の痕跡だとされるおよそ24枚の粘土板が見つかっており、これはそのうちのひとつだ。 古代近東で使われていた楔形(くさびがた)文字が刻まれていて、課題は三角形の面積を計算するよう求めている。 三角形の高さは1.875cm、底辺3.75cmと記されている。 日本では小学校5年生くらいで習うはず。 三角形の

1. 『達人に学ぶDB設計徹底指南書 第2版』ミック 著 2. 『理論から学ぶデータベース実践入門―― リレーショナルモデルによる効率的なSQL』奥野幹也 著 3. 『WebAPI設計実践入門――API仕様ファーストによるテスト駆動開発』柴田芳樹 著 4. 『データモデリングでドメインを駆動する――分散/疎結合な基幹系システムに向けて』杉本啓 著 こんにちは、Java Championの谷本心 (@cero_t) です。これまでの2回の書籍紹介では主に今の私の技術力を培ってきた書籍を紹介したため、古いものや絶版になったものなども多く含まれていました。それに対して今回紹介するアーキテクチャ関連の書籍は、現在でも入手可能なもの、あるいは最近出版されたものとなっています。 アプリケーションアーキテクチャやシステムアーキテクチャは、本質的に変わらない部分もあれば時代とともにトレンドが変わる部分も

あれから4カ月目に突入した。Chromeにおけるトラッキングの混乱を収めるGoogleの努力は……複雑とでも呼ぼう。Chromeのトラフィックのうち、サードパーティCookieが使用されていないのは全体の1%にすぎない。 ところがその後、混乱が発生し、試行錯誤、臆測、図書館がいっぱいになるほどの戯言が交わされている。一時停止し、残骸を選別し、このデジタルサーカスショーの第2幕に備えるときだ。 ――まず、悪名高き1%にズームインしてみよう。 確かに、サードパーティCookieがなければ残骸のように見えるかもしれないが、世界中の広告幹部の欲求をそそるには十分だ。この4年間、臆測ばかりが飛び交っていたのだから、「前菜」としては上出来だろう。 2020年のあの衝撃的で不可解な発表を実現するための一歩だ。Googleが開発した技術、つくり上げた理論──これこそが、正しい方向に進んでいるかどうかのリト
![Cookie 廃止本格化から4カ月。いま直面している問題と混乱をまとめる | DIGIDAY[日本版]](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2f963bbf594bfec0557e05b2dde2525824053272e6%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttps%253A%252F%252Fdigiday.jp%252Fwp-content%252Fuploads%252F2024%252F03%252Fcookie-sunset-digiday_eye.gif&f=jpg&w=240)
2024/01/15(月) 12:00 〜 13:00t-wadaさんが後世に残したい、実録レガシーコード改善 https://findy.connpass.com/event/304101/ テストコードが無いコードを引き継いだところからはじまる、実際に2018年に行った受託開発案件のエ…

はじめに ※ (2024/03/14 16:33) 「インテグレーションテストの気軽な実行・変更ができない」節にて、データのクリーンアップを teardownで行うよう修正 EC開発-B グループの岡崎と EC開発-A グループの菊川です。2人とも普段は MonotaRO の EC サイトの開発に従事しています。 今回は、昨年11月に開催した、テストとリファクタリングのためのワークショップの中で行ったライブコーディングの準備をするにあたって困ったことについて記載します。 ライブコーディングでは、参加者全員の前で実際のプロダクトのソースコードをリファクタリングする、ということにし、それにあたって研修の運営メンバーでリファクタリングに取り組んでみました。ただ闇雲にリファクタリングするのではなく、研修では参加者に「どのような流れや考え方でリファクタリングをするか」を理解してもらえるように、運営メ

こんにちは。ナレッジワークの torii です。 7 月にフロントエンドエンジニアとして入社してもうすぐ半年、そろそろ技術記事の一つも書きたいなと思っていたところに、ちょうどいいネタを見つけたので投稿してみます! Jest から Vitest に移行してみた 早速やったことですが、フロントエンドのテストフレームワークを Jest から Vitest に移行しました。理由としては、Jest が CJS を前提として動作しており、ESM 前提のモジュールを動かすのに一手間も二手間もかかるからです。 ナレッジワークのフロントエンドはNext.js を採用しており、テストフレームワークにはNext.js と相性の良い Jest を採用していました。関数単位のテストやUI コンポーネントのテストを書く分には問題なかったのですが、それより上層(ページなど)になるとたちまち ESM 互換性の問題を

「回答者4万人のうち、65%が『API(アプリケーション・プログラミング・インターフェース)で利益を得ている』、92%が『APIへの投資を増やす』と答えた」APIの開発支援環境を提供する米Postman(ポストマン)のアビナフ・アシュタナCEO(最高経営責任者)兼共同創業者は2023年12月5日、東京都内で開いたデベロッパー(開発者)向けのイベントでこう語り、全世界で3000万人、日本で40万人を超えているPostmanの利用者が今後さらに増え続けると語った。 イベントにはPwCコンサルティングの大竹伸明代表執行役CEO、ウルシステムズの漆原茂代表取締役会長も登壇し、大竹CEOは経営ニーズから見たAPIへの期待を、漆原会長はAPIがもたらす開発者にとっての可能性をそれぞれ力説した。 ツールから出発、APIのハブに成長 ポストマンのAPI開発支援環境「Postman」を一言で説明するのは

GIGAZINEの新着ニュースを閲覧するには「GIGAZINEをお気に入り登録する」「GIGAZINEのSNSアカウントをフォローする」「GIGAZINEのRSSを購読する」といった方法があります。新たに、GIGAZINEの新着記事を速攻で確認できる公式Discordサーバーを開設しました。 「Discordのアカウント持ってないよ……」という読者も大丈夫。以下の手順に沿って操作すればすぐ参加できます。DiscordアカウントがあればGIGAZINEのサーバー以外にも多様なコミュニティに参加可能。作っておいて損はありません。 まずは、以下のウィジェット下部の「JoinDiscord」をクリック。 ウィジェットが表示されていない場合は、以下のリンクや画像をクリックしてもOK。 https://discord.gg/gigazine-gigazin-1037961069903216680 次

このコーナーでは、2014年から先端テクノロジーの研究を論文単位で記事にしているWebメディア「Seamless」(シームレス)を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。Twitter: @shiropen2 米Metaや米HuggingFaceなどに所属する研究者らが発表した論文「GAIA: a benchmark for GeneralAI Assistants」は、難しいタスクではなく、人間にとって簡単なタスクを達成する大規模言語モデル(LLM)を評価するためのベンチマークを提案している。この研究は、人間が日常で当たり前に実行してほしいタスクを正確にこなすLLM構築を目指すためのテスト集である。 現在のベンチマークは、人間にとってより困難なタスクを求めており、LLMには数学や法律などの複雑なタスクや、一貫性のある本を書くなどの複雑な課題が

どうも、レコメンド商品のシステム開発をしている野川と申します。 私は、2021年にモノタロウに新卒入社し、2022年5月からレコメンド商品の開発に関わり始めました。 モノタロウのレコメンド商品は、下の図の①~④の流れでクライアントサイドで表示しています。大部分の処理はJavaScriptで構成しており、UIもそのHTML部分をjQuery(JavaScript)で作成しています。 図:レコメンド商品表の流れ 入社当時私は、ソフトウェアエンジニアとして、「可読性の低いコードは駆逐するべきだ」「読みやすいコードだけが正義である」「理解しやすいシステムだけが皆を幸せにする」と心の底から考えていました。加えて、「なぜ先輩たちは可読性の低いコードを放置して平気なのか?」と疑問を持つこともしばしばありました。 レコメンド商品周りのコードはまさに可読性の低いコードベースとなっていたため、当事者となった私

Kotlinなどの開発元として知られるJetBrainsは、テクニカルドキュメントのための一連のツールを統合したドキュメントオーサリングツール「Writerside」のプレビューリリースを発表しました。 ソフトウェア開発においては、テキストで記述されたソースコードをGitでバージョン管理し、ビルドによって複数のソースコードを1つのアプリケーションへとまとめ上げ、コンパイルし、テストをして本番環境へのデプロイによりアプリケーションを公開します。 そしてこのプロセス全体を、さまざまな機能を備えたツールチェンを用いて自動化することで、ソフトウェア開発の効率を高めています。 一方で、例えばアプリケーションのチュートリアル、SDKやAPIのリファレンスドキュメントなどのドキュメントの制作過程においては、複数のファイルをフォルダにまとめ、手作業で目次のページとリンクさせることや、ソースコードのサンプル

インフラの環境構築を行ったときに、はい、環境です、と接続情報だけ顧客に提供したところで、そのまま受け取ってくれることはない。 ドキュメントはないんですか?。 何を作ったかを示すドキュメントとセットで初めて、プロにお金を払って仕事をしてもらった気持ちになる。今でも、ドキュメントを残せ、ドキュメントがないと今どうなっているかがわからなくなる、常に更新して最新にしよう、そんな掛け声は健在である。 このドキュメント、年々複雑さが増していると思う。というのも、IT関連のソフトウェアにしろクラウドにしろ、機能は増えるばかりだからだ。かつ、設定自体は年々洗練されており、デフォルト値で動くことも多い。たくさんの設定項目があるが、設定するのはほんの一部分である。 ドキュメントに何を残すべきか。設定値全てをドキュメントに書き込もうものなら莫大な量になる。一方で変更したものは少ししかない。このギャップが激しくな

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く