タグ

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

  • プログラミングスタイルガイドのスタイルガイド - Qiita

    文書は、プログラミング言語向けのスタイルガイドに向けたスタイルガイドである。 文書へのフィードバックはQiita上のコメントにて受け付ける。 構造 対象を明確にする そのスタイルガイドがどのような状況のどのような対象に向けたスタイルガイドであるか規定すること。 状況や対象は広すぎてはならない。 理由: 対象はスタイルガイド記述者には自明かもしれないが、似て非なる言語に誤用されたり、特定分野のアプリケーション向けスタイルガイドが他分野のアプリケーションを理不尽に拘束したりすることがある。これを防ぐべきである。 良い例: 「文書はRuby on Railsアプリケーション向けのスタイルガイドである」 「スタイルガイドはX社におけるRubyプロジェクトに適用すべきスタイルを規定する」 悪い例: (何も書かない) 「文書はX社におけるすべての開発に適用される ... 述語メソッドや述語関

    プログラミングスタイルガイドのスタイルガイド - Qiita
  • モナド入門以前 - Qiita

    前書き これはモナドチュートリアルではない、だろう。 この文章を書く動機は、モナドを知らない人がモナドという未知の概念に期待しているものが根的にずれているかもしれないという懸念である。 命令型言語でプログラミングを覚えた人がモナド、もしくはHaskellや関数型言語(と言われる言語)を学習する際にしばしば受ける助言はこうだ: 「命令型言語で今まで習ったことを全て忘れて取り組むと良いよ」 この助言はそこまで外していないかもしれないが、雑である。 いつか僕の友人がこのようなことを言った: 「プログラマがチームで働く時、必要なのは相手を思いやる気持ちだよね」 この発言は恐らくそこまで外れてはいないが、思いやりで全てを解決しようとすると、全てのコストが非常に高くなる。個々の問題へ目を向け、それぞれの解法を知っておくことによってコストは低くすることが出来ると僕たちは知っている。まあ友人はそんなこと

    モナド入門以前 - Qiita
  • 三項演算子は可読性を落とすか - Qiita

    しばしば三項演算子やdo-while構文が禁止されているコーディング規約に遭遇する。それは今すぐ撤廃すべきという論理武装を考えてみよう。事例はPHPだが、このことはすべての言語にいえる。 例 あるサービスから何らかのデータを取り出し、それをクライアント側で使うという手続きを考える。 ここで、サービス側のAPIとクライアント側のAPIに仕様ギャップがあったとしよう。$service は古く、うまく行かなかったとき例外ではなく null 的なもの(PHPではもしかするとfalseかもしれない)を返す習慣で作られていた。いっぽう $client は null を入力される想定がない。何もしないで欲しいときは空の array を入力する仕様だった。 以下の実装例を見てほしい。 <?php $data = $service->getSomeData(); if ($data === null ||

    三項演算子は可読性を落とすか - Qiita
  • EnumeratorとEnumerator::Lazyの違い - Qiita

    はじめに Ruby 2.0では、Enumerable#lazy というメソッドと、その返り値である Enumerator::Lazy が導入されました。 この記事では、Enumerable#lazy と Enumerator::Lazy によって無限リストをmapできることを紹介します。 また、Enumerator と Enumerator::Lazy の質的な違いを説明します。 遅延リストとは 遅延リストですが、Haskell などの一部の関数型言語では一般的に使われているもので、 遅延評価といって、値が必要になるまで計算しないことによって、無限に続くリストも扱うことができるというものです。 無限リストをmapする 普通にやってみるとダメ 次のような無限リスト(無限の長さを持つ Range オブジェクト )を map する式[1]を考えてみます。 この式は実行が終わりません。

    EnumeratorとEnumerator::Lazyの違い - Qiita
    yamadar
    yamadar 2015/08/17
    遅延リストは呼び出されるまで値を評価しない
  • Chromeでデバグ中にjQuery等のライブラリをデバガから除外したい - Qiita

    ChromeのDev Toolsでブレークポイントを設置してデバグしているときにフレームがjQueryなどの実装の中に突入してしまうことがある。ほとんどの場合はjQueryの中身をデバグしたくない。 この Manage framework blackboxing で URI patternを指定することでデバグから除外するライブラリを指定できる。 あるいは、デバグしている途中に右クリックして"Blackbox Script"を選択してもいい。 超便利。

    Chromeでデバグ中にjQuery等のライブラリをデバガから除外したい - Qiita
  • phpDocumentorの書き方 - Qiita

    phpDocumentorの書き方ってこれ!っていうベストプラクティスがなくて(ドキュメントとはそういうものなのかもしれないけど…)、毎回試行錯誤して、フォーマットを考えるだけでも時間を取られるので、一度自分なりのフォーマットをまとめたいと思います。 今回は、クラスとメソッドについてまとめています。 プロパティについても書いたほうがドキュメントとしてはよいと思うのですが、プロパティまで書き出すとなかなか継続出来ない(ダメ人間です)ので、追々。。 ちなみに、CakePHPをやんわり想定しています。 では、まずクラスについて。 クラス:フォーマット /** * [区分]クラスの概要 * * クラスの詳細 * 出来るだけ細かく書いたほうがよいが、詳細な説明は各メソッドに任せる。 * 全体での共通ルールとか仕様を書く。 * * @access アクセスレベル * @author 名前 <メールアド

    phpDocumentorの書き方 - Qiita
    yamadar
    yamadar 2015/08/04
  • React.jsではなくRiot.jsを採用した話、運用中サービス『GAMY』でリニューアル - Qiita

    今回、ゲーム攻略コミュニティ『GAMY』というサービスでRiot.jsを採用しました。 知る限りでRiot.jsで実装されたサイトの中でも最大規模のサービスだと思います。 これまではjQueryとjQueryプラグインを使っていましたが、デザインのリニューアルを機に、全部書き換えることにしました。 ドキュメントも兼ねてアウトプットしていきます。 Riot.jsとは Riot.jsは今流行りのReact.jsに似た仕組みを持っている、それで非常に軽量なJavaScriptライブラリーです。 最近GitHubのリポジトリが/muut/riotjsから/riot/riotにお引っ越しして、これからがより注目なライブラリーです。 詳しくはこちら↓ Riot公式 Riot.js 2.0 情報まとめ GitHub 捨てることを前提としたライブラリー選定 最初は今ブームの2大フレームワークとなっている『

    React.jsではなくRiot.jsを採用した話、運用中サービス『GAMY』でリニューアル - Qiita
  • Linux/UNIXサーバは立てたらまず時刻同期の設定 - Qiita

    信頼できるタイムスタンプがログに残っていることが障害調査の重要な手がかりとなります。 正確な時刻の確保はサーバ管理の根ですので、時刻同期の設定はOSをインストール後に最優先で行う作業と位置づけられるものです。 基礎知識として 時刻は ハードウェアクロック とOS上の ソフトウェアクロック がともに刻んでいます。 稼働中はソフトウェアクロックだけが参照されますが、ハードウェアクロックはマシン停止時にも動き続けているので 起動時にはハードウェアクロックがソフトウェアクロックへ読み込まれます。 ネットワークから現在時刻を提供するサービス(NTP)により時刻合わせをします。 このとき、特に時刻を遅らす場合、急に遅らせる操作はしません。時刻が後ろへ飛ぶことによりログの時刻の前後関係がひっくり返る可能性があるからです。 (ログ以外のソフトウェア動作も異常を来すかも知れません) ソフトウェアクロックの

    Linux/UNIXサーバは立てたらまず時刻同期の設定 - Qiita
  • 【Linux】タイムゾーン(Timezone)の変更 - Qiita

    ### オリジナルをバックアップ cp /etc/localtime /etc/localtime.org ### タイムゾーンファイルの変更 ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

    【Linux】タイムゾーン(Timezone)の変更 - Qiita
    yamadar
    yamadar 2015/07/16
    疑問が解けた
  • ORM + Pagination で、ページネーションする - Qiita

    DBにあるデータを一覧する場合、ページネーションする必要がある。 ORMとPaginationを使用する場合は、以下のような処理の流れになると思う。 ORMデータの総数を取得する(Paginationに渡すため) Paginationインスタンスをforge ORMで現在のページを取得する(Paginationのメソッドからlimitとoffsetを設定) このように、 ORM -> Pagination -> ORM のようにモジュールを使用するので、 以下のようにORMはメソッドチェーンでやると楽。 public function action_index() { // カテゴリ1の総数を取得する。 $query = Model_User::query()->where('category_id', 1); $total_items = $query->count(); // Pagi

    ORM + Pagination で、ページネーションする - Qiita
    yamadar
    yamadar 2015/07/16
    outer join を group_by するときは、rows_offset, rows_limit で絞る。
  • disabled属性とreadonly属性の相違点 - Qiita

    Help us understand the problem. What is going on with this article?

    disabled属性とreadonly属性の相違点 - Qiita
  • 文字列の結合方法による速度差 - Qiita

    文字列の結合のさせ方によって速度が結構違う 多分これ常識なのかもしれませんが、測ってみてはじめてその速度差がわかったのでメモっときます。 下記コードにて計測 var cnt = 100000; var moji = ''; console.time("Case1"); for (var i = cnt - 1; i >= 0; i--) { moji = ''; moji += 'もじもじ'; moji += 'もじもじ'; moji += 'もじもじ'; moji += 'もじもじ'; moji += 'もじもじ'; }; console.timeEnd("Case1"); console.time("Case2"); for (var i = cnt - 1; i >= 0; i--) { moji = ''+ 'もじもじ'+ 'もじもじ'+ 'もじもじ'+ 'もじもじ'+ 'もじもじ

    文字列の結合方法による速度差 - Qiita
    yamadar
    yamadar 2015/07/13
    やばい、今まで配列 join の方が速いと思ってた・・・。ベンチマーク大事。
  • Enterキーを無効にする方法 - Qiita

    Enterキーを押すと、フォームが送信されることがある。 キーボード入力後、マウス操作してクリックする、という手間が省けてとても便利だと思う。 しかし、入力中にうっかり押してしまったりなど、期待しない挙動をしてしまうこともあるだろう。 この挙動は、HTMLの仕様がそうなっているからである。 ※ 古いブラウザでは以下の内容で対処できない場合があります。 ※ ブラウザの仕様が変わり、以下の内容では対応できなくなる場合があります。 対処方法① 送信ボタンを書き換える(テキストフィールドなどが2つ以上のとき) テキストフィールドなどがアクティブな状態で、Enterキーを押すとフォームが送信される。 <form name="testform1" action="test1.html"> <input type="text" name="text1" /> <input type="text" nam

    Enterキーを無効にする方法 - Qiita
    yamadar
    yamadar 2015/07/09
    小粋空間のコピーなんだが・・・。http://www.koikikukan.com/archives/2012/01/20-015555.php
  • [翻訳]プログラマの生産性の壊し方 - Qiita

    George Stockerの「How to destroy Programmer Productivity」の翻訳です(Georgeさんには報告済み)。 間違いがございましたら、ご指摘お願いします。 プログラマの生産性に関する次の画像は、インターネット中を徘徊しています。 ザ・シンプソンズが出てきそうだけれども、「真実だから面白い」。 私は、今まで生産的になる秘密について解明してきませんでした。それは、主には、私が一貫して生産的ではなかったからです。Joel on Softwareのジョエル・スポルスキは、ブログの記事でこのことについて話しています: 時々私は何も終わらせることができなくなります 確かに、私はオフィスに入って、10秒ごとにe-mailをチェックして、ウェブを読んで、アメリカン·エキスプレスでの支払いのようないくつかの頭を使わないタスクを処理します。しかし、コードを書くフロ

    [翻訳]プログラマの生産性の壊し方 - Qiita
    yamadar
    yamadar 2015/07/08
    プリントアウトして職場に貼りたい
  • Dashのスニペット機能をちゃんと使う - Qiita

    はじめに 恥ずかしながら、せっかくDashを有料で購入していながら、その機能をろくに使えていなかった。今になってDashのスニペット機能の使い方がだんだんわかってきたのでここにメモ。 目標は、同じことを二度も三度もググらないようになること。 スニペットの検索機能を使いやすくするためにいくつか工夫した。 1. Macのキーボードのグローバル設定で、Ctrl + SpaceをDash呼び出しに割り当てる。 たぶんデフォルトでそうなっていると思うけどメモ。Dashを開いた状態で⌘ + ,で設定画面を開き、Generalの Global search shortcutでDash呼び出しのグローバルキー設定を行なう。気に入らなければ既存のアプリと当たらない範囲で好きなだけ変えればよい。 もう一つのSearch using selected textの方は選択文字列が検索キーワードになるものだけど、今

    Dashのスニペット機能をちゃんと使う - Qiita
    yamadar
    yamadar 2015/07/07
  • autocomplete で入力中に候補を選択した場合、フォームにセットされない - Qiita

    autocomplete 便利ですね。 でも日語だと、入力中でもサジェストが表示されて「あら便利」と候補を選択してもフォームにセットされません。 場合によっては選択した候補と入力中の文字が混ざったりと変なことになります。 そういった場合の対応方法。 select メソッドでフォーカスを外してあげるといい感じに動きます。

    autocomplete で入力中に候補を選択した場合、フォームにセットされない - Qiita
  • 【jQuery】プラグインの作り方 - Qiita

    //POINT1 即時実行の無名関数で囲うこと (function($) { $.fn.sample = function(option){ //POINST2 パラメータとデフォルト値のマージ var defaults = {text:'hello'}; var option = $.extend(defaults,option); //ここに処理を書く! //POINT3 メソッドチェーンに対応するためthisを返す return(this); }; })(jQuery); jQueryを読み込んで、プラグインの定義したファイルを読みこむ。 jQueryオブジェクトのメソッドにプラグインが追加されているので実行できる。

    【jQuery】プラグインの作り方 - Qiita
  • なぜ iPhone の画像は Android の画像よりもずっと高品質なのか - Qiita

    AndroidiPhone との比較は多くの点で議論されており、どちらがより良いかは、Android の画像の質は iPhone とくらべてずっと劣るという点を除けば、未だ結論が出ていません。Facebook、Twitter、Instagram 等どれを使っていても、写真をとって、フィルタをかけて、ソーシャルネットワーク上に公開すると、いつも Android から投稿される写真は画質が劣化しています。しかし何故でしょう? 私達は昨年の間調査をし、そしてついに、Google が犯したほんのちょっとしたミスが原因であることを突き止めました。それは当にちょっとしたミスでしたが、その影響はすべての画像を扱うアプリケーションに波及するほど大きく、現在に亘っても影響が続いています。 問題は、libjpegです。 libjpegといえば、数多くのオープンソースプロダクトでも使用されており、And

    なぜ iPhone の画像は Android の画像よりもずっと高品質なのか - Qiita
    yamadar
    yamadar 2015/07/01
    こういう調査ワクワクする。
  • PHP - エンジニアで稼ぐために大切な19のコト - Qiita

    プログラミング学習サービスやら、ペットサロン予約サービス、風俗検索サービスなど色々とやっている「かずきち」です。 ◾️Qiita記事 WEBサービス起業したい人に読んで欲しい20のコト ウェブカツ生を雇わない?転職できない?著作権無断使用の炎上から1年を経て思うところをぶっちゃける。 テックキャンプをウェブカツ!! 顧問が徹底レビューしてぶった切ってみた ■運営サービス一部 http://crazy-wp.com/ フリーランスエンジニアを育成するオンライン最大級のプログラミングスクール「ウェブカツ」 http://webukatu.com/ ■プログラミングスクール「ウェブカツ」の出版 「小学生からでもプログラミングを楽しく学べる漫画作りたいなー」と思い立ち、外注してウェブカツで漫画を作りました。KADOKAWAさんより出版しています。 はたらくプログラミング 完全版 (コミックエ

    PHP - エンジニアで稼ぐために大切な19のコト - Qiita
  • ぼくのかんがえたさいきょうのElectron - Qiita

    はじめに ElectronはNode.js + HTML5フロントエンドのいいとこ取りな開発が行えるのが特徴です。その分、開発環境もElectronならではの考慮・工夫が必要になります. 今回のエントリでは, Electronアプリを快適に開発するための開発環境Tipsを書いていきます. そもそも「Elecronってなんぞや?」とか「どういう風にアプリを作るの?」という方については, 手前味噌で恐縮ではありますが, Electronでアプリケーションを作ってみよう を目を通すことをオススメします. また, 今回のエントリの元として、Quramy/electron-jsx-babel-boilerplate のレポジトリが出来上がっています. React + Bable + Sass + Livereload + Platform用Packaging 入りのBoilerplateですので,

    ぼくのかんがえたさいきょうのElectron - Qiita