はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena
  • Hatena

    はてなブックマーク

    トップへ戻る

    • 総合
      • 人気
      • 新着
      • IT
      • 最新ガジェット
      • 自然科学
      • 経済・金融
      • おもしろ
      • マンガ
      • ゲーム
      • はてなブログ(総合)
    • 一般
      • 人気
      • 新着
      • 社会ニュース
      • 地域
      • 国際
      • 天気
      • グルメ
      • 映画・音楽
      • スポーツ
      • はてな匿名ダイアリー
      • はてなブログ(一般)
    • 世の中
      • 人気
      • 新着
      • 新型コロナウイルス
      • 働き方
      • 生き方
      • 地域
      • 医療・ヘルス
      • 教育
      • はてな匿名ダイアリー
      • はてなブログ(世の中)
    • 政治と経済
      • 人気
      • 新着
      • 政治
      • 経済・金融
      • 企業
      • 仕事・就職
      • マーケット
      • 国際
      • はてなブログ(政治と経済)
    • 暮らし
      • 人気
      • 新着
      • カルチャー・ライフスタイル
      • ファッション
      • 運動・エクササイズ
      • 結婚・子育て
      • 住まい
      • グルメ
      • 相続
      • はてなブログ(暮らし)
      • 掃除・整理整頓
      • 雑貨
      • 買ってよかったもの
      • 旅行
      • アウトドア
      • 趣味
    • 学び
      • 人気
      • 新着
      • 人文科学
      • 社会科学
      • 自然科学
      • 語学
      • ビジネス・経営学
      • デザイン
      • 法律
      • 本・書評
      • 将棋・囲碁
      • はてなブログ(学び)
    • テクノロジー
      • 人気
      • 新着
      • IT
      • セキュリティ技術
      • はてなブログ(テクノロジー)
      • AI・機械学習
      • プログラミング
      • エンジニア
    • おもしろ
      • 人気
      • 新着
      • まとめ
      • ネタ
      • おもしろ
      • これはすごい
      • かわいい
      • 雑学
      • 癒やし
      • はてなブログ(おもしろ)
    • エンタメ
      • 人気
      • 新着
      • スポーツ
      • 映画
      • 音楽
      • アイドル
      • 芸能
      • お笑い
      • サッカー
      • 話題の動画
      • はてなブログ(エンタメ)
    • アニメとゲーム
      • 人気
      • 新着
      • マンガ
      • Webマンガ
      • ゲーム
      • 任天堂
      • PlayStation
      • アニメ
      • バーチャルYouTuber
      • オタクカルチャー
      • はてなブログ(アニメとゲーム)
      • はてなブログ(ゲーム)
    • おすすめ

      ブラックフライデー

    『takahashimさんの記事一覧』

    • 人気
    • 新着
    • すべて
    • Rubyアンチパターン: なんでもprivateメソッド

      34 users

      zenn.dev/takahashim

      「大きなメソッドは細かく分割しよう」「外部から使わないメソッドはpublicにしない方がいい」といったコーディングのアドバイスに従って、とりあえずprivateメソッドを増やしていった場合に陥りがちなパターンです。 確かに巨大なメソッドばかりのクラスに比べると、メソッドは適宜分割されている方がマシですが、ここで安心するべきではありません。そのうち収拾がつかなくなります。 典型的な症状 クラスのソース行が長く、メソッドが多い privateメソッドの方がpublicメソッドよりずっと多い privateメソッドの粒度や処理内容がバラバラで追いかけにくい 似たような名前のprivateメソッドが並んでいる 生じる問題 可読性が低くなる いろんな責務が混在しているため、メソッド間の依存関係がわかりにくくなります。 テストが困難になる 内部ロジックにアクセスする手段がなくなるため、無理やりpriv

      • テクノロジー
      • 2025/07/10 12:17
      • ruby
      • あとで読む
      • Rails
      • RailsじゃないRubyでRailsっぽくdelegateする

        9 users

        zenn.dev/takahashim

        Railsのdelegateメソッドは便利ですよね。 https://railsguides.jp/active_support_core_extensions.html#delegate https://api.rubyonrails.org/classes/Module.html#method-i-delegate Rails以外のRubyコードでもdelegateを使いたくなりますが、そのためにActiveSupportを導入するのもちょっと…という場合のために、シンプルなモジュールを作ってみます。 使い方 Delegatableというモジュールにしてみます。クラスの中でextend Delegatableすると、そのクラス内でdelegateメソッドが使えるようになります。 以下のように使えるものです。 delegate :metohd1, :method2, ... method

        • テクノロジー
        • 2025/01/12 12:37
        • Rails
        • Ruby
        • あとで読む
        • RailsのキャッシュストアにRedisを使う場合の動作確認方法

          3 users

          zenn.dev/takahashim

          Railsの小ネタです。 Railsのキャッシュストアとして:redis_cache_storeを指定すると、Redisにキャッシュさせることができます。 config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] } これが正しく設定されているかどうかを確認する方法です。 キャッシュストアに何が使われているか調べる Rails consoleでRails.cacheをみると、キャッシュストアの設定が確認できます。

          • テクノロジー
          • 2024/08/18 13:57
          • Rails
          • Ruby
          • 西暦2023年、オブジェクト指向に興味を持った入門者にお勧めする日本語書籍を考える

            4 users

            zenn.dev/takahashim

            先日某所で「最近プログラミングを始めた入門者(だったかな?)に勧められるオブジェクト指向の本を教えてほしい」みたいな質問をいただいたのですが(うろ覚えなのでちょっと違っているかも)、その場で即答できず考え込んでしまいました。ですが、遅ればせながら選書してみたので、その内容をここに書いておきます。 とはいえ、改めて考えてみても、2023年に入門者向けのオブジェクト指向の本を探すのはなかなか難しいですよね…。もちろんオブジェクト指向じゃなければ簡単かと言われるとそういう訳でもないですが。とりわけオブジェクト指向に関する書籍の場合、海外のよく知られている書籍は少し前に翻訳されたものが多くて、最近はこれというのがなかなか思いつきません。また日本でも良書がばんばん出てるわけでもなさそうです。 この辺りは、オブジェクト指向に関する技術はもはや当たり前のものとなってしまっていて、今さら旬のトピックでもな

            • テクノロジー
            • 2023/09/23 22:29
            • book
            • あとで読む
            • 現代は開発抽象化レイヤーが重層化している、あるいは何を見ても開発抽象化レイヤーに見える

              41 users

              zenn.dev/takahashim

              「開発抽象化レイヤー」とは 「開発抽象化レイヤー」(Development Abstraction Layer)はご存知でしょうか。 これはJoel Spolskyが言い出した言葉で、彼の2006年のエッセイのタイトルにもなっています。このエッセイは大変おもしろいので必読です。ご存じなかった方はいますぐ読むことをおすすめします。 日本語訳もInternet Archiveから読めます。 ちなみに組込み方面では「HAL」という用語があります。これは「Hardware Abstraction Layer」の略です。HALはハードウェアの違いを吸収することで、プログラマにはハードウェアを意識させないよう「抽象化」するためのものです(が、実際には「抽象化の漏れ」が生じやすくて微妙な話が展開されるようなのですが、それはまた別の話になります)。 この「開発抽象化レイヤー」も、実際にはプログラマーが活動

              • テクノロジー
              • 2022/07/03 13:29
              • エンジニア
              • あとで読む
              • 開発
              • システム
              • 読んだ
              • 昔から使われている技術用語をさかのぼる: Value Object編

                30 users

                zenn.dev/takahashim

                考えてみればソフトウェアパターンが賑やかだった時代からはすでに20年以上たっているわけで、20年も変わるといろいろ状況も変わりますし、そんな昔のことなんて知ってるわけない、というか知ったことではない、という人も少なくないと思います。 とはいえ今でも使われている用語について、その当時の使われ方を知ると、考察が深まることもあるかもしれません。 そんな感じでOOPとかパターン方面の用語とかを遡りたい! というときには、WikipediaとかではなくてC2 Wikiを見るのがおすすめです。 C2 Wikiとは Wiki(WikiWikiWeb)の元祖みたいなやつですね。iki-ikiで紹介されています。 例えばValue Objectについて掘りたい、と思った時にはValueObjectで探すと見つかります。単語と単語をつなげるときに、単語の先頭を大文字にする感じです。 とはいえ、C2 Wikiも

                • テクノロジー
                • 2022/06/15 15:07
                • あとで読む
                • ビルド不要で簡単にWeb Componentsできる軽量フレームワークTonic

                  3 users

                  zenn.dev/takahashim

                  Tonicとは TonicはHTMLで使えるコンポーネントを作るための軽量フレームワークです。 上記サイトでは特徴として以下のようなものがあげられています。 1ファイル、1クラスのみ(HTMLエスケープ用文字列クラスもおまけっぽくついてます)。本体は350行程度。 ビルドツール不要 ネイティブWeb Componentsを使用 JAMStackにも最適 クライアントでもサーバでも同様に動作 コンポジション指向(?) Event delegation(イベント移譲)を標準でサポート サンプルも豊富 何をやっているかはソースを読んでいただいた方が早いかもと思いますが、本当にHTMLEelementを継承したTonicクラスを作ってるだけ、と言っても過言ではないでしょう。 ちなみに「サンプル豊富」というのは、Tonicで作った公式コンポーネント集のことだと思われます。 間違ってもSPAとかを作る

                  • テクノロジー
                  • 2022/05/23 14:08
                  • 『Sustainable Web Development with Ruby on Rails』はRails使ってるなら絶対面白いと思う

                    253 users

                    zenn.dev/takahashim

                    『Sustainable Web Development with Ruby on Rails』はRails使ってるなら絶対面白いと思う David Bryant Copelandの『Sustainable Web Development with Ruby on Rails』を読んでいますが、この本めちゃめちゃ面白いですね。 Railsの設計で悩んだことのある人なら絶対読んで損はないというか、共感したり反発したりにやにやしたりで楽しめると思います。RailsというかWebアプリ開発の歴戦の勇士(正直あまり若くなく、つらい経験を重ねてきた生き残り的な人)が語るベストプラクティス感があります。 本書の構成 大きく3部構成です。 Introduction その名の通り導入です。本書の目的、Railsのアーキテクチャの紹介と、ビジネスロジックの話など。 「Sustainable」とは何か? とい

                    • テクノロジー
                    • 2022/05/20 12:43
                    • rails
                    • あとで読む
                    • ruby
                    • 設計
                    • book
                    • development
                    • Ruby on Rails
                    • 読んだ
                    • Rubyアンチパターン:神クラス

                      23 users

                      zenn.dev/takahashim

                      (特にRubyに限った概念ではないですが、他の言語だと微妙に状況が違うかもしれないので、ここではRubyの例に限定しています。) 機能は追加・改修する際、すでにあるクラスだけでなんとかしようとすると、特定のクラスにあらゆる機能を持たせてしまったりしかねません。そうすると「神クラス」が誕生してしまいます。 典型的な症状 特定のクラスに、メソッドやインスタンス変数がやたらたくさんある状態になったりします ソースコードも当然のように長かったりします 機能追加・機能修正するのが困難なクラスがあったりします どんな機能の修正でもなぜか特定のクラスを修正しないといけなかったりします 生じる問題 壊れやすくなり、修正コストが激増します かんたんな修正であっても、(なぜか)他の機能が壊れたりします。 テストがあれば壊れたことに気づけるかもしれませんが、気づいたところで直すには手間がかかります。テストがなけ

                      • テクノロジー
                      • 2022/04/12 10:30
                      • ruby
                      • rails
                      • あとで読む
                      • Rubyアンチパターン: なんでもHash

                        55 users

                        zenn.dev/takahashim

                        ソフトウェアの内部では、データを様々な形に加工しつつ、あちこちに受け渡して再利用します。そのためのデータ構造として、RubyではHashクラスのオブジェクト(他の言語ではMapだったりDictionaryだったり連想配列だったりします)を使うことはよくあります。 単体の数値や文字列ではなく、それらを組み合わせたデータを扱う際には、Hashオブジェクトが便利です。 しかし、あらゆる場面でHashを駆使しようとすると、利便性よりも弊害が大きくなります。 典型的な症状 あちこちで同じだったりちょっと違ったりするHashオブジェクトを引き回していたりします インスタンス変数が少なく(あるいはまったくなく)、その代わりとしてメソッド引数のHashオブジェクトにいろんなデータを渡していたりします 1つのHashオブジェクトのキーとして、文字列やシンボル、さらにはそれ以外のクラスのオブジェクトが使われて

                        • テクノロジー
                        • 2022/04/11 19:05
                        • ruby
                        • あとで読む
                        • programming
                        • データ
                        • article
                        • プログラミング
                        • Rubyアンチパターン: なんでもクラスメソッド

                          3 users

                          zenn.dev/takahashim

                          (Ruby初学者向けの啓蒙記事です。「クラスメソッドはクラスクラスのインスタンスの特異メソッドで云々」みたいな話が得意な人は対象外です。ご了承ください。) クラスメソッドは便利なこともありますが、使いすぎるとよくないコードになってしまいます。 少なくともRubyでは、クラスメソッドは比較的特殊なもので、普通のメソッドはインスタンスメソッドである、と考えるくらいのほうがいいと思います。 典型的な症状 クラス内に定義されているインスタンスメソッドがほとんどない、あるいはまったくないにも関わらず、クラスメソッドがたくさん定義されていたりします クラスメソッドからクラスメソッドの呼び出しが多用されたりします 上記と合わせて、クラスメソッドの引数が増えたりします 生じる問題 どこからでも呼べてしまう インスタンスメソッドはそのメソッドが所属するクラス(or そのサブクラス群)のオブジェクトからしか呼

                          • テクノロジー
                          • 2022/03/13 12:32
                          • Tailwind CSS for Railsを使って、NodeをインストールせずにTailwind CSS 3を導入する

                            26 users

                            zenn.dev/takahashim

                            Tailwind CSS for Railsを使って、NodeをインストールせずにTailwind CSS 3を導入する みなさんこんにちは。この記事はRuby on Rails Advent Calendar 2021の20日目の記事です。 20日は誰も埋めていなかったようなので(と言いつつもう日付も変わってしまっているのですが)、Tailwind CSS for Railsというgemについて書きます。 Tailwind CSSとRails Tailwind CSSは最近流行のCSSフレームワークで、Utility-Firstと呼ばれている思想に基づいています。これはある意味、従来のCSS設計のベストプラクティスの真逆を行くようなもので、class="flex items-baseline mt-4 mb-6 pb-6 border-b border-gray-200"みたいなスタイル

                            • テクノロジー
                            • 2021/12/24 23:50
                            • rails
                            • tailwind
                            • css
                            • あとで読む
                            • 2021年の「オブジェクト指向」を考える

                              452 users

                              zenn.dev/takahashim

                              きしださんが先日もたのしいお題を投下されていました。 出遅れましたがこのネタについて少し掘り下げてみます。 念のため個人的なスタンスをあらかじめ表明しておくと、オブジェクト指向に対してはそれなりに好意的ですが、別に時代の最先端だとかソフトウェア開発に必須の知識というほどではない(でも知っておくと便利というか、知らないと不便なこともあるかもしれないのでわざわざ避けるのはおすすめしない)というくらい温度感です。 オブジェクト指向 is 何 そもそも「オブジェクト指向」という言葉自体、座りの悪い言葉です。 意味が明確なのは「オブジェクト指向プログラミング(OOP)」、「オブジェクト指向プログラミング言語(OOPL)」、「オブジェクト指向設計(OOD)」「オブジェクト指向分析(OOA)」といった「オブジェクト指向なんとか」の方で、それらをふわっとまとめた(ような気がする)単語が「オブジェクト指向」

                              • テクノロジー
                              • 2021/10/09 15:11
                              • オブジェクト指向
                              • あとで読む
                              • OOP
                              • プログラミング
                              • DDD
                              • programming
                              • ソフトウェアデザイン
                              • ソフトウェア
                              • Object-Oriented
                              • Zenn
                              • DDDリファレンス 定義とパターン概要 (鋭意修正中, CC-BY)

                                32 users

                                zenn.dev/takahashim

                                Eric Evans "Domain-Driven Design Reference -- Definitions and Pattern Summaries" の日本語訳です。なかなか見直しと修正(推敲)が終わらないので、とりあえず公開してみます。 https://www.domainlanguage.com/ddd/reference/ ## 翻訳について パターン名については原則として『エリック・エヴァンスのドメイン駆動設計』(翔泳社)に合わせています。素晴らしい訳業に(元「DDD難民」の一人としても)記して感謝いたします。 ただし、「エンティティー」「メタファー」「レイヤー」「ファクトリー」など、末尾の音引きは省略せずに記することにしました。そのため、厳密には正確に同一ではありません(他にも「インタフェース」は「インターフェース」にしています)。ご了承ください。 ## 権利について

                                • テクノロジー
                                • 2021/04/12 13:09
                                • DDD
                                • book
                                • あとで読む
                                • Railsアーキテクチャパターン: In-App Gems (アプリ内gem) パターン

                                  58 users

                                  zenn.dev/takahashim

                                  なんとなくパターン・ランゲージ(パターンカタログ)のスタイルが懐かしくなったので、あのスタイルを思い出しながら書いてみます。 目的 特定のアプリと完全に同期していますが、機能的には独立したライブラリをアプリ内のgemとして提供するものです。 動機 アプリで使いたい機能として、ある程度の独立した機能を実装したい 単独のクラスやモジュールとして実装できるものではなく、複数のクラス等が関連して動く程度の粒度を想定する(ので、個別のファイル単位よりはもう少し大きい粒度になる) 独立した機能とアプリが渾然一体となり、気がつくと境界を侵食したり侵食されたりしてしまうことは避けたい 適用可能性 いくつかのclassやmoduleがアプリケーションに依存せず、独立した機能になっている場合 特定のRailsアプリからしか使われる予定がない(共有する必要・予定がない)場合 一定期間しか利用せず、どこかのタイミ

                                  • テクノロジー
                                  • 2021/04/09 21:17
                                  • rails
                                  • あとで読む
                                  • アーキテクチャ
                                  • gem
                                  • ruby
                                  • 開発者向けのテストの本いろいろ

                                    554 users

                                    zenn.dev/takahashim

                                    なんかおすすめなテスト本ないですかねえ? と、某所で(テストをメインの業務にするのではなく)普通に開発をされている方に聞かれたので、 プログラミングは普通にできる テストについては学んだことはない とはいえテストエンジニアになるわけではなく、開発者としてテストが知りたい という人向けに、2021年現在で普通に入手できる本をいくつか挙げてみます。

                                    • テクノロジー
                                    • 2021/02/17 10:18
                                    • テスト
                                    • あとで読む
                                    • 開発
                                    • TDD
                                    • 本
                                    • test
                                    • プログラミング
                                    • testing
                                    • book
                                    • 書籍
                                    • サイファーパンク宣言(Eric Hughes, YAMANE Shinji訳)

                                      4 users

                                      zenn.dev/takahashim

                                      (original: https://web.archive.org/web/19990208231552/http://www.vacia.is.tohoku.ac.jp/~s-yamane/hackersML/papers/manifesto-J.html ) サイファーパンク宣言 エリック・ヒューズ プライバシーは電子時代の開かれた社会にとって必要不可欠なものだ。プライバシーとは秘密主義のことではない。つまりプライベートな事柄というのは全世界には知らせたくない事柄だが、秘密の事柄とは誰にも知られたくない事柄だ。プライバシーは選択して自らを世界に示すための力なのだ。 もしも二つの集団が何か論争をおこなったとしよう。両者は議論を記録し、それぞれの集団はこの記録によって発言できる - 誰がそれを妨げるだろうか? たとえ記録を制限する法律ができたとしても、開かれた社会では発言の自由はプライバ

                                      • テクノロジー
                                      • 2020/10/28 13:26
                                      • history
                                      • クリプトアナーキスト宣言(Timothy C. May, YAMANE Shinji訳)

                                        5 users

                                        zenn.dev/takahashim

                                        (original: https://web.archive.org/web/19980129140949/http://www.vacia.is.tohoku.ac.jp/~s-yamane/hackersML/papers/crypto-anarchy-J.html ) From: [email protected] (Timothy C. May) Subject: The Crypto Anarchist Manifesto Date: Sun, 22 Nov 92 12:11:24 PST 世界のサイファーパンクスへ、 昨日シリコンバレーでの「生身のサイファーパンクス」の集会で、 Cypherpunk メーリングリストのあらゆる読者層(幽霊メンバーや立ち聞きメンバーその他全員)が配布資料を電子的にも入手できるように、と数人が要求した。<ふう>[1]。 以下は私が1992年に私が設立

                                        • テクノロジー
                                        • 2020/10/14 06:27
                                        • history
                                        • あとで読む
                                        • MatzにrejectされたES6風HashリテラルをこっそりRubyで使う

                                          42 users

                                          zenn.dev/takahashim

                                          ES6風Hashリテラルとは ここで言う「ES6風Hashリテラル」というのは、ES6(ES2015)でobject property shorthandとして導入された省略記法です。 最近のJavaScriptを使っている人なら見慣れた記法ですね。Rubyでもこういう風に書けると便利そう、と思う人はもちろんいるわけで、この記法を取り入れるべく過去にもbugs.ruby-lang.orgで提案がありました。が、残念ながら今のところrejectされたままです。 Feature #11105 ES6-like hash literals https://bugs.ruby-lang.org/issues/11105 Feature #15236 add support for hash shorthand https://bugs.ruby-lang.org/issues/15236 似た記法

                                          • テクノロジー
                                          • 2020/10/12 13:12
                                          • ruby
                                          • ruby-next
                                          • プログラミング
                                          • techfeed
                                          • programming
                                          • JavaScript
                                          • あとで読む
                                          • 著名なオープンソースRailsアプリのapp/以下を見る

                                            233 users

                                            zenn.dev/takahashim

                                            Railsにおける app/ とは app/はRailsのアプリケーション用ディレクトリで、普通のRailsアプリケーションでは、この下にmodels,controllers,viewsを含めた様々なディレクトリが作られます。 基本的には新しいディレクトリを追加する必要はないのですが、アプリケーションが複雑になると、Railsを拡張するべくここにアプリケーション固有のディレクトリを作って、その下に関連するファイルを置くことがあります。 中には、servicesやserializersのように、多くのRailsアプリケーションで見られるものもあれば、完全にアプリケーション独自のものが作られることもあります。また、アプリケーションによっては独自のディレクトリは一切作らないものもあれば、大量に作るものもあります。それぞれアプリケーションの開発方針によるものです。 本記事では、比較的有名なOSSの

                                            • テクノロジー
                                            • 2020/10/11 19:18
                                            • rails
                                            • あとで読む
                                            • development
                                            • design
                                            • github
                                            • ruby
                                            • Ruby on Rails
                                            • アプリ
                                            • アプリケーション
                                            • programming

                                            このページはまだ
                                            ブックマークされていません

                                            このページを最初にブックマークしてみませんか?

                                            『takahashimさんの記事一覧』の新着エントリーを見る

                                            キーボードショートカット一覧

                                            j次のブックマーク

                                            k前のブックマーク

                                            lあとで読む

                                            eコメント一覧を開く

                                            oページを開く

                                            はてなブックマーク

                                            • 総合
                                            • 一般
                                            • 世の中
                                            • 政治と経済
                                            • 暮らし
                                            • 学び
                                            • テクノロジー
                                            • エンタメ
                                            • アニメとゲーム
                                            • おもしろ
                                            • アプリ・拡張機能
                                            • 開発ブログ
                                            • ヘルプ
                                            • お問い合わせ
                                            • ガイドライン
                                            • 利用規約
                                            • プライバシーポリシー
                                            • 利用者情報の外部送信について
                                            • ガイドライン
                                            • 利用規約
                                            • プライバシーポリシー
                                            • 利用者情報の外部送信について

                                            公式Twitter

                                            • 公式アカウント
                                            • ホットエントリー

                                            はてなのサービス

                                            • はてなブログ
                                            • はてなブログPro
                                            • 人力検索はてな
                                            • はてなブログ タグ
                                            • はてなニュース
                                            • ソレドコ
                                            • App Storeからダウンロード
                                            • Google Playで手に入れよう
                                            Copyright © 2005-2025 Hatena. All Rights Reserved.
                                            設定を変更しましたx