よもやま話β版

よもやま話を書きます

Otemachi.rb#10にLT参加しました

enechange-meetup.connpass.com LT参加しました!メモ魔なので、聞いた話をメモしました。

主催 エネチェンジさん

電力会社、ガス会社を切り替えるならエネチェンジ!

Active Support のコア拡張機能について

  • 知ってた!
    • Object#blank? #=> 0.blank? == false
    • Object#present? #=> 0.present? == true
    • Object#try #=> メソッドがなければ nil を返す ぼっち演算子(&.)でも同様のことができる
    • Object#try! #=> メソッドがなければ例外を返す
    • Object#deep_dup #=> ディープコピーしてくれる
    • Moduleの拡張: delegate
    • Railsのこだわり? String拡張
      • "table".pluralize #=> "tables"
      • "tables".singularize #=> "table"
      • 他, camelize, underscore, titlizem dasherize, demodulize, deconstantize, parameterize, tableize などなど
    • to_s(:currency, unit: '£')
    • 12345.to_s(:delimited) #=> 12,345
    • [1,2,3].sum #=> 6
    • .pluck(:name) #=> とてもお世話になっているやつだ
    • .merge
    • .compact
  • 知らなかった!
    • x.presence #=> x.present? ? x : nil と同じ
    • tryはブロックも渡せる、Ruby2.5 以降の #yield_self 的な使い方もできる
    • Object#to_query #=> {c: 3, b: 2}.to_query #=> "b=2&c=3"
    • Object#with_options #=> ref: Railsで特定の条件下で走るバリデーションを作りたい
    • class_attribute #=> ref: これはMUST!ActiveSupport の Class#class_attribute を使おう!
    • cattr_accessor #=> クラス変数のアクセサ
    • to_date, to_time, to_datetime #=> Time.zone.parse よりも文字数少なくて便利
    • 100.to_s(:percentage, precision: 0) #=> 100% *これ 0.01を1%に直してくれるのないかな?ありそう
    • 123.to_s(:human_size) #=> 123 Bytes !!!知らなかった
    • .without
    • Hash#extract!
    • Hash#stringify_keys, symbolize_keys, deep_symbolize_keys #=> キー、シンボルどちらかに寄せる
  • サマリ
    • ドキュメントを熟読しよう。
    • RailsGuide, Ruby on Rails API は必読。
  • Q: Rails以外でさくっと使いたい時どうしたらいいですか?

LTx5

Rubyでbrainfxck処理系作ってみた

  • 例のアレ => Brainfuck - Wikipedia
  • 実用性はゼロだがチューリング完全
  • 思わぬところでbrainfxckの仕様を知ってしまったな... (プログラミングかるたで存在は知っていた)
  • デバッグしんどそう
  • 派生言語がたくさんある、好きに当てはめていいため

CSV出力 Viewからやるか? 他からやるか?

Rails×Messaging API × Herokuで清宮幸太郎の成績検索BOTを作成したよ

ぼっちの開発 3-Step(発表しました!)

  • ぼっちの開発 3-Step - Speaker Deck
  • 色々試行錯誤した結果、最初入っていたはずの技術要素が消し飛んでエモさで攻める話になりました
  • Q: ぼっちなのになんで普通の開発フローを知っているのか?
    • A: 昔2人体制の時期があった + 一時期受託業務ですごく良い体制のチームにお邪魔していたことがあったため、その経験が活きています!
  • みなさん、あたたかく話聞いてくださって本当にありがとうございました!!

Rubyで始めるAtCoder

  • AtCoder 日本で参加しやすいコンテスト
  • https://atcoder.jp/?lang=ja
  • 面白そう!!
  • (ブログネタが枯渇してきたのでやらざるをえないという気持ち)
  • Rubyを選んでソースコードを貼って提出する
  • まず茶色ランクを目指そう(D)
  • 毎週土曜9時から定期開催

まとめ

久しぶりに人前で発表、しかもRails要素0.01くらいのスライドでしたが、みなさん暖かく受け入れてくださってありがとうございました…!! また今度はちゃんとRubyもしくはRailsネタをもってリベンジしたいです。精進します!