
最近よく、プログラミングに溺れます。
そして、昨日もデータベースに溺れました。
水もないのに溺れるって、全くもってアホな話ですが、アップアップしちゃうんですよね。
データだけにね・・・
偉そうにプログラミングを教えたりする立場でもあるのに、プログラミングやデータベースに溺れるって、一体どういうことかと言うと、
頭の中で構造体という波が津波のように押し寄せてきて、思考が右にも左にも向く事ができずに、息ができないぐらいな感じになってしまう状態です。
おそらくプログラミング初心者の人が、覚えた手のプログラム言語で、
何をどうすればいいか分からない状態の時に似ていますね。
あまりにも膨大な情報量の波に溺れるというのが適切な言い方かもしれません。
そんなデータ津波に飲まれた話と、そうなった時の対処方法を考えてみたいと思います。
データ津波の危険性
今回どういうデータに溺れそうになったのかと言うと、
テーブル数が膨大にあり、それらのリレーションが複雑に入り組んでいる場合、
どんなJOINで何をKEYに引っ掛けて、データを抽出すればいいかを考えている時に、
ワケワカメ状態になってしまいました。
人は、情報量が多い時に自分の処理能力のキャパを越えると、思考停止状態みたいになるんですね。
一見してシンプルに書けたように見えるクエリでも、出力した結果が想定とは違っていると、その原因を見つけるための思考がまた、かなりのディープインパクトです。
普通の人の脳は、知識が増えるほど「知らないこと」に敏感になり、余計に不安になる paradox(逆説)が発動するらしいですね。
データ波を乗りこなす思考術
個人的な見解ですが、以下のような事に注意しようと考えました。
1. 全部理解しようとしない
まず「全部理解しよう」としない。理解のグラデーションを許容する。
これ、すごく重要です。
部分的にコツコツと積み上げていって出来上がった成果物の方が安定感もありますからね。
2. データを“流れ”として捉える
「そのデータがどこから来て、どこに流れているのか」に注目するというピンポイント注目法。
複数のデータを同時に追うことは、AIじゃないとなかなか思考が追いつかない事があります。
データベースが、ちゃんと設計されていたら、リレーションの流れというのがありますからね。
その潮流を見つけることもデータ船乗り(データベースを扱う人の事)として重要です。
3. 視覚化
多くの場合、ちゃんと使用設計がドキュメント化されていないから、頭の中で全部考えようとしてしまうんですよね。
ER図やフローチャートで視覚化すると、頭の中の渦が静まるので、めんどくさがらずにちゃんと書く、メモるを大事にしましょう。
その時に、紙やツールなどを利用することもいいかもです。
一旦“思考を外に出す”ことで整理されることもありますからね。
4. レゴ式思考
小さな単位で理解し、少しずつ統合していく「レゴ式思考」が有効。
データをブロック化して分解してそれぞれクエリを書いて整理してみると、結構データの整理ができちゃうときがあります。
より複雑なデータベースに直面した時は、まずはレゴ化して、データベース設計を自分がわかりやすいクエリ化するというのは、悪くないアプローチです。
数学的思考よりはいい加減思考がオススメ
これは個人的な思考のオーバーフロー対応方法なのですが、
まず、「コーヒーを飲む」「甘いものを食べる」「スマホゲームなどをする」みたいに、現実逃避します。
あまりに完全逃亡を決め込むのは良くないので、適度な逃避です。
他人から見たら、一生懸命に仕事をしていないので「適当な人(いい加減な人)」と思われるかもしれませんが、
自宅作業しているフリーランス系エンジニアに許された特権でもありますね。
そんななか、脳がリフレッシュされて、そうして休んでいる間に、さっきまで悩んでいた思考の解決方法がなんとなく頭に浮かんでくることもあります。
特に
オヤツパワーはバカにできません。
今日は、チョコレートにしようか、クリーム系にしようか、ドーナツ系にしようか、アンコ系にしようか・・・なんていうことを、仕事中に常に考えているのもアホな話ですが、
なかなか楽しめる思考でもありますね。
あとがき
データに溺れても決してヘコたれません。
あまりも深い波の時は、一晩寝てから解決することもありますが、
解決できないデータ波は無いというのが、個人的な見解です。
でも、今回溺れそうになったデータベースの津波って、実は自分が考えて設計したデータベースなんですよね。
1週間以上前に構築したデータベースがあまりにも複雑だったので、アップアップしていたという自虐ネタでした。
0 件のコメント:
コメントを投稿