Web の世界には、面白い小噺がたくさんあります。 雨宿りとWeb の小噺 パーソナリティーの
KEITHです。今回も一つ、興味深いお話をご紹介します。 今回はですね、なんとこの番組始まって、
初めてのライブ配信となります。 おそらく初めてだと思いますけど、しかもですね、
なんとここ、裸ドア Web Creator Podcast Day 2025 というイベントにお声掛けいただきまして、
今、出演をさせていただいています。 トップバッターを務めますので、ものすごく緊張しておりますので、
途中途中、ちょっと噛んでしまったら、ご容赦いただければなと思います。 はい、ということで、今回はどういう話をしようかと悩んだんですけど、
このイベントですね、事前におはがきの投稿も募集されていまして、 ありがたいことに、私の番組にもですね、おはがきいただきましたので、
その内容について深掘りしつつ、今日はお話ししていこうかなと思っております。
はい、では、まずおはがきいただきましたので、読ませていただきたいと思います。
ラジオネーム トールさんからいただきました。 ありがとうございます。
Keith さんの雨宿りとウェブの小話はずっと聞かせてもらっております。 今回のイベントにご出演をするというのを見つけて、メッセージさせていただきました。
毎回 Keith さんの声が聞きやすく、エンジニアリングがしっかりわかる話で、聞いていて、
ああ、そういうのもあるのか、とか、そういうふうに使ってるのか、といった自分のエンジニアとしての足りなさとか、足りてるとかっていうのを図るもの差しのようなつもりで、お聞かせいただいています。
Keith さんには失礼な話ですが、全然そんなことはないです。 毎回このイベントでは、いろいろな番組でご出演をされるということですが、
Keith さんが当日にどんな話題をされるのか、とても楽しみにしています。 当日出演されるエンジニア系ポッドキャストでは、
ひまじんプログラマーの週末エンジニアリングレッスンさんもお聞きしていますが、個人的には Keith さん推しです。
めちゃくちゃ嬉しいですね。ありがとうございます。 はい、個人的にはめちゃエンジニアのマニアックな話をして、他のリスナーさんを置き去りにしてもらいたいと思ったりもしております。
頑張ってください、というお書きをいただきました。 はい、改めましてありがとうございます。
そうですね、普段私の配信は Google ホームからお便りとか感想も募集してますけども、結構のんびりエンジョイする番組ですので、
あんまり技術の深掘りとかもするわけではなかったりするということもありまして、あんまりお便りいただくことがなかったので、今回まさか事前にいただけるとは思ってなくてですね、
本当に心から嬉しかったです。ありがとうございます。 ということで、嬉しい反面ですけど、今回のイベントのコンセプト的に
リスナーさんが我々と同じような業界の方であったり、同業の方も全然いらっしゃるだろうなと思っておりまして、
ですので、そういう方を置き去りにするような雑談、何があるかなってすごい考えたんですけど、これ難しくてですね、なかなかいいテーマをいただきました。
自分がマニアックに語れるものなんかあるかなっていうのを昔考えたんですけど、一応私がコミッターをしております
JavaScriptのUIライブラリーRiot.jsというものがあります。 これ実はリアクトと同い年なんですよね。半年後に生まれたライブラリーですけど、これについて喋るか、
新卒の頃にですね、お仕事で触っていたECサイト構築用パッケージソフト、EC-CUBEというものがございます。
ご存知の方もいらっしゃると思いますけど、僕はこれのバージョン2Kを触ってましたね。 この2つのどっちかを喋ろうかなと思っていたんですけど、
Riot.jsは今後喋る予定が実はありまして、改めて喋りたいので、ちょっとネタバレしたくないから今回は控えると。
EC-CUBEも喋ってもいいんですけど、正直カイコダンにしかなり得なくて、知ってる人しかわかんないし、とはいえいろんな意味でツッコミどころ満載のソフトウェアなので、
これこれで楽しい話はあるんですけど、いわゆる酒の魚着にしかならない気がするので、今回もちょっとこれはやめといて、まだ別途ニーズがあれば全然お話しますのでお声掛けください。
ということでじゃあ今日何の話しようかなと思ったんですけど、文字化系のお話、あとは英文字の話かな、をしてみようかなと思いました。
おそらくエンジニアの方ならばまあまあ常識かもしれないですけど、ちょっとその辺はご容赦ください。 おそらく一般的にエンジニアじゃない方は知らない話だと思うので、
まあそれも一ついいのかなと思っております。まあちょっとライト目の話でいきたいと思います。 皆さんの周りに高橋さんとか山崎さんっていらっしゃる方
あると思いますけど、この高いという漢字が例えばはしご高だったり、佐紀という漢字の右上の部分が大きいという大の字ではなくて、
スタンドアップ立つっていう字の佐紀だったりすることもあるんじゃないでしょう。 今はもうほぼほぼなくなったと思いますけど、このちょっと
一般常識と違う形の漢字である場合、ウェブサイトのフォームとかで登録すると、なんか文字化けしちゃったよみたいな経験をしたことある方
いらっしゃるんじゃないでしょうか。エンジニアの方も逆に文字化け対応した方もいたんじゃないかなと思います。
はい、まさにそう文字化け。コンピューターが文字を覚える仕組みの歴史の名残なんですよ。 そもそも大前提としてコンピューターっていうのは我々が使っている
AとかAみたいな文字っていうのを直接理解しているわけではなくて、 コンピューター言語は0と1しか理解できません。
ですので、僕らの方で文字に番号を割り振ってるんですよね。 例えばアルファベットのA、大文字のAは65番、Bは66番。
この文字と番号の対応表のことを文字コードと呼んだりします。 昔はASCIIって言われるアルファベットだけの対応表で十分だったんですよ。
なんですけど、ここに日本語っていうマルチバイト文字が登場しまして、こいつが問題を引き起こす。 日本語ってひらがながありカタカナがあり、そして数万文字あると言われる漢字があると。
これどうやって番号に割り振るかっていうのが大変だったわけですね。 日本中一回大混乱に陥ります。
それに対応するために、例えばShift-JISとかEUC-JPとかいろんな対応表が乱立してしまったので、 結局我々どうしたらええのっていうのが難しかったんですね。
特にやばかったのは、WindowsとMacとかで同じ対応表と番号を使っているのに、まさか違う文字が表示される。 いわゆる奇襲依存文字と言ったりするもの。
丸の1とか、かっこかぶ、ああいうのが起きます。 それをですね、混沌としていた時代があったんですけど、終わらせる救世主が登場します。
これが今も使われているユニコードと言われるもの。 もっと言うと、皆さんも見たことあると思います。UTF-8っていうものですね。
ユニコードの中にもたくさんあって、そのうちの1つです。 平たく言うとこれ何ぞやって話ですが、全世界の古今東西全ての文字に、なるべく重複をしないように固有の番号を与えようというものを定義した文字コードになります。
ただ、UTF-8を使わないと文字パケットが今でも起きているし、皆さんも見たことあると思います。 例えば日本語のアーという文字をUTF-8で変換をすると、E38182みたいな文字で表現されるんですけど、
これをShift-JISで無理やり読み込むと、もつれるっていう感じ。 ちょっと説明するの難しいんですけど、見たことあると思います。そういう文字に変換がされてしまいます。
はい、絵文字の話はそんなところで、今回他に話したかったことっていくつかあって、その話どこまで喋ろうかちょっと悩んだんですけど、時間がですね、今回は20分しか用意をしていただけてなかったので、他にも12番組がありますので、加味すると、今回はちょっとですね、ライトめにお話をしようかなって思っておりました。
はい、ちょっとだけ先ほどのEC-CUBEの話だけ若干をしますと、EC-CUBEバージョン2K使ったことある人っていうのはもう多分子さんっていうか、僕と同じ年代なので、おそらく30代40代の方だと思うんですけど、EC-CUBEもいろいろバージョンが変わるにつれてちゃんとフレームワークが入っていたり、データベースとか中身がガラッと刷新されたりとかしてはいたんですけど、このバージョン2Kっていうやつはすごく闇の、闇というと失礼ですねごめんなさい。
作られたら会社さんにはちょっと申し訳ないんですけど、いろいろ闇が含まれるツールでして、一方でこのツールを使うことでたくさんのECサイトが生まれたっていう歴史はしっかりあります。
ですので、その価値はすごくあるのは僕も理解してますし、私もそのEC-CUBEを使ってお仕事をさせていただいて、お給料を得ることができたというので、ものすごく感謝はしてます。
今やっぱりいろんな技術を勉強して知識が増えてきてくると、あの設計は果たして良かったのか、みたいな思うところがたくさんあるんです。
例えば、正規化が全然されてないテーブル構造があって、ECサイトを作るので、商品ページとかのデータベース、商品のデータベースがあったりするんですよ。
名前は確かDTVプロダクツって言った気がします。DTVはデータテーブルの略ですね。これの別でマスターテーブルでMTVとかあったりした記憶です。
そうDTVプロダクツが、カラム確かで7、80あった気がするんですよ。
普通に商品カテゴリーとか何やら普通に正規化したらもっとカラム減るでしょうって思ったんですけど、最初見たときそれぐらいあって衝撃を受けました。
あとは受注テーブル、オーダーテーブルもものすごいカラム数があって、何でしたっけ、コメントが6個くらいあるんですよ。
マジでやめてくれって思いました。そういう自由なカラムを作ると自由に使うじゃないですか。
フォームの中に何でもいいから備考欄123456ってあると、例えばそこにビジネス上のクリティカルな情報を載せて、それをもう完全に使う前提で運用に載せてしまうみたいなお客さんって本当はいらっしゃるんですよ。
まあですけどあくまで補足として使うコメント欄なので、それを僕らは期待しないんですけど、一方でお客様でもそういう使い方をするっていうのはやはり僕ら自身も考えていかなきゃいけなくて、ECサイト作るのは難しかったし、
ある意味でエンジニアのスキルを上げたいんであれば、1回ECサイトに挑戦するがものすごく良い題材だと僕は思っています。
むっちゃむずいですよ。配送先が複数になったりするとか、カテゴリー何回送するのかとか、
あとあれですね、物理在庫とオンラインの論理在庫のどういうふうに動機を取っていくかとか、その制御とか、同時に注文が入ってしまった場合どうするのとか、
これめっちゃ大変なので、いろいろ考慮するべきことを考えなきゃいけないポイントっていうのが多いということで、僕はECサイトはエンジニアとしてスキルアップしたいんだったらお勧めはしてますが、
かなりエネルギーがかかるかつ複雑度の高いアプリケーションなので、ちょっとずつ作っていくのがいいんじゃないかなと思います。まずはやっぱりログイン画面作るとか、
商品の一覧ページを作るとか、段階的にやっていって最終的に構築して一つのECサイトが、欠陥だらけでも全然いいと思います。
でも一つ作り上げたっていう経験値はすごく生きると思うんで、やっていただければなという感じですね。