タグ

ブックマーク / blog.willnet.in (9)

  • APIに利用制限をかけるとしたらどういうやりかたがあるのか - おもしろwebサービス開発日記

    この記事はSmartHR Advent Calendar 2020 11日目の記事です。 僕のお手伝いしているSmartHRでは、毎週バックエンドエンジニアが集まり、技術的なトピックについて共有、相談しあうミーティングを開催しています。そのミーティングでは僕がTipsなどを共有するコーナーが常設されています*1。 このエントリでは、そのコーナーで共有した内容をひとつ紹介します。 APIに制限をかける方法について APIを外部に提供するとき、一定の制限をかけてユーザがAPIを乱用するのを防ぐことはよくあることではないでしょうか。素直に考えると「1時間に5000回までAPIを実行できる」のようなやり方を思いつきますね。GitHubAPIもそのやり方ですし、SmartHRAPIも同様です。 じゃあそれでいいのでは。となるかもしれませんが少し待ってください。いろんなクライアントがAPIを大量に

    APIに利用制限をかけるとしたらどういうやりかたがあるのか - おもしろwebサービス開発日記
    yk5656
    yk5656 2020/12/12
  • 良いエンジニアを採用するにはどうしたらいいか - おもしろwebサービス開発日記

    以前ソフトウェア開発者採用ガイドの読書感想文を書いたときに反響が思ったより大きかったので、エンジニア採用というテーマは関心が高いのだなと感じました。 上記感想文のエントリでも書いていますが、お手伝いしている会社の方などから「どうやったら良いエンジニアを採用できますか?」と聞かれることがよくあります。先のエントリでは「頑張るしかないですねとしか答えようがない」と書きましたが、頑張るとはいったい何を頑張るのか、きちんとまとめておいたほうが良いなと思いエントリをしたためる次第です*1。 あくまで僕はこう思いますという話で、この通りにしたからといって必ず良いエンジニアを採用できる保証はありません。あしからず。 想定読者 良いエンジニアを採用したい偉いひと、もしくは人事のひとです。 前提: 良いエンジニアとは このエントリでの「エンジニア」とはいわゆるweb系のエンジニア(例: サーバサイドエンジニ

    良いエンジニアを採用するにはどうしたらいいか - おもしろwebサービス開発日記
  • Rails Developers Meetup で綺麗なテストコードの書き方について発表した - おもしろwebサービス開発日記

    昨日のRails Developers Meetupで綺麗なテストコードの書き方について発表してきました。 Rails Developers Meetup #1(東京会場) - connpass 資料はこちら 余談 もともと数年前くらいから、テストコードの書き方についてまとめたいなーと思っていたのですがなかなかキッカケがなくて手を付けられていませんでした。今回のミートアップ駆動で一通り形にするところまでいけて今とてもスッキリした気持ちです 😇 もっと多くの人にテストコードの書き方を意識してもらいたいので、また機会があればどこかで喋りたいですね。 昨日発表した内容はGitHubリポジトリにまとめたものの一部です。綺麗なテストコードの書き方について詳しく知りたい方は下記のリンクからどうぞ。 willnet/rspec-style-guide お願い 今回まとめた内容はあくまで僕が考えるテスト

    Rails Developers Meetup で綺麗なテストコードの書き方について発表した - おもしろwebサービス開発日記
    yk5656
    yk5656 2017/05/19
  • 権限管理のgemで良いのはどれ? - おもしろwebサービス開発日記

    昨日は ginza.rb 31回目のミートアップでした。 Ginza.rb 第31回 ユーザの権限管理どうしてます? - Ginza.rb | Doorkeeper @kyuden_ さんに、現状の二大認可 gem である cancancan や pundit、それらの問題点を解決するために作った banken について発表してもらいました。 感想 個人的には pundit のリソースベースでの権限管理は悪くないと思っています。ただスライドで書かれているような、Admin::UsersControlller と UsersController で処理を分けたい時などのエッジケースで回避策を模索しなきゃいけないのはだるいですね。banken だと、コントローラベースなのでコード記述量は増えてしまうのですがその分ハマりどころが減るので、そのトレードオフを考慮しつつ案件によって使い分けるのがいい

    権限管理のgemで良いのはどれ? - おもしろwebサービス開発日記
    yk5656
    yk5656 2016/01/20
  • 最近のお仕事について - おもしろwebサービス開発日記

    ここ半年ほど、Clinical Platform さんのお手伝いをしています。最近エンジニア募集を開始したので、どんな感じでお仕事を進めているかを簡単に紹介しようと思います。 作っているもの クリニック向けのクラウド電子カルテです。 RubyRails のバージョン Railsエンジニアが会社を選ぶときは使っているRubyRailsのバージョンで決めるらしいので一応。 Rails 4.2.4 Ruby 2.2.2 PostgreSQL 9.3.6 Ruby と PostgreSQL のバージョンが少し古いのは、番環境である Engine Yard のバージョンに合わせているためです。gem 類は、週に一回自動で bundle update のプルリクエストが生成される仕組みが作られているためほぼ全て最新バージョンです。 (2015/11/09追記)Engin Yard が Rub

    最近のお仕事について - おもしろwebサービス開発日記
    yk5656
    yk5656 2015/10/30
  • Rails で fat model を避けるための、あまり知られていない方法について - おもしろwebサービス開発日記

    このエントリで書いた内容は、ほぼ Growing Rails Applications in Practice の内容が元になっています。英語ですが、ここで挙げた内容以外にもコードを綺麗に保つテクニックが書かれており、かつページ数も少なく読みやすいです。コードを綺麗に保つのが好きな方は一読してみることをおすすめします。 はじめに Rails で fat model を避けるための方法は、7 Patterns to Refactor Fat ActiveRecord Models を始めとして、多くのやり方が存在します*1。 validation や callback は ActiveRecord(以下AR) を継承せずとも利用することができます。7 Patterns to Refactor Fat ActiveRecord Models の 「3. Extract Form Objects

    Rails で fat model を避けるための、あまり知られていない方法について - おもしろwebサービス開発日記
    yk5656
    yk5656 2015/08/24
  • Travis CI から heroku にデプロイするのってセキュリティ的に問題ないのか調べた - おもしろwebサービス開発日記

    Travis CI べんりですね。「テストが通ったらherokuにデプロイする」ということもできるようなのでやってみました。すでに Travis CI の基の設定は済んでいる前提です。 gem i travis # travis gem を入れていなかったら cd YOUR_APP_PATH travis setup heroku とすると、アプリケーションルートにある.travis.yml に必要な設定を追記してくれます。これをコミットしてプッシュするだけ。とても簡単でした。 でも少し気になることがありました。 疑問1 ここでは heroku のトークンを暗号化したものを.travis.ymlに記述しているようです。github に公開して、別の誰かにトークンを複合されたりしないでしょうか? 回答1 公開鍵で暗号化されていて、秘密鍵はtravisが保持しているのでとりあえず大丈夫そう。

    Travis CI から heroku にデプロイするのってセキュリティ的に問題ないのか調べた - おもしろwebサービス開発日記
  • Rails 4.1.0 で新しく導入された便利メソッド - おもしろwebサービス開発日記

    Rails(ActiveSupport) は標準クラスを拡張した便利メソッド群を提供してくれています。時々これは使わないなー…という微妙なやつもありますが、僕はけっこう好きです。 Rails 4.1.0 で新しく入ったそんなメソッドをまとめます。 Numeric#in_milliseconds 数値をミリ秒の単位に合わせて返す。 1.hour.in_milliseconds #=> 3600000 実装は単に1000倍しているだけ。 def in_milliseconds self * 1000 end すごくたまに使うかもしれない。 Date#middle_of_day, DateTime#middle_of_day, Time#middle_of_day 昼の12時を返す。 date = Date.today date.middle_of_day => Sat, 19 Apr 2014

    Rails 4.1.0 で新しく導入された便利メソッド - おもしろwebサービス開発日記
    yk5656
    yk5656 2014/04/20
  • みなとRuby会議01に参加した - おもしろwebサービス開発日記

    今日は みなとRuby会議01 - Regional RubyKaigi に参加してきました。まず最初 13:00 から開始かと勘違いしていて遅刻しました。すみません>< 主にペアプロのことについて書きます。 はじめてのペアプロ 僕はこのみなとRuby会議でペアプロを初めてやりました。これまで基的に一人でプロジェクトをまわしたり、在宅でコードを書いたりしていたので、興味はありつつもなかなか機会がなく今日まで来てしまいました。 で、やってみた感想ですが…とても面白かったです!!!ただ、時間制限が存在したこともありテンパったし消耗度合いも一人でコードを書く時の比ではなかったです。また、自分の勉強不足に気付く良い機会にもなりました。ゆるふわ Rails エンジニアなので、web系以外のコードを書く力がかなり足りませんね。もっと勉強しないと。 他の参加者の方々の成果物が gist にアップされて

    みなとRuby会議01に参加した - おもしろwebサービス開発日記
    yk5656
    yk5656 2012/06/03
  • 1