API構築の基礎を学んだ。QConは、開発者コミュニティにおける知識とイノベーションの普及を促進することで、ソフトウェア開発に力を与える。実務者主導のカンファレンスであるQConは、チーム内のイノベーションに影響を与える技術チームのリーダー、アーキテクト、エンジニアリングディレクター、プロジェクトマネージャー向けにデザインされている。Sheehy氏は、人工知能ハイプ時代における責任ある開発者としてのあり方について、洞察に富んだ開会基調講演をした。Grizzanti氏が、「スタッフ・プラス」への道と、それを「科学」というより「芸術」としてとらえ、芸術を創作することとソフトウェアを創作すること、そして組織のダイナミクスに対処することの類似性について語っている。Codeを採用する:確認するべき6つの適性LCNC(ローコード/ノーコード)プラットフォームは、プログラマーだけでなくプログラマーでなくても、最小限のコーディングとワンクリックのデプロイメントで、アプリケーションソフトウェアを開発できるよう設計されている。ドラッグ&ドロップ方式のインターフェースなどを利用することで、開発・デプロイメントプロセスを簡素化し、効率的なアプリケーション開発とデプロイメントを実現する。Software”と題したプレゼンテーションを行った。Frank氏が提案するのは,開発規模や企業の状況に関係なく,ソフトウェアにテストは不可欠であるということだ。開発ワークフローにDockerを取り入れることで,テストフレームワークの記述と実行をより効率化することができる。最終的にはそれがユーザに対して,高品質なソフトウェア製品の継続的な提供を可能にするのだ。Codeshipのベテランソフトウェア技術者である氏は,講演の冒頭で,ごく初期のマシンがコンピューティングに使用されていた時代から,ソフトウェアテストが行われていたことを紹介した。Laboratory)で大砲の砲撃軌道を計算していた,世界初の汎用電子計算機であるENIACをプログラムしていた女性は,手計算された既知の正しい値を使用して,計算結果を定期的にチェックしていた。テストは,ペアプログラミングやバージョン管理,コードレビュー,高可用性アーキテクチャといった他のテクニックと同様,“製品としてのソフトウェア開発”に不可欠な部分なのだ,とFrank氏は提唱する。テスト実施に対するモチベーションとしては,レグレッションを発生させないアプリケーションのアップデートの実現,アップデートの機能検証,リファクタリングが既存機能を損ねていないことの確認,といったものがあげられる。テストの作成や実行でしばしば感じるフラストレーションの中には,ローカルで実施するテストスイートに時間が掛かり過ぎること,通常の開発ワークフローからの逸脱,適切なテスト環境構築が困難であることなどが含まれている。これに対してFrank氏は,テスト生成と実行のプロセスにLinuxコンテナとDockerツールボックスツールスイートを採用することで,フラストレーションをある程度軽減することができるのではないか,と提案した。Composeを使えば,一貫性と再現性を持ったコンテナ環境を簡単に実現することができる。Composeを使ってローカル環境を構築しているが,そのレベル止まりだ,とFrank氏は言う。予測と再現の可能な環境構築にDockerを使えば,開発作業でも同じメリットを得ることができる。それは品質保証のプロセスにも大きなメリットとなり得るはずなのだ。Dockerは予測可能,再現可能なテスト環境を実現します。Composeワークフローをある程度修正する必要がある,とFrank氏は警告する。Composeが‘dockerfile’でサポートしているさまざまな環境変数や実行ターゲットを参照するために,別のDockfileを使用しなくてはならない場合もある。コンテナやアプリケーション,データストアを複雑に配置して活用するのであれば,初期化と実行の競合状態の発生を回避するための注意も必要だ。up’コマンドは,ComposeのYAMLコンフィギュレーションファイルにエンコードされた自動テストスイートの実行に利用できる。下に示すように,run’コマンドを使って同じようなサービスを実行することも可能だ。path/to/spec.rb継続的インテグレーションとテストは連携して進むものだ,とFrank氏は言う。適切なテストカバレッジを欠いたCI/CDに過度に依存するのは間違っている。製品の問題点を探すことよりも,失敗したテスト実行の方に目が向いてしまうのが容易に想像できるからだ。テストの実行は,可能な限り実運用に近い環境で行うように注意する必要がある。これについてFrank氏は,アプリケーションをコンテナ内で実行することで(さらに開発もコンテナ内で行うことで),ビルドパイプライン内のテストもコンテナ内で進めることができると主張する。これを実現する方法として,‘Docker-in-Docker’構成を使いたいと思う開発者もいるかも知れない。twice.’などの記事を参考にすることを提案した。開発プロセスでコンテナを使用しようという場合,特定のワークロードを実行するための‘小型VM’としてコンテナを(間違って)考えていることが多い,と氏は指摘する。コンテナをもっと正しく,シンプルなOSプロセスとして扱うならば,さらに多くのメリットをテストプロセスで実現することができる。コンテナ化されたアプリケーション上で,複数のテストを同時並行的に実行することが可能だ。EUカンファレンスのテーマを踏まえた上で氏が主張したのは,テストコードカバレッジの一定水準以下への低下,コードチェック(lint)エラーの増加,あるいはRatchet上の違反などといった品質低下となって現れるビルド不良に対して,より並列度の高いビルドパイプラインを加えることで,開発するソフトウェアの品質向上が可能になる,という点である。Dijkstra博士の言葉を引用し,テストは不可欠なものだがソフトウェアの無謬性を保証するものではない,過度な期待をしてはいけない,と述べて,講演の結論とした。テストはバグの存在を証明する上では非常に効果的ですが,バグが存在しないことを示すにはまったく不十分なのです。使用されたスライド資料はSlideShareにある。YouTubeチャネルで間もなく公開される予定だ。毎週火曜日に前週のまとめコンテンツをお送りいたします。(日本語版は不定期リリース)25万人のシニアな開発者コミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。毎週火曜日に前週のまとめコンテンツをお送りいたします。(日本語版は不定期リリース)25万人のシニアな開発者コミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。Inc.プライバシーBT。