redmineを導入しようとして...
軽く始めたことが、自分の習慣も変えるようになることってありますよねー?( ・`д・´)<あるあるー
このまえ職場でプロジェクト管理をちゃんとやろうと思い立って、
redmineをいじりはじめましたヽ(´ー`)ノ
オフィシャルっぽいブログもあって、
導入するのにそんなに苦労はしませんでしたが、
これがちょっとした自分のモットーを変えることになったのです。
ちょっとのぞいてみたテーブル
redmine、職業柄どんな風につくられてんだろうって気になったのですが、Rubyわかんないので、とりあえずテーブル眺めることに。
まず見たのが『users』テーブル。
作成日付とかって『created_on』って名付けるんだへー(´・∀・`)
と感心していると最後のカラムに気になる名前が
『salt』
むむ( ・`д・´)
ユーザのテーブルにあるし、
やはりパスワードを暗号化するときに付加するアレかと。
つぎにプロジェクト管理ってこともあって、
『projects』テーブルを。
『is_public』ってカラムがありました。
あー僕なら『public_flg』とかってやっちゃうよなーなんて思ってると、
またまた気になるカラムがっ( ・`ω・´)!!!
『lft』と『fgt』
さすがにこれだけでは断定できませんが、
型がint(11)だってことと、
プロジェクトが親子関係を持ちうるってことを考えると、
やはり、入れ子集合モデルのヤツだなと。
saltと入れ子集合モデルヽ(´ー`)?
saltとは、パスワードとかを暗号化するとき一緒に暗号化することで、解読されにくくする方法。
入れ子集合モデルとは、
部材表とかみたく再帰的に自分をみていく構造のテーブルを、
もっと早くアクセスするために考案された方法で、
lftとrgtの間にlftとrgtが収まっている部品は自分を構成する部品だとするやり方です。
ちゃんと説明できてないので、細かいことは次回にゆずるとして...
少人数では、
たしかに職場の環境ではイラネって感じのカラムですが、大きなプロジェクトで使うとかになると、
セキュリティーやパフォーマンスを確保するために必要になります。
で、それがどうした?
これだけ眺めるのに10分もかかりませんでした。でも、たとえば自分が学校出たてのエンジニア1年目で、
ふとしたことで、今回と同じようなことをして、
この技術を学んでいたと想定して、
webサービス作るときに、パスワードにsaltとか付加してセキュリティを高めようとか、
そもそもパスワードの平文保存はダメとか、
部材表作成するときに、検索の時間がかかるようなら入れ子集合モデル使おうとか、
そのまえに再帰的な部材表の作り方はやっかいだとか、
そういうことが提案できるってことなんですよね。
知っていたから、とかじゃなく
( ̄д ̄)「前もって知ってた技術だから、簡単に名前から辿りつけたのでは??」たしかに簡単に辿りつけたのはそうかもしれませんが、
時間かければ、行き着くことは可能だと思うんです。
今回のsaltやlft、rgtにしても、不可解な単語で、
この技術に至らなければ、なんとも納得できない存在なのですから。
やらなくても、出会うことくらいは...
いくつかオープンソースは読んだことありますし、書籍買ったり、ブログ読んだりもしてますが、
知らない言語だから、使わないOSだからって距離をとらずに、
今回みたいに気になったら、
わかるとこだけでもちょっと出会ってみる、
ってことをすれば、多く学べるんだなと思いました( ー`дー´)キリッ
ってことで、人生で初めて、Mac Book Pro買いましたっ( ー`дー´)キリッ
0 件のコメント:
コメントを投稿