watanabe_kf1983

システム開発の技術支援やアーキテクト寄りの仕事をしています。最近はVue.js、Pyt…

watanabe_kf1983

システム開発の技術支援やアーキテクト寄りの仕事をしています。最近はVue.js、Python、AWSを触る機会が多いです。もとは金融系・公共系を主にPG、SE、PMO、PL、と国産IT技術者らしいキャリアを重ねつつ、ベンチャーに転職し現在に至る。連絡はTwitterへ。

マガジン

  • 勝手に学び始めたい人のための プログラミング自学案内

    情報にあふれていながら意外と探し出しづらい、プログラミング学習の「入り口」や「糸口」を、案内する記事を連載するマガジンです。 今は右も左も分からないけど、プログラミングに興味があり、将来ITエンジニアになるかも知れない方々を対象読者として想定しています。 記事は基本的に読者にも手を動かしてもらうことを前提としたスタイルになっています。プログラミングは、自分で調べ、自分でコードを書き、自分で動かすことを抜きに、身につけることはできないからです。 3週に1回くらいのペースで記事を投稿していますが、頻度は不定期です。

  • 若手ITエンジニアのための転職指南マガジン

    ITエンジニア向けの転職Tipsを、 ・企業選びの際に必要な観点は何か ・企業の業態や各属性から見えてくるものは何か ・転職活動の方法やサービスの特徴・プロコン といった切り口で連載しました。(更新予定は当面ありません) 自身がITエンジニアであるとともに、エンジニアの中途採用活動にも携わっている私が、「そもそも現職の会社がどうなのか、知るの難しいんだな~」「会社選びのツボって、意外と知られていないもんだな~」と思うことが多かったことがその理由です。 日本のIT業界という漆黒の闇に沈む、若手ITエンジニアを対象読者として想定しています。

最近の記事

  • 固定された記事

チートシート:ITエンジニアの転職はこうすれば上手くいく

ITエンジニアの会社選びについての記事の最終回です。これまでの13回の記事を要約して終わりにしたいと思います。要約には、各記事へのリンクをつけていますので、分からないところがあればリンク先に飛んでください。 題して、ITエンジニアの転職はこうすれば上手くいく 〜転職エージェントが教えてくれない、教えられない、エンジニアだからわかる「エンジニアとして成長できる会社の見極め方」〜 転職活動におけるチートシートとしてご活用いただければ幸い。 想定読者日本のIT業界という漆黒の

    • プログラマって割に合う職業なの? ~ちょっとハードな長旅を終えて~

      プログラム自学案内の 42 回目、最終回です。これまで案内した内容を振り返ったうえで、IT エンジニアという職業ははたして目指すべき職業なのかどうか、考えてみます。これまでの記事はこちらからどうぞ。 これまで来た道を振り返るこのコラムで、これまでどんなことを取り上げたか、各記事のキーワードとともに振り返ってみましょう。 心構え・開発環境準備 01 回 右も左も分からない人へ 02 回 Chocolatey, Homebrew, VSCode この 2 回では、心構え

      • ちゃんとしたユーザ認証をLINEにゆだねる ~ IdP, passport-openidconnect ~

        プログラム自学案内の 41 回目です。前回までの記事では、まやかしの認証のもとに認可の機能をつくりましたので、今回はちゃんとしたユーザ認証を導入します。前回までの記事はこちらからお読みください。 LINEによるユーザ認証IdPって? 以前の記事で軽く触れた通り、認証処理というのは難しいものです。また、利用者にとっても、Webサイトごとにいちいちパスワードを考えるのは大変な面倒事です(パスワードの使い回しは危険ですしね)。 そこで、Webサービスでよく見るのが「Googl

        • Express.jsで認可をして、利用者の操作履歴を保存する ~ 401, 403, http-error, next() ~

          プログラム自学案内の 40 回目です。 前回の記事では、Express.jsアプリにまやかしのサインイン機能を追加しました。今回は、Express.jsアプリで認可の仕組みをどのように入れればいいか紹介します。また、いかにもSNSっぽい機能、利用者ごとの操作履歴や「いいね」を保存・照会できる機能を作ります。 これまでの記事はこちらからご覧ください。 認可処理の紹介まずは 認可(authorization) の仕組みを作ってみましょう。前々回の記事のおさらいになりますが、

        • 固定された記事

        チートシート:ITエンジニアの転職はこうすれば上手くいく

        マガジン

        • 勝手に学び始めたい人のための プログラミング自学案内
          43本
        • 若手ITエンジニアのための転職指南マガジン
          15本

        記事

          まやかしの認証で始めるサインインのイロハのイ ~ Passport.js, ミドルウェア, CoR パターン ~

          プログラム自学案内の 39 回目です。今回は、Web アプリにサインインの仕組みを Passport.js を使って付け足します(ただし、ちゃんとした認証は後回しです)。 これまでの記事は次のリンクから辿ってください。 Passport.js の導入Passport.js ( https://www.passportjs.org/ )を使うと、Express.js アプリにサインインの仕組みを入れることができます。本職のプログラマーは例によってPassport.js の公

          まやかしの認証で始めるサインインのイロハのイ ~ Passport.js, ミドルウェア, CoR パターン ~

          いったいなぜ、どのWebサービスもユーザ登録をさせようとするのか ~サインイン、認証、認可~

          プログラム自学案内の 38 回目です。今回は、サインインして使うWebサイトの作り方を学ぶとっかかりとして、ユーザにサインインさせたい理由と、認証認可という言葉を紹介します。以前の記事はこちらからどうぞ。 なぜ利用者登録とサインイン(ログイン)が必要なのかインターネット上のWebサービスは、はじめに利用者登録をして、サインイン(ログイン)してから使う、というものがほとんどですね。無料のものであっても。 この連載では、サインインのしくみの作り方をこれから紹介する予定ですが、

          いったいなぜ、どのWebサービスもユーザ登録をさせようとするのか ~サインイン、認証、認可~

          Render.com に PostgreSQL を使った Web アプリを載せるには ~環境変数, set, export~

          プログラム自学案内の 37 回目です。今回は、PostgreSQL を使った Web アプリを、Render.com を使って公開します。 これまでの記事はこちら。 これまでの記事のおさらいこれまでの記事では、Web 技術および DB 技術、その連携の方法を紹介してきました。 なかなかいいものが出来たはずなのですが、これを自分のパソコンでしか動かせない※のが寂しいところです。 (※ ただし、以前の記事で紹介した方法で、同じWifi に接続するパソコンやマシンからなら、動きを

          Render.com に PostgreSQL を使った Web アプリを載せるには ~環境変数, set, export~

          Webアプリでのトランザクション処理の定石って? 〜try with resources, using〜

          プログラム自学案内の36回目です。今回は、前々回の記事の課題を解くための3つめのポイント、トランザクションとコネクション管理について簡単に解説したあと、実装例を紹介したいと思います。これまでの記事はこちらから。 課題のおさらい:PostgreSQLへのデータ追加・削除まずは課題のおさらいをします。3回前の記事で作った磯野家画面に、追加、削除ボタンを足します。 トランザクショナルなWebアプリのポイントでは、課題を解くための3つのポイントの最後のひとつ、トランザクションとコ

          Webアプリでのトランザクション処理の定石って? 〜try with resources, using〜

          プログラムをプログラムで組み立てるときの注意点とは 〜パラメータ化クエリ, SQLインジェクション, エスケープ〜

          プログラム自学案内の35回目です。今回は、パラメータ化クエリと、エスケープの考え方を案内します。前回までの記事はこちら。 パラメータ化クエリ今回の記事は、前回チラ見せしたコードのうち、ここについての話をします。 models/family.js const result = await client.query( 'DELETE FROM isono_family WHERE full_name=$1 AND age=$2', [name, age]);

          プログラムをプログラムで組み立てるときの注意点とは 〜パラメータ化クエリ, SQLインジェクション, エスケープ〜

          なぜ住民票の誤交付を防ぐのは難しいのか 〜例外処理, フェイルファスト, throw, catch〜

          プログラム自学案内の34回目です。今回は、Express.jsアプリによる PostgreSQLへの書き込み操作と、そのために必要な例外処理についての案内をします。おまけで、例外処理に関連した話題として、住民票の誤交付問題を取り上げたいと思います。これまでの記事はこちらからどうぞ。 今回やることの説明:PostgreSQLへのデータ追加・削除前回作った磯野家画面に、追加、削除ボタンを足してあげます。 削除ボタンを押したときの動きの例です。 さっそく、挑戦してみてください

          なぜ住民票の誤交付を防ぐのは難しいのか 〜例外処理, フェイルファスト, throw, catch〜

          Express.jsとPostgreSQLの連携 はじめの一歩 〜コネクションプール, express-promise-router〜

          プログラム自学案内の33回目です。今回の記事では、Express.jsとPostgreSQLを連携させます。前回までの記事はこちらです。 この記事でやることの説明今回は、24回目の記事までに作ったExpress.jsアプリに画面を追加し、26回目の記事で作ったDB(磯野家テーブル)の内容を表示させます。 イメージはこうです。 トップページにリンクを足します。リンクをクリックすると isono_familyテーブルの内容が表示されるようにします。 やり方を次に説明しま

          Express.jsとPostgreSQLの連携 はじめの一歩 〜コネクションプール, express-promise-router〜

          JavaScriptの非同期処理、理解の糸口となるニュアンスを分かりやすく紹介 〜コールバック, async/await, I/O 〜

          プログラム自学案内の32回目です。今回は、JavaScriptのコールバックとasync/await構文を紹介します。この記事が、チマタに膨大にあるこれらへの解説を理解するための、糸口になればと思います。なお、前回までの記事はこちらです。 はじめにJavaScriptプログラミングでは、コールバック と async/await、これについての理解が重要です。どちらも、非同期処理 を扱うための書き方です。 「なんで非同期処理を扱わなきゃいけないの?」 「というかそもそも、非

          JavaScriptの非同期処理、理解の糸口となるニュアンスを分かりやすく紹介 〜コールバック, async/await, I/O 〜

          Node.jsとPostgreSQLを連携させるには? 〜 node-postgres, ChatGPT 〜

          プログラム自学案内の31回目です。前回の記事まででは、PostgreSQLで関係データベースの基本を紹介しました。今回からはデータベースに接続したWebアプリの開発を始めます。前回までの記事はこちらです。 これまでの連載では、Express.jsアプリの作り方、そして、PostgreSQLの使い方まで紹介しました。この連載のゴール、データベースに接続したWebアプリを作る準備が整いつつありますね。 ところが、ここからけっこう難易度があがってきます。上級者むけの内容になりま

          Node.jsとPostgreSQLを連携させるには? 〜 node-postgres, ChatGPT 〜

          ロックの役割と、ロックがもたらす行き詰まりとは 〜レコードロック、デッドロック、楽観的ロック〜

          プログラム自学案内の30回目です。前回の記事では、排他制御の必要性について紹介しました。今回の記事はその実践編ということで、PostgreSQLのレコードロックを紹介します。前回までの記事の一覧はこちらです。 ロックとはまずは、ロックを簡単に説明します。 ロック(lock) とは、自分が読み書きしているデータが、他の処理から同時に読み書きされないよう、他の処理を待たせるための仕組みです。 そもそも 英語の lock は錠前の意味ですので、ロックは、個室の扉に取り付けられ

          ロックの役割と、ロックがもたらす行き詰まりとは 〜レコードロック、デッドロック、楽観的ロック〜

          コンピュータ同士の協業の難しさ、人間同士の協業の難しさ 〜スケールアウト、排他制御、待ち行列〜

          プログラム自学案内の29回目です。今回は前回からの続きで、スケーラビリティと排他制御にまつわる考え方を紹介したいと思います。前回までの記事はこちらです。 前回の課題おさらい(同時更新問題)まずは前回の記事で紹介した課題をおさらいします。 花子の操作 (15時14分40秒) BEGIN;INSERT INTO orders VALUES ('担任の先生', '卓上カレンダー', 6);--コミット直前にquantityの合計をチェックSELECT item, SUM(qu

          コンピュータ同士の協業の難しさ、人間同士の協業の難しさ 〜スケールアウト、排他制御、待ち行列〜

          「元に戻す(Ctrl+Z, ⌘Z)」ができない PostgreSQLとの付き合いかた 〜コネクション、トランザクション、コミット、ロールバック〜

          プログラム自学案内の28回目です。前回の記事では DMLによる集計、結合操作を実践的に紹介しました。今回の記事では、データベースのコネクション、トランザクションについて紹介します。これまでの記事はこちら。 コネクションの紹介まずはコネクションの紹介です。PostgreSQLの「複数の人と同時に会話できる」聖徳太子的な働きとともに理解しましょう。 2つ以上のクライアントとやりとり PostgreSQLはサーバとして働きますから、2つ以上のクライアントとやり取りすることがで

          「元に戻す(Ctrl+Z, ⌘Z)」ができない PostgreSQLとの付き合いかた 〜コネクション、トランザクション、コミット、ロールバック〜