mori– Author –
-
PHP樹林
PHPのバージョンは何を使ってる?PHP 5, 7, 8の進化と最新版を使うべき理由
PHPは、世界中の多くのWebサイトで利用されている人気のプログラミング言語ですが、定期的にバージョンアップを重ね、常に進化を続けていることをご存知でしょうか。 古いバージョンを使い続けることには、実は多くのリスクが潜んでいます。今回は、PHPが... -
PHP樹林
PHPを動かそう!MAMPで簡単ローカル開発環境の作り方【Mac & Win対応】
HTMLやCSSの学習を終え、いよいよPHPを学ぼうとした時、多くの人が最初の壁にぶつかります。それは「実行環境の準備」です。 HTMLファイルはダブルクリックすればブラウザで表示できましたが、PHPはそれだけでは動きません。PHPは「サーバー」と呼ばれる特... -
PHP樹林
HTMLとは?Webサイト制作の基本となる書き方と必須タグを解説
Webサイト制作の世界に足を踏み入れると、誰もが最初に出会うのが「HTML」です。プログラミングと聞くと難しそうに感じるかもしれませんが、HTMLは厳密にはプログラミング言語ではなく、比較的シンプルなルールで構成されています。 この記事では、「HTML... -
PHP樹林
PHPとHTMLの違いとは?セットで使う理由を初心者向けに解説
Webサイト制作の学習を始めると、必ず出会うのが「HTML」と「PHP」です。 「どちらもWebページを作るものみたいだけど、何が違うの?」 「どうやって使い分けるの?」 このような疑問を感じる方も多いのではないでしょうか。 結論から言うと、HTMLとPHPは... -
PHP樹林
【PHP】プログラミングの基本的な考え方とは?文系でも分かる3つのポイント
プログラミングと聞くと、「黒い画面に謎の英語がたくさん…」「理系の専門知識が必要そう…」といったイメージから、難しく感じてしまうかもしれません。 しかし、実はプログラミングの基本的な考え方は、私たちが日常生活で行っている判断や手順と非常によ... -
PHP樹林
PHPとは?Web開発でできることを初心者向けにわかりやすく解説
Webサイト制作やプログラミングに興味を持ち始めると、「PHP」という言葉を耳にする機会が多いのではないでしょうか。 「WebサイトはHTMLで作るんじゃないの?」 「PHPを学ぶと何ができるようになるの?」 といった疑問をお持ちの方もいらっしゃるかもしれ... -
C++樹林
【C++】データ型の種類を徹底解説(基本型からポインタ、構造体まで)
はじめに C++プログラミングの根幹をなすのが「型」の概念です。全ての変数やオブジェクトは、必ず何らかの型を持ち、その型によって、どのような値を保持できるか、どのような操作が可能かが決まります。 この記事では、C++の型システムを構成する主要な... -
C++樹林
【C++】constとvolatileの使い分け | cv修飾子を徹底解説
はじめに C++で変数を宣言する際、int x; のように型を指定するだけでなく、const や volatile といった修飾子を付け加えることができます。これらは、その変数がどのように扱われるべきかをコンパイラとプログラマに伝えるための重要なキーワードです。 c... -
C++樹林
【C++】型の別名を付けるtypedefとusingの違いと使い方
はじめに C++で、unsigned long long や関数ポインタ void (*)(int) のように、型名が長くて複雑になることがあります。このような型を何度も記述するのは、コードを読みにくくし、typoの原因にもなります。 この問題を解決するのが「型の別名宣言(タイプ... -
C++樹林
【C++】autoとdecltype | 型の自動推論と取得の方法を解説
はじめに C++で、std::vector<std::string>::iterator のように、非常に長くて複雑な型名を手で書くのは、面倒で、typoの原因にもなります。 C++11では、このような問題を解決し、コードをより簡潔で読みやすくするために、型の自動推論の仕組みが導... -
C++樹林
【C++17】構造化束縛の使い方 | pair, tuple, structを分解して受け取る方法
はじめに C++で、std::pairやstd::tupleを返す関数を扱う際、従来はその戻り値を一度変数に受け取り、.firstやget<0>を使って個々の要素にアクセスする必要があり、少し冗長でした。 C++17で導入された構造化束縛は、この問題をエレガントに解決しま... -
C++樹林
【C++】4種類のキャストを徹底解説 (static_cast, dynamic_cast 等)
はじめに C++には、intからdoubleへ、あるいは親クラスのポインタから子クラスのポインタへ、といった**明示的な型変換(キャスト)**を行うための、4つの異なるキャスト演算子が用意されています。これらは、古いC言語スタイルのキャスト (type)value よ... -
C++樹林
【C++】newとdeleteによる動的なメモリ確保・解放を徹底解説
はじめに C++では、通常の変数は宣言されたスコープを抜けると自動的に破棄されます。しかし、プログラムの実行時まで必要なサイズが分からない配列や、関数のスコープを超えて存在し続けるオブジェクトを扱いたい場合、ヒープと呼ばれる特別なメモリ領域... -
C++樹林
【C++】sizeof, alignof等 | 型のサイズとアライメントを扱う方法
はじめに C++でパフォーマンスを意識したプログラミングや、ハードウェアに近い低レベルなデータ操作を行う際、オブジェクトがメモリ上で「どれくらいの領域を占めるか(サイズ)」や、「どのようなアドレスに配置されるべきか(アライメント)」を正確に... -
C++樹林
【C++】右辺値参照とムーブセマンティクス入門 | 不要なコピーをなくし高速化
はじめに C++で、大量のデータを格納したvectorやstringを関数から返したり、別の変数に代入したりすると、内部のデータが全てコピーされ、大きなパフォーマンス上のオーバーヘッドが発生していました。 例えば、巨大なデータが入ったvectorを返す関数があ... -
C++樹林
【C++】リテラルとは?数値、文字、文字列などの定数の書き方を徹底解説
はじめに C++でプログラムを書く際、私たちは様々な「値」を直接コードに記述します。これらの、ソースコード上に直接表現される固定値のことをリテラルと呼びます。 C++には、扱うデータの種類に応じて、様々なリテラルの記述方法が用意されています。こ... -
C++樹林
【C++】文とは?if, for, whileなど主要な制御文をまとめて解説
はじめに C++のプログラムは、セミコロン(;)で終わる文(statement)を上から下へ順番に実行していくことで成り立っています。C++には、単純な計算を行う文から、条件によって処理の流れを変える(制御する)ための制御文まで、様々な種類の文があります... -
C++樹林
【C++】スコープとは?グローバル、名前空間、ローカルスコープの違いを解説
はじめに C++で変数を宣言する際、その「宣言された場所」によって、その変数がプログラムのどこから見えるかが決まります。この「名前が見える範囲」のことをスコープと呼びます。 スコープを正しく理解することは、意図しない変数の上書きを防ぎ、プログ... -
Java樹林
【第2部】 Listをそのまま使わない。「ファーストクラスコレクション」で実現する、安全で凝集度の高いコード設計
この記事は、保守性の高いコード設計シリーズの一部です。前回の記事「【第1部】 forループのネストから脱却しよう。Stream APIと早期リターンで実現する、読みやすいコレクション処理」では、ループ処理をクリーンにする方法を学びました。 こんにちは。... -
Java樹林
【第1部】 forループのネストから脱却しよう。Stream APIと早期リターンで実現する、読みやすいコレクション処理
この記事は、保守性の高いコード設計シリーズの一部です。これまでの記事では、条件分岐を整理するための様々なデザインパターンを解説しました。今回は、多くの条件分岐が潜む「コレクションのループ処理」に焦点を当て、ネストを解消し、可読性を高める... -
Java樹林
【第3部】 複雑な条件分岐を賢く解決。ポリモーフィズムで実現する柔軟なルールエンジン設計
この記事は、保守性の高いコード設計シリーズの一部です。これまでの記事で、ifのネストを解消する「ガード節」や、switchの重複をなくす「ストラテジーパターン」を学びました。今回は、さらに複雑な条件分岐をエレガントに解決するための応用的なデザイ... -
Java樹林
【第2部】 switch文の増殖はバグの温床。ストラテジーパターンで条件分岐を撲滅する
この記事は、保守性の高いコード設計シリーズの一部です。前回の記事「【第1部】 ifのネストはもうやめよう。ガード節で可読性を劇的に改善するテクニック」では、ガード節を使ってif文のネストを解消する方法を学びました。 こんにちは。条件分岐には、if... -
Java樹林
【第1部】 ifのネストはもうやめよう。ガード節で可読性を劇的に改善するテクニック
この記事は、保守性の高いコード設計シリーズの一部です。これまでの記事では、クラス設計の原則について探求してきました。今回は、プログラミングの最も基本的な要素である「条件分岐」に焦点を当て、その可読性を損なう最大の要因である「ネスト」の問... -
Python樹林
PythonのpyautoguiでWebフォーム入力を自動化する
この記事では、pyautoguiライブラリを使い、ウェブサイト上のフォームにデータ構造から情報を読み取って自動的に入力し、送信するスクリプトの作成方法を解説します。この手法は、繰り返し発生するデータ入力作業を効率化するのに役立ちます。 注意:この... -
C++樹林
【C++】関数の基本 | 宣言・定義から戻り値の推論までを解説
はじめに C++プログラミングの中心となるのが「関数」です。関数は、関連する一連の処理を一つの単位としてまとめたものであり、プログラムを構造化し、コードの再利用性を高めるために不可欠です。 この記事では、C++の関数の基本を、以下のトピックに沿... -
C++樹林
【C++】クラス (class) とは?オブジェクト指向の重要概念を解説
はじめに C++におけるクラス (class) は、オブジェクト指向プログラミング(OOP)を実現するための中心的な機能です。クラスは、関連する**データ(状態)と操作(振る舞い)**を一つのまとまりとして定義した、オブジェクトの「設計図」として機能します... -
Python樹林
【Python】 pyautoguiによるスクリーンショット撮影とピクセル解析
この記事では、Pythonのpyautoguiライブラリを使い、画面全体のスクリーンショットを撮影する方法と、画面上の特定座標のピクセルの色を解析する方法について解説します。これらは、GUIオートメーションにおいて、プログラムが画面の状態を「見る」ための... -
Python樹林
Python pyautoguiによるマウス操作:クリック、ドラッグ、スクロール
この記事では、Pythonのpyautoguiライブラリを使い、マウスカーソルの移動だけでなく、クリック、ドラッグ、スクロールといった、より高度なマウス操作を自動化する方法について解説します。 1. マウスカーソルの現在位置を監視する GUIオートメーションの... -
Python樹林
Python pyautoguiによるマウスカーソルの移動と位置取得
この記事では、Pythonのpyautoguiライブラリを使い、画面上のマウスカーソルをプログラムで制御するための基本的な関数、moveTo()、moveRel()、position()、size()について解説します。 画面の解像度を取得する pyautoguiでマウスを正確に操作するには、ま... -
Python樹林
Python pyautoguiの安全機能:PAUSEとFAILSAFE
pyautoguiはマウスやキーボードを自動で操作できる強力なライブラリですが、スクリプトが意図しない動作をした場合に、ユーザーがコンピュータの制御を失うリスクも伴います。この記事では、そのような事態を防ぐための重要な安全機能であるpyautogui.PAUS...