@lifehacker

スポンサーリンク
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – ネスト配列の処理

ネスト配列とは何かネスト配列は「配列の中にさらに配列が入っている」入れ子構造です。例えば行列(2次元)、ツリー(多次元)、グループ化されたデータなどが該当します。ここが重要です:処理の設計は“どの深さ...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – reduce での集計

reduce での集計の基本reduce は「配列の全要素を順に処理して、ひとつの値へ“畳み込む(集約する)”」ためのメソッドです。合計・平均・最大最小だけでなく、辞書(オブジェクト)や Map を作...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – map と forEach の違い

何が違うのかmap は「各要素を同じルールで変換して“新しい配列”を返す」メソッドです。一方、forEach は「各要素に対して“処理(副作用)を実行するだけ”で、配列は返しません」。ここが重要です:...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – break / continue の使えない理由(forEach)

forEach で break / continue が使えない理由forEach は「配列の各要素に対して“関数を呼び出す”」高階メソッドです。ここが重要です:forEach は“自分でループを制御...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – forEach

forEach とは何かforEach は「配列の各要素に対して、指定した関数を順番に“実行する”」ためのメソッドです。ここが重要です:forEach は“副作用(処理をすること)”が目的で、戻り値と...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – for…of

for...of とは何かfor...of は「配列など“反復可能(イテラブル)”なものを、要素の値にフォーカスしてシンプルに処理する」構文です。ここが重要です:for...of は“値”を1つずつ取...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – for での配列処理

for とは何かfor は「カウンター(インデックス)を使って、配列を順番に処理する」ための基本的なループ構文です。ここが重要です:配列の長さと位置を明示的に扱えるので、部分処理・スキップ・早期終了・...
Python

Python | 自動化:タイムアウト処理

概要(タイムアウト処理は「いつまでも待たない」ための保険)タイムアウト処理は、「相手(外部サービス・コマンド・ファイル処理など)がいつまでたっても返事してこないときに、一定時間で“もう待つのをやめる”...
Python

Python | 自動化:コルーチン

概要(コルーチンは「途中で一旦止まって、あとで再開できる関数」)コルーチン(coroutine)は、めちゃくちゃざっくり言うと「自分の途中経過(状態)を持ったまま、一旦止まって、あとでそこから再開でき...
Python

Python | 自動化:await / async

概要(async / await は「同時進行のための文法」)async / await は、「Python に“ここは待ち時間だから、その間ほかの仕事をしていいよ”と伝えるための文法」です。asyn...
Python

Python | 自動化:aiohttp

概要(aiohttp は「非同期版 requests」だと思うと入りやすい)aiohttp は、「asyncio と一緒に使うための HTTP クライアントライブラリ」です。雑に言うと、request...
Python

Python | 自動化:非同期 asyncio

概要(asyncio は「1人で同時進行する」仕組み)マルチスレッドやマルチプロセスは「人を増やす」イメージでした。asyncio はちょっと違っていて、「1人なんだけど、待ち時間のあいだに別の作業に...
Python

Python | 自動化:concurrent.futures

概要(concurrent.futures は「並列処理をいい感じにラップしてくれる道具」)concurrent.futures は、「マルチスレッド」「マルチプロセス」を、初心者でも扱いやすい形にし...
Python

Python | 自動化:マルチプロセス

概要(マルチプロセスは「CPUを増やしてゴリゴリ計算させる」仕組み)前回のマルチスレッドは「待ち時間のあいだに別の仕事をする」話でした。マルチプロセスはもう一歩踏み込んで、「CPU のコアをフルに使っ...
Python

Python | 自動化:マルチスレッド

概要(マルチスレッドは「待ち時間のあいだに、別の仕事を回す」仕組み)Python のマルチスレッドは、「1つのプログラムの中で、複数の“流れ(スレッド)”を同時進行させる」仕組みです。自動化の世界だと...
Python

Python | 自動化:Web API 集計 BOT

概要(Web API 集計 BOT は「データを取って、すぐに意味のある形にするロボット」)Web API 集計 BOT は、単なる「データ収集 BOT」から一歩進んで、「取ってきたデータをその場で集...
Python

Python | 自動化:データ収集 BOT

概要(データ収集BOTは「決まった場所から、決まった情報を黙々と集めてくれるロボット」)データ収集 BOT は、「毎日このサイトの価格をチェック」「このAPIから定期的にデータを取得」といった“繰り返...
Python

Python | 自動化:Selenium ログイン自動化

概要(Selenium ログイン自動化は「ブラウザ操作を人間の代わりにやらせる」)Selenium は「ブラウザをコードで操作するロボット」です。URL を開く、ID・パスワードを入力する、ボタンをク...
Python

Python | 自動化:ファイル変換自動化

概要(「○○を置いたら自動で△△に変換」を型にする)ファイル変換自動化は、「特定のフォルダにファイルを置くだけで、Python が自動で別形式に変えてくれる」仕組みです。例えば、Excel → CSV...
Python

Python | 自動化:PDF 自動生成

概要(PDF自動生成は「レポートや帳票を押印前まで自動で作る」)Python で PDF 自動生成ができると、こんなことができます。日次・月次レポートを PDF で自動出力見積書・請求書・領収書などの...
Python

Python | 自動化:Excel レポート自動作成

概要(「決まった Excel レポート」を毎回ボタン一発にする)Excel レポート自動作成は、「毎月・毎週・毎日、ほぼ同じレイアウトの Excel を作る仕事」をPython に肩代わりさせることで...
Python

Python | 自動化:CSV のクリーニング

概要(CSV のクリーニングは「人力のチェックを Python に任せる」作業)CSV のクリーニングは、ざっくり言うと余計な空白や文字の揺れを揃える数値・日付をちゃんと数値・日付として扱えるように直...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – 非破壊的操作の考え方

非破壊的操作とは何か非破壊的操作は「元の配列を変更せず、新しい配列を返す」考え方とテクニックの総称です。ここが重要です:配列を“直接書き換えない”ことで、予期せぬ影響(共有参照のバグ、UI状態の崩れ)...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – sort(カスタム)

カスタム sort とは何かカスタム sort は「比較関数(compareFn)を自分で定義して、並べ替えの“ルール”をコントロールする」ことです。ここが重要です:compareFn は負・ゼロ・正...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – sort(基本)

sort とは何かArray.prototype.sort は「配列の要素を並べ替える」メソッドです。ここが重要です:sort は“破壊的(インプレース)”で、元の配列そのものを書き換えます。返り値は...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – reverse

reverse とは何かreverse は「配列の要素の並びを“逆順”に並べ替える」メソッドです。ここが重要です:reverse は“破壊的(インプレース)”に働き、元の配列そのものを逆順に書き換えま...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – join

join とは何かjoin は「配列の要素を“区切り文字”でつないで、ひとつの文字列を作る」メソッドです。元の配列は変更されない非破壊操作で、返り値は常に文字列です。ここが重要です:区切り文字(セパレ...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – flatMap

flatMap とは何かflatMap は「各要素を“変換”して、その結果を1階層だけ“平坦化(フラットに)”して新しい配列を返す」メソッドです。map と flat(1) を連続で行うのと同じ効果を...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – flat

flat とは何かflat は「“入れ子(ネスト)になった配列”を、指定した深さまで“平坦化(フラットに)して新しい配列”を返す」メソッドです。元の配列は変更しない非破壊操作です。ここが重要です:fl...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – reduce

reduce とは何かreduce は「配列のすべての要素を順に処理して、“ひとつの値”にまとめる(集約する)」メソッドです。合計、最大値、オブジェクトの構築、グルーピングなど“ひとつにまとめ上げる”...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – filter

filter とは何かfilter は「配列から、条件を満たす要素だけを“抽出して新しい配列”を返す」メソッドです。元の配列は変更しない非破壊操作で、返される配列の要素数は条件次第で増減します。ここが...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – map

map とは何かmap は「配列の各要素に同じ処理を適用して、“変換後の新しい配列”を作る」ためのメソッドです。元の配列は変更されない非破壊操作で、要素数は常に同じままです。ここが重要です:map は...
Java

Java | Java 標準ライブラリ:Matcher の使い方

Matcher は「正規表現パターンを文字列に当てていく実行役」前回の Pattern の話とつなげると、役割分担はこうです。Pattern「正規表現(パターン)そのもの」を表す。何度も使い回せる“型...
Java

Java | Java 標準ライブラリ:正規表現(Pattern)

正規表現と Pattern クラスの関係をざっくりつかむ「正規表現(regex)」は、「文字列の **“パターン” を言葉で書くための小さな言語」だと思ってください。「数字3桁‐数字4桁の電話番号」「...
Java

Java | Java 標準ライブラリ:文字列比較の正解

なぜ「文字列比較」はつまずきポイントなのかJava 初心者がほぼ確実に一度はハマるのが、文字列比較でのミスです。見た目は同じ "abc" なのに、なぜか比較結果が false になる、if が通らない...
Java

Java | Java 標準ライブラリ:文字列結合のパフォーマンス

なぜ「文字列結合のパフォーマンス」を気にする必要があるのかJava では文字列を扱う機会がとても多いです。ログ、SQL の組み立て、メッセージ生成、CSV 出力など、気づけばどこも文字列だらけになりま...
Java

Java | Java 標準ライブラリ:StringBuffer

StringBuffer はどんなクラスか(まず全体像)StringBuffer は、ざっくり言うと「中身を書き換えられる文字列バッファ」「スレッドセーフな StringBuilder」です。役割自体...
Java

Java | Java 標準ライブラリ:StringBuilder

なぜ StringBuilder が必要になるのかまず前提として、String は「イミュータブル(不変)」です。一度作られた String の中身は絶対に変わりません。その結果、こういうコードを書く...
Java

Java | Java 標準ライブラリ:String のイミュータブル性

「イミュータブル」ってそもそも何?まず言葉から整理します。「イミュータブル(immutable)」は「不変」という意味です。Java の String はイミュータブルなので、一度作られた Strin...
Java

Java | Java 標準ライブラリ:String クラスの特性

String クラスは「特別扱い」されているクラスString は、Java で文字列を扱うためのクラスです。でも、ただのクラスではなく「言語レベルで特別扱い」されている存在です。ダブルクォーテーショ...
Java

Java | Java 標準ライブラリ:clone の注意点

まず「clone は基本おすすめされない」という前提からいきなり結論から言うと、Object#clone() は「あるけど、できれば使わない方がいい API」です。理由はシンプルで、挙動が分かりにくい...
Java

Java | Java 標準ライブラリ:getClass

getClass は「そのオブジェクトの正体を教えてくれるメソッド」getClass() は、Object クラスが持っているメソッドで、「このオブジェクトは、実際にはどのクラスのインスタンスなのか」...
Java

Java | Java 標準ライブラリ:hashCode 契約

hashCode 契約って何のこと?hashCode() は「オブジェクトを、整数の“番号”に変換するメソッド」です。主に HashMap や HashSet などの「ハッシュを使うコレクション」で使...
Java

Java | Java 標準ライブラリ:equals の正しい使い方

equals は「同じインスタンスか?」ではなく「意味として同じか?」を見るequals は「この2つのオブジェクトは“意味として”同じものと言えるか?」を判定するメソッドです。ここでまず大事なのが=...
Java

Java | Java 標準ライブラリ:toString の使いどころ

toString は「中身を一瞬で覗くための窓」toString() は「このオブジェクトを、人間にとって読みやすい文字列にするとしたら、どう表現するか?」を返すメソッドです。System.out.p...
Java

Java | Java 標準ライブラリ:Object クラスの役割

Object クラスってそもそも何者かjava.lang.Object は「Java に登場するすべてのクラスの“ご先祖さま”」です。あなたがこう書いたクラスもpublic class User {}...
Java

Java | Java 標準ライブラリ:java.lang パッケージ概要

java.lang パッケージとは何かjava.lang は、「Java でプログラムを書くときに、ほぼ必ず使う“基本中の基本”がまとまったパッケージ」です。特徴としてimport を書かなくても、勝...
Python

Python | 自動化:API 定期取得

概要(API定期取得は「決まった時間にデータを取りに行くロボット」)API定期取得は、「毎朝9時にレポートAPIを叩く」「10分ごとにセンサーAPIから値を取る」といった処理を Python で自動実...
Python

Python | 自動化:Python バッチ

概要(「決まった処理をまとめてやるスクリプト」がバッチ)ここで言う「Pythonバッチ」は、「人がボタンを押さなくても、決まった処理をまとめて実行するスクリプト」のことです。例えば、毎朝こんなことを勝...
Python

Python | 自動化:cron / タスクスケジューラ

概要(「決まった時間にPythonを勝手に動かす」仕組み)cron(Linux / Mac)やタスクスケジューラ(Windows)は、「毎朝9時にこのPythonスクリプトを実行して」「1時間ごとに定...
Python

Python | 自動化:フォルダ監視

概要(フォルダ監視は「ファイルが増えた瞬間に自動で動く仕組み」)フォルダ監視は、「あるフォルダにファイルが置かれたら、自動で処理を走らせる」ための仕組みです。例としては、ダウンロードフォルダにPDFが...
Python

Python | 自動化:Excel テンプレ自動集計

概要(「決まったExcel」ならPythonで一気に集計できる)毎月・毎店舗・毎担当者から、同じ形式のExcelが集まってきて、それを手でコピペして集計していませんか。「テンプレが決まっているExce...
Java

Java | オブジェクト指向:小規模アプリの設計演習

この演習で目指すことここでは「小さいアプリ」を題材にしながら、オブジェクト指向でどう設計していくかを、最初から最後まで追体験してもらいます。難しいフレームワークは使いません。シンプルな Java のク...
Java

Java | オブジェクト指向:実務でよくある設計ミス

実務でよくある「設計ミス」とは何か実務でよく見る設計ミスは、「一発でシステムが壊れるような爆発」ではなく、最初は普通に動くけれど、時間が経つほどコードが重く・遅く・触りたくなくなっていく、そんなタイプ...
Java

Java | オブジェクト指向:オブジェクト指向的リファクタリング

オブジェクト指向的リファクタリングとは何かリファクタリング自体は「外から見た動きを変えずに、コードの中身(設計・構造)だけを良くしていく作業」です。オブジェクト指向的リファクタリングというときは、単に...
Java

Java | オブジェクト指向:パッケージ命名規則

パッケージ命名規則って何のためにあるのかパッケージ名は「このコードはどこの誰が書いた、何のグループなのか」を表すラベルです。クラス名が「1人の役者の名前」だとしたら、パッケージ名は「その人が所属してい...
Java

Java | オブジェクト指向:メソッド名の付け方

なぜメソッド名がそんなに大事なのかメソッド名は「このメソッドが何をするか」を一言で表すラベルです。ここが雑だと、コードを読むたびに「これ何してるんだっけ?」と中身を開いて確認する羽目になります。逆に、...
Java

Java | オブジェクト指向:クラス名の付け方

クラス名をつける前に知っておきたいことクラス名は、「このクラスは何者か」を一言で説明するラベルです。クラス名だけで、そのクラスの役割や意味がある程度イメージできるのが理想です。逆に言うと、クラス名があ...
Java

Java | オブジェクト指向:命名の重要性

なぜ命名がそんなに重要なのか命名は、プログラムの「言葉」です。コードは機械のためのものに見えて、実際には「人間が読む時間」の方が圧倒的に長いです。だから、変数名・メソッド名・クラス名は、そのまま「設計...
Java

Java | オブジェクト指向:モックしやすい設計

「モックしやすい設計」とは何かモックしやすい設計は「テストのときに、本物の代わりの“ニセモノ(モック)”を簡単に差し込める設計」のことです。たとえば、実際にはメールを送らずに「メール送信が呼ばれたかだ...
スポンサーリンク