【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法はそれぞれ直交表を元に関連しているようだと思ったので、直交表から順を追って記載していこうと思います。しかし、それぞれが個別の手法として確立しており、その手法を使用するシーンも違うことから、記事としては独立させたほうが適切かと思ったので、まずは直交表についてまとめたのち、続いて別の記事でペアワイズ法をまとめていきます。
テスト(運用・保守・サポート)
開発用エディタ VSCode
VSCodeとは正式名称は「Visual Studio Code」。Microsoft社が提供している無償のテキストエディタです。多くの言語に対応しており、拡張機能やシンタックスハイライト、デバッグ機能なども用意されている為開発用エディタとして世界中の多くのユーザーから利用されています。この記事の対象者・ プログラミング初心者・ コストをかけず、開発を始めたい方・ 開発時に生産性を上げるたい方・ VSCodeにどんな拡張機能があるのか知りたい方
開発環境関連(PG/バックエンド)
初心者向けAWSでサーバを構築する手順
Docker環境を取り扱うためのAWS環境のセットアップ手順と、AWS環境へのデプロイを実施し、その構成の学習を目的とします。最終目標としてDocker環境をサーバにデプロイし、本運用を見越したDocker環境でのリリースを実施します。環境・Windows 10・VSC version 1.83.1・Docker Desktop ・AWS
その他(PG/バックエンド)
【初心者用】SQL インデックスとビューについてまとめてみた
参考サイト https://style.potepan.com/articles/25208.html SQLのインデックスとは? 作成、確認、削除方法からメリットまで解説! https://medium-company.com/sql-index/ SQL インデックス(INDEX)を作成・削除する http://dbonline.s25.xrea.com/sqlite/index/index3.html UNIQUEインデックス https://www.sejuku.net/blog/52356 SQL入門 PRIMARY KEY(主キー)制約とは? 追加や削除についても解説 https://style.potepan.com/articles/26878.html SQL 主キー(PRIMARY KEY)制約って何? サンプルコードで基本的な使い方を確認しよう! https://smallit.co.jp/blog/a1015/ BLOG SQLのビューについて https://products.sint.co.jp/siob/blog/view ビューとは? 使い方を解説 https://style.potepan.com/articles/25504.html SQLのビューって何? 基本的な使い方を理解しよう https://cs.wingarc.com/manual/drsum/5.5/ja/UUID-3b6e70a4-5a0d-205e-4b2b-fcb2df959cfd.html ALTER VIEW ビューの定義を変更する
製造・コーディング(SE)
【初心者用】CakePHPを学んでいこう②(インストール・動作確認)
前回はCakePHPについての基礎知識について紹介しました。 今回はXAMPPにCakePHPをインストールし、実際に画面を表示してみるところまでご紹介いたします。
製造・コーディング(PG/バックエンド)
【初心者用】Pythonが何なのかメリット・デメリットの面からまとめてみた
エンジニアとしてのキャリアが短く、データベース・SQLについて疎い自分がデータベースとSQLについて基本から学びながら、データベースとは何か、SQLとは何かを分かりやすいように説明していきます。
製造・コーディング(インフラ)
【初心者用】CakePHPを学んでいこう③(モデルの作成とデータ更新)
前回はCakePHPのインストールから簡単な画面表示までをご紹介しました。 今回は前回の続きとなる、簡単なModelの作成と取得したデータベースのデータを更新するところまでご紹介いたします。
製造・コーディング(PG/バックエンド)
【Excel VBAマクロを実行するための初期設定】(4回目)
前回、次回は長いマクロを書くとお話しましたが、その前にマクロを書く中で実施しておくと、便利なコードをお伝えしていきたいとおもいます。その後に少し長いコードも実施していければとおもいます。実施しておくと便利なコードとは、4つの停止マクロです。その4つ停止を事前におこなっておけば、マクロは早く動くようになるので、高速化をするのによく使われます。なぜ、高速化をするかというと、ある程度長い処理を実施した場合、高速化を実施しているとしていないのとでは、実行する時間が全然違うからです。すごく違う時は、10分で終わるマクロも高速化すると半分以下になったりします。便利なコードなので、初心者の方はスタートから書くようにするといいと思います。
製造・コーディング(SE)
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
2023年10月02日
製造・コーディング(PG/フロントエンド)2023年07月18日
アーキテクト・技術選定(PG/バックエンド)2023年10月26日
テスト(運用・保守・サポート)2023年11月17日
学習・スキル2023年01月09日
詳細設計(内部設計)(インフラ)
週間人気記事
もっと見る【初心者用】IISについて調べてみた
個人でプログラミングを勉強する際にIISを使用することになったのですが、「IISって具体的には何だっけ?」となったのでまとめてみます。 タイトルにある通り、初心者向けに極力噛み砕いて説明していきます。
製造・コーディング(PG/バックエンド)
Git GUIツールの使い方:初心者向けチュートリアル
Gitとは、分散型バージョン管理システムの1つで、コードやファイルなどの変更履歴を記録し、複数の人で同時に開発を進めるために使われます。Linuxの開発者であるLinus Torvaldsによって開発され、現在は世界中の多くの企業やオープンソースプロジェクトで使用されています。Gitは、ファイルの変更履歴を保存するための「リポジトリ」と呼ばれるデータベースを持ち、このリポジトリに対してコミットと呼ばれる操作で変更履歴を追加していきます。また、ブランチと呼ばれる分岐を作成して、異なるバージョンのコードを管理します。Gitの主な特徴としては、以下のようなものが挙げられます。・ローカルでの高速な動作・分散型であるため、オフラインでも開発ができる・変更履歴を管理しやすく、コードの品質を高めることができる・大規模なプロジェクトでもスケーラブルに対応可能Gitは、コマンドラインツールを使って操作することもできますが、GUIツールを使って操作することもできます。
アーキテクト・技術選定(PG/バックエンド)
【これからJP1に触れる人向け】JP1とは
開発プロジェクトに携わる際にJP1というツールに触れたことはあるだろうか。JP1は開発工程、特にテスト作業においては非常に利便性の高いツールである。この記事ではまだJP1に触れたことがない人向けにJP1の概要やJP1を合う買う際に知っておくべき用語を取り上げる。
テスト(運用・保守・サポート)
インデックスとは?メリットデメリットやインデックスの種類も交えてご紹介
インデックスとは、データベースを扱う際には欠かすことのできない概念となります。インデックスの取り扱いによって、データのアクセス速度が大きく変わります。特に大規模なデータを扱う場合には、取り扱いに気をつけなくてはなりません。インデックスを設定した結果、処理速度が遅くなってしまうことやそもそもインデックスを使用するような実行計画が選択されないこともあるのです。インデックスは、DBMSの種類(例えば、OracleやMySQL、Postgreなど)によっても異なります。インデックスの仕様を知らないと、開発者にとって意図しない処理をしてしまう可能性もあります。そこで今回はインデックスについてメリットデメリットや具体的にどのような種類があるのかを説明していきます。
学習・スキル
JUnitとは何か?初心者向け入門ガイド
Junitは、Java言語用のオープンソースの単体テストフレームワークです。単体テストは、プログラムの各部分が個別に正しく動作するかを確認するために行われます。Junitは、テスト駆動開発(TDD)と呼ばれるアジャイルソフトウェア開発の手法をサポートするために開発されました。Junitは、テストケースの定義、テストの自動実行、テスト結果のアサーション(検証)など、テストに必要な機能を提供します。また、テスト結果のレポーティング機能も備えています。Junitは、プログラマーにとって非常に便利なツールであり、プログラムの品質を向上させるために欠かせないものとなっています。Junitを使用することで、プログラムの変更がもたらす影響をすばやく確認することができます。
テスト(PG/バックエンド)
【初心者向け】Packet Tracerでネットワークを学ぶ(DHCP)
DHCP(Dynamic Host Configuration Protocol)は自動的にIPアドレスやサブネットマスク等をPCやルータに配布してくれるプロトコルです。
詳細設計(内部設計)(インフラ)
組み込み開発とOSの関係は?汎用OSとの違いから将来性まで
組み込み開発とは、家電や自動車、ロボットなどに搭載される制御ソフトウェアを開発することです。組み込み開発には、OS(オペレーティングシステム)という重要なソフトウェアが必要です。OSとは、機器の基本的な動作や管理を行うソフトウェアのことで、組み込み開発では、組み込みOSと呼ばれる特殊なOSを使用します。この記事では、OSとは何か、組み込みOSとは何か?組み込みOSの種類から、その需要と将来性まで解説していきます。
初心者
【初心者用】ifconfigの出力結果の見方
Linuxシステムでネットワーク設定や情報を確認するための基本的なコマンドの1つがifconfigです。この記事では、初心者向けにifconfigコマンドの使用方法、オプション、出力結果の解釈について詳しく説明します。また、具体的な使用シーンや例、関連するコマンドや技術についても紹介します。
その他(インフラ)
