タグ

ブックマーク / jflute.hatenadiary.jp (5)

  • MySQLでお手軽デッドロック - jfluteの日記

    -- MEMBER_SEA は MEMBER の 1:n の子テーブル delete from MEMBER_SEA where MEMBER_ID = 3 insert into MEMBER_SEA ...(MEMBER_ID は 3) ん? 最初のdeleteが互いに「0件削除」だとデッドロック。別トランザクションのMEMBER_IDが別ID(例えば4)でもデッドロック。(とにかく両方のトランザクションでdeleteが0件であれば) これは... ネクストキーロックって? MySQLのInnoDBには「ネクストキーロック」という機構があります。 詳しくは、ぐぐってくれればOKですが、ひとまず参考になるオフィシャルサイトのページを。 => ネクスト キー ロック:ファントムの問題を防ぐ 難しいこと書いてありますねぇ。 「ギャップ」って何!? ここでいうインデックスレコードって!? とに

    MySQLでお手軽デッドロック - jfluteの日記
  • 論理削除がデータを汚している - jfluteの日記

    ベクトルの違うデータ まあ、それは事実。 ただ、履歴をそのまま残したいということも事実。 いちいち削除履歴テーブルなんて作ってられないのも事実。 ※ここでの論理削除は、復活する論理削除じゃなく、物理削除の代わりとして履歴のための論理削除を指します。(復活する論理削除って、そもそも削除とは言えないって気も...) 来、論理削除されたデータって... そのテーブルの定義するデータとはベクトルの違うデータ である考えます。 でも、わざわざ削除されたデータを保持するテーブルを作ると、それはそれで面倒なのでそのまま同じテーブルに持ったままにする。その方が扱いが簡単なことが多いから。削除フラグを true にするだけで済むから。 個人的には、業務上重要なテーブルに関しては、しっかりと「削除履歴テーブル」を用意して、体のテーブルには常に有効なデータだけがある状態の方が、データメンテもプログラムも遥か

    論理削除がデータを汚している - jfluteの日記
  • エンジニアのモチベーションを下げる方法 - jfluteの日記

    モチベーションの高いエンジニア... ガンガン働いてくれそうで、放っておいても安心でしょうか? 安心してください。 簡単に下げられますよっ! o 序の口: ディスプレイを小さくする o 序二段: 毎日スーツを着させる o 三段目: 椅子を固くして、机を狭くする o 幕下: 簡単に作れるでしょ?って上から目線で言う o 十両: 打ち合わせ一杯で連続した集中時間を与えない o 前頭: 情報共有しづらい、風通しの悪い現場に o 小結: 引き継ぎなしで人をどんどん入れ替える o 関脇: 背景わきまえず、コード汚い、仕組みひどいと言う o 大関: 仕事を突然終了させて無意味感を与える o 横綱: 質的でないことに時間を取らせる仕組み 序の口: ディスプレイを小さくする エンジニア仕事の多くはパソコンの中にあります。そのパソコンの中を覗く唯一の手段はディスプレイです。そんな狭い中で、色々な資料をみ

    エンジニアのモチベーションを下げる方法 - jfluteの日記
    rizmhate
    rizmhate 2016/02/25
    “自分のモチベーションが下がるよりも、 モチベーションが下がる人を見る方がつらい”
  • 単純な話、getであんまり検索したくない - jfluteの日記

    定番レビュー getという名前のついたメソッドで、検索処理を書いているのをよく見かけます。 昔からできるだけ直してもらうように提案してきました。強いこだわりがあればしょうがないですが... o 単純に思いつかなかったから o 別段深く考えずにメソッド名を付けていただけ とかであれば、ちょっと違う名前にして欲しいなと。 get...は軽いイメージ 少なくとも Java で get...() というと、特別なイメージが刷り込まれているもので、 内部で持っているインスタンス変数をただ戻すだけのメソッド というイメージあります。 厳密にそうでないにしても... 少なくとも処理としては軽いイメージ でも、それで検索しちゃっていると... for (SeaBean bean : beanList) { ...いろいろな処理 Integer memberId = bean.getMemberId();

    単純な話、getであんまり検索したくない - jfluteの日記
  • DBFluteのClassification機能のおさらい - jfluteの日記

    @DBFlute, Java, C# DBFluteのClassification機能(区分値機能)について、 「DBFLUTE-495」の説明と合わせて、おさらいしたいと思います。 ここで言うClassificationとは区分値のことです。 例えば「会員ステータス」: o FML : Formalized : 正式会員 o PVS : Provisional : 仮会員 o WDL : Withdrawal : 退会会員 こういった区分値をどう管理するかどう実装するか、 かなり現場によってバラツキがあります。 まあ、バラついてたとしても困ったことがなければ良いですが、 こんなプログラムが良くあったりましす。 // Set an entity property. entity.setMemberStatusCode("PUS"); // Determine an entity prope

    DBFluteのClassification機能のおさらい - jfluteの日記
  • 1