KiSAKU

ブログ

技術系

フォームは作ってあった。行き方が無かった

このサイトには、問い合わせフォームが置いてあります。プロフィールページの一番下です。 リンクを探したところ、サイトのどこにもありませんでした。 この記事で扱うこと 作ってあるのに辿り着けなかったフォームの話です。なぜ気づ […]

UI設計
技術系

Criticalが4件並んだ日にやったこと

朝、通知を見たらCriticalが4件並んでいました。どれも同じ相手、Next.js本体です。 この日にやったことを順に書きます。結論から言うと、上げました。ただ、上げる前にやったことのほうが本題です。 この記事で扱うこ […]

Next.jsセキュリティトラブルシューティング
技術系

印を付けただけでは、探せるようにならなかった

記事一覧のカードには、前から「読了済み」の印を付けていました。 付けた当時は57本でした。いまは110本を超えています。印は役に立たなくなっていました。 この記事で扱うこと 読了の印だけでは足りず、未読だけを出す絞り込み […]

localStorageNext.jsReactUI設計
技術系

崩れる理由が分かるCSS — ボックスモデルと詳細度(第2回)

CSSが効かない原因は詳細度、幅が合わない原因はボックスモデル。この2つを押さえたうえで、FlexboxとGridの使い分けまで進みます。

フロントエンド連載
技術系

生成した画像に、undefinedと書いてあった

記事のアイキャッチは、自分で書いたスクリプトで作っています。タイトルと一言、それに題材に合わせた線画を1枚に組んで、画像として書き出す仕組みです。 連載を続けるために作った5枚を見返したとき、そのうち1枚に「undefi […]

トラブルシューティング
技術系

勉強法(4) 教える側に回ると、穴が見える

教える側に回って見えた、自分の理解の穴。答えられなかった質問の種類と、そのあと説明の仕方をどう変えたかです。

UI設計エンジニアの勉強法技術選定
技術系

勉強法(3) 調べる場所が決まらない時間

「読めない」「分からない」を、調べられる形まで分解する話です。詰まる場所は毎回ほぼ同じ構造をしていました。

エンジニアの勉強法トラブルシューティング技術選定
技術系

再試行は入れていた。それでもデプロイが落ちた

再試行の処理は、半年前から入れていました。CMSが500を返したら、少し待ってもう一度投げる。3回まで。 それでも、デプロイが落ちました。 この記事で扱うこと 再試行を入れてあったのに効かなかった話です。何が返ってきてい […]

Next.jsVercelデプロイトラブルシューティング
技術系

勉強法(2) 測らないと、分かったことにならない

このサイトで実際にやった「確かめ方」を3つ。どれも、確かめていなかったら間違ったまま進んでいたものです。

UI設計エンジニアの勉強法トラブルシューティングパフォーマンス
技術系

勉強法(1) 1つ作り切ると、広く当たる

ポートフォリオサイトを1つ作るのに、結果として何を触ることになったか。その一覧と、それが「順番に勉強する」やり方とどう違ったかです。

DNSエンジニアの勉強法デプロイ技術選定
技術系

divだらけをやめる — セマンティックHTML(第1回)

同じ見た目でも、HTMLが意味を持っている場合と持っていない場合があります。覚えるタグは8つだけ。divをやめる基準を決めます。

フロントエンド連載
技術系

ソース解説(5) 文字列を自分で組み立てる場所

このサイトで、HTMLを文字列として自分で組み立てている場所は2つあります。RSSフィードとサイトマップです。 画面に出るページは、部品を組み合わせれば勝手に出来上がります。この2つは違います。1行ずつ並べて、最後に文字 […]

Next.jsSEOソース解説トラブルシューティング
技術系

ソース解説(4) 速くしたら、デプロイが止まった

記事のデータは、共用サーバー上のWordPressから取ってきています。この部分は2回作り直しました。 最初は「常に最新を取る」形。速度の問題が出て、キャッシュする形へ。すると今度は、デプロイが止まるようになりました。 […]

Next.jsWPGraphQLキャッシュソース解説
技術系

細かく刻んでも直らなかった、経路を変えたら一度で通った

記事のアイキャッチ画像を、CMSへ入れる作業をしていました。画像を文字列に変換して、少しずつ送り込む方法です。 ところが、ときどき壊れます。送った文字列と、届いた文字列が違う。 対処として分割をどんどん細かくしていきまし […]

REST APIWordPressトラブルシューティング
技術系

ソース解説(3) 旗を折るのではなく、読み込まない

クッキー同意のバナーは、置くこと自体は難しくありません。難しいのは、「同意していない人には何も送っていない」と自分で言い切れる形にすることでした。 今回はその部分のコードを読んでいきます。保存する形、版番号を持たせた理由 […]

GTMアクセス解析セキュリティソース解説
技術系

そのページは何だと名乗っているか

用語集の分類ページを調べていて、妙な指定に気づきました。このページは「記事」だと名乗っていました。 中身は用語が並んだ一覧です。公開日もなければ、書いた人もいません。それでも、SNSや検索エンジンに向けては「これは1本の […]

Next.jsSEOTypeScript
技術系

見た目で区別が付いているものは、機械には区別が付いていない

見た目で伝わっている区別が、機械には伝わっていなかった話です。何が起きていたか、どう直したか、そして「見えるから伝わっている」という思い込みについて書きます。

Next.jsSEOUI設計
技術系

一覧と詳細だけのアプリで、フロントエンドの全体像を掴む(第0回)

一覧と詳細だけの小さなアプリを、21回かけて作り切る連載です。第0回では最終回に手元に残るものと、積み上げの順番を先に示します。

フロントエンド連載
技術系

一部だけ足したつもりが、丸ごと置き換わっていた

1行足したつもりでした。実際には、そのページの共有画像が消えていました。 しかも消えたのは、その日に触ったページだけではありません。調べたら、以前から9ページで同じことが起きていました。画面には出ず、動作も壊れず、誰も気 […]

Next.jsSEOTypeScript
技術系

ソース解説(2) 目次は本文から作る

本文が文字列として届くこと、そこから見出しを拾う方法、既にあるidを勝手に変えてはいけない理由、そして読んでいる位置をどう追いかけているかです。

Next.jsReactUI設計ソース解説
技術系

「送っていない」と言い切るために、同意まで読み込まないことにした

止める対象の数え方、旗を立てる方式と読み込まない方式の違い、スクリプトが無い環境の扱い、そして同意の記録に版を持たせた理由です。

GTMアクセス解析セキュリティ
技術系

ソース解説(1) 全体の地図と、境目の引き方

このサイトの作りについては何度か書きましたが、中のコードそのものには触れていませんでした。 ここから何本かに分けて、実際のファイルを開きながら説明していきます。まずは全体の地図と、読むために知っておいたほうがいい前提から […]

Next.jsReactTypeScriptソース解説
技術系

同じ「丸み」でも、比べる相手が違えば別の表に置く

フッターの上の角を丸めています。ページの下に別の面が敷かれている、という見え方を作るためです。 ところが、実機で見返すと「もう少し丸くていい、50pxでもいいくらい」と感じました。当時は14pxでした。 この記事で扱うこ […]

UI設計
技術系

進捗バーが0から始まらないのは、測る場所を1つ間違えていたからだった

なぜ0から始まらなかったのか、どこを基準に測るかで何が変わるのか。そして、終わりの位置を動かさずに始まりだけ直す方法です。

Next.jsUI設計