タグ

ブックマーク / qiita.com/joker1007 (10)

  • 俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita

    ちなみに、最初に結論だけ言っておくと、まずSandi Metzの「オブジェクト指向設計実践ガイド」を読め、という話です それだけで終わってしまいたい気持ちはあるが、不親切過ぎるしもうちょっとRails向けの話を書こうと思う。 ただ言いたいことは、よく分かってないのに使うのは止めろということ。 自分もで書いたりした手前、それが参考にされた結果なのかもしれないが、世の中には当に酷いクラスが存在するもので、雑にサンプルで書くと以下の様な感じのコードが存在したりする。 class HogehogeService # Hogehogeはモデル名まんま def process(hogehoge, option_a: nil, option_b: nil, option_c: false) history = hogehoge.histories.last unless hogehoge.activ

    俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita
  • 開発しやすいRails on Docker環境の作り方 - Qiita

    最近、Rails界隈でDocker使い始めました、という話を聞く機会が増えてきたので、自分が開発環境整備用に構築したDockerの設定をまとめておく。 ちなみに、production運用については以前書いたので適当に探してくださいw 結論から書いておくと、volumeをちゃんと活用すればいい、ってだけの話です。 まず、番用と開発用のDockerfileは分けた方が良い。一つでやろうとするとどうにも無理がでるので。 自分はDockerfileとDockerfile-devというものを用意している。 docker-composeはほぼ必須です。少なくともrailsプロセスとDBだけでも二つは必要だし、Dockerfileを分けてると事故るので。 Dockerfileはこんな感じ。 FROM mybase:ruby-2.3.1-debian RUN echo "deb http://http.

    開発しやすいRails on Docker環境の作り方 - Qiita
  • Electronを使ってMac向けのアプリを開発する時のファイル名の扱いについて (所謂UTF-8-MAC問題) - Qiita

    以前Nodeで作っていたものをElectronで作り直していて、同じ問題にまたハマったので書いておく。 所謂、UTF-8-MAC問題である。もう遥か昔にNodeでハマった時の記事がある。 node.jsでUTF-8-MACを扱う - joker1007の日記 Macのファイルシステムはファイル名に対してNFDとかいう正規化を行っていて、ファイルシステムにアクセスする時に勝手に変換しやがる仕組みになっている。 このせいで、濁点が入ると急に死ぬとか、当辛い問題が起きる。何の嫌がらせなんだと……。この世界は文字が8ビットで済む様な国ばっかじゃねえんだよ! とりあえずMac NFDでググると辛いのは俺だけじゃない気持ちになれる。 で、昔は上で貼ったブログに書いたような方法で解決していたのだが、正直、この解決策は2015年にもなって面倒過ぎるだろと思っていた。 (マジかよーってググって自分の記事が

    Electronを使ってMac向けのアプリを開発する時のファイル名の扱いについて (所謂UTF-8-MAC問題) - Qiita
  • ActiveRecordの読み込みが実際にトリガーされた場所をログに記録するgem - Qiita

    ActiveRecordは必要になるまでDB読み込みをしません。 なのでやたら複雑なビューの中でクエリを弄ったり、コントローラーが肥大化してる状態でひどいSQLがログに流れてくると、パっと見ではどこが原因なのかすぐに分からない。 なので、SQLが実行された時にそれが実際にトリガーされたソースコードの位置も一緒にログに吐いてくれるgemを作りました。 bulletで分からないような、ビューのループの中で直接モデル読んでるみたいなヤバイ箇所を速やかに見つけるためのものです。 joker1007/activerecord-cause 仕組み的にはActiveRecordのロギングの仕組みを丸パクリしてcaller_locationsを足した感じ。 全ての読み込み位置を表示するわけではなく正規表現でマッチするパスを持ったソースコードの位置のみをログに記録します。 Railsで利用する場合は自動的に

    ActiveRecordの読み込みが実際にトリガーされた場所をログに記録するgem - Qiita
    yk5656
    yk5656 2015/04/16
  • これを読むとRSpecの裏側がどうやって動いているのか分かるかもしれないぜ - Qiita

    これはTokyuRuby会議08にて発表した資料を元にQiita向けに再編集したものです。 元々Advent Calendarと共用にしようと思って、どう考えても5分で話せない資料でLTしたのでした。 最初に RubyのテスティングフレームワークとしてはトップクラスにメジャーなRSpecですが、内側の実装が黒魔術感に溢れていて非常に読み辛い。 そしてカスタマイズするにも学習コストが高いという話を聞きます。 最近「RSpec止めますか、人間(Rubyist)止めますか」みたいな風潮が出ていてバリバリのRSpec派の私としては見過ごせない感じになってきたので、いっちょRSpecがどんな感じで動いてるのかを大まかに解説していくことで、世の中に対して再びRSpecを啓蒙していこうと思うわけです。 この話はrspec-core-3.1.7辺りをベースにしています。 起動 rspecのコマンドエンドポ

    これを読むとRSpecの裏側がどうやって動いているのか分かるかもしれないぜ - Qiita
    yk5656
    yk5656 2014/12/02
  • Railsをバージョンアップし続けるために必要なこと - Qiita

    当は、RubyWorld Conf辺りでこういう内容も交えてなんか話せればいいなあと思ってたんだけど、CFPに落ちたのでQiitaにポエムを書いてみました。 Railsはそれなりに学習コストはかかりますが、慣れてくるとデフォルトで便利なものが揃ってるしサードパーティライブラリも豊富で、未だに最も便利なWebアプリケーションフレームワークの一つだと思います。 なので、最近のスタートアップ界隈ではRailsで開発をスタートする、という話をよく耳にします。(個人の感想です) しかし、Rails体に新しい要素をガンガン取り入れてくるので、バージョンアップのサイクルはかなり早く、それに追従していくのはそれなりに大変です。 Railsで開発をする場合には、一旦レールに乗ったらプロダクトが死ぬまで走り続ける覚悟が必要です。(時速60km以下になったら爆発する) それを最初に理解しておかないと、あっ

    Railsをバージョンアップし続けるために必要なこと - Qiita
    yk5656
    yk5656 2014/08/28
  • RSpec3の新しいFormatter APIについて - Qiita

    いよいよRSpec3時代が近付いてきました。 betaとかrcで新しいバージョンが出る度にハマり所を仕込んでくるので、そろそろ落ち着いて欲しい所です。 RSpec3は表記の変更だけでなくて内部実装をがっつりリファクタリングしてるため、Formatterの作りも結構変わっています。 カスタムFormatterを自分で作ってる人とかForkして改造する人以外にはあんまり関係無いかもしれませんが、一応どう変わったのか書いておきます。 (そもそもそういう人は自分でソース読むし……) Formatterの基となるクラスはRSpec::Core::Formatters::BaseFormatterというクラスです。 これは2系でも3系でも変わってません。 RSpec3系で大きく変わったのは、Formatters.registerというメソッドを呼び出してFormatterクラスを登録しなければいけな

    RSpec3の新しいFormatter APIについて - Qiita
    yk5656
    yk5656 2014/05/23
  • 俺がGitHubでスターを付けたリポジトリ一覧 - Qiita

    GitHubを彷徨っていてよくあるのが、ググったりRuby Toolboxとかで見つけて「これイイじゃんよ!」と思ったら既にスター済み、という奴。 一回、自分がどんなリポジトリにスター付けたのか整理しつつ、更新止まってたり古くなったやつを削除していこうと思う。 それぞれの説明は超適当。基的にいつか使おう的な感じでスターを付けているので、あんまり使ったことあるのが無い。 そもそも良く使うものにはスター付けてないこと多いし…。 大体rubygemsで一部JSのライブラリ、少しvimScalaって感じ。 思い返したようにスター付けてたので、時期がバラバラだけど、基的に下に行く程付けた時期が新しい。 リポジトリ 説明

    俺がGitHubでスターを付けたリポジトリ一覧 - Qiita
  • Rubyのコードを読むのが捗る技 (Vim) - Qiita

    Rubyでソースコードを読む時の小技について書いてみようと思う。 この投稿も参考になる。 Rubyでメソッドの定義場所を見つける方法 #Ruby - Qiita http://qiita.com/items/fc8a61b421d026a23ffe ちなみに、私はVimmerなので、Vimに寄った話です。 emacsについては身近にemacsユーザーに聞きましょう。 ctagsを活用する ctagsでtagsファイルを出力しておけば、メソッドの定義元に飛ぶのが非常に楽になります。 Railsで開発しているなら、Railsプロジェクトルートで以下のようなコマンドを打ちます。 (bundlerでプロジェクト内にGemがある場合を想定) langmapとかは別に無くても大丈夫だと思いますが。 --excludeを付けずにctagsを実行するとjavascriptのライブラリもタグ付けされて、

    Rubyのコードを読むのが捗る技 (Vim) - Qiita
  • Ruby(Railsじゃない環境)でTDDで開発をするための環境構築 2012/8月版 - Qiita

    2012/9/1のTDDBC横浜に向けて書いたものです。 間違ってるとか、古い、とかありましたら突っ込みください。 Rubyのインストール Ubuntuの場合 (下にMacの場合を書いてます) その他のディストリの場合は、頑張って読み替えてください。 関係するライブラリ、開発に必須なバージョン管理システムなどをインストールする sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion 元々結構入ってるかもしれないけど

    Ruby(Railsじゃない環境)でTDDで開発をするための環境構築 2012/8月版 - Qiita
    yk5656
    yk5656 2012/08/23
  • 1