中級者向け

JavaScript

【Vue】script setupの書き方:Composition APIの基本

こんにちは、かつコーチです。前回は v-for ・ v-if を使ったリスト表示と条件分岐を解説しました。今回からは一歩進んで、Vue.jsの現在の主流である「Composition API」を扱っていきます。その入り口となるのが <scr...
JavaScript

【Vue】Reactを知っている人向け:ReactとVueの記法対応表

こんにちは、かつコーチです。前回はテンプレート構文の基本として、Mustache構文とディレクティブを解説しました。今回は少し趣向を変えて、「ReactではこうだったけどVueではどう書くのか」を、記法ごとに対応表で整理していきます。Rea...
Python

【Python】pathlibでファイルパスをモダンに扱う

こんにちは、かつコーチです。Pythonでファイルパスを扱うとき、os.pathモジュールを使っている方は多いと思います。ただ、Python 3.4以降では、より直感的に書けるpathlibという標準ライブラリが用意されています。pathl...
Python

【Python】reモジュールで正規表現を使う

こんにちは、かつコーチです。「メールアドレスの形式をチェックしたい」「文字列から特定のパターンだけ抜き出したい」。こうした処理をinやsplitだけで書こうとすると、コードが複雑になりがちです。そこで役立つのが正規表現です。正規表現とは、文...
Python

【Python】型ヒント(Type Hints)の書き方入門

こんにちは、かつコーチです。チームで開発しているコードに、def greet(name: str) -> str:のような記述を見かけて、「これは何のためにあるのか」と気になったことはないでしょうか。「型ヒントを書いても、実行結果は変わらな...
Python

【Python】ジェネレータとyieldの使い方

こんにちは、かつコーチです。大きなファイルを読み込む処理を書いていて、メモリを大量に消費してしまった経験はないでしょうか。「yieldってreturnと何が違うの」「ジェネレータを使うと何が嬉しいのか分からない」そう感じている方も多いと思い...
Python

【Python】ラムダ式とmap・filter・reduceの使い方

こんにちは、かつコーチです。他人が書いたPythonのコードを読んでいて、lambda x: x * 2のような記述に出くわし、手が止まった経験はないでしょうか。「lambdaって何」「mapやfilterは内包表記と何が違うの」そう感じて...
Python

【Python】プロパティ(@property)でgetter/setterを実装する方法

こんにちは、かつコーチです。他の言語からPythonに来た方が戸惑いやすいのが、getter/setterの書き方の違いです。「JavaみたいにgetName()、setName()って書かなくていいの?」「@propertyってdecor...
Python

【Python】デコレータの基本:関数を拡張する仕組みを解説

こんにちは、かつコーチです。Pythonのコードを読んでいると、関数の上に@から始まる記述がついているのを見かけることがあります。「この@login_requiredみたいなのは何?」「デコレータって難しそうで避けてきた」そう感じている方も...
Python

【Python】継承とオーバーライドの書き方をわかりやすく解説

こんにちは、かつコーチです。クラスの基本を覚えると、次に気になってくるのが継承です。「似たクラスを何個も作るのが面倒」「共通の処理はまとめたいけど、一部だけ変えたい」そんな悩みを解決してくれるのが、継承とオーバーライドという仕組みです。この...
Python

【Python】スライスの応用テクニック(逆順・間引き等)を解説

こんにちは、かつコーチです。Pythonのスライスは、リストの基本操作としてlistのような書き方をすでに使っている方も多いと思います。ただ、スライスにはという第3の要素があることをご存じでしょうか。「リストを逆順にしたい」「1つおきに要素...
Python

【Python】collections.defaultdictで初期値付き辞書を扱う

こんにちは、かつコーチです。Pythonで辞書にデータを追加していく処理を書いていると、KeyErrorに何度も遭遇した経験はありませんか。「キーが存在するかどうかを毎回チェックするのが面倒」そんな悩みを解決してくれるのがcollectio...
Python

【Python】collections.Counterで要素の出現回数を数える

こんにちは、かつコーチです。「リストの中で、どの要素が何回出てきたか数えたい」そんなとき、通常の辞書を使って自力でカウント処理を書いた経験はありませんか。実はcollections.Counterを使えば、その処理をたった1行で済ませられま...
Python

【Python】zip()で複数のリストをまとめて処理する

こんにちは、かつコーチです。「名前のリストと年齢のリストがあるけど、これを一緒にループしたい」そんな場面で役立つのがzip()です。インデックスを使って無理やり結合するコードを書いた経験がある方も多いのではないでしょうか。この記事では、zi...
Python

【Python】Pythonの辞書内包表記・セット内包表記の書き方をリストとの違いから解説

こんにちは、かつコーチです。前回はリスト内包表記を解説しましたが、今回はその応用編として辞書内包表記とセット内包表記を取り上げます。Pythonでは、リストだけでなく辞書(dict)やセット(set)についても、内包表記を使って1行で作成で...
Python

【Python】Pythonのリスト内包表記の書き方と使いどころを徹底解説

こんにちは、かつコーチです。今回は、Pythonらしいコードを書くうえで欠かせないリスト内包表記を解説します。リスト内包表記とは、for文を使ったリストの生成処理を、1行で簡潔に書ける構文のことです。他の人が書いたPythonコードを読んで...
Python

【Python】Pythonの三項演算子とwalrus演算子(:=)の使い方をやさしく解説

こんにちは、かつコーチです。今回は、コードを短く読みやすくしてくれる2つの演算子、三項演算子とwalrus演算子(:=)を解説します。どちらも「知らなくても書けるが、知っていると一気にコードがスッキリする」タイプの構文です。私も最初にこの2...
Python

【Python】Pythonのスコープとは?グローバル変数・ローカル変数の違いとglobal文の使い方

こんにちは、かつコーチです。今回は、Pythonで関数を書き始めた人がほぼ全員一度はつまずく「スコープ」について解説します。スコープとは、変数が参照できる範囲のことです。「関数の中で定義した変数が、関数の外から見えない」「逆に、関数の外の変...
JavaScript

【Vue】Vitestの基本:Vueでテストを書く準備

こんにちは、かつコーチです。前回は、VueアプリのXSS対策について解説しました。認証・セキュリティ編はここで一区切りとなり、今回からは「テスト編」に入ります。まずはVueプロジェクトで定番のテストランナーであるVitestの基本を押さえて...
JavaScript

【Vue】VueアプリのXSS対策

こんにちは、かつコーチです。前回は、Vueアプリに認証機能を実装するパターンを解説しました。認証・セキュリティ編の2本目となる今回は、Webアプリの代表的な脆弱性であるXSS(クロスサイトスクリプティング)への対策を扱います。XSSとは?悪...