タグ

ブックマーク / qiita.com (257)

  • DELETE_FLAG を付ける前に確認したいこと。 - Qiita

    DELETE_FLAG という思考停止フラグ DELETE_FLAG という boolean の列が DB 設計でよく話題になります。 論理削除という言葉で上手に論理武装し、スキを見せるとすぐに入れたがる人がおり、 一方でそれにつよく反対する人もいます。 自分の経験としては、広義の論理削除はありえると思いますが、実現方法が DELETE_FLAG だとなった時、それはあまり考えてないでなんとなくパターンとして盛り込んでる場合が多いと感じます。 ただし、設計に唯一の答えは無いので、もしかしたらそれが妥当な設計である場合があるかもしれません。 今回は「DELETE フラグがなぜダメなのか?」などという話をするつもりも、アンチパターンだと断言するつもりもありません。 問題は、仕様をきちんと把握すると、「最適な設計は DELETE_FLAG ではない」という場合が有って、その場合は、その最適な設計

    DELETE_FLAG を付ける前に確認したいこと。 - Qiita
    t-wada
    t-wada 2015/03/24
    質問と回答のスタイル、とてもいい。アンチパターン形式に編集すれば『SQL アンチパターン』第26章「とりあえず削除フラグ」にできるのではないかと思えてくる。
  • React 雑感 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 3/22 (日) の rebuild.fm で React の話をしようと思っているが、その前に頭を整理するために React 雑感。雑感なので殴り書き。 React はこれ一つで複数の課題を解決しようとしている。そのため、人と議論してると話のコンテキストがぶれやすい。ざっくりは フロントエンドのプログラミングパラダイムを、サーバーサイドのような富豪的なスタイルに変える コンポーネント (雑に言うと独自タグ) 指向で UI を組み立てる ステートレスコンポーネントやメッセージパッシングで疎結合性を高めることにより、イベントの依存関係地獄

    React 雑感 - Qiita
    t-wada
    t-wada 2015/03/18
    雑感と言いつつかなり整理されていて、理解も正確。さすが naoya さん。触る前後で考えていた利点の順番が異なるのはすごくよくわかる。
  • React.js 実戦投入への道 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近話題のReact.jsですが、実戦投入に当たっては結構重たい選択を迫られることになります。 ざっくり言えば、テンプレートエンジンを捨ててReactしますか?それともReactあきらめますか?という選択です。 記事ではReactの基思想とこうした選択肢が生まれてしまう背景を述べるとともに、後半では「どちらもあきらめない」という(若干シミュレーションRPGあるある感のある)第三の方策について案を提示します。 Reactの基 最初に、Reactの基的な仕組みについてまとめておきます。 Reactは公式ドキュメントが非常に充実してい

    React.js 実戦投入への道 - Qiita
    t-wada
    t-wada 2015/03/16
    React.js を理解する上で重要な "Thinking in React" の抄訳になっている。あと、 Component 階層間で props のバケツリレーになる前に Flux アーキテクチャを導入した方が良いと思う。
  • 45歳以上はMongoDBを使ったシステムが使えなくなる件 - Qiita

    MongoDBを使うシステムが、最近多いと思います。 2.6系(安定版)の最新2.6.7ですが、Date型のインポート処理にバグがありそうです。 「1970/01/01」以前の Date型 を mongoexport すると、負の "$numberLong" として出力されるのですが、それを mongoimport すると、それ以降のフィールドが欠落してしまうのです。 例えば、ユーザマスタに「誕生日」フィールドがあると、45歳以上の人は「1970/01/01」以前の値が入っているわけで、マスタデータを移行したりでもすると、その人のフィールドがガッツリ無くなってしまいます。でも若手は大丈夫だから「どうせ部長の使い方がおかしいんでしょwww」といういつもの「偉い人に限って障害が発生する」パターンが展開されます。 大急ぎで調べた所、以下が判明しました。 2.6形式

    45歳以上はMongoDBを使ったシステムが使えなくなる件 - Qiita
    t-wada
    t-wada 2015/02/27
    "「どうせ部長の使い方がおかしいんでしょwww」といういつもの「偉い人に限って障害が発生する」パターンが展開されます" これは笑えない……
  • NightmareでE2Eテストしつつスクリーンショットとってgifに結合したら目視チェックが最高に楽になった - Qiita

    最近またe2eを書いたりしてる。色々悩んだけど、やっぱNightmareを使うことにした。 Nightmareについては僕が前書いた記事を参考にしてください NightmareでE2E - Qiita Nightmareの良い点 Zero configuration というかただのスクレイパー 悪い点 プロセス立ちあげるのが遅い JSわかってないと読みづらい PrecepeterとかTestiumとかProtractor試したけどどれも走らせるだけでいっぱいいっぱいで、もう面倒臭い。 僕は行儀が悪いのでスクレイパーを走らせられればいいです。エビデンス() はスクリーンショットで確保する方向で。 連番のスクリーションショットを取りながらNightmareを走らせるサンプル Nightmare = require 'nightmare' class TestRunner extends Nig

    NightmareでE2Eテストしつつスクリーンショットとってgifに結合したら目視チェックが最高に楽になった - Qiita
    t-wada
    t-wada 2015/02/26
    スクリーンショットを gif に結合するアイデア、とてもいいな
  • Fluxフレームワーク Arda が気になる10の理由 - Qiita

    Help us understand the problem. What is going on with this article? どうも、@armorik83です。 Fluxフレームワーク"Arda"、皆さんご存知ですか? 概念や思想を含めて大々的に発表されたのは、おそらく2015年2月16日(記事掲載時点でおととい)という新たなOSSです。 開発者は@mizchi氏。Qiitaの中の人 (Kobito)、魂が震えてる人、Reactの人として有名かと思いますが、個人的にはAngularJSが嫌いな人という認識です。 今回、そんなmizchiさんが開発されたフレームワーク"Arda"をあえて取り上げたい衝動に駆られたので、興味のある方はお付き合い下さい。 動機 気になった理由の前に、ここに至った動機を前置きします。ここ長いです。例のアレな感じです。 思い出話 私は2013年秋からAng

    Fluxフレームワーク Arda が気になる10の理由 - Qiita
    t-wada
    t-wada 2015/02/18
    AngularJS を使い込んでいる人から見た React / Flux としても興味深く読める
  • リソースの一部更新におけるURL設計 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 概要 Webアプリケーションにて、リソースの一部更新を行う際、どのようにURL設計を行うとシンプルで美しいか(当はそこまで考えていなかったけど)悩んでいたところ、 @t_wada さんから素敵な設計指針をご教示いただきました。 記事はその内容に加えて、実際に自分で行ったこと、調べたこと、思った事など、まとめております。 あらすじ 数週間前にSIピラミッドからヒモなしバンジーを決めてWebの世界に飛び込んだ私は、小さな小さなWebアプリケーションをrails newから手探りで作っていました。 そんなとき、簡単なリソースの一部更新機能

    リソースの一部更新におけるURL設計 - Qiita
    t-wada
    t-wada 2015/02/13
    流しの RESTful おじさん業の現場風景です
  • JavaScriptのモジュールシステムの歴史と現状 - Qiita

    社内向け資料。自分が書いたコードを説明するために資料作る羽目になった。 昔のことはうろ覚えで雰囲気で書いてる部分もあるので、そこらへん勘弁。 古の時代(~2010) 前提としてJavaScriptは名前空間がwindowの一つしかない。 昔Prototype.jsがあった。もうみんな忘れたけどあの時期はプリミティブなオブジェクトのprototypeを生やしまくって、それが衝突しまくってprototype良くない的な雰囲気が生まれたり生まれなかったりした。 その反省があってか(歴史的に若干微妙な気がするが) jQueryは名前空間を一つに集約した。いわゆる jQueryPlugin は、jQueryのプロトタイプにヘルパを生やしまくっていた。グローバルを汚すのは駄目だけどjQueryの名前空間を汚すのはいいよね、ぐらいの考え。 jQuery非依存なライブラリは、「GoodParts」として、

    JavaScriptのモジュールシステムの歴史と現状 - Qiita
    t-wada
    t-wada 2015/02/06
    "Q. 今はどういうコードを書けばいいか A. es6 moduleを見据えつつ node.jsのrequireを使うのがいいと思う。node(io.js)でも実行でき、ブラウザでも動く。で、テストを書く際はnodeスタイルのままやるほうが遥かに簡単"
  • アプリエンジニアから見てAPI設計において気をつけてもらえるとうれしいこと - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? by @mixiappwchr アプリ向けのAPIの開発時に気をつけてもらえるとうれしい&メンテナンスや実装コストが下がる点をつらつら書きます。 データ構造について データを返すとき、一定のルールを守って返す。例えば当然ですが同じデータ構造はもちろん、似たような構造もルールを作ってproperty名などそろえておく。relationやlistで返すときもどのデータ構造なのかがpropertyで明確にわかるようなっているようにする listを返す場合の形式やpagingが必要な場合の形式はそろえる。配列のデータがない場合も考慮しておく。例

    アプリエンジニアから見てAPI設計において気をつけてもらえるとうれしいこと - Qiita
    t-wada
    t-wada 2015/02/04
    アプリケーション向けに提供する Web API を設計する際に留意すべき点が記されている。特にデータ構造や実運用時に向けたノウハウが実践的ですばらしい
  • GitHub「完璧なプルリクの書き方を教えるぜ」 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに この記事は How to write the perfect pull request - GitHub を和訳というか、意訳した記事です。 ご指摘などありましたら大歓迎です! 良いプルリクエストを書くには (原題 : How to write the perfect pull request) 会社が成長していくと、人もプロジェクトも様変わりしていきます。GitHubの中に私達が望む文化を育んでいくためには、我々が何を自覚してコミュニケーションするべきなのか分かってきました。私達のチームが最強であり続けるために、最近以下のよ

    GitHub「完璧なプルリクの書き方を教えるぜ」 - Qiita
    t-wada
    t-wada 2015/02/04
    『 How to write the perfect pull request 』の翻訳。とてもいい。
  • GitHub Issueはテンプレート化で、綺麗に書かせる! - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    GitHub Issueはテンプレート化で、綺麗に書かせる! - Qiita
    t-wada
    t-wada 2015/02/04
    “GitHubのIssueは、URLにparamsを渡すことで、デフォルトのvalueが入れられます。 ※paramsの渡し方は、/issues/new?title=test&body=contentのようにします” 知らなかった。これは便利だ。
  • 12 Factor App - モダンなサービス運営に必要な12のインフラ的要素 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 皆さんは、The Tweleve-Factor Appをご存知だろうか? これはHerokuの中の人が書いた、Webアプリケーションを使いやすい形でスケーラブルにするための方法論である。簡単にいえばコンテナで動かしたいアプリケーションが守っておくとよいレシピ集であると言える。 http://12factor.net/ (日語訳) 今回これを取り上げた背景としては、実はDockerコンテナをメインにした番でのインフラ運用を考えた時に、アプリケーションがこの12の要素を満たしていることが重要だと最近ひしひし感じているから。 実際、自分が

    12 Factor App - モダンなサービス運営に必要な12のインフラ的要素 - Qiita
    t-wada
    t-wada 2015/01/13
    The Tweleve-Factor App パターンの良いまとめ。コンテナベースのアーキテクチャを構築する際に考えるべき事が分かりやすく説明されている。
  • dtsmのご紹介 - Qiita

    2017/03/19 現在、dtsmは@typesの登場により、(結構前から)tsdと同じくdeprecatedになっています どうも、わかめです。 冬コミ 3日目 西く02aよろしくね! 1月で1人で104Pほど書いて死ぬかと思いました。 しかも仕事がクソ忙しいんですよ!!なんでじゃ!!! 自体について冬コミに前後して全文を公開する予定ですが、表紙データは配布しないこと、紙版が売れなくて赤字が出ると夏コミなどのやる気に大幅に影響することを鑑みてみなさん買ってくださると嬉しいです!オナシャス! さて、TypeScriptアドベントカレンダー18日目ということでご紹介するのはdtsm(.d.ts manager)です。 TypeScriptには型定義ファイルという、既存のJavaScript資産をTypeScriptで利用するための型のヒントファイルがあります。 その型定義ファイルはDef

    dtsmのご紹介 - Qiita
    t-wada
    t-wada 2014/12/24
    設計が微妙な tsd を置き換えるべく設計を整理し、複数リポジトリにも対応した型定義ファイルマネージャ dtsm. これは TypeScript 使いは試す価値が大きいのでは。
  • 私のJavaScript情報の集め方 - Qiita

    ちょっと趣向を変えてJavaScriptの情報をどうやって集めているかという話を書きたいと思います。 使っているもの Twitter RSS(feedly) Pocket はてブ TwitterはただフォローしてTL見ていたり検索してたまに見ているだけでリストを作ったりはしてなくて暇な時に見ている感じです。 RSSはこれから紹介するようなサイトとかこの人のブログ面白い!というものだけを登録しています。未読が100件増えると消化する気がどんどんなくなっていくので...。 PocketTwitterRSSで気になったものを後で読むためにとりあえず突っ込むのに使っています。 こうすることでRSSはすぐに終わるので、その後で時間があればPocketで読みます。 Pocketに溜まった記事はちょっとした合間に読んだりしていて、たまにまとめて読んだりして消化しています。 今見ると20件くらいあるの

    私のJavaScript情報の集め方 - Qiita
    t-wada
    t-wada 2014/12/24
    オッ 情報源認定されてる (うれしい)
  • React.jsとFlux - Qiita

    今回はReact.jsとも関わりがあるFluxについて紹介したいと思います。 Flux is Architecture ↑の図はfacebookのfluxのリポジトリにあるものですが、Fluxは上記のようなArchitectureの名称です。facebook/fluxのrepositoryに行ってもらうとわかるのですが、実装としてはDispatcherの部分があるだけです。 Unidirectional data flow 先ほどの図を見てもらうとわかる通り、Fluxではアプリケーションの複雑さをなくすため、データの流れを一方向にします。 そのため全体の処理の流れはわかりやすくなりますが、Angular.jsなどで書くときに比べて冗長に感じることもあるかと思います。 しかしながら単純なデータの流れを作ることで、ある程度の規模になってアプリケーションが複雑化してもデータやイベントの流れがスパ

    React.jsとFlux - Qiita
    t-wada
    t-wada 2014/12/22
    React / Flux におけるバリデーションエラー設計の考察や、 Flux + サーバサイドレンダリングの注意点も書かれていて俺得すぎる
  • React.jsとserver-side rendering - Qiita

    今回はReact.jsの大きな特徴の1つで、これが出来るから使うという人もいるserver-side renderingについて書きたいと思います。 server-side renderingとは文字どおりサーバーサイドでHTMLを生成してrendering出来るようにするものです。SinglePageApplicationのようなJavaScriptでDOMを組み立てるようなアプリケーションの場合、サーバーから返されるHTMLには空のdivだけがあってそこからJavaScriptを読み込んでtemplateを描画することになり、これには2点の問題点があります。 初期のロード時間 HTMLが返されてJavaScriptを評価してそこからtemplateの表示になるので、サーバーサイドからHTMLが返される場合と比べて当然時間が掛かります。なので別途ローディングを見せるなどの工夫が必要になり

    React.jsとserver-side rendering - Qiita
    t-wada
    t-wada 2014/12/17
    React.js のサーバサイドレンダリングの話きたー!
  • 2014年だけど Q4M の紹介をしてみるよ - Qiita

    先日 MySQL Casual Talks vol.7 で LT をしてきました。 LT では Ruby(Rails) からカジュアルに Q4M を使える何かを作ったお話 として Q4M 周りのお話をしてきたのですが、そこで冒頭 "Q4M 使ってる人ー" と挙手を求めたら誰一人として手が挙がらなかったことに絶望してこのエントリーをしたためています。 (まーカジュアルだからなーカジュアルだから Q4M 使ってなくてもしょうがないからなー) (使ってないだけで知っている人はいたかもしれません、あと恥ずかしがり屋さん) このエントリーでは簡単な Q4M の使い方と特徴について説明していきます。 Q4M って Q4M は簡単に言うと DeNA の奥一穂さんが開発されている MySQL を使ったキューストレージです。 Q4M 自体は MySQL のストレージエンジンとして実装されているので、テーブル

    2014年だけど Q4M の紹介をしてみるよ - Qiita
    t-wada
    t-wada 2014/12/17
    MySQL を使ったキューストレージ Q4M の説明
  • React.jsがVirtualDOMを採用していて嬉しい事 - Qiita

    今回はReact.jsのVirtualDOMについて簡単に触れておきたいと思います。 VirtualDOMについては別途AdventCalendarがあるので詳しくはそちらを見てください。自分もReact.jsのVirtualDOMの実装について書いています。 当は↑だけでいいのですが、このAdventCalendarのどこかで触れておきたかったので重複する部分も多いですが簡単に触れておきます。 VirtualDOMの嬉しい点 JavaScriptを使ってDOMを操作して画面の表示を切り替えていくようなアプリケーションの場合、ユーザー体験を損ねないためにも更新されるDOMは最低限にしたくなります。 例えばBackbone.jsを使っていると、基的にはView単位でrenderするのでViewを細かく分割していくことが必要になります。そうなるとViewが増えて複雑さが増してきて辛くなって

    React.jsがVirtualDOMを採用していて嬉しい事 - Qiita
    t-wada
    t-wada 2014/12/16
    “Topレベルの要素にアプリケーションの状態を持たせておいてそれをsetStateでどんどん更新するという雑なアーキテクチャも可能" "サーバーサイドでのレンダリングみたい” ほんとこれ。強力さを実感している。
  • 俺のJSライブラリの世界観(2014末版) - Qiita

    概論 ここ近年のモダンJSは特に理由がなければcommon.jsのrequireスタイルで記述され、webpack/browserifyでビルド/読み込むことを前提にしてよい。今やビュー層を除いてブラウザとnodeのライブラリの境界は非常に曖昧である。 識者諸君においては常にどちらの環境でも読み込めるようなライブラリを提供するように心がけることを切に願う。 今日はライブラリの名前しか出さないんで各自ググるように。 立場 サーバサイド~ゲームプログラミング出身node寄りフロントエンドエンジニア このサイトのスタッフだけど他のことに手一杯でQiitaのフロントはまだそんなにいじってない すまんな 他ってなんだろうな 言語 CoffeeScript TypeScript 最近DDDっぽい構成を目指しているのだけど、コアドメインをTypeScriptで書いて、それをUI層からCoffeeScri

    俺のJSライブラリの世界観(2014末版) - Qiita
    t-wada
    t-wada 2014/12/11
    "近年のモダンJSは特に理由がなければcommon.jsのrequireスタイルで記述され、webpack/browserifyでビルド/読み込むことを前提にしてよい。今やビュー層を除いてブラウザとnodeのライブラリの境界は非常に曖昧である"
  • React.jsでFormを扱う - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    React.jsでFormを扱う - Qiita
    t-wada
    t-wada 2014/12/10
    LinkedStateMixin の解説とてもいい