ラベル チューニング の投稿を表示しています。 すべての投稿を表示
ラベル チューニング の投稿を表示しています。 すべての投稿を表示

2020年7月1日水曜日

わかりやすい・効率の良いそして果ては自己満足のソース


こんにちは。

久々に、開発プロジェクトに携わることができ、毎日うきうきしてますよ!
今日はそんな中、プロジェクト内で出会った、ソースの書き方+アルゴリズムの人それぞれな部分に感じたことを。

最近、自分がほんと歳をとったなぁと思うのが、若い子達とお仕事をしてる時ですね。
若い子は仕事が早い!覚えもいい!(人によるのは知ってる)
今回のプロジェクトでも、

    ★とても優秀な若い子に出会うことができた★

のでおじさんは満足しています。

その子のソースは読みやすい。
インデントとかそういう問題ではなく(そこも綺麗だけど)、処理のまとまりとか、
一貫性とか、華麗で端的な書き方。ほんと頭下がるおもい。

そんな中、PL/SQLあがりのおじさんは、どうしても納得のいかない部分を見つけてしまったんだよね。
ちょっと専門的な話になるのだけど、Sequelizeというnode.jsで利用するORM(オーアールマッパー)があるんだけど、こいつは残念なことにUNION、UNIONALLができません。
そこで各テーブル(MODEL)毎にデータをとってきて、JavaScript上でえいっとマージする必要がある。(処理はとても簡単)

今回はこの「UNION ALL」した結果と、トランザクションをJOINする。といった処理でした。

 ・若い子
  トランザクションを取得(オブジェクト配列へ)
  マスタのUNIONALLを取得(オブジェクト配列へ)
  トランザクションのオブジェクト配列をぶつける(マスタへの照合はfilterを採用)

 ・MochiTomo氏
  トランザクションとすべてのマスタを外部結合して取得(オブジェクト配列へ)
  各マスタの中で名前がNULLでない部分を名前として再定義。

マスタとトランザクションは主キー・外部キーでぶつけるのが前提だけど、
おじさんはどうも全部とってきて、プログラムで回すというのが苦手で(苦笑)
マスタが1000件でトランザクションが1万件だったらどうしよう。みたいな。
今のサーバスペックならびくともしないのは知ってますけど。

結果としてはUNIONALLしてるのでORMにもかかわらずSQLが埋め込まれてる若い子のソースのほうが不格好です。
この辺をみて勝利を感じた(勝ち負けかい!)のだけど、結局は自己満足。

もし、厳密に処理速度を求めるならどっちよ?ってデータ要件加味してやらないかんのですがね。

ながながとありがとうございました。
このもやもやをこうやってBlogに載せてまた明日からがんばれそう(笑)






2016年7月27日水曜日

ゲットだぜ!

メールと言ったら電子メールを思い浮かばなくなって久しいです。

ユーザ登録にはほぼ必須で、気付くとメールボックスにはメールマガジンがわんさかと…。

みなさんは何種類くらいのメールマガジンを受け取っていますか?

ほとんどは読まずに削除してしまって、記載のURLにアクセスすることなんて皆無なのではないでしょうか。




先日、この業界の人なら知らない人はいない企業からメールマガジンが届きました。

コーポレートカラーが赤い会社です。

企業名は伏せることにしました



ん?

赤枠に注目

正直、こんな略し方は知りませんでした。

Google先生に聞いてみるといくつか教えてくれるので、ちょこちょこと使われているようです。




先週末から日本でも遊べるようになった世界的流行のあのゲームに出てきそうな…

パフォチュー!ゲットだぜっ!