タグ

programmingとRailsに関するsuginoyのブックマーク (24)

  • APIの命名規則はフロントエンド・バックエンドどちらに合わせるべきか?|TechRacho by BPS株式会社

    morimorihogeです。ちょっと色々忙しくて死んでますが、深夜の勢いで書いてみます。 ことの起こり Twitterにてこんな発言を見かけました この2017年の記事だと、RoRのテーブルのdatetime型にはatをdate型にはonを付けようと書いてあるけど、APIでカラムのデータを返す場合、フロント側としてはdateというサフィックスが付いていた方がやりやすいという意見があって、この辺のベストな感じが気になったhttps://t.co/8MMMHlFvGx — yotuba@Railsエンジニア (@yotuba_eng) July 1, 2021 元記事(翻訳)はこちら Rails: 日付や時刻のカラム名を命名規則に合わせよう(翻訳) 件について、Twitterではreplyしてみたのですが、文字数の都合で詳細に書きづらいということもあり、一度自分の意見をまとめてみようという

    APIの命名規則はフロントエンド・バックエンドどちらに合わせるべきか?|TechRacho by BPS株式会社
    suginoy
    suginoy 2021/07/02
    名詞がなくて変な感じになることあるんだよね。 _at/_on
  • ActiveStorageでみた不自然な条件分岐に関して - YOSHINO日記

  • 巡回冗長検査 - Wikipedia

    巡回冗長検査(じゅんかいじょうちょうけんさ、英: Cyclic Redundancy Check, CRC)は、誤り検出符号の一種で、主にデータ転送などに伴う偶発的な誤りの検出によく使われている。送信側は定められた生成多項式で除算した余りを検査データとして付加して送信し、受信側で同じ生成多項式を使用してデータを除算し、その余りを比較照合することによって受信データの誤り・破損を検出する。 デジタル回路で簡単に実装でき、数学的にも分析が容易であり、また、ビットのランダム誤りやバースト誤りを検出できるので、HDLC手順やCSMA/CD方式などにおいて誤りチェック・伝送路ノイズチェックによく使われている。パリティや単純な加算によるチェックサムに比べ検出精度が高く、その点では高級なチェックサムと言える。単純なチェックサムと同じく、データの改竄に対する耐性はない。 W・ウェスレイ・ピーターソンが発明し

    suginoy
    suginoy 2017/01/11
    Rails が zlib 使ってるやつ。 “CRC-32 RFC 1952 (gzip) や RFC 2083 (PNG) の末尾にも実装例が載っている。zlib などにも含まれている。 ”
  • Railsにおける「サービスレイヤ」「サービスオブジェクト」について – recompile.net

    Railsを使ったアプリケーションの特定の場面では、「サービスレイヤ」や「サービスオブジェクト」という概念を導入すると有効に機能することがあります。今回は、その紹介をします。 まず、サービスレイヤとは何でしょうか。『Patterns of Enterprise Application Architecture(以下、P of EAA)』では「サービスレイヤは利用可能な操作を定め、各操作へのアプリケーションレスポンスを取りまとめる」と定義されています(参照)。ユーザーインタフェースなどからの呼び出しを受け付けるアプリケーションの境界として、ビジネスロジック、トランザクション制御、レスポンスなどの取りまとめをするのが、サービスレイヤの役割です。 では、どのようなときにサービスレイヤを導入するのでしょうか。P of EAAには、次のように記述されています。 You probably don’t

    Railsにおける「サービスレイヤ」「サービスオブジェクト」について – recompile.net
  • ソースコードの減らし方 - 基本的な考え方と10個の方法 - クラウドワークス エンジニアブログ

    ステップ数で評価が決まる現場では全く役に立たないテクニックではありますが、ソースコードの減らし方について紹介したいと思います。 開発Div. エンジニアのayasudaです。 2014年の夏にジョインし、会社名と同じサービス、クラウドワークス の開発に携わっています。 ご覧の通り、消したソースコードの方が多いので、ステップ数換算だとマイナスの働きしかしてませんね! 記事では、特に Ruby on Rails の運用されているプロダクトコードにおける、ソースコードの減らし方について紹介していこうと思います。 基的な考え方 ソースコードを減らすときの大原則は「ボーイスカウト・ルール - プログラマが知るべき97のこと」です。 普段、ソースコードを触るときに、一つでも良いので簡単な改善を入れる。これを積み重ねるのが大事です。 一度に一気に直そうとするのはあまり良くありません。大抵の場合、デグ

    ソースコードの減らし方 - 基本的な考え方と10個の方法 - クラウドワークス エンジニアブログ
  • Ruby/Rails Code Smell Basics 04 | Envato Tuts+

  • 膨れ上がったモデルから機能を分離する切り口 - tsimoのメモ

    Railsのモデルにちょびちょびと処理を追加していると、いつの間にかサイズが膨れ上がってしまっていたりする。 Railsでロジックを書く場所として与えられている場所はコントローラかモデルなので、「コントローラは単純にしなさい」という教えに従うと、必然的に多くの処理はモデルに書くことになってしまい、モデルが膨れ上がる結果に陥りやすい。 それを解消するために、モデルから切り出せるものは切り出しましょう、ということで、下記の記事に、膨れ上がったモデルから機能を別の独立したクラスに切り出すための7つの切り口が提示されていた。 http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/ 以下はそのメモ。 バリューオブジェクト 上の記事では例として、costという数値フィールドをRat

    膨れ上がったモデルから機能を分離する切り口 - tsimoのメモ
  • Confreaks TV | Build Complex Domains in Rails - Rocky Mountain Ruby 2014

    Rails models are simple, but your domain’s models might not be as simple as Rails would like them to be. Modeling large, complex domains "the Rails way” can cause some serious pain. Ruby and Rails are supposed to make developers happy. Let's not allow “the Rails way” and complex domains to take the “happy” out of ruby development. Join me as I’ll walk through a set of easy to implement Domain Driv

  • If You Gaze Into nil, nil Gazes Also Into You

    Every developer runs into the dreaded nil object error: NoMethodError in Ruby, AttributeError in Python, and NullPointerException in Java. These errors are one of the largest sources of bugs. Even most static languages allow nil objects to silently pass as any type of object, and it’s just as easy in Ruby to let a nil object slip into seemingly well-factored code. If this is such a widespread and

    If You Gaze Into nil, nil Gazes Also Into You
    suginoy
    suginoy 2014/09/17
    maybe pattern
  • 現在時刻を扱うメソッドはデフォルト引数を使いましょうという話 - けんちゃんくんさんのWeb日記

    GMOペパボ1ヶ月記念に、おそらく一番最初にコードレビューで伝えたことを書いておこうと思う。 まとめ 現在時刻を扱うようなメソッドには、デフォルト引数で Time.now を使って、外からも時刻を渡せるようにしましょう。 テストのため 2014年の今となっては、テストのために時刻の扱いを気をつけましょうという必要もない気がするけど、CodeIQの和田さんの解説にもあるように、システム全体の時刻をスタブしたりするのは多少のリスクが伴うと思う。 実行中に現在時刻が変わってしまう 問題は 複数の現在時刻を扱うロジックを連続で実行すると現在時刻が変わってしまう ということである。 1つのコード例は以下の通り。 class Article < ActiveRecord::Base scope :recents, -> { where('created_at > ?', 1.week.ago) } e

  • ssig33.com - DCI の話 - Ruby On Rails Advent Calendar 乱入

    乱入します。そういうのあるのか調べてないけどどうせあるでしょ。あんまりまとりないです。 DCI か Concern かみたいな話です。 Rails のファットモデル対策 これの続き。 module に切り出す粒度はどうするかとかこれはこれで難しいとろはあるのですが という部分について適当に書いておく。 まず DCI というアプローチではモデルが肥大化するという問題は質的に一切解決していない。結局のところさまざまなコンテキストで責務が呼ばれた結果最終的に生成されるドメインモデルは極めて巨大なものであることに変わりはない。 結局のところ、改善されるのは「コードの見た目」に過ぎない。しかしながら我々プログラマーは「コードの見た目」が如何に重要であるか知っている。コードの見た目はプロダクトの品質のかなりの部分を占める。 DCI というアプローチは単純に Concern するという戦略と何が違うか

    suginoy
    suginoy 2014/04/27
    "コンテキストごとに各モデルの責務を分離するのですから、各モデルで共通の処理を module に書き出すみたいなことがしづらくなります"
  • Domain Logic in Rails

    Smashing Boxes Designs and Develops Custom Applications Using Ruby on Rails, AndroidOS, and iOSDomain Logic in Rails by Reed Law 18 Comments What is Domain Logic? All software has a domain in which it attempts to solve problems. This can be equivalent to a real-world business or to a field of engineering or math. The domain logic is the representation of the business rules of the domain being mod

    suginoy
    suginoy 2014/02/25
    あとで読む。DHHとBob MartinのDDD論争?
  • 「サブクラス化するのは、スーパークラスの実装をよく知っているときに限るべきだ」 - Rubyリファレンス日記

    Rubyでは、サブクラスで親クラスのprivateメソッドやインスタンス変数を上書きしてしまい、見付けづらいバグを出すことがあります。 このことについて、オライリーの『プログラミング言語Ruby』P248では、次のように述べています(P250も参照)。 Rubyでサブクラス化するのは、スーパークラスの実装をよく知っているときに限るべきだ。クラスのパブリックAPIだけが必要で、その実装は不要なら、クラスを継承するのではなく、カプセル化と委譲によってクラスの機能を拡張すべきだ。 えー。RailsではActiveRecord::BaseやActionController::Baseを継承しないと何もできないのに。 私はRailsのソースはちょくちょく眺めていますが、すべて把握するのは手に負えないし、初心者には「Railsのソース見ろ」は無理な話だし、どうしたものか。 私の経験では、Railsのコ

    「サブクラス化するのは、スーパークラスの実装をよく知っているときに限るべきだ」 - Rubyリファレンス日記
  • Ruby/Rails 用 DI コンテナ Dee をつくった、あるいは Ruby のカルチャーについて | Born Too Late

    あけましておめでとうございます。 大晦日は実家でプログレ聞きながらコード書いてました。 今さらながら Heldon の Stand by とか聞いてたんですが、Tangerine Dream を思わせるミニマルなシンセサイザーの反復と、リシャール・ピナスによるロバート・フリップばりの暴力的なギターソロが絡みあっており、大変良いですね。 作ったもの また説明長くなりそうなので、はじめに作ったものの紹介です。 dee dee-rails この Dee というのが DI コンテナの体です。 名前は Ozzy Osbourne ソロ 1st Blizzard of Ozz におけるランディ・ローズのギター曲からです。 50 秒と短く、メタルアルバムの中にあってクラシック風の静かなギター曲ですが、同時にアルバムから欠かせない存在感を放つ名曲です。 何が言いたいかというと、Dee はコンパクトな実装

  • 9 Apps Built by Self-Taught Coders

    You can access plenty of service online when learning to code: Codecademy, Skillshare, Treehouse, Code School(opens in a new tab), Learn Code The Hard Way, Udemy(opens in a new tab), General Assembly(opens in a new tab), Udacity(opens in a new tab) and the list goes on. Some charge per class or by monthly membership, while others are free or accept donations. But still, learning anything outside t

    9 Apps Built by Self-Taught Coders
  • Why Our Code Smells

    Odors are communication devices. They exist for a reason and are usually trying to tell us something. Our code smells and it is trying to tell us what is wrong. Does a test case require an abundance of setup? Maybe the code being tested is doing too much, or it is not isolated enough for the test? Does an object have an abundance of instance variables? Maybe it should be split into multiple object

    Why Our Code Smells
    suginoy
    suginoy 2013/08/06
    テストコードとリファクタリングの資料。GOOSなどを引用しつつ、RailsやJavaScriptのコードで説明している。
  • Rails のモデルはどうあるべきか - tomykaira makes love with codes

    2013-07-05 Rails のモデルはどうあるべきか rails TL;DR: Rails の model が太りやすいのは、生まれつき責務過剰だから。開発者が設計段階で責務を絞り、べる量を減らしてあげよう。 Rails の model というのは、概念も実装も、とても奇妙な使われ方をしている。 いささか不気味だし、実害もある。 fat model はずっと Rails 界で話題になりつづけている。 すでに Rails のプロフェッショナルは抜け出せているのかもしれないが、まだ議論の余地のある話題ではあるようだ。 なぜ model が太るかというと、なんでもかんでも model にべさせるからである。 一日中べてれば元々どんなにスレンダーでも太るに決まってる。 コードのダイエットべる量を減らすか、外に出すしかない。 太ってから外に出すのがリファクタリングである。 後知恵的に

  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
  • Blog

    Transformational Software Engineering Lead your team into the future with unprecedented visibility. Details

    Blog
    suginoy
    suginoy 2013/03/28
    あとで読む
  • DCI を考える #2 - 鳩舎

    追記 まじで鳩さんのスライドでDCIについて理解したつもりになるの危険だからやめた方がいいです。せめて d.hatena.ne.jp/digitalsoul/20… を読みましょう。DCIはエンドユーザのメンタルモデルを実装に落とし込むための設計パラダイムです— Naoto Takai (@takai) December 27, 2012 ということで、以下の内容はすべて間違いである可能性が高いです。 元記事 これまでのあらすじ: ActiveStrategy はイマイチなアプローチだよね。 文脈によって可能な挙動が変わり、モデルは基的にデータのみを持つことでクリーンな状態を保とうといっているのに、便利な include を提供する ActiveStrategy はやはりイマイチなアプローチで、挙動の切り分けが容易になるのはいいことだけれど、それって今までの include 地獄から何も

    DCI を考える #2 - 鳩舎
    suginoy
    suginoy 2012/12/23
    「永和では Interaction を Activity として定義してるらしい」