タグ

2022年10月19日のブックマーク (11件)

  • RailsでのService Objectの上手な使い方 ―Service Objectアンチパターン説の検討― - あなたとあなたの話がしたい

    業務のRailsアプリのリファクタ対応の一環でService Objectを入れてみたところ、なかなか快適に使えている感触なので、RailsでのService Objectについて私なりに調べたことをまとめてみたい。アンチパターンとして批判されることも多いService Objectについて、どういった使い方をするとマズいのかも掘り下げてみる。 Service Objectが欲しくなるとき Rails標準のMVCで業務アプリケーションを実装して行くと、ビジネスロジックが複雑になるにつれて、ControllerまたはModelの処理が肥大化してつらい状態になりやすい。具体的には、 可読性が悪い テストが書きづらい Modelにメソッドが乱立し、そのModelがビジネス上どういう振る舞いを持つ概念なのか読み取りづらい これらの観点が挙げられるだろう。この問題を解決する手段の一つとして、 Ser

    RailsでのService Objectの上手な使い方 ―Service Objectアンチパターン説の検討― - あなたとあなたの話がしたい
    fuyu77
    fuyu77 2022/10/19
    書いた。
  • 副作用 (プログラム) - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "副作用" プログラム – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2016年3月) プログラミングにおいて、式の評価による作用には、主たる作用とそれ以外の副作用(side effect)とがある[1][2]。 式は、評価値を得ること(※関数では「引数を受け取り値を返す」と表現する)が主たる作用とされ、それ以外のコンピュータの論理的状態(ローカル環境以外の状態変数の値)を変化させる作用を副作用という[3][4][5]。 副作用の例としては、グローバル変数や静的ローカル変数の変更、ファイルの読み書きなどのI/O実行、などがある。 一方、高水

  • リーナス・トーバルズが開発者に「ギリギリになってあわてて作業するのは高校で卒業すべき」と助言

    by TED Conference Linuxの生みの親でLinuxカーネル開発の優しい終身の独裁者としても知られるリーナス・トーバルズ氏が、Linux 6.1の初期リリース候補版となるLinux 6.1 -rc1をリリースした際に「開発サイクルのもっと早い段階でコードを追加してほしい、ギリギリになって作業するのは高校生で卒業するべきだ」と開発者に呼びかけたと報じられています。 Linux-Kernel Archive: Linux 6.1-rc1 https://lkml.iu.edu/hypermail/linux/kernel/2210.2/00359.html Linus Torvalds to Linux devs: Stop pulling all-nighters • The Register https://www.theregister.com/2022/10/17/li

    リーナス・トーバルズが開発者に「ギリギリになってあわてて作業するのは高校で卒業すべき」と助言
    fuyu77
    fuyu77 2022/10/19
  • Node.jsをバックエンドに使うべきユースケース - Qiita

    こちらの記事は、Max Savonin 氏により2020年6月に公開された『 When To Use Node.js as a Back-End 』の和訳です。 記事は原著者から許可を得た上で記事を公開しています。 JavaScriptは、世界で最も人気のあるプログラミング言語の1つだ。 現在の状況ではライバルになれるのはPythonJavaだけであり、コンピューティング市場で約8%のシェアを保持している。 Webに関しては、JavaScriptの地位はさらに一つ突き抜けている。 JavaScriptは、事実上、Chrome(またはその派生物)またはFirefoxブラウザーで使用可能な大部分のWebアプリケーションを強化している。 結局のところ、これらのブラウザはWebアプリケーション開発に特化して開発されてきた。 JavaScriptは私たちの生活のいたるところに存在しているのだ。

    Node.jsをバックエンドに使うべきユースケース - Qiita
  • 82. Node.js、Deno、Bun (前編) w/ yosuke_furukawa | fukabori.fm

    MP3ファイルをダウンロード 内容紹介 yosuke_furukawaさんをゲストに、JavaScriptランタイム、Node.js、イベントループモデル、JavaScriptエンジン、Denoの生まれた経緯について語っていただいたエピソードです。 出演者 話したネタ denoの話 Bun first impressions Node.js、DenoBunとは何か? JavaScriptランタイムとは何か? サーバーサイドJavaScript expressを利用してWebサーバーを立てるコードは、Node.js以外でも動くのか? ECMAScript と ランタイム との関係は? TC39 Node.js はどんな経緯で生まれてきた? Rubyを書くタイミングと、JavaScriptを書くタイミングでのコンテキストスイッチ netv8 イベントループモデルとは何か? ブロッキング処理、

    82. Node.js、Deno、Bun (前編) w/ yosuke_furukawa | fukabori.fm
    fuyu77
    fuyu77 2022/10/19
    JSランタイムの話が基本的なところから分かりやすく聞けてすごく勉強になった。
  • ランタイムシステム - Wikipedia

    ランタイムシステム(英: runtime system / run-time system)とは、主にコンピュータプログラムの実行モデルの一部を実装するものである。これは、ランタイムシステムが動作中となる期間である、プログラムのランタイムライフサイクルフェーズとは異なる。大多数の言語には何らかの形のランタイムシステムがあり、その言語の観点で規定された作用を実行する順序に対する制御はランタイムシステムによって実装される。年月とともに「ランタイムシステム」という用語の意味は拡大し、実行時に動的に決定されるほぼすべての振る舞いを指すようになった。 概要[編集] すべてのプログラミング言語において実行モデルが規定されており、多くの言語でそのモデルの少なくとも一部がランタイムシステムに実装されている。議論の余地があるものの、プログラムの直接の作用でない振る舞いはすべてランタイムシステムの振る舞いであ

  • 分散データベース - Wikipedia

    分散データベース(ぶんさんデータベース、英: distributed database)とは、複数のデータベースが分散配置されているシステムである。中央集中型データベースとは異なり、データは複数のサーバーまたはノードに分散される。 概説[編集] データの集合体は、複数の物理的位置に分散配置できる。1つのデータベースに障害が発生したとしても、データベースに冗長性があればデータの消失は避けることができるし、全体の機能が停止することもない。分散データベースの設計技法には様々なものがある。例えば、ローカル自律型、同期型、非同期型などの分散データベース技術がある。ビジネスにおける必要性、そのデータの重要性や機密性、データのセキュリティ・一貫性・完全性にかけられるコストによって、これら技術のうちどれを採用するかを決定する。 分散データベースが満たすべき性質は以下である。 分散は透過的である - ユーザ

  • なんでコンポーネントに副作用があんだよ! 教えはどうなってんだ教えは!

    皆さんこんにちは。先日公開した以下の記事は多くの方にご覧いただきありがとうございます。 この記事に対して多く見られた反響のひとつは、コンポーネント内に use(fetchNote(id)) という非同期処理を行うコードが含まれていることに対する違和感です。 function Note({id, shouldIncludeAuthor}) { // ↓↓↓↓↓ const note = use(fetchNote(id)); let byline = null; if (shouldIncludeAuthor) { const author = use(fetchNoteAuthor(note.authorId)); byline = <h2>{author.displayName}</h2>; } return ( <div> <h1>{note.title}</h1> {byline}

    なんでコンポーネントに副作用があんだよ! 教えはどうなってんだ教えは!
    fuyu77
    fuyu77 2022/10/19
  • jestのtransformIgnorePatterns(設定)を日本語で正しく読み解く - Qiita

    記事の趣旨 タイトルの通りです。 React Nativeでjestを使うときにカスタマイズすることの多い、transformIgnorePatternsについて、理解が難しく、勘違いして定義したことが原因で長時間詰まってしまいました… きっと我が同胞がこの世界のどこかにはいると思ったため、記事を書くに至りました。 公式ドキュメントを参照しながらわかりやすくまとめるので、お付き合いいただけたら幸いです! ※ jestのtransformIgnorePatternsについて公式ドキュメント 目次 最初から結論 公式ドキュメントから読み解く どんなモジュールをトランスコンパイルして、どんなモジュールをトランスコンパイルさせないか トランスコンパイルさせるべきライブラリをどうやって判断する?(自分なりの解決法) まとめ 最初から結論 ずばり、transformIgnorePatternsに定

    jestのtransformIgnorePatterns(設定)を日本語で正しく読み解く - Qiita
    fuyu77
    fuyu77 2022/10/19
  • Updating Axios from 0.27.2 to 1.0.0 breaks Jest tests in a create-react-app app · Issue #5026 · axios/axios

  • 32歳、新しい技術を習得する余裕がなく昔取った杵柄でいつまで食えるか不安です - star__hoshi's diary

    子供が産まれて一年半近く経つが、時間が全然取れない。 ここ最近は新しい技術を何か積極的に勉強するということが特になく、20代の頃に得た知識でなんとか飯をっている感覚がある。転職してから1年は業務でFlutterを始めていて、それだけ聞くと新しい技術を得ているように見えるが、自分の中では今までの延長線上にいるだけのような感覚がある。 20代の頃は必死になって技術書読んだり記事読んだり実際に手を動かしたりもしたけど、ここ最近は業務で必要な知識を業務時間内に得るだけで、業務では触らないような知識は全然身についていない。 モバイルアプリエンジニアはこの先オワコンになると思っており、上辺だけのエンジニアリングの知識では飯をっていけなくなりそうな気がする。そのためバックエンドをもっと強くやっていくとか、ウェブフロントエンドなど手を広げたいが全然時間が取れない。業務でやるのが一番いいが、モバイルアプ

    32歳、新しい技術を習得する余裕がなく昔取った杵柄でいつまで食えるか不安です - star__hoshi's diary
    fuyu77
    fuyu77 2022/10/19