【初心者向け】ソースコードを読む
Javaの学習をしているとソースコードを読んで理解しなければならないという状況があると思います。実際にプロジェクトに参画したばかりの時も読むことが多くなると思います。また業務の8割がコードを読むこととも言われてます。そのためソースコードを読む方法を知らなかったり、読めなかったりすると業務に支障が出てきます。今回は、学習方法の一つ、「ソースコードを読む」ということについて例をいくつかあげながらコツを含めて解説していきたいと思います。
【オブジェクト指向】継承、コンポジションの違いと使用方法
まずはじめに、オブジェクト指向言語とはソフトウェアの考え方で「さまざまな処理を部品ごとに分けて、それらを1つにまとめプログラミングしていくという考え方」を表しています。よく自動車の例が挙げられていますが、ほとんど同じですがここでは自動販売機を例にあげてみます。まずは自動販売機の動作をおさらいしてみますが、「お金を入れる」→「購入できる飲み物のボタンが光る」→「ボタンが押されたら飲み物が出てくる」というようなものが共通の動作としてあると思います。この共通の動作を色々な自動販売機に流用していくというのがオブジェクト指向の考え方です。「お金を入れる」処理を1000円ガチャなどに流用すると、小銭が使えなくお札のみ使用できるという処理を1から作らずに応用して作成することができます。こういった考え方をプログラムに落としたものがオブジェクト指向といいます。今回はその中で、「継承」、「コンポジション」についてそれぞれの違いと使用方法について簡単に説明していきます。
【初心者向け】ORMとは
ORMとは英語でObject-Relational Mappingといい、オブジェクト指向プログラミング言語とリレーショナルデータベースとのマッピングを行うものになります。またそれぞれの互換性を向上させるために設計されたプログラミング技術でもあります。ORMの基本的な構造として、プログラミング言語のクラスとデータベースのテーブルを関連付けや対応付けを行うことから始まります。これにより、エンジニアは直接SQLクエリを作成することなく、ORMを通じてデータベースとやりとりを行うことができます。そもそもオブジェクト指向プログラミング言語と、リレーショナルデータベースとはなにかを簡単に説明します。オブジェクト指向言語:データ(オブジェクト)とそれに関連する操作(メソッド)を組み合わせてプログラムを構築するプログラム言語のことです。リレーショナルデータベース:データを表形式で管理するデータベースの一種です。リレーショナルデータベースでは、データが複数のテーブルに分割され、それらの表の間に関係性が定義されています。ではなぜORMという技術が出てきたのでしょうか。
【JSTQB】テストの基礎①
JSTQB認定テスト技術者資格とは、日本におけるソフトウェアテスト技術者資格認定の運営組織であるJSTQB(Japan Software Testing Qualifications Board)により認定される、ソフトウェアテスト技術者資格です。
DDLを使ったオブジェクトの定義
業務では、何らかのアプリケーションを使ってデータベースのデータを管理や運用しますが、そのデータを格納するためのテーブルを作成する必要があります。ここでは、テーブルの管理をする際に登場するDDL(データ定義言語)について記載します。
製造・コーディング(PG/バックエンド)
GitとGitHubの違いとは?基本的な役割から主要コマンドまで徹底解説!
ソフトウェア開発の現場や、プログラミングを学ぶときに、必ず出てくるのがGitとGitHubです。しかし、GitとGitHubはどのように異なるのか、またそれぞれがどのような役割を果たしているのかを正確に理解している人は意外と少ないかもしれません。この記事では、GitとGitHubの基本的な概念から、それぞれの特徴や役割、そしてバージョン管理の重要性について分かりやすく解説します。
【ソフトウェアテスト】欠陥分析手法について
「【ソフトウェアテスト】不具合報告のインシデントレポートについて」記事で記載したとおり、インシデントはチケット作成して報告されたのち、内容を分析して対応をし、作成から完了に至るまで管理します。そうして蓄積されたインシデントレポートは、報告対応されたそのレポート自体が、以降で類似の現象を検出した際の資料として用いられる面もありますが、内容を分析することで、今後の開発品質向上を目指すための判断材料として活用することができます。いずれのインシデントレポートも、何かしら問題があったから作成されているものであり、問題点は解決した時点で完了とはせずに、内容を振り返って同じ轍を踏まないように以降の活動を随時改善していくことが肝要です。近年のアジャイル化が進んでいるプロジェクトなどの場合は、直近の開発内容に対するインシデントレポート単体を都度分析するような時間も設けられずに次々進んでいくことがありますが、プロジェクト全体としてインシデントレポートを統合管理し、アジャイル開発の各プロジェクト進行とは別途で機会を設けて、振り返りと共に不具合分析を行うことは、高品質な開発を目指す上で必要な活動です。ソフトウェア開発現場の現状として、プロジェクト形式もインシデントレポート形式もさまざまある状況なので、欠陥分析の手法もこれが絶対という唯一のものではなく、状況や期間などに合わせて必要な手法でアプローチをすべきです。統計的内容に基づく分析、インシデントごとの要因に基づく分析、その両面からの分析など、どのような面からアプローチするかによって用いる手法もさまざまあります。
テスト(運用・保守・サポート)
【ソフトウェアテスト】エラー推測テスト
エラー推測テストは経験ベーステストの一種です。最も単純な表現をするならば、「どうすればエラーが発生するか」を想像して試行し、エラーを再現させることを目的としたテストの手法です。
テスト(運用・保守・サポート)
Springを使ったAPIの実装方法
そもそもAPIとは、簡単に言うと他社が作った機能を自社のサービスに簡単に取り入れることができます。 例として、自分が住んでいる地域の天気予報が知りたいときにAPIを利用すると、住んでいる地域の情報を引数として相手に教えてあげると結果として自分の住んでいる地域の天気予報データが取得できたりします。 他にも、運送業者などが荷物発送のタイミングでメッセージアプリのAPIを利用すると荷物の発送通知などが利用者に簡単に伝えることができます。 APIを利用すると自社システムの開発の工数を減らすことができ、API利用可能なサービスはAPIを利用することでスムーズに自社のシステムに取り入れることができます。 ただメリットばかりではなくデメリットもあります。 APIの仕様変更やサービスの停止でシステムがうまく動作しなくなったり、APIを運用しているサーバーで不具合があったときはAPIは利用できず APIを過剰に利用せず自社システムである程度対処できるようにしておくことも大事です。
製造・コーディング(PG/バックエンド)
【初心者用】Docker(ドッカー)とは?
Dockerは今や当たり前に使われているプラットフォームですが、実務で使用することになったため、今更ながら自分なりに調べてまとめてみました。
開発環境関連(PG/バックエンド)
インデックスとは?メリットデメリットやインデックスの種類も交えてご紹介
インデックスとは、データベースを扱う際には欠かすことのできない概念となります。インデックスの取り扱いによって、データのアクセス速度が大きく変わります。特に大規模なデータを扱う場合には、取り扱いに気をつけなくてはなりません。インデックスを設定した結果、処理速度が遅くなってしまうことやそもそもインデックスを使用するような実行計画が選択されないこともあるのです。インデックスは、DBMSの種類(例えば、OracleやMySQL、Postgreなど)によっても異なります。インデックスの仕様を知らないと、開発者にとって意図しない処理をしてしまう可能性もあります。そこで今回はインデックスについてメリットデメリットや具体的にどのような種類があるのかを説明していきます。
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
2023年10月02日
製造・コーディング(PG/フロントエンド)2023年07月18日
アーキテクト・技術選定(PG/バックエンド)2023年10月26日
テスト(運用・保守・サポート)2023年11月17日
2023年01月09日
詳細設計(内部設計)(インフラ)
週間人気記事
もっと見る【これからJP1に触れる人向け】JP1とは
開発プロジェクトに携わる際にJP1というツールに触れたことはあるだろうか。JP1は開発工程、特にテスト作業においては非常に利便性の高いツールである。この記事ではまだJP1に触れたことがない人向けにJP1の概要やJP1を合う買う際に知っておくべき用語を取り上げる。
テスト(運用・保守・サポート)
インデックスとは?メリットデメリットやインデックスの種類も交えてご紹介
インデックスとは、データベースを扱う際には欠かすことのできない概念となります。インデックスの取り扱いによって、データのアクセス速度が大きく変わります。特に大規模なデータを扱う場合には、取り扱いに気をつけなくてはなりません。インデックスを設定した結果、処理速度が遅くなってしまうことやそもそもインデックスを使用するような実行計画が選択されないこともあるのです。インデックスは、DBMSの種類(例えば、OracleやMySQL、Postgreなど)によっても異なります。インデックスの仕様を知らないと、開発者にとって意図しない処理をしてしまう可能性もあります。そこで今回はインデックスについてメリットデメリットや具体的にどのような種類があるのかを説明していきます。
【初心者用】ASP.NETのサーバーコントロールの種類をまとめてみた~その2~
ASP.NET Webフォームで使われるサーバーコントロールについてまとめてみたので、メモがてら記事にします。 それぞれのサーバーコントロールについて、固有のプロパティ等を具体例を交えてざっくり説明していきます。 (ID等の共通するプロパティは別記事で説明しているため、今回は取り上げません) 今回説明するサーバーコントロールは、以下になります。 ・HyperLink コントロール ・CheckBox コントロール ・RadioButton コントロール サンプルコードの開発環境は、 ・Microsoft Visual Studio Community 2022 実行ブラウザは ・GoogleChrome です。
製造・コーディング(PG/バックエンド)
【Java】Lombokという便利なライブラリについて学ぼう
皆さんはJavaのライブラリであるLombokについてご存じでしょうか。私は開発業務で使用した経験がありますが、恥ずかしながらどういったライブラリなのか、あまり知らずに使用していました。Lombokとはなにか、メリット・デメリットはなにかをこの記事作成を通して調査し、まとめました。
GitHubのReadmeをMarkdown記法で書く
Markdown記法は、プレーンテキストに特定の書式を付けることで、簡単にWebページやドキュメントを作成するための記法です。Markdown記法は、文書の見た目を整えるためのHTMLタグを記述する必要がなく、テキストファイルとしても読み書きが容易であるため、多くの人々によって広く使用されています。
プロジェクト推進・管理(PG/バックエンド)
CIとは何か?代表的なCIツールの特徴とメリット・デメリットを解説
CIとは、開発者がコードを頻繁に統合し、自動的にテストやビルドを行うことで、品質や効率を向上させる手法です。 CIを実現するためには、CIツールと呼ばれる専用のソフトウェアが必要です。 CIツールは、コードの変更を検知し、自動的にテストやビルドを実行し、結果を報告する機能を提供します。しかし、CIツールには様々な種類があり、それぞれに特徴やメリット・デメリットがあります。 では、どのようにしてCIツールを選ぶべきでしょうか? この記事では、代表的なCIツールの概要と選び方について解説します。
