投稿

[PHP] コールバック関数について

PHPのコールバック関数とは、呼び出し先関数の中でさらに呼び出される関数のことを言います。コールバック=「後で呼び出される」という意味があります。 ここではコールバック関数の基本的な使い方、無名関数を使った呼び出し、コールバック関数を使ったいくつかの例についてまとめていきます。 コールバック関数 実装例 コールバック関数はcallable型で定義され、呼び出された関数内で実行(コールバック)されます。 以下の例は一番簡単な例です。test_callback関数の引数にコールバックさせたい関数名を指定して、test_callback内でコールバックしています。 コード function test_function() { print __FUNCTION__ . "\n"; } function test_callback(callable $function) { $function(); } test_callback("test_function"); 実行結果 $ php test_callback.php test_function 無名関数で指定する実装例 callable型は以下のように無名関数で指定することも可能です。 コード function test_callback(callable $function) { $function(); } test_callback(function() { print __FUNCTION__ . "\n"; }); 実行結果 無名関数で指定した場合、関数名が無いので __FUNCTION__ は以下のように出力されます。 $ php test_callback.php {closure} array_map関数 配列の全要素に対して処理を行う array_map関数は配列の全要素に対して処理を行うための関数です。従来配列の全要素に対して処理を行う場合、for文やforeach文を使用して記述していましたが、これが簡潔に記述できるようになります。 なお、array_map関数は引数に指定した配列を直接変更するのではなく、処理した結果の配列を返します。

[PHP] 可変関数/可変変数について

可変関数は関数名を変数に設定して、変数に応じて対応する処理を呼び出すことが出来る関数です。 また、関数と同様に、変数に関しても可変にすることが出来ます。 可変関数 構文 $変数() [実装例]通常の関数を可変関数として呼び出す コード function test_variable_function(string $value) { echo $value . "\n"; } $function = "test_variable_function"; $function("call variable function test."); 実行結果 このコードは正しく実行でき、以下のように出力されます。 call variable function test. [実装例]オブジェクトのメソッドを可変関数として呼び出す - 1 クラスオブジェクトのメソッドを可変関数で呼び出す場合は、呼び出すための変数を配列で指定し、第一引数にオブジェクトのインスタンス、第二引数にメソッド名を指定します。 コード class Test { function test_variable_function(string $value) { echo $value . "\n"; } } $function = [new Test(), "test_variable_function"]; $function("call variable function test."); [実装例]オブジェクトのメソッドを可変関数として呼び出す - 2 クラスオブジェクトのメソッドを可変関数で呼び出す場合は、呼び出すための変数を配列で指定し、第一引数にオブジェクトのインスタンス、第二引数にメソッド名を指定します。 コード class Test { function test_variable_function(string $value) { echo $value . "\n"; } } $test = new Test(); $function

[PHP] 無名関数とアロー関数について

無名関数はその名の通り、名前を持たない関数で、クロージャーとも呼ばれます。 無名関数 構文 function(引数) { 処理; } [実装例]無名関数を変数に入れて使う コード $func = function(string $value) { print "Hello {$value}\n"; }; $func("Test"); このコードの正しく実行でき、結果は以下のようになります。 実行結果 $ php test_anonymous_function.php Hello Test [実装例]呼び出し元スコープの変数を使う コード(誤) 無名関数の呼び出し元のスコープに定義されている変数は、無名関数内でそのまま扱うことはできません。例えば以下のコードは実行時にエラーになります。 $name = "Hoge"; $func = function(string $value) { print "Hello {$value} {$name}\n"; }; $func("Test"); 実行結果(誤) $ php test_anonymous_function.php Warning: Undefined variable $name in ./test_anonymous_function.php on line 5 Hello Test コード(正) 呼び出し元スコープの変数を無名関数内で利用するには、function定義時にuseキーワードを使用して無名関数に渡してやります。 $name = "Hoge"; $func = function(string $value) use ($name) { print "Hello {$value} {$name}\n"; }; $func("Test"); 無名関数内で呼び出し元スコープの変数を使うには、useキーワードに使用する変数を指定する 実行結果(正) $ php test_anonymous_function.php Hello Test Ho

[PHP] PHP8のインストール (Win)

イメージ
PHP8のインストールについてまとめます。 インストール PHPの最新のコードは公式サイトで公開されています。また、最新以外のコードもChangelogの確認も含めて取得することが可能です。 パッケージダウンロード 公式サイト( https://www.php.net/ )を開き、上段メニューのDownloadsをクリックします。 ダウンロードページ( https://www.php.net/downloads )を開き、自身の環境に合ったパッケージを選択します。 ここでは、Windows10にセットアップするので「Windows Downloads」をクリックします。 Zipファイルのパッケージをクリックしてダウンロードします。 ファイル指紋の確認(任意) ダウンロードしたZipファイルにはSHA256ファイル指紋が付いています。この値を確認することで、ファイルが改ざんされていないかを確認することが出来ます。 Windowsの場合、certutilコマンドで以下のようにして確認します。 $ certutil -hashfile php-8.1.13-nts-Win32-vs16-x64.zip SHA256 SHA256 ハッシュ (対象 php-8.1.13-nts-Win32-vs16-x64.zip): 766630b4168c830820ace21df301b8816e6675c5ed26395a3d7c5fdef1690dd8 CertUtil: -hashfile コマンドは正常に完了しました。 セットアップ PHPのセットアップはダウンロードしたZipファイルを任意の場所へ展開するだけでOKです。 ここでは「c\php」へ展開しました。 環境変数 展開したディレクトリのパスを環境変数に設定すれば、セットアップは完了です。 Windowsボタンから「設定」を開く 「システム」をクリック 「詳細情報」をクリック 「システムの詳細設定」をクリック 「詳細設定」タブから「環境変数」をクリック 「システムの環境変数」の「Path」を選択し、編集をクリック PHPを展開したディレクトリのパスを追加して「OK」をクリック システムのプロパティで適用しOKをクリック

[資格] Oracle Certified Java Programmer, Bronze, Silver, Goldを取得した話

イメージ
Oracle認定JavaプログラマのBronze、Silver、Goldをすべて取得してきました。 Oracle認定Javaプログラマについて 概要 Oracle認定Javaプログラマは、日本Oracle社が主催するJavaプログラマ向けのベンダー資格です。 Javaのバージョンアップに合わせて試験の内容もバージョンアップされており、2022年12月現在はJava SE 8とJava SE 11が配信されています。今から取得を考えている人は、特に理由がない限りJava SE 11の取得を目指したほうが良いでしょう。 試験のグレードとしてはBronze(初級)、Silver(中級)、Gold(上級)の3段階あります。3段階ですがそれぞれで範囲が違ってくるので、試験に合わせた準備が必要です。 Bronze SE 概要 この試験はいわゆる入門向けの資格で、プログラミング言語(Java)を初めて学ぶ人を対象とした資格です。変数や制御構文の基礎、クラスやオブジェクト指向の基礎について出題されます。 なお以前はJava SE 7/8 Bronzeが配信されていましたが、現在はバージョンに依存しない構成でリニューアルされています。 試験情報 1. Bronze SE試験情報 資格名 Oracle Certified Java Programmer, Bronze SE 試験番号 1Z0-818(-JPN) 問題数 60 試験時間 65分 合格ライン 60% 受験料(税込み) ¥12,540 前提条件 無し、誰でも受験・認定可能 参考書 所感 実はこの試験が一番危なかったです。理由は試験時間に対して問題数がやや多く、1問1分程度で解かなくてはならないためじっくりと考えていると時間が足りなくなります。 問題としてはプログラムのロジックを理解する問題が多いですが、テンポよく解いていく必要があります。とにかくスピード重視です。 参考書に挙げた問題集を使って慣れておくとよいです。 Silver SE 11

[Java] JDBCのAPIでデータ検索・更新

イメージ
JDBCのAPIを使用してDB操作をする方法について、いくつかまとめていきます。 JDBCを介してSQLを発行する場合、Statementインターフェースを使用します。Statementインターフェースには以下の種類があります。 1. Statementの種類 Statement パラメータなしのSQL文を実行する。コンパイルせずに文字列のままSQL文を発行するので、DBMSがSQL文を解析する。 PreparedStatement Statementインターフェースのサブインターフェースで、パラメータ付きのSQL文を実行することが出来る。SQL文はDBMSが理解できるようにあらかじめコンパイルして発行する。 CallableStatement Statementインターフェースのサブインターフェースで、ストアドプロシージャを実行することが出来る。 なお、この記事で使用するテーブルとして、以下のようなデータを用意しています。 テーブル名はarticles、idを主キーにtitle、bodyといったフィールドを保持したテーブルです。 Statementを利用してSQLを実行 Statementインスタンスを取得 Connectionオブジェクトから生成 Statementインターフェースのインスタンスは、ConnectionクラスのcreateStatementメソッドで生成します。 Connection conn = DriverManager.getConnection(url, user, password); Statement statement = conn.createStatement(); Statementインスタンスの主なメソッド Statementインターフェースの主なメソッドは以下の通りです。なお、これらのメソッドはサブインターフェースである、PreparedStatement、CallableStatementにもそれぞれ引き継がれます。 2. Statementインスタンスの主なメソッド ResultSet executeQuery(String) 引数で指定されたデータ検

[Java] JDBCドライバでMySQL接続するまでの手順

イメージ
JavaでJDBCドライバを利用して、データベース接続をするまでの手順です。ここではJDBCドライバのインストール、jarファイルのセットアップまでの手順をまとめます。 なお、今回使用するデータベースはMySQLを使用しますが、1からサーバーを立てるのは大変なので、以前Laravel環境を構築したときに使用したdocker上のMySQLを使用します。これについては以下の記事を参照してください。 https://www.s-watanabe.work/2020/12/laravel-mysqldocker.html 1. 環境情報 OS Windows10 データベース MySQL JDBCドライバ Connector/J 8.0.31 IDE IntelliJ JDBCドライバのセットアップ インストーラのダウンロード 以下のMySQL公式サイトのダウンロードページからConnector/Jという、JDBCドライバをダウンロードします。なお、現在単体でのダウンロードは見つからなく、MySQL Installerに含まれているようなので、MySQL Installerをダウンロードします。 https://dev.mysql.com/downloads/connector/j/ インストーラを実行 ダウンロードしたインストーラを実行し、Setup TypeにCustomを選択してNextをクリックします。 インストールするプロダクトを選択 インストールするプロダクトは最小構成にしたいので、Connector/Jのみを選択します。 ダウンロード対象のプロダクトを確認 Connector/Jが入っていればOKです。Executeをクリックするとダウンロードとインストールが開始されます。 セットアップ完了 Show Detailをクリックすると、セットアップのログが確認できます。ここにライブラリがインストールされたディレクトリが確認できるので控えておきます。 Next → Finishをクリックし、MySQL JDBCドライバのセットアップは完了です。 ライブラリ設定 次にインス

[Java] シリアライズとデシリアライズ

入出力ストリームを利用してインスタンスをファイルに書き出すことをシリアライズ、ファイルから読み込むことをデシリアライズと言います。 Serializableインターフェース Serializableインターフェースはシリアライズ、デシリアライズさせたいクラスに実装させるインターフェースです。 このインターフェースは、マーカーインターフェースといい、シリアライズするクラスであるということをJVMへ示すためだけのものです。メソッドは何も持っていません。 コード例 ここではidとnameというフィールドを保持するPersonクラスを定義し、Serializableインターフェースを実装しています。 import java.io.Serializable; public class Person implements Serializable { private int id; private String name; public Person(int id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "id:" + id + ", name:" + name; } } Serializableインターフェースはマーカーインターフェースであり、JVMがシリアライズ可能と判別するためのもの。メソッドは持たない。 シリアライズ ObjectOutputStreamクラス オブジェクトをシリアライズしてファイルに書き出すにはObjectOutputStreamクラスを使用します。 ObjectOutputStreamクラスのインスタンスを取得 ObjectOutputStreamクラスのコンストラクタは、FileOutputStreamクラスのオブジェクトを引数に取ります。 FileOutputStream fstream = new FileOutputStream("output/test.ser"); ObjectOutp

[Java] バイト入出力ストリーム

画像ファイルなどのバイナリーデータの入出力については、バイトストリームを扱うクラスが用意されています。ここでは、バイトストリームの入出力についてまとめていきます。 バイト入出力ストリーム FileInputStreamクラス ファイルからバイトストリームを読み込みます。 1. FileInputStreamクラスの主なメソッド byte read() ファイルから1バイト読み込むで返す。 byte[] readNBytes(int) ファイルから指定バイト数を読み込んで配列を返す。 byte[] readAllBytes() ファイルから全バイトを一度に取り出して配列で返す。大きなサイズのファイルの場合メモリを大量に使用するので、一般的にはreadNBytes(int)を使用する。 FileOutputStreamクラス バイトストリームをファイルへ出力します。 2. FileOutStreamクラスの主なメソッド void write(int) ファイルへ1バイト出力する。 void write(byte[]) ファイルへ複数バイトを出力する。 コードサンプル 以下の例はsample1.pngファイルを1024バイトずつ読み込んで、sample2.pngへコピーする例です。 FileInputStream fileInputStream = new FileInputStream("test/sample1.png"); FileOutputStream fileOutputStream = new FileOutputStream("test/sample2.png"); try ( fileInputStream; fileOutputStream; ) { byte[] data = null; while ((data = fileInputStream.readNBytes(1024)).length > 0) { fileOutputStream.write

[Java] 入出力ストリーム

Javaの入出力ストリームについてまとめていきます。 Fileクラス Fileクラスは、Java1.0の最初期からあるAPIで、ファイルやディレクトリのパスを表すクラスです。 あくまでパスを扱っているだけで、ファイルやディレクトリそのものを扱っているわけではない。 Fileオブジェクトの取得 コード例 File file = new File("output/data.txt"); この時オブジェクトはファイルパスを扱っているだけなので、output/data.txtの存在有無や書き込み権限にかかわらず、インスタンスを生成することが可能です。 Fileオブジェクトの主なメソッド boolean isFile() ファイルの場合にTrueを返す。 boolean isDirectory() ディレクトリの場合にTrueを返す。 long lastModified() ファイルの更新日付をUNIXタイムで返す。 String getAbsolutePath() ファイルの絶対パスを取得する。 String getCanonicalPath() ファイルの相対パスを取得する。 File[] listFiles() ディレクトリ配下のFileオブジェクトの配列を生成する。 File[] listFiles(FileFilter) FileFilter関数型インターフェースを引数に取り、条件に一致したFileオブジェクトの配列を生成する。 サンプル コード例 output配下の拡張子が「.txt」のファイル一覧を取得 ファイル名と最終更新日時を出力する File file = new File("output"); FileFilter filter = pathname -> pathname.getName().endsWith(".txt"); File[] files = file.listFiles(filter); Ar

[Java] ストリームAPI

ListやSetといったコレクションを扱う際に、すべての要素に処理を行う際、for文を使って順に要素を取り出していましたが、このような逐次処理を簡潔に記述できるようにしたStream<T>型がJava8で導入されました。 ここではStream API(以下ストリームAPI)の使い方についてまとめていきます。 ストリームAPIを使用する目的 ストリームAPIを使用する目的としては以下の通りです。 コレクションや配列の全要素に対して同じように変換する。 コレクションや配列の要素の合計や平均といった統計を取る。 コレクションや配列の要素に対して特定の条件でグルーピングやフィルターを行う。 コレクションや配列から特定の条件に合ったデータを検索する。 ストリームAPIは従来のfor文や拡張for文を置き換えるために用意されたAPIではない。 ストリームオブジェクトの取得 Iterableインターフェースから取得 java.lang.Iterableインターフェースのstream()メソッドで取得します。 コード例 List<String> list = new ArrayList<>(); list.add("Apple"); list.add("Melon"); list.add("Orange"); Stream<String> stream = list.stream(); Streamインターフェースから取得 コード例 Streamインターフェースのofメソッドからも可変長引数で取得することが出来ます。 Stream<String> stream = Stream.of("Apple", "Melon", "Orange"); Arraysクラスから生成 コード例 String[] arrays = {"Apple", "Melon", "Orange"}; Stream<String> stream = Arrays.stream(arrays

[Java] 並列処理 (Thread, Runnable)

Javaで並列処理(マルチスレッド)の実装についてのまとめです。 Javaで並列処理を実装するにはいくつか方法がありますが、ここではThreadクラスを継承する方法と、Runnableインターフェイスを実装したクラスを用意して、Threadクラスのインスタンスを生成する方法についてまとめます。 基本的な並列処理の実装 Threadクラスを継承する 実装 import java.lang.Thread; public class ThreadTest { public static void main(String[] args) { Thread t = new Thread() { @Override public void run() { for (int i = 0; i < 5; i++) { System.out.println("sub:" + i); } } }; t.start(); for (int i = 0; i < 5; i++) { System.out.println("main:" + i); } } } 実行結果 実行結果は順不同で出力され、並列に処理されているのが分かります。 java ThreadTest.java main:0 sub:0 main:1 sub:1 main:2 sub:2 main:3 sub:3 main:4 sub:4 Runnableインターフェースを実装する 実装 import java.lang.Runnable; import java.lang.Thread; public class ThreadTest { public static void main(String[] args) { Runnable r = new Runnable() { @Override

[java] Optional<T>について

Optionalクラスは何らかの処理の結果を格納・保持するクラスです。 これまでは取得した値が空ではないか、またはnullではないかなど、取得結果について確認したうえで後続の処理を行っている場合があり、これが冗長・可読性低下の原因でした。 Java8から導入されたOptionalクラスを使うと、こういったケースが簡潔に記述できるようになりました。 ここではインスタンスの生成と、値を使用するにあたって利用する主なメソッドについてまとめておきます。 インスタンスの生成 OptionalのインスタンスはOptionalインターフェースに定義されたファクトリメソッドを使用して生成します。 1. Optionalインスタンスを生成するメソッド empty() 空のOptionalのインスタンスを生成する。 of(T value) nullを許容しない値を持ったOptionalのインスタンスを生成する。 nullを指定するとNullPointerExceptionが発生する。 ofNullable(T value) nullを許容し、nullを指定した場合は空のOptionalインスタンスを生成する。 emptyメソッド コード例 Optional<String> optional = Optional.empty(); System.out.println(optional); 実行結果 Optional.empty ofメソッド コード例 Optional<String> optional = Optional.of("test"); System.out.println(optional); 実行結果 Optional[test] ofメソッドにnullを指定するとNullPointerExceptionが発生する。 ofNullableメソッド コード Optional<String> optional = Optional.ofNullable(null); System.out.println(optional); 実行結果 Optional.e

[Java] Enum(列挙型)についてまとめ

Enum(列挙型)について 概要 Enumは同じカテゴリの定数をまとめて管理するためのもので、クラスのように扱うことができます。 なお、JVM上はクラスとして扱われるため、メソッドやコンストラクタを定義することもできます。 構文 アクセス修飾子 enum 列挙名 { 列挙子, 列挙子, 列挙子... } Enumの基本的な使い方 定義例 public enum Status { DISABLED, APPROVED, ENABLED } Enumを使った分岐処理 Status status = Status.APPROVED; switch (status) { case DISABLED: System.out.println("無効"); break; case APPROVED: System.out.println("承認"); break; case ENABLED: System.out.println("有効"); break; } 配列で列挙子をすべて取得する Status[] statuses = Status.values(); 列挙子を文字列で取得する Status status = Status.valueOf("APPROVED"); 存在しない列挙子を指定すると IllegalArgumentException が発生します。 列挙子に値を持たせる 構文 アクセス修飾子 enum 列挙名 { 列挙子(値), 列挙子(値), 列挙子(値)... private 型 フィールド; private コンストラクタ {} } 定義例 enum Status { DISABLED("無効"), APPROVED("承認"), ENABLED("有効"); private String value; Status(String

[Java] ラムダ式と関数型インターフェース

ラムダ式とは前述の匿名クラスの記述をより簡潔に書くことが出来る記述法で、Java8から導入されました。 また、それに合わせてラムダ式で記述できるいくつかの関数型インターフェースが用意されているので、主要な部分についてまとめていきます。 ラムダ式 構文 インターフェース 変数 = (引数) -> {処理}; 定義例 例えば匿名クラスの説明で利用した次のサンプルコードがあります。 https://www.s-watanabe.work/2022/10/java.html#3 interface Itest { public void doTest(); } public class AnonymousTest { public static void main(String[] args) { Itest itest = new Itest() { @Override public void doTest() { System.out.println("Itest.doTest"); } }; itest.doTest(); } } このコードはラムダ式によって次のように置き換えることが出来ます。 interface Itest { public void doTest(); } public class AnonymousTest { public static void main(String[] args) { Itest itest = () -> { System.out.print("Itest.doTest"); }; itest.doTest(); } } 処理内容が1行の場合、中カッコ{}を省略することができます。 Itest itest = () -> System.out.print("Itest.doTest"); ラムダ式は関数型インター

[Java] ネストしたクラスについてのまとめ

クラス内に定義するクラスを総称してネストしたクラスと呼び、外側のクラスをエンクロージングクラスと呼びます。 ネストしたクラスには次の種類があります。 インナークラス staticインナークラス 匿名クラス ローカルクラス インナークラス インスタンス化 new エンクロージングクラス().new インナークラス() インナークラスのインスタンス化するには、エンクロージングクラスのインスタンスを先に生成する必要がある。 定義例 public class InnerTest { private class Test { private void method() { System.out.println("Test.method"); } } public static void main(String[] args) { new InnerTest().new Test().method(); } } インナークラス、およびそのメソッドのアクセス修飾子はpublic、protected、private、無しの4つとも指定できる。 privateを指定してもエンクロージングクラスからは呼び出すことができる。 実行結果 java InnerTest.java Test.method staticインナークラス インスタンス化 new インナークラス() staticインナークラスのインスタンス化には、エンクロージングクラスのインスタンスは必要ない。 staticインナークラスが外部のクラスファイルの場合は、「new エンクロージングクラス.インナークラス()」のように生成する。 定義例 public class InnerTest { private static class Test { private void method() { System.out.println("Test.method"); } } public static

Alexaをしゃべらせる (Win10)

概要 Amazon Echo Dotを購入したので、Alexaに任意の文章をしゃべらせるまでの手順をまとめておきます。 事前準備 Amazon Echo Dot Amazon Echo Dot (エコードット)第3世代 - スマートスピーカー with Alexa、チャコール WSL https://learn.microsoft.com/ja-jp/windows/wsl/ WSLはWindows上で実行できるLinux仮想環境です。 インストール方法はリンク先にあります。OSはUbuntuを選択しました。 ※今回実行しようとしているスクリプトは、Windowsやgitbash上では動作しませんでした。 設定 jqコマンドインストール jqコマンドは、json形式データの整形や加工を行うコマンドです。WSLを開き、以下コマンドでインストールします。 sudo apt install jq 以下のように確認コマンドを実行し、整形されたデータが出力されればOKです。 echo "{\"a\":123}" | jq { "a": 123 } スクリプトダウンロード githubで公開されている以下のスクリプトを任意の場所へダウンロードします。 https://github.com/thorsten-gehrig/alexa-remote-control.git スクリプト設定 ダウンロードした alexa_remote_control.sh をテキストエディタで開き以下の変数を設定します。 設定項目 SET_EMAIL AmazonアカウントのEメールアドレス SET_PASSWORD Amazonアカウントのパスワード SET_MFA_SECRET MFAシークレットキー ※MFAシークレットは以下の手順で確認できます。 Amazonのアカウントサービスから、ログインとセキュリティを開く 2段階認証の「管理」を開く 新しいアプリの

[資格]SC-900 Microsoft セキュリティ、コンプライアンス、IDの基礎

イメージ
SC-900について 概要 セキュリティ、コンプライアンス、ID の概念、アクセス管理ソリューションの機能、Microsoft セキュリティ ソリューションの機能、Microsoft コンプライアンス ソリューションの機能についての知識を問われる試験です。 https://docs.microsoft.com/ja-jp/certifications/exams/sc-900 試験 試験コード SC-900 合格ライン 700点 / 900点 問題数 45-48問程度 試験時間 45分程度 ※問題数と試験時間について公式に記載はありませんが、おそらく他の基礎コースと同程度と思われます。 事前対策 事前対策としてはAI-900と同様に、オンライントレーニングで受講した内容と、公式ドキュメント(WEB)を使って対策していきます。 また、以下にサンプル問題が公開されているので参考にしました。 https://docs.microsoft.com/ja-jp/certifications/resources/sc-900-sample-questions ※日本語の参考書・テキスト等は現時点(2022/08)でおそらくありません。 重要ポイント ゼロトラスト - 3つの原則 明示的に検証する 最小限の特権アクセス セキュリティ侵害を想定する IDの概念 新しいセキュリティ境界 ユーザー、アプリケーション、デバイスなどに関連付ける ID管理の基本概念 管理 ユーザー、デバイス、およびサービスのIDを作成し管理する。 認証 特定のIDについて、身元の保証に十分な証拠があるかどうかを検証する。 承認 (認可) 認証されたユーザーまたはサービスが、アクセス先のアプリケーションまたはサービス内で持つアクセスのレベルを決定する。 監査 認証されたユーザーまたはサービスが、何を、いつ、どこで、どのように行うかを追跡する。 Azure Active Directory (Azure AD) クラウドベースのID、ア

[資格]HTML5 レベル2

イメージ
HTML5 レベル1に続きレベル2を受けてきました。 レベル2はレベル1とは出題範囲が異なり、JavaScriptの文法、コーディングスキルについての問題が中心です。 なお、今回万が一不合格でも無料でもう一回受験できる「リテイクフリーサマーキャンペーン2022」を利用して受験しました。 https://html5exam.jp/campaign/retake202207/ この手のキャンペーンは今後もあるかどうか分かりませんが、無料のセミナー等は定期的に開催されています。 気になる方は以下ページをチェックしておくと良いと思います。 https://html5exam.jp/news/event/ HTML5 レベル2について 概要 JavaScriptの文法、およびコーディングスキル、API、そのほか通信やセキュリティ等、レベル1と比べるとより高いレベルのスキルと知識を求められる試験です。 試験 試験名 HTML5プロフェッショナル認定資格 レベル2 合格ライン 70点 / 100点 問題数 40問 試験時間 90分 前提条件 有効なHTML5 レベル1を保有していること 試験時間にはアンケートの時間が含まれるので実際は80分です。 問題数はおそらく40~45の間で変動します。 選択形式のみで記述する問題は出ませんでした。 使用した参考書について こちらの参考書はバージョンは2.0対応です。現時点で2.5に対応した参考書はおそらくありません。しかし2.5の範囲を確認したところ、2.0と大差はありませんのでこちらの参考書で十分だと思います。 以下に2.5の変更点が公開されていますので、心配であれば確認しておくとよいです。 https://html5exam.jp/outline/objectives_lv2.html 書籍については、レベル1と同様にLPI-Japanの認定教材です。 重要なポイントについての問題と解説、模擬試験1回分が収録されています。 また、購入特典としてダウンロード版の模擬試験がついてきます。 試験内容 覚えている範囲で箇