タグ

2019年4月21日のブックマーク (8件)

  • Good Module, Bad Module

    You already know how to use modules in Ruby, but are you abusing them? In this post, we will take a look at different ways to program with modules and why they may or may not be a great idea. NamespaceModules give you an easy way to namespace the rest of your code. For example, when you generate a new gem: $ bundle gem foo_bar_fightersYou get a default file with a module in it: $ cat foo_bar_fight

    Good Module, Bad Module
    zetta1985
    zetta1985 2019/04/21
  • Rubyでファイルスコープのメソッドを作る - Qiita

    Rubyの問題点 カジュアルにファイルスコープのメソッドが作れない CやGoでは簡単にそのファイル内でのみ使用可能な関数を書くことができますが、 Rubyの場合、たとえprivateメソッドを書いたとしても、別のファイルから__send__等で呼ぶことができてしまいます。 これでは全てのメソッドがどのファイルからorどのライブラリから呼ばれているか、分かりません。 そのため、ちょっと処理をまとめて読みやすくしたいだけなのに公開されるAPIが増えちゃって他のライブラリに依存されちゃってという問題が起こり得ます。(僕は経験ないけど) そんなこんなでそのファイルだけで使えるメソッドがあれば、修正範囲が限られているので、メンテナの気を楽にすることが期待できそうです。 ご提案 ちょこっと調べたところ、Rubyでのファイルスコープが使えるのは2つあるようです。 一時変数 Refinements 一時変

    Rubyでファイルスコープのメソッドを作る - Qiita
    zetta1985
    zetta1985 2019/04/21
  • 科学論文に役立つ英語:接続詞で論理を組み立てる

    LADY ANNE: Villain, thou know'st no law of God nor man: No beast so fierce but knows some touch of pity. GLOUCESTER: But I know none, and therefore am no beast. 「この悪党!神の法も人の法も知らぬやつ。獰猛な野獣であっても少しは慈悲を知っているだろうに。」 「私は慈悲など知らぬ。故に私は野獣ではないというわけだ。」 --- King Richard III, Act 1, Scene 1 バラ戦争に勝利し、ランカスター朝の国王ヘンリー6世と王太子エドワードをその手で殺したリチャード(グロスター公)は、王位への黒い野望を胸に秘める。その野望実現のため、エドワードのであったアンとの結婚をねらい、先王ヘンリー6世の柩の前でアンを口説く。

    zetta1985
    zetta1985 2019/04/21
  • COMP 145: Module Cohesion

    zetta1985
    zetta1985 2019/04/21
  • What is logical cohesion, and why is it bad or undesirable?

    zetta1985
    zetta1985 2019/04/21
  • Rubyのライブラリの標準ディレクトリ構成を考えて、自作ライブラリを何処に置くべきか思案する - それマグで!

    Rubyで作りためたクラスを再利用するために require で入れたいと思った。では何処に置くべきか。perl でいうuse lib; 的なこと。 ruby で ライブラリを置く場所 $: ruby - グローバル変数 (LOAD_PATH)で指定 RUBYLIB - Bashの環境変数で指定 site_ruby - ruby の標準ディレクトリ構成に入れる の3つの選択肢がある。 今日調べたのは site_ruby $: の場合 $:.unshift "path/to/my/lib" $LOAD_PATH.unshift "path/to/my/lib" RUBYLIB の場合 export RUBYLIB=/path/to/my:$RUBYLIB site_ruby の場合 /path/to/lib/ruby/site_ruby にファイルを置く site_rubyとは? ruby

    Rubyのライブラリの標準ディレクトリ構成を考えて、自作ライブラリを何処に置くべきか思案する - それマグで!
    zetta1985
    zetta1985 2019/04/21
  • Rubyのモジュールを名前空間で使っているのかMix-inで使っているのか

    Rubyのモジュールには確かにMixinと名前空間の両方の役割があります。 ゆえに、「意図しない形で使われる可能性があるんじゃないか?」という心配が出てくるのも理解できます。 最初に確認したいのは、shingoさんは実際に困ったことがあるのか、それとも「この先困ることが出てくるのではないか?」と心配しているのか、どちらなのか?ということです。 もし前者であれば、実際に困ったときのコードを見せてもらった方が議論しやすいです。 が、僕はなんとなく後者である気がしています。 なので、ここから先は「この先困るかも?」という心配に対する答えを記述します。 そもそも、何も考えずにモジュールをデタラメにMixinしようとする人は滅多にいないと思います。 普通であれば、 xxxという機能を実現したい yyyというモジュールにその機能がある だからyyyをMixinしよう(=incudeまたはextendし

    Rubyのモジュールを名前空間で使っているのかMix-inで使っているのか
    zetta1985
    zetta1985 2019/04/21
  • 低レベルプログラミング | 翔泳社

    アセンブラとC11でIntel 64ビットプログラミングモデルを堪能する! 「IoT」というコトバが爆発的に広がり、老若男女だれもが知っているIT用語となった昨今ではあるけれど、そのインフラストラクチャとしてのPCアーキテクチャは、大多数の人々にとってはブラックボックスのままです。 とはいえ、そのブラックボックスを十全に理解し、各種ブラックボックスをフル活用できなければ、IoT自体の活用や発展・進歩はありえません。 書はアセンブリとC言語を使用し、インテル製アーキテクチャの64ビット版が、コンパイルされたプログラムをどのように処理し、データをどのように、そしてどこに配置し、それらを使用しているのか、を克明に解説した1冊です。 すなわち、ネットワークにぶら下がって各種データをやり取りしているPCの、ごくごく基的な動作原理をプログラミングすることで紐解きながら学ぶ、歯ごたえと滋養に満ちた学

    低レベルプログラミング | 翔泳社
    zetta1985
    zetta1985 2019/04/21