chevron_left

メインカテゴリーを選択しなおす

cancel
やわらかテック https://www.okb-shelf.work/

リモートワークでWEBエンジニアをしています。 自称ミニマリストが配線と戦いつつ、快適なデスク環境を目指し「これは買うしかない」と思ったオススメのガジェットなどを紹介中。 エンジニア教育やプログラミング言語に関する内容も。

ぎょうざ
フォロー
住所
未設定
出身
未設定
ブログ村参加

2023/01/11

arrow_drop_down
  • 「夜と霧」を読んで「人はなぜ生きるのか」には答えがないことが分かった

    最近は技術書だけではなく、さまざまな書籍を読むようになりました。 今回はヴィクトール・E・フランクル著の「夜と霧」を読みました。今更、自分が紹介するまでもなく名著して語り継がれている書籍です。著者のフランクルが第二次世界大戦渦にて、ユダヤ人してアウシュヴィッツに収容された経験を元に「人間とは何か」というテーマとなっています。 夜と霧 新版作者:ヴィクトール・E・フランクルみすず書房Amazon フランクルは精神科医であり、心理学の分野では「ロゴセラピー」という心理療法を確立しました。 簡単にいうと「なぜ生きるのか」という理由を充実させることで、メンタルや心の病の解消を目指すという療法だそうです…

  • mastdonからServiceクラスの作り方を学ぶ

    みなさんはRailsの開発にて、サービスクラス(ServiceObject)を使っているでしょうか。 モデルやコントローラーがファットになるのを防ぐために導入される設計方法で、ドメイン知識におけるサービス(eg: 商品の購入処理)の一連の処理をまとめたクラスを作成することで、可用性が高くテストがしやすいコードを書くことが可能です。 techracho.bpsinc.jp 特にRailsではActiveRecordの便利さゆえにコントローラーやモデルに処理をゴリゴリと書いてしまいがち。しかし、何も考えずにサービスクラスを無秩序に作ってしまうと逆に保守性が悪い状態になってしまいます。 自分が書いた…

  • トランザクションがあれば安心ではないのでRailsでもロックをかけたい

    Railsでトランザクションを扱いたい時はActiveRecordに実装されたtransactionメソッドを呼び出します。 ActiveRecord::Base::transaction do : end 今までRailsでトランザクションのブロックを宣言した時は、他のトランザクションからデータの取得、更新は出来ないと思っていましたが、先日、勘違いであることに気づきました。更新はトランザクションの待機によってすぐには実行されませんが、データの取得は可能です。取得もさせたくないのであれば排他制御を行い明示的にロックの宣言をする必要があります。 トランザクションのブロックを宣言しただけでは、他の…

  • ミヒャイル・エンデ作のモモは現代の大人こそ読むべき本だった

    昨日、ミヒャイル・エンデ作の「モモ」という書籍を読了しました。 この本は児童文学として書かれているので、普段の自分とは縁もゆかりもない書籍です。一週間前にアップロードされたアバタローさんの解説動画を見て「何だこの本は...面白そう」と思い、いつものように衝動買いをしました。 www.youtube.com 大学生の時はよく小説や文学を読んでいたものですが、最近となっては技術書ばかりを読んでいたので、ちょっとした息抜きということで読み進めていたのですが、良い意味でモモには驚かされました。 エンデによる現代社会への痛烈な風刺は非常に的を得ています。子供だけではなく、現代を生きている我々のような大人…

  • Railsのマイグレーションファイルでt.stringを使うときはlimitを指定してほしい

    Railsではマイグレーションファイルを作成してマイグレートを実行することで、テーブルが作成されます。 非常に便利で手軽にテーブルの定義・作成ができるのですが、マイグレートされた結果、どのような型が選択されるのかが隠蔽化されるという問題があると思っています。一例として、t.stringとt.textでそれぞれカラムを定義した場合に実際にテーブルで採用される型はどうなるでしょうか。 class CreateUserTable < ActiveRecord::Migration[7.0] def change create_table :users do t t.string :string_…

  • 【書評】単体テストの考え方 / 使い方 を読了しました

    2022/12/28に「Manning Publishing: Unit Testing Principles, Practices, and Patterns」の翻訳書である「単体テストの考え方/使い方」という書籍が発売されました。買うか迷っていたのですが、TDD(テスト駆動開発)で有名なt_wadaさんがツイートされているのをお見かけして、いつものように衝動買いをしました。 おおお名著『Unit Testing Principles, Practices, and Patterns』が翻訳された! / “https://t.co/HvK3Z4BapQ: 単体テストの考え方/使い方: Vla…

  • 小さな声で話し出すことがリモートワークのミーティングを加速させた

    日々のリモートワークでミーティングをしていると、相手と同時のタイミングで話し始めてしまうことがよくあります。特に自分から話を振ってから、返答を待ってる間に何かを追加で自分が話し出した時なんかひどいもので、せっかく相手が話しだしてくれたのに遮ってしまった時は申し訳なさすぎて消えたくなります。 ハドルで自分が話し出した瞬間に相手も話し出して相手の話を遮ってしまった時の申し訳なさといったら...— okabe.yuya (@toboggannn) 2022年12月27日 「どうしたものかなぁ...」と長らく悩んでいました。 しかし、ある日のこと「ハイッ!」と返答したつもりが「...ハイッ」とかすれた…

  • 中間テーブルには複合インデックスと単一インデックスどちらを作成すれば良いのか

    データベースの設計において正規化の結果、中間テーブルを作ることがよくあると思います。 以下のようなテーブル群があったとします。登録されたユーザーと登録された商品を誰が出品した商品なのかを中間テーブルへ記録しています。 users products user_products(中間テーブル) 中間テーブルuser_productsにインデックスを作成する場合、3つの方法が考えられます。 A: user_idとproudct_idに対してそれぞれ単一インデックスを作成する B: user_idとproduct_idの複合インデックスを作成する C: AとBの合わせ技 インデックスの作成方法はAとB…

  • Rubyで巨大な配列を扱う時はEnumeratorを使うのが良さそう

    先日、Rubyで巨大な配列(Array)を扱うことがありました。 気になるのは巨大な配列を宣言したときのメモリ使用量です。試しに、要素数が10,000個の配列を宣言してみると89,712Byteほどメモリを使用していることが分かります。 require 'objspace' # memsize_ofで得られる情報は必ずしも正しいものではありません list = (1..10000).to_a puts ObjectSpace.memsize_of(list) # 89712Byte docs.ruby-lang.org 下のグラフを見て分かるように要素数が増えれば増えるほど、必要なメモリはほぼ…

  • オレオレRspecを自作して覚えるRubyのブロック引数について

    Rubyのブロック引数についてご存じでしょうか。 非常に便利な機能で皆さんもよく使っている、正確にはブロック引数に対してブロックを渡していますが、ブロック引数を定義する機会がほとんどない方も多いでしょう。 例: eachの場合 # do以降の処理がブロック引数として受け渡される処理 list = [1, 2, 3, 4, 5] list.each do e puts e end # 値は1 # 値は2 : # 値は5 普段、Rubyを書いている方でも何となくでブロック引数を使っている方も多いかもしれませんが、ブロック引数を自在に使うことができるとRubyでの表現の幅がグッと広がります。 今…

arrow_drop_down

ブログリーダー」を活用して、ぎょうざさんをフォローしませんか?

ハンドル名
ぎょうざさん
ブログタイトル
やわらかテック
フォロー
やわらかテック

にほんブログ村 カテゴリー一覧

商用