Rubyによるデザインパターンまとめ : Proxy

Rubyによるデザインパターン作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行本購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る

Ruby, Railsもろもろ

Rails, String#classifyでテーブル名の表記からクラス名の表記に変換できる。 Rails, String#constantizeで文字列を同じ名前の定数に変換できる。 クラスやモジュールも定数の一種なのでconstantizeで取得できる。(Rubyの言語仕様知らなさ過ぎる…。) > HOG…

Rubyによるデザインパターンまとめ : Decorator

Rubyによるデザインパターン作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行本購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る

Rubyによるデザインパターンまとめ : adapter

利用する場面 やりとりをさせたい複数のオブジェクトの間でインターフェースが噛み合わないとき。 一方または両方のクラスのインターフェースを変更してもよいが、インターフェースを揃える役割をadapterに担わせて解決することができる。 その他 呼び出され…

Rubyによるデザインパターンまとめ : iterator

Rubyによるデザインパターン作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行本購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る

Rubyによるデザインパターンまとめ①

Rubyによるデザインパターン作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行本購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る

C++の配列覚え書き

C++

誤ったインデックスを参照することについて 配列のインデックスで大きすぎる値を指定するとコンパイル時に以下のwarningがでる。 (なお、宣言でa[100]と書くとa[0]からa[99]までのメモリが確保されることに注意。) int a[100]; a[100] = 3; // => warning:…

AtCoder Beginner Contest 125 by Ruby

atcoder.jp 「各要素を除いたときの最大公約数をそれぞれ求めて、その最大値を返せばよい」ということには気づけた。 gcdの計算では結合則が成立するので、両端から順に最大公約数を算出し、配列としてメモっておく方法を発想できたかった。 降順のイテレー…

はじめての構造体とか

C++

ロベールのC++教室 第1部68章くらいまでざざっと。 コンパイル時に色々教えてくれるの、割と性にあっているかもしれない。 関数名は関数のアドレスを返す。 int main() { printf("%p", main); // => 0x10a23eee0 } 配列変数名は先頭の要素のアドレスを返…

ポインタなど覚え書き

C++

データ構造とかアルゴリズムの本のサンプルコードがC++で書かれていることが多いのでC++読めるようになりたい。 いきなりC++でもいいけど、下準備としてドットインストールのC入門をざっとやってみた。 if文の書き方とかセミコロンとかJavaScriptiに似てるな…

もろもろメモ

railsのバリデーションでは、インスタンス.errors[:attribute]に、そのattributeに関するエラー("can't be blank"とか)を配列として格納する。 モデル#saveとかだとエラーをraiseしてしまうので、確認するだけならモデル#valid?をつかう。 Railsのモデルのバ…

LINE message APIさわってみた

おうむがえしボット作成 GitHub - line/line-bot-sdk-ruby: LINE Messaging API SDK for Ruby herokuではルートディレクトリにProcfileというファイルを用意し、そこでどういうプロセス(webサーバとか)を走らせたいのか記述する。 APIとSDKの役割がわかっ…

もろもろメモ(rbenv, bundlerなど)

ごちゃまぜのメモ。 rbenv 参考にしたもの 結局READMEが一番わかりやすい。 rbenv/README.md at master · rbenv/rbenv · GitHub READMEに至るまでに以下の日本語記事で徐々に理解を広げた。 rbenv | global と local と .ruby-version の微妙な関係 - Qiita …

『オブジェクト指向でなぜつくるのか』

オブジェクト指向でなぜつくるのか 第2版作者: 平澤章出版社/メーカー: 日経BP発売日: 2011/04/07メディア: 単行本購入: 6人 クリック: 92回この商品を含むブログ (20件) を見る学んだことメモ。

おしごとコード解読メモ

Settings.hogeという書き方はrails_configというgemにより可能になっている。 rails_configで定数を管理する -- blog.10rane.com Retriableというgemがある。 Retriable.retriable :tries => リトライしたい回数, :on_retry => リトライ時に実行したい処理 d…

(ほぼ)はじめてのUNIXコマンドあれこれ

全部書いてるとキリがないので、「覚えておきたい、けど忘れそう」ということだけメモ。 cd だけでホームディレクトリに戻れる ディレクトリをコピーするときはcpコマンドに-r(再帰recursiveオプション)をつける。再帰的というのは、「コピー元ディレクト…

はじめてのVim

Vim

上下左右のカーソル移動を初めとして、可能な限りホームポジションから指を外さないためのショートカットが盛りだくさんだが、そんなにVimに最適化する必要はないので覚えなくていいや。最低限必要そうな以下だけ覚えておこう。 vでビジュアルモード(選択モ…

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

Web

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか作者: 小森裕介出版社/メーカー: 技術評論社発売日: 2010/04/10メディア: 大型本購入: 57人 クリック: 1,242回この商品を含むブログ (35件) を見る 歴史的な成因と経緯に沿っ…

ドットインストール「JavaScriptでストップウォッチを作ろう」をやった

https://dotinstall.com/lessons/stop_watch_js_v4 buttonというHTML要素がある。 JavaScriptは文と式からなる。文は「処理を実行するステップ」、式は「値を生成し、変数に代入できるもの」であり、評価値を返す。 文を式として扱うことはできないが、式を…

未経験からエンジニアへの転職活動時に現職を続けるか?辞めるか?

僕は現職を続けながら転職活動を行った。 以下の点を考慮したので、参考になればと思う。 現職を辞めることのメリット 転職活動のための時間が多くとれる(個人的重要度:3) 現職を続けた場合週30時間程度、辞めた場合60時間程度かけられると見積もった。現…

ドットインストール「はじめてのJavaScript」

https://dotinstall.com/lessons/basic_javascript_v3 .classList.add('hoge')とか.classList.toggle('hoge')でクラスをつけたり外したり。 定数の宣言はconst hoge(大文字じゃなくてOK.) 変数の宣言はlet fuga ソースコードの差分を比較するこのツールが…

AOJ ALDS1_11_A

グラフの表現 | アルゴリズムとデータ構造 | Aizu Online Judge 結果 一発AC 学んだこと グラフの表現には隣接リストと隣接行列がある(NodeとかEdgeとかのオブジェクトをつくるのはこれらとは並立する方法の1つと考えていいのだろうか) putsは最後に改行が…

AtCoder Beginner Contest 088 C

atcoder.jp 結果 一発AC 学んだこと 二次元配列の初期化はmapをつかうこと。Array.new(3, Array.new(3, 0))とかだと各要素を同一のオブジェクトとみなしてしまい値が連動してしまう。) 最初に書いたコード c = [] 3.times{c << gets.split().map(&:to_i)} d…

AtCoder Beginner Contest 109 B

atcoder.jp 結果 一発AC 学んだこと %w(hoge)はカッコ内を展開しない。%W(hoge)はカッコ内を展開する。 string[x,x]とか文字列操作に慣れよう 三項演算子に慣れよう breakはループを1つ抜ける、returnは実行中の関数から抜ける なるほど!重複がないというこ…

AtCoder Beginner Contest 114 B

atcoder.jp 結果 一発AC 学んだこと integer#timesをrange#eachと混同しないこと。 公式リファレンスちょっと慣れた。 min(x, y)ではなく[x, y].min string#charsで文字列の1文字ずつを要素とする配列にできる。 enum#each_consで1つずつずらして123,234,345…

AtCoder Beginner Contest 109 C

学んだこと 最小公倍数を求めるのにユークリッドの互除法を1行で実装。後置のwhile便利だなあ。 inject便利だなあ。引数を指定しないと、最初のブロック引数にはarray[0]とarray[1]をとるのか。 てかinteger#gcdあんのかい!調べる力不足… 他人の解答を見ず…

AtCoder Beginner Contest 115 D

学んだこと 解説を見ずに再帰を発想できたかった。 メソッド定義の外側で宣言したローカル変数はメソッド定義内でつかえないみたい。大文字から始めて定数にするか、@をつけてインスタンス変数にすればメソッド定義内でつかえる。(どちらがいいのだろうか。…

AtCoder Beginner Contest 109 A

学んだこと バッククォートでシェルコマンドを実行できる ddは一般的にはファイルコピーにつかうが、入力元/出力先を省略すると標準入出力になる str[/regex/]で正規表現にマッチする部分文字列をとりだせる 三項演算子に慣れよう 最初に書いたコード a,b = …

AtCoder Beginner Contest 111 A

学んだこと 置換はtr 最初に書いたコード n = gets.chomp.split("") m = [] n.each do |c| if c == "1" m << "9" else m << "1" end end p m.join.to_i 修正したコード puts gets.tr('19','91')

AtCoder Regular Contest 103 C

いままでPythonで書いてたけど今後RubyつかうことになりそうなのでRubyで書いてみた。 学んだこと Rubyでの標準入出力のしかた 配列から奇数/偶数番目の要素だけ取り出したいなら、select.with_index 配列で値の出現回数をハッシュに記録するなら、inject ha…