タグ

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

  • 俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - 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
    masayoshinym
    masayoshinym 2016/12/16
    ちゃんと作れるようになりたいので、「このコードで勉強したら完璧なコードが書けるようになるよ」ってやつを公開して欲しい。
  • 開発しやすい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
  • Rails-4.2+MySQL-5.6での時刻オブジェクトのミリ秒の扱いについて - Qiita

    MySQLは5.6系から時刻系のデータ型がミリ秒を持てるようになった。 やっとかよって感じですが。 最近持てるようになったので、Railsでは4.1まではMySQLに対してクエリを投げる時はミリ秒以下は問答無用で切り捨ててクエリを構築していた。 しかし、4.2betaが出る辺りで、MySQLにミリ秒対応のクエリを送るPRがマージされた。 MySQL 5.6 Fractional Seconds by arthurnn · Pull Request #14359 · rails/rails 既にMySQL側のカラムがミリ秒精度を持っている場合は特に問題は起きない。 けど、RailsMySQL使っててRailsのバージョン上げようかって時に、そんなことはほぼ無いだろうと思う。 その場合、ちょっと面倒なことになる。 MySQL5.6がミリ秒以下の値を受け取った場合、精度が足りない部分は四捨五入

    Rails-4.2+MySQL-5.6での時刻オブジェクトのミリ秒の扱いについて - Qiita
  • これを読むとRSpecの裏側がどうやって動いているのか分かるかもしれないぜ - Qiita

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

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

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

    Railsをバージョンアップし続けるために必要なこと - Qiita
  • 俺がGitHubでスターを付けたリポジトリ一覧 - Qiita

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

    俺がGitHubでスターを付けたリポジトリ一覧 - Qiita
  • 1