アルゴリズム
シリアライズとアンシリアライズについて
データベースに配列データを保存する時、データの形式が固定ならカラムとして持たせてしまえば良いんですが、データ構造が場合によって変わることもあると思います。 例えば、賃貸検索サービスのサイト内で検索が行われた時の検索条件の履歴データを保存したい時都道府県だけで絞り込む人も居れば、駅を複数選択して沿線で探す人も居るでしょう。こだわり検索条件を組み合わせて、〇〇駅と〇〇駅から徒歩10分以内のバス・トイレ別などという条件で検索する人も居るでしょう。 それらの様々な条件を検索条件ログと...
JavascriptでFormをSubmitする前に入力チェック(バリデーション)を実施する方法
以前から、FormをSubmitする時、PHPで入力値をチェックして、ダメだったら何もせずメッセージを表示するのって「無駄な通信だな」「先にJavascriptで入力値をチェックできたら良いのに」って思っていました。 でも、入力チェックの良い設計が思いつかなかったんです。今回、それなりの形になったので、ご紹介します。 フォームの入力チェック(バリデーション) 今回のサンプルで想定しているformは以下の通り <form class="v-form" ...
私たちは既にAIに侵略されている?ネットやSNSで自分の興味のある内容ばかり出てくるのはなぜ?
みなさんはネットやSNSを利用していると、自分が最近調べた商品や、興味のあるジャンルの記事ばかりが表示されると思いませんか? 現在のインターネットやSNSには、ユーザーに最適化された記事や広告が表示される仕組みがある あなたの検索傾向は検索エンジンやSNSによって、集計されユーザーに最適化された『興味カテゴリー』として保存されています。あなたが服をたくさん検索すれば『ファッション好き』として、あなたが車をたくさん検索すれば『乗り物好き』として登録されるわけです。そして、企業が...
プログラミング学習のコツ的なこと
私は複数のプログラミング言語を扱えますが、現代のプログラミング環境において、プログラミング言語が扱えるっていうのは、「最低限の知識がある程度に過ぎない」と思っています。なぜなら、開発現場で"フレームワーク"を使わずに、1からプログラミングを行うことなんてほとんどないからです。 プログラミングにおけるフレームワークとは? "フレームワーク"っていろんな所で使われる言葉ですが、プログラミングにおけるフレームワークはシステム開発に必要な機能があらかじめ用意された開発補助ツール(プロ...
【Javascript&PHP】無限スクロールの作り方【AJAX】
Googleで検索した際、検索結果がどんどん下に読み込まれていきますよね?この新しい情報が随時読み込みされて、どんどんスクロール量が増えていく動きは『無限スクロール』と呼ばれているそうです。 今回はこの無限スクロールを解説していきます。 大量のコンテンツの見せ方には『ページャー』と『無限スクロール』がある ページャーというのは、1ページに情報が決められた数のみ表示され、それ以上の情報は2ページ目、3ページ目とページめくりしていくことで表示されます。 対して無限スクロールでは、...
即時関数とは
即時関数というものがあります。おそらく、この記事を読んでいる方は『即時関数』というものがあることを知って、どういう場面で使うのか、どういう書き方をするのかが知りたくて調べて来たんじゃないでしょうか? 即時関数とは 即時関数は、関数を定義して、すぐにその場で関数を実行する構文です。 javascriptでは以下のように記述します。 // 引数の無い即時関数 (function() { // 関数の処理をここに記述 })(); // 引数がある時の即時関数 (function([...
プログラムには書き方が複数ある
Javascript&jQuery
PHP
アルゴリズム
私は新しいプログラミング言語を学ぶとき、最初に5冊程度本を買います。しかし、結局本だけでプログラミングが出来るようになったことはありません。 結局、ネットで検索するんですよね。このブログもそういう人向けに書いています。しかし、どうして結局ネットで調べるのに、わざわざ本を買うのか。 プログラミングには処理としては同じことなのに、書き方がたくさんあります。略して書いたり、書き方が違うと記述順の制約が付いたりするのですが、やってることは同じなんです。それでも書き方が違うんです。特に...
【Formの二重送信防止方法】PHPページでF5を押すとフォームが二重送信されてしまう
PHPでプログラムしていると、FormのあるページでSubmit後、F5を押すとFormのデータが二重送信されてしまう問題が発生します。今回はこの二重送信問題の解決方法をご紹介します。 PHPのフォームデータ二重送信を防ぐ方法は大まかに2種類あるので、それぞれ個別に説明します。 Formの二重送信を防ぐ方法1:トークン方式 このトークン方式は、ページを開くたびにトークン(一時的な暗号)を生成し、トークンが一致するか確認して、一致する時だけ処理を行うという方法です。 2回目にP...
人のプログラムを見ると何がわかる?
世の中にはプログラマ採用にソースコードの提出を求めたり、GitHubのアカウントを求める企業があります。彼らはソースコードを見ると何がわかるのでしょうか?プログラマを学んでいる学生の方はよくわからないかもしれないので、私の体験をご紹介します。この記事が就活に役立つと良いですね。 プログラムのソースコードは『プログラマーの日記』である 日記は書いたことあるでしょうか?日記にはその日その日の自身に起こった出来事や心情が綴ってあることでしょう。それと同じことがソースコードにも反映さ...
2Dゲームで狙い撃ちとか追尾ミサイルを作る方法
今まで、業務アプリケーション的な話ばっかりしてたんですけど、趣向を変えて2Dゲームで角度指定して弾を打つ方法とか、追尾ミサイルを作る方法をご紹介します。 ※数学をモリモリ使います。 パソコンの角度計算は基本的に『ラジアン角』を使う ラジアン角ってわかりますか?角度を表す単位の一つで、『角度』が1周360度まであるのに対し、360度はラジアン角で表すと2πとなります。難しいことは置いておいて、ここで覚えるべきことは、たったの2つ! 角度からラジアン角に変換する方法ラジアン角から...