検索キーワード: 「リーダブルコード」


【Swift】MVPアーキテクチャの簡単なサンプル【iOS】

今回はModel-View-Presenter[MVP]アーキテクチャのデザインパターンで簡単なサンプルを作成します。ModelではDBやAPIアクセスの処理、Presenterではその他の処理、描画はViewで行う考え方に基づき実装しました。これから作るサンプルではModel内でRealmSwiftを使用します。環境・MacOS Ventura 13.0・Xcode 14.2・Swift version 5.7.2

製造・コーディング(PG/フロントエンド)

【ソフトウェアテスト】CFD法

CFD法はCause Flow Diagram(原因流れ図)を略したもので、原因の集合と結果をそれぞれの関係のつながりにフォーカスして図式化し、そこからデシジョンテーブルを想定してテストケースを作成する技法です。システム設計において、正常な動作の仕様を基本として異常系の仕様もエラー動作実装のため明確に定義されているべきですが、テスト実施の際には、仕様想定上の正常系・異常系動作確認はもとより、考え得る限りの準正常系テストケース網羅も必要です。そうしたケースの考慮が足りていないと、リリース後にユーザーが想定外の操作を実行して重篤な不具合につながったり、あるいは仕様の穴を付いた不正処理などを実行されたりして、プロジェクトやサービスに損失が発生したりします。原因・結果・各関係を図示して明確に関係を洗い出すことで、実装段階では考慮が漏れているような挙動についても抜けや漏れをカバーするようにテストすることができます。また、エラーに関するもののみではなく、同値分割が可能な原因が複数関連して複数の結果が想定されるというシステムで、その関係性を図にして流れを見ることで、テストケース作成がグラフィカルに把握しやすくなります。インターネットでクレジットカードを利用して決済処理を実行する際に、完了までには以下の様な結果パターンが想定されます。・カード情報入力エラー(入力したカード利用情報に問題がある)・決済処理不能エラー(登録しているカード情報の照会時にエラーが発生)・通信不良による接続タイムアウトエラー(決済実行から完了までの通信時間が規定の時間内に処理されないことによるエラー)・決済完了上記4パターンの結果を返すまでの原因は、細部まで書き出すと煩雑になります。・複数の入力フォームに入力した情報のどこがエラーになったか・カード情報照会時にどのような理由でエラーになったか・どのページからどのページに遷移するときにエラーになったか・何秒以上の通信待機時間を過ぎたら通信エラーで処理するか等これらを一つの枠に収めてそれぞれを線でつなぐことで関係性を整理できるのが、このCFD法の利点だと思います。

【ソフトウェアテスト】直交表/ペアワイズ法 ①

本記事では直交表について記載します。さまざまな資料を調べて情報をまとめているうちに、直交表、ペアワイズ、HAYST法はそれぞれ直交表を元に関連しているようだと思ったので、直交表から順を追って記載していこうと思います。しかし、それぞれが個別の手法として確立しており、その手法を使用するシーンも違うことから、記事としては独立させたほうが適切かと思ったので、まずは直交表についてまとめたのち、続いて別の記事でペアワイズ法をまとめていきます。

【ソフトウェアテスト】ユースケーステスト

ユースケース(use case)テストとは、システム開発要件や機能仕様などのテスト対象に対して利用者サイドから想定しうるテスト対象の使用状況や相互の作用をユースケースとしてシナリオを想定することで、対象の利用に際して問題がないかを主軸にしてテストを行う手法です。シナリオを想定してテストを行うため、シナリオテストと混同されやすいですが、シナリオテストと比較してテスト対象や目的やテストの粒度など違う部分があるので、ユースケーステストとシナリオテストはそれぞれ別の手法として、実施するテストケースに応じて使い分けが必要です。シナリオテストは主に特定の機能や操作の流れを一連のシナリオとしてテストするもので、対象となる仕様や要件のみならず、ストーリーとして関連が想定される動作や異常系処理などもテストスコープに含むため、ユーザーサイドの視点で対象に対して詳細なテストを実施しますが、ユースケーステストは、あくまで対象となる仕様や要件から想定されうるユーザーストーリーをテスト対象とする前提で、シナリオテストよりもテストスコープは狭くなると想定されます。また、記事内にて後述しますが、ユースケース図を用いていることもユースケーステストの特徴であり、シナリオを順序立てる記述形式はシナリオテストもユースケーステストも同様ですが、テストケースの整理や共有の方法によってテストケース自体をレビューできるため、静的テストのアプローチがしやすいテスト技法です。

【初心者用】APIについて

APIは現在色々な企業のソフトウェアのAPIが配布されているので、実際に開発をする際になくてはならないものとなっています。ですので、開発する際には必須となりそれを使用する知識は前提として覚えておく必要があります。そのため、自身でReact関連の勉強をハンズオンでしている中でAPIの作成と、APIを使用してSNSアプリ等作成している途中で学んだので復習のためまとめようと思います。

その他(PG/フロントエンド)

GitHub Actions でCIテスト・デプロイハンズオン

アジャイル開発ではスプリントを決めて開発を行い、修正を都度対応する必要があるため、スピード感を求められる開発現場が多い。そのため、継続的インテグレーション(CI)や継続的デリバリー/継続的デプロイ(CD)を導入し、マージやデプロイのコストを下げ、効率的な開発を実施したいが、初期導入コストや学習コストなど様々な観点から実施が見送られるケースも少なくない。今回はCI/CDを学習し、プロジェクトに対して現実的に導入する際のメリット・デメリットに関して言及していきます。

その他(PG/バックエンド)

C言語とC#・Objective-Cの違い

C言語は1972年にAT&Tベル研究所と呼ばれる場所で、ブライアン・カーニハンとデニス・リッチーが開発したプログラミング言語です。プログラミング言語の中では比較的歴史の長いものでありながら、現在でも現役で開発に利用されています。実際、「TIOBE Index for April 2021」と呼ばれるプログラミング言語の人気・利用状況ランキングを見ると、C言語は1位に君臨しています。2020年は2位でしたが、2021年には1位になっていますので今でも多くの需要があり注目されていると考えられます。また、C言語には資格も様々あり、需要に応えられるよう専門的に学ぶこともおすすめの言語です。C言語はコンパイルが必要なプログラミング言語です。コンパイルが必要なプログラミング言語は、処理速度が早い特徴があります。他のプログラミング言語よりも高速なアプリケーション開発が可能となり、その点が今でもC言語を活用する理由ともなっています。

製造・コーディング(PG/フロントエンド)

【Excel VBAマクロを実行するための初期設定】(1回目)

ExcelでVBAマクロを実行する際、事前準備(設定)が必要です。Excelを開いたら、VBAの開き方がわからないというところから始まるとおもいます。VBAを開くだけなら「Alt +F11」で開けると思いますが、もっと便利に設定を行って行きたいとおもいます。本画面はWindwos11にて実施したものになります。Windows10とほとんど同じになりますが、画面のハードコピーが少し違う場合があります。また、Excelは2021を使用しておりますが、VBAに関しては開いてしまえば変わらないとおもいます。「ファイル」-「オプション」の場所がバージョンにより、異なる可能性があります。

製造・コーディング(SE)

【初心者用】SQLのテーブル結合についてまとめてみた

今回は現場で使用するSQLの技術である「テーブル結合」について記事をまとめてみた。 参考サイト MySQL入門4 テーブル結合とは? 内部結合と外部結合を解説! https://snome.jp/database/db-intro-4/ 初級編10 SQL Serverのテーブル結合(JOIN)の基礎 https://kaya-soft.com/sqlserver2008-toranomaki/beginner/jointable/ 内部結合(INNER JOIN句) https://www.dbonline.jp/sqlite/join/index1.html 外部結合(OUTER JOIN句) https://www.dbonline.jp/sqlite/join/index2.html

製造・コーディング(SE)

【初心者用】Javaのループ処理についてまとめてみた

ループ処理とは、ループ(繰り返し)の名前の通り、同じ処理を繰り返し実行させる処理のことです。 全く同じ処理を繰り返させるだけであれば、大した仕事はできないのですが、ループ処理の中で変数の値を変化させたり、ループ処理の中にさらにループ処理を加えて入れ子にしてみたりすることで、複雑な処理をこなせるようになります。 今回は、Javaで使われるループ処理について、以下の4種類の文法を調べたので、それらについて説明していきたいと思います。

製造・コーディング(PG/バックエンド)

【初心者用】IISについて調べてみた

個人でプログラミングを勉強する際にIISを使用することになったのですが、「IISって具体的には何だっけ?」となったのでまとめてみます。 タイトルにある通り、初心者向けに極力噛み砕いて説明していきます。

製造・コーディング(PG/バックエンド)

【初心者向け】Packet Tracerでネットワークを学ぶ(CLI操作の基本編②)

Packet Tracerでネットワークを学びます

詳細設計(内部設計)(インフラ)

関連タグ

カテゴリ別人気記事

もっと見る
テレワーク関連人気記事

週間人気記事

もっと見る