タグ

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

  • Railsで秒間1000コミットを捌くにはどうすればいいのか (Kaigi on Railsのフリースペースより) - joker1007’s diary

    先日のKaigi on Rails中の雑談として @ima1zumi さんから、RDBに対して秒間1000コミットぐらいで処理が詰まってる場合ってどうするのが良いのか、という質問を受けまして、雑談の中で色々答えてたんですが、せっかくだから記事にまとめておこうと思います。 ちょっとしたKaigi Effectって感じですね。 今回のKaigi on Railsのトークの中では、 数十億のレコードを持つ5年目サービスの設計と障害解決 by KNR - Kaigi on Rails 2023 の話なんかは割と関連がありますね。ユーザーの行動履歴というのは、ユーザー数 * N * タイムスパンで増えていくレコードなので、書き込みとデータ量が爆発しがちです。トランザクションで堅牢に処理しなければいけないケースもそこまで多くないので、RDBだと書き込みに対する処理が過剰なケースが多い。実際のところこの

    Railsで秒間1000コミットを捌くにはどうすればいいのか (Kaigi on Railsのフリースペースより) - joker1007’s diary
  • ソフトウェアエンジニアとしての能力を高める方法について考えてみた - joker1007’s diary

    早朝の寝る前ぐらいの時間にぼやっと下記の様なツイートしたらちょっと反応を貰ったので、取り留めは無いが自分なりに考えていることを書いてみる。 人を育てるのも仕事の内というのは完全にその通りなんだが、そこにドキュメントやがあるから読みます、触って作ってみます、生きたコードを読みます、以外に学ぶ方法なんかねえし、知らねえよ。ただやればいいだけの事に説明も何も無いんだよな……。マジ分からん……。— joker1007 (アルフォートおじさん) (@joker1007) March 2, 2023 タイトルは雑に書いたけど、能力を高めるというと範囲が広過ぎるので、技術的な意味でできる事が増える、ということをテーマとして話をしていこうと思う。基的に自分の考え方の話なのでそこは御留意ください。 ツイートした通りで、状況や対象に依って割合は変わるかもしれないが基的にそのためにやることは3つしかないと

    ソフトウェアエンジニアとしての能力を高める方法について考えてみた - joker1007’s diary
    yuiseki
    yuiseki 2023/03/04
  • パーフェクトRails著者が解説するdeviseの現代的なユーザー認証のモデル構成について - joker1007’s diary

    最近、パーフェクトRuby on Railsの増補改訂版をリリースさせていただいた身なので、久しぶりにRailsについて書いてみようと思う。 まあ、書籍の宣伝みたいなものです。 数日前に、noteというサービスでWebフロント側に投稿者のIPアドレスが露出するという漏洩事故が起きました。これがどれぐらい問題かは一旦置いておいて、何故こういうことになるのか、そしてRailsでよく使われるdeviseという認証機構作成ライブラリのより良い使い方について話をしていきます。 (noteRailsを使っているか、ここで話をするdeviseを採用しているかは定かではないので、ここから先の話はその事故とは直接関係ありません。Railsだったとしても恐らく使ってないか変な使い方してると思うんですが、理由は後述) 何故こんなことが起きるのか そもそも、フロント側に何故IPアドレスを送ってんだ、という話です

    パーフェクトRails著者が解説するdeviseの現代的なユーザー認証のモデル構成について - joker1007’s diary
  • 開発環境がLinuxに戻ってそれなりにこなれてきたので現在の環境について書く - joker1007’s diary

    Macを捨ててThinkpadにGentooを入れて開発環境としてから2ヶ月が過ぎた。 世の中にはMacから離れようとしてThinkpadを買ったら、矢印キーボード押しにくいとかタッチパッドがクソなので、Macに戻っていった人も居るみたいですが、私としては至極快適に過ごしております。 そもそもThinkpadのタッチパッドは基無効化するものなのでどうでもいい。まあそのスペース邪魔なんだよ、とは思いますがw Wi-Fiの無効化キーを誤爆するという危険があるらしいが、Gentooだと頑張って設定しないとそういう特殊なキーはそもそも動かないので、そんな危険もなく安全ですね。 Gentoo入れてタッチパッドを無効化すれば、Windows10というOSも使わなくていいし、全て解決するんではないでしょうか。 前置きはこのぐらいにして、色々と使うものが安定してきたので今の環境について書いていきます。

    開発環境がLinuxに戻ってそれなりにこなれてきたので現在の環境について書く - joker1007’s diary
    yuiseki
    yuiseki 2017/02/03
    やっぱりT460sが一番正解な気がしてくるなー
  • パーフェクトなRailsの本を書きました - joker1007’s diary

    どうもAmazonがフライングでパブリック状態にしてしまったのが補足されてしまったので、想定してないタイミングで世の中に通知されてしまいましたが、Railsを書かせていただきました。 パーフェクト Ruby on Rails: すが まさお, 前島 真一, 近藤 宇智朗, 橋立 友宏 元々はパーフェクトRubyを書いた後にスペースの都合で削ったRailsの章があって勿体無いという話から出てきたです。 タイトルは最初決まってなかったんですが、最終的にパーフェクトシリーズの一つということになりました。 タイトルこそパーフェクトって付いてますが、このは他の言語解説系のとはちょっと雰囲気が違う感じになっています。 まあ、執筆スケジュールとかページ数によるスペースの限界という理由もありますが(Railsの中ではかなり薄い方)、網羅性というより仕事Rails使ってる人達の知識とか考えに重

    パーフェクトなRailsの本を書きました - joker1007’s diary
    yuiseki
    yuiseki 2014/05/04
  • TDD Anti-patterns catalogue at Stack Overflow を簡単に訳してみた - joker1007’s diary

    Stack OverflowのTDD Anti-patterns catalogueというスレがとても面白かったので訳してみた。 Stack Overflowのvoting機能でアンチパターンへの投票を行っている感じ。 上から投票の多い順になっている。 得票数はこの記事執筆時点(2013.7.9)のもの。 SQLアンチパターンっぽく、パターン名はそのまま片仮名にしてみた。 また、内容がかなり被っているとか、状況がかなりレアじゃないかと思うものは、一部省略しました。 (ブコメで訳間違ってるよ、って教えてもらったので、一部修正しました 2013.7.10) フリーライド (テストのただ乗り) 50pt 新しいテストケースを書くのではなく、他の機能のテストに新しいアサーションを追加して既存のテストケースに乗っかる。 セカンドクラス シティズン (二等市民) 47pt プロダクションコードのように

    TDD Anti-patterns catalogue at Stack Overflow を簡単に訳してみた - joker1007’s diary
  • Conroller SpecからREST APIの利用例を自動生成するGemを作ってみた - joker1007’s diary

    最近、スマホからRESTでアクセスしてデータ取ってくるシステムのサーバーサイドを作ることが多いのですが、API仕様書書いてくれと言われて面倒になったので、なんとかしたかった。 そこで、そもそもRESTの入力と出力の仕様って、controllerのspecを書いていればそこに書いてあって出力も取れるので、それを整形してmarkdownにすりゃ大体OKじゃないかと思ったので、controllerのspecを流すついでに自動生成するようなGemを作りました。 Rubyistでない人にソース読んでくれ、とは言えないし。 joker1007/ghost_writer · GitHub なんかGemっぽいキラキラネームにしようと思って、それっぽい名前を付けましたが、相変わらず中身はしょぼいです。特に出力周りがw 後、rpsec-railsに依存しているので、railsじゃないと使えない。 使い方は、こ

    Conroller SpecからREST APIの利用例を自動生成するGemを作ってみた - joker1007’s diary
    yuiseki
    yuiseki 2013/01/09
  • Rubyistなら知っておくべき地味だけど便利なメソッド - joker1007’s diary

    備忘録兼、初心者向けのメソッド一覧。 余裕があればRails編とかも書こうかな。 これ忘れてるとか何事?とかいう突っ込みがあれば是非お願いします。 もうちょっとコードの具体例書きたかったけど、めんどくさくなってきたw Array Array#combination(n), Array#permutation(n) 配列のデータを元に組み合わせ(順列)を作ってくれます。 ブロックを渡さない場合はEnumeratorで組み合わせの各要素を列挙します。 Enumerator Enumerator#with_index(offset = 0) Enumeratorの各要素に合わせてindexを列挙してくれるEnumeratorを返す。 each_sliceやcombination等にメソッドチェインで繋げて使う。 Enumerator#with_object(obj) with_indexと同様で

    Rubyistなら知っておくべき地味だけど便利なメソッド - joker1007’s diary
    yuiseki
    yuiseki 2012/08/16
  • Shibuya.rbで「俺のRails開発環境」という題で発表してきた (資料補足) - joker1007’s diary

    ちょっと前にいつだったか、自分の開発環境についてまとめた記事でも書こうかと思っていたんですが、 ついでだからShibuya.rbでLTのネタにしてしまえと、話をしてきました。 ちなみに、今回のShibuya.rbは何か話したい人が居たらどうぞって感じだったのですが、 いつのまにかLT大会になってましたw 俺のRails開発環境 View more presentations from joker1007 内容としては至極一般的な環境だと思いますが、 資料アップしたところ結構反響があったので、 やっぱ人の環境は皆気になってるのかなーと。 後は、これからRails始める人とかかな? 資料の補足 インテグレーションテスト cucumberを使ってるのは慣れによる所も大きいですが、 今は業務上の理由でコード書く人とテストケース書く人が分離しているので、 request specは使ってなかったりし

    Shibuya.rbで「俺のRails開発環境」という題で発表してきた (資料補足) - joker1007’s diary
    yuiseki
    yuiseki 2012/05/18
  • RubyでTDDをやる際に、ちょっと便利になるVimの設定 - joker1007’s diary

    先日のTDDBC繋がりで、Vimネタを一つ。 Railsを書く時は、rails.vimがRSpecのシンタックスハイライトや、 関連ファイル間の移動を面倒見てくれますが、 Railsの世界から出ると(ディレクトリ構成、命名規則が変わると) rails.vimが使えなくなるため、そのあたりの機能が動いてくれなくなります。 なので、素のRubyコードを書く時や、 Sinatraなどをもっとシンプルなディレクトリ構成で開発している時に、 RSpecのシンタックスハイライトを行う設定と、 実装とSpecを手早く切り替えるためのプラグインを紹介します。 RSpecのシンタックスハイライト rails.vimではautoload/rails.vimの中で呼ばれている、 シンタックスハイライトを実現している部分から、 RSpecに関係する所だけ設定を持ってきて、vimrcに書いてしまえばシンタックスハイ

    RubyでTDDをやる際に、ちょっと便利になるVimの設定 - joker1007’s diary
  • 1