並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 95件

新着順 人気順

BigDecimalの検索結果1 - 40 件 / 95件

  • Value Objectについて整理しよう - Software Transactional Memo

    Value Objectとは何であるか? マーチン・ファウラーのPatterns of Enterprise Application Architecture(PofEAA)やエヴァンス・エリックのDomain Driven Design: Tackling Complexity in the Heart of Software(DDD)が原典であるが、PofEAAではこう切り出している。 When programming, I often find it's useful to represent things as a compound. プログラミング時は物をcompound(合成物)として表現すると便利なことがしばしばある。 例えば2次元空間上での座標のように複数のメンバ(属性)を持つ物は便利である、と。しかしそれらを比較する方法は一意ではない、そこで Objects that a

      Value Objectについて整理しよう - Software Transactional Memo
    • ドメイン駆動設計をわかりやすく - ドメインのモデル設計を手を動かしながら学ぼう|ハイクラス転職・求人情報サイト AMBI(アンビ)

      ドメイン駆動設計をわかりやすく - ドメインのモデル設計を手を動かしながら学ぼう ドメイン駆動設計(DDD)が近年関心を集めていますが、同時にこの設計思想は難しい、わかりにくい、という見方もあります。さまざまなプロジェクトでドメイン駆動設計を実践してきたかとじゅんさんが、サンプル課題をもとに、ユースケース分析、モデル設計といった基礎を解説します。 はじめまして、Chatworkでテックリードをしている、かとじゅん( @j5ik2o )です。 僕は2010年ころより、大小さまざまなプロジェクトでドメイン駆動設計、いわゆるDDD(Domain Driven Design)を導入した開発を実践してきました。ドメイン駆動設計を主題としたワークショップなども主宰していますが、最近では加速度的にこの設計思想への関心が高まっていると感じます。本稿では、なにかと分かりにくいドメイン駆動設計の基本を、架空の

        ドメイン駆動設計をわかりやすく - ドメインのモデル設計を手を動かしながら学ぼう|ハイクラス転職・求人情報サイト AMBI(アンビ)
      • じゃあ何すか、COBOL以外では4.8 - 4.7 - 0.1できないってことっすか / ScalaとSpireで安心安全な計算ライフを実現しよう - Lambdaカクテル

        先日こういうツイートが流れてきた。 Q:なぜ金融系では未だにCOBOLが使われるんですか? A:お手元にExcelがありましたら任意のセルに「=4.8-4.7-0.1」って入れてみてください。— 遊撃部長F/S&RWAs (@fstora) 2024年6月6日 Q:なぜ金融系では未だにCOBOLが使われるんですか? A:お手元にExcelがありましたら任意のセルに「=4.8-4.7-0.1」って入れてみてください。 普段我々がゴリゴリ馬車馬のように使っているソフトウェアでよく利用されている浮動小数点型、すなわちfloatやdoubleなどは特定の算術に弱いことが知られている。というかもうこの手の話題はあまりに拡散されてしまったので、なぜかネット民はみんな知っている基礎教養、三毛別羆事件とかデーモンコアみたいな感じになっている。 ちなみにこれはCOBOLかそうではないか、という軸が問題になっ

          じゃあ何すか、COBOL以外では4.8 - 4.7 - 0.1できないってことっすか / ScalaとSpireで安心安全な計算ライフを実現しよう - Lambdaカクテル
        • 「青銀行の勘定系をFirebase前提で構築できるか?」 - たなかこういちの開発ノート

          Firebaseについて、事前知識 Firebaseとは、以下のような機能群を「Serverless」の文脈でバンドルしたものである。「Serverless」として、これらの統合管理コンソールの出来栄えが秀逸。 - Firestore ... Document-oriented KVS - Cloud Functions ... AWSのLambda - Cloud Storage ... AWSのS3 - Hosting ... Web Assetsのデプロイ先の提供、CDN展開サポート - Authentication ... ユーザー管理・統合認証サービスの提供 - Cloud Messaging ... iOS/Android/Web(JS)クライアントアプリへの統合プッシュ通知サービス - その他 いうまでもなく「Serverless」とは「サーバー運用・管理レス」の意味。まさに

            「青銀行の勘定系をFirebase前提で構築できるか?」 - たなかこういちの開発ノート
          • プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ

            技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.0.0 がリリースされました。一昨年、昨年に続き、今年も Ruby 3.0 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は一昨年の記事を見てください(なお Ruby 3.0.0 から、NEWS.md にファイル名を変えました)。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ Ruby 3.0 は、Ruby にとってほぼ 8 年ぶりのメジャーバージョンア

              プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ
            • Javaで最低限おさえておいてほしいクラス・インタフェース35 - 2024年版 - きしだのHatena

              ま、このくらい知っておいてもらわないと&とりあえずこんだけ知ってればだいたいの処理が書けるクラス・インタフェースをまとめてみました。2024年版。 詳しく知りたい人は「プロになるJava」を! java.lang.Class java.lang.Exception <- new java.lang.Integer java.lang.Object <- new java.lang.Runnable java.lang.String java.lang.System java.lang.Thread java.nio.file.Files <- new java.nio.file.Path <- new java.io.InputStream java.io.InputStreamReader java.io.BufferedReader java.io.OutputStream java.

                Javaで最低限おさえておいてほしいクラス・インタフェース35 - 2024年版 - きしだのHatena
              • Rustを使ってスケーラブルなプログラムを書く方法 - かとじゅんの技術日誌

                この記事はRust Advent Calendar 2021の12/24日の記事です。 仕事ではScalaを使っていますが、趣味のプログラミングではRustで書いたものが増えました。Rustは楽しいですね。 今回は、Rustでオブジェクト指向プログラミングに関数型デザインを導入することで、スケーラブルなプログラムを書く方法(スケーラブル・プログラミング)について書きます。 「スケーラブル・プログラミング」といえばScalaです。Scalaの「スケーラブル」という言葉には「小さいプログラムも大規模なプログラムも同じ概念で記述できるべきである」という、柔軟性や拡張性を重視した設計の意図が込められています。それを実現するために必要なものは、オブジェクト指向と関数型を組み合わせたマルチパラダイムな設計です。 Scalaはマルチパラダイム言語の先駆者(今も先頭を走り続けています)ですが、他の言語にも

                  Rustを使ってスケーラブルなプログラムを書く方法 - かとじゅんの技術日誌
                • プロと読み解く Ruby 3.1 NEWS - クックパッド開発者ブログ

                  技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.1.0 がリリースされました(Ruby 3.1.0 リリース )。今年も Ruby 3.1 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は以前の記事を見てください。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ プロと読み解くRuby 3.0 NEWS - クックパッド開発者ブログ 本記事は新機能を解説することもさることながら、変更が入った背景や苦労な

                    プロと読み解く Ruby 3.1 NEWS - クックパッド開発者ブログ
                  • QuickJS Javascript Engine

                    News 2024-01-13: New release (Changelog) 2023-12-09: New release (Changelog) Introduction QuickJS is a small and embeddable Javascript engine. It supports the ES2023 specification including modules, asynchronous generators, proxies and BigInt. It optionally supports mathematical extensions such as big decimal floating point numbers (BigDecimal), big binary floating point numbers (BigFloat) and ope

                    • プロと読み解くRuby 3.3 NEWS - STORES Product Blog

                      テクノロジー部門CTO室の笹田(ko1)と遠藤(mame)です。今年の 9 月から STORES 株式会社で Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています(Rubyのこれからを STORES で作る。Rubyコミッター笹田さん、遠藤さんにCTOがきく「Fun」|STORES People )。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、恒例のクリスマスリリースとして、Ruby 3.3.0 がリリースされました(Ruby 3.3.0 リリース)。クックパッド開発者ブログで連載していたように、今年も STORES Product Blog にて Ruby 3.3 の NEWS.md ファイルの解説をします(ちなみに、STORES Advent Calendar

                        プロと読み解くRuby 3.3 NEWS - STORES Product Blog
                      • どれだけリクエストをさばけるのかを待ち行列理論で考えてみた - Qiita

                        テレビで素敵なサイトが紹介されていたのでアクセスしてみたら、なかなかレスポンスが返ってこなかったりステータスコード503になったりすることってありますよね。 テレビで紹介されたことで多くの人がサイトにアクセスした結果、そのサービスのキャパシティを超えてしまったわけです。 どうなるとキャパシティを超えるのでしょうか? また、いつからレスポンスが遅くなるのでしょう。 効果的にリクエストをさばくにはどうしたらいいのでしょう。 Photo by Roman Arkhipov on Unsplash 待ち行列理論を使って理想的なモデルからこれらを考えてみたいと思います。 待ち行列理論はコンピュータサイエンスをやってきた人はみんな触れたことがあるとは思いますが、大石の場合はそれが何十年も(!)前のことなのであらためて思い出してみました。 モデル Railsでサービスを提供するとき、rackサーバとして

                          どれだけリクエストをさばけるのかを待ち行列理論で考えてみた - Qiita
                        • プロと読み解く Ruby 3.2 NEWS - クックパッド開発者ブログ

                          技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 昨日 12/25 に、恒例のクリスマスリリースとして、Ruby 3.2.0 がリリースされました(Ruby 3.2.0 リリース)。今年も Ruby 3.2 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は以前の記事を見てください。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ プロと読み解くRuby 3.0 NEWS - クックパッド開発者ブログ プロと読み解く Ruby 3.1 NEWS -

                            プロと読み解く Ruby 3.2 NEWS - クックパッド開発者ブログ
                          • decimal型があるからCOBOLもう要らんやろ、という件について(あるいは十進演算の話) - Qiita

                            この記事はFUJITSU Advent Calendar 2021の17日目です。 みんな大好きCOBOLの強みに十進演算があります。しかし、最近の言語には十進演算のための型(.NETのdecimalやJavaのjava.math.BigDecimalやその他)があるので、COBOL要らないんじゃない?みたいな話を聞いたりするわけです。それについて、COBOL処理系に関わっている身として思うところを述べたいと思います。「まあ、decimalやBigDecimalとかでできるっちゃできるんだけど…」の「だけど…」の部分を説明してみたい。 内容はざっと以下の通り。 二進浮動小数点で金計算をすると何がまずいかのおさらい。 十進浮動小数点の説明。 decimalやBigDecimalとCOBOL十進型の違い(BCDの説明)。 で? きっかけは、今年9月にとある記事のおかげでCOBOLがtwitte

                              decimal型があるからCOBOLもう要らんやろ、という件について(あるいは十進演算の話) - Qiita
                            • Tests as Documentation - たにしきんぐダム

                              production code の設計についてはよく議論される一方、ユニットテストをどう書くべきかについてはあまり議論されることが少なく。とにかくカバレッジが高ければヨシみたいな感じで軽く扱われていることが多い気がする。 その結果、テストを書くときやとりわけテストを追加するときに "良くない" 方法でテストを追加/拡張してしまい、メンテナンスしにくく壊れやすい・(未来の自分でも)読んでも何を検証しているのか分からない、テストが落ちても不安だけを煽り何が問題なのか分からない、技術的負債が誕生してしまう。 詳しいことは本 ( XUnit Test Patterns など? 詳しい人は僕に紹介してください)を読んだりチームメンバーと議論するのが良いと思うが、この記事を読んでテストの書き方に対する意識を啓発できたらなと思っている。 理想を述べるのは簡単だけど現実は大変、頑張ろう introduct

                                Tests as Documentation - たにしきんぐダム
                              • 超高速シリアライズフォーマット「DLHN」

                                新しいシリアライズフォーマットDLHNをリリースしました。 DLHNは高速でデータサイズが小さいバイナリ形式のシリアライズフォーマットです。 DLHNの発音は"Dullahan"と同じです。 公式サイトは https://dlhn.org 実装は https://github.com/otake84/dlhn イラストは @kira2beat さんに描いていただきました。 特徴DLHNはプログラミング言語やプラットフォームに依存しないバイナリ形式のシリアライズフォーマットで、JSON, CSV, MessagePack, Protocol Buffersなどから影響を受けています。 シリアライズとデシリアライズが高速で、データサイズが小さく、Schema定義ファイルが不要でストリーム処理にも対応しています。 これを聞くとMessagePackと同じように感じるかもしれませんが、実際のデータ

                                  超高速シリアライズフォーマット「DLHN」
                                • 浮動小数点数の二段階丸め誤差 - hydrakecat’s blog

                                  さいきん『浮動小数点数小話』という同人誌を読んでFMA (Fused Multiply-Add)の二段階丸め誤差(double rounding error)について色々と知る機会があったのでまとめておく。ついでにFMAに関するOpenJDKのバグっぽい挙動を見つけたのでそれも併せて記しておく。 FMA (Fused Multiply-Add)とは FMAは以下のような演算のことを呼ぶ。 この演算自体は行列の乗算やベクトルの内積の計算でよく現れるものであるが、通常の浮動小数点数の乗算と加算を別々に行うと誤差が出るので一度の演算で正確な値を算出したいときに用いる。たとえばC言語(C99)では fma、fmaf、fmalという3つの関数が導入されているらしい。 FMAの実装における二段階丸め誤差 FMAはターゲットとなるCPUのアーキテクチャがFMA命令をサポートしていればその命令を直接呼び出

                                    浮動小数点数の二段階丸め誤差 - hydrakecat’s blog
                                  • 2019年、fat gemをやめる - 2019-11-22 - ククログ

                                    fat gemを簡単に作れるようにするgemであるrake-compilerをメンテナンスしている須藤です。過去にfat gemの作り方をまとめたこともあります。 Ruby 1.8.7/1.9.1どちらでも使えるWindows用バイナリ入りgemをDebian GNU/Linux上で作る方法 Windowsの32bit/64bit版Ruby用バイナリ入りgemをDebian GNU/Linux上で作る方法 fat gemが有用な時代もあったのですが、今はメリットよりもデメリットの方が大きいのでfat gemをやめたらどうか、という話をします。 fat gemについて fat gemとはビルド済みバイナリーが入ったgemのことです。Pythonで言えばwheelのようなものです。 RubyはC言語でRuby用のライブラリーを実装することができます。これを拡張ライブラリーと呼びます。拡張ライブ

                                      2019年、fat gemをやめる - 2019-11-22 - ククログ
                                    • OSSへの貢献 - Issueから始めるチーム活動 - ZOZO TECH BLOG

                                      はじめに こんにちは、計測プラットフォーム部バックエンドチームのリーダー、児島(@cozima0210)です。この記事では、今年4月に社内で策定されたOSSポリシーに基づいて、チームでOSSに貢献する活動に取り組んだ話を紹介します。社内のOSSポリシーが策定された経緯については、こちらの記事をご覧ください。 なお、これはZOZOテクノロジーズ Advent Calender 2020 #3の5日目の記事です。 背景 私たちのチームでは、ZOZOSUIT/ZOZOMATから生成されるデータ及びそれを元とする計算データを高速に扱うため、様々なライブラリの使用を試みてきました。それらの中には、調査や試用の段階で不具合を発見したライブラリがありました。しかし、プロダクトの開発及び運用の過程では、そうした不具合の根本原因を探る時間を持つことは難しいものでした。そのため、代替ライブラリの選択を検討した

                                        OSSへの貢献 - Issueから始めるチーム活動 - ZOZO TECH BLOG
                                      • Ruby 3.3.0 リリース

                                        Ruby 3.3.0 が公開されました。Ruby 3.3ではPrismという新しいパーサーの追加、新しいパーサージェネレーターであるLramaによるBisonの置き換え、RJITという新たなJITの仕組みを追加、YJITの高速化など様々な改善が行われています。 Prism default gemとしてPrismパーサを導入しました。 Prismは、Ruby言語のためのポータブルで、エラートレラントで、保守可能な再帰下降パーサです。 Prismは本番環境で使用する準備が整っており、積極的にメンテナンスされています。Ripperの代わりに使用することができます。 Prismの使用方法については、詳細なドキュメンテーションがあります。 Prismは、CRubyに内部的に使用されるCライブラリと、Rubyコードを解析する必要がある任意のツールに使用できるRuby gemの2つのコンポーネントを持っ

                                        • Rails: 通貨は浮動小数点ではなくRubyのmoney gemで表現すること(翻訳)|TechRacho by BPS株式会社

                                          概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Don't Use Floats and Use the Ruby Money Gem to Represent Currencies - Andy Croll 原文公開日: 2021/11/15 著者: Andy Croll 日本語タイトルは内容に即したものにしました。 アプリケーションで金額を管理しなければならなくなることはざらにあります。何の話かというと、Rubyコミュニティにある素晴らしいオープンソースのソリューションを使えば、自分で開発するよりもずっと良い結果を得られるのです。 以下のようにするのではなく 金額を表現するときにFloatやBigDecimalを使う。 # マイグレーション add_column :products, :price, :decimal class Product < Application

                                            Rails: 通貨は浮動小数点ではなくRubyのmoney gemで表現すること(翻訳)|TechRacho by BPS株式会社
                                          • Javaやさんに優しいローコードフレームワーク、OpenXavaを試す - きしだのHatena

                                            OpenXavaという、JPAエンティティだけ定義すればCRUDな画面を作ってくれるローコードフレームワークがあるので、試してみました。 Javaわかる人には手軽に使えてよさそう。 https://www.openxava.org/ OpenXavaプロジェクトの作成 Maven Archetypeが用意されているので、こんな感じのMavenコマンドで始めれます。 mvn archetype:generate -DarchetypeGroupId=org.openxava -DarchetypeArtifactId=openxava-archetype -DarchetypeVersion=RELEASE -DgroupId=com.yourcompany -DartifactId=invoicing -DinteractiveMode=false しかし、Mavenコマンドを入力するのは

                                              Javaやさんに優しいローコードフレームワーク、OpenXavaを試す - きしだのHatena
                                            • それでも10進小数をデフォルトにすることは意味がある - kmizuの日記

                                              改めて(?)か昔からあるのか不明ですが、10進小数を言語のデフォルトにすべきかどうかという議論が一部で行われています。私自身、特にプログラミング教育を最近やっている立ち場もあって、10進小数を言語のデフォルトにすることに賛成の立ち場です。ただ、正直言ってこれに大して「反対する」側は何が焦点になっているかについて「ずれている」と思わざるをえないです。まずは、直近で見かけたWindyMeltさんのブログ記事より。 blog.3qe.us ちなみにこれはCOBOLかそうではないか、という軸が問題になっているのではなく、浮動小数点型を利用するか、それともBigDecimalのような十進演算のために用意された型を利用するか、という軸の問題であって、しかもそれも正確な軸の取りかたではない。 というのも、BigDecimalでカバーされない問題があるのだ。例えば、BigDecimal型を利用しても(1

                                                それでも10進小数をデフォルトにすることは意味がある - kmizuの日記
                                              • Rails + RBS & Steepを試してみて困ったところとか感想とか - Qiita

                                                まえがき Railsアプリに型チェックを導入しようとして試しているのですが、なかなか一筋縄ではいかないようで、試行錯誤しています。 おそらく他にも似たようなことでハマったりしている人もいるかと思うので、これまで困ったこと、そして(回避できた場合は)回避策を書いてみます。 なお、RBSやSteepとはなんぞやといった辺りは特に説明せずにいきなり本題に入るため、詳しくない方はmameさんの記事「Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート」などを参考にしてください。 Steep & RBSで困ったところ BigDecimalを導入してもto_dが使えない (追記: ksssさんにrbsのstdlibのテストの書き方を教えてもらったので書けるようになりました! 結果はpull requestしてみたので、最終的に取り込まれれば使えるようにな

                                                  Rails + RBS & Steepを試してみて困ったところとか感想とか - Qiita
                                                • macOSでの動的ロード問題まとめ - なるせにっき

                                                  主な問題 最近のRuby+Xcodeでは以下の4つの問題があるっぽい dynamic_lookupがXcode 14で警告が出る two-level namespace vs. flat namespace 別の拡張ライブラリのシンボルを参照できない disable-sharedなrubyがfat binaryを読めない dynamic_lookupがXcode 14で警告が出る https://bugs.ruby-lang.org/issues/19005 Xcode 14にて以下の警告が出て、拡張ライブラリのコンパイルに失敗する。 ld: warning: -undefined dynamic_lookup may not work with chained fixups https://openradar.appspot.com/radar?id=5536824084660224 W

                                                    macOSでの動的ロード問題まとめ - なるせにっき
                                                  • 徹底解説! default gemsとbundled gemsのすべて | gihyo.jp

                                                    この記事では、毎年少しずつ変化している標準添付ライブラリ、Default gemsとBundled gemsのRuby 3.3でのアップデートについて解説します。 標準添付ライブラリとDefault gems/Bundled gems⁠、それぞれの違い 私、柴田はRubyインタプリタと同時に配布されている便利なライブラリ群(標準添付ライブラリ)の開発だけではなく、アップデートや配布の仕組みを担当しています。この標準添付ライブラリの中にはDefault gemsとBundled gems、そしてどちらでもないライブラリの3種類があります。便宜上ではありますが、どちらでもないライブラリのことを標準ライブラリと呼ぶことにし、それぞれの特徴について解説します。 標準ライブラリ 標準ライブラリは、RipperやCoverageなど、Rubyのインタプリタの挙動に深く依存するライブラリです。標準ライブ

                                                      徹底解説! default gemsとbundled gemsのすべて | gihyo.jp
                                                    • Ruby 3.1.0 リリース

                                                      Posted by naruse on 25 Dec 2021 Ruby 3.1系初のリリースである、Ruby 3.1.0 が公開されました。Ruby 3.1は3.0と高い互換性を保ちながら、多くの機能を追加しています。 YJIT: New experimental in-process JIT compiler Ruby 3.1では、Shopifyが開発した新しいプロセス内JITコンパイラであるYJITをマージしました。 2018年のRuby 2.6でMJITをマージして以来、そのパフォーマンスは年々改善され、去年にはRuby3x3を無事達成しました。比較的大規模なOptcarrotベンチマークでは輝かしい高速化を達成したMJITですが、一方で現実の業務アプリケーションの性能はこれまで改善出来ていませんでした。 近年Shopifyは彼らのRailsアプリケーションを高速化するため、Rub

                                                      • Ruby 3.1.0 Released

                                                        Posted by naruse on 25 Dec 2021 We are pleased to announce the release of Ruby 3.1.0. Ruby 3.1 keeps compatibility with Ruby 3.0 and also adds many features. YJIT: New experimental in-process JIT compiler Ruby 3.1 merges YJIT, a new in-process JIT compiler developed by Shopify. Since Ruby 2.6 introduced MJIT in 2018, its performance greatly improved, and finally we achieved Ruby3x3 last year. But

                                                        • タッパーの自己言及式の謎を解く - プログラミングの備忘録

                                                          こんにちは。 今回は「タッパーの自己言及式 (Tupper's self-referential formula)」を取りあげようと思います。 (記事タイトルを AI が生成してくれるようになったので、さっそく使ってみました。) 例のごとく、少し前にこんなツイートを見かけました。 Tupper's self-referential formula is a formula that visually represents itself when graphed at a specific location in the (x, y) plane. pic.twitter.com/QVxB3fozpe— Fermat's Library (@fermatslibrary) 2022年10月14日 (Fermat's Library は理系的な雑学のツイートが多く、知見が広がるのでよく見ていま

                                                            タッパーの自己言及式の謎を解く - プログラミングの備忘録
                                                          • JVM系言語のSQLマッパーについてPostgreSQLの型への対応状況を比較検証 - orangain flavor

                                                            KotlinでWebアプリケーションを作るにあたり、SQLを直接記述できるタイプのO/Rマッパー(本稿ではSQLマッパーと呼びます)を探し求めました。 SQLマッパーに求める機能 SQLマッパーに求める機能はBindとMapです。この記事ではBindとMapを次のように定義します。 Bind SQLに埋め込んだプレースホルダー(名前付きが望ましい)に対応するパラメーター群を渡す機能。 例: SELECT ... WHERE price BETWEEN :minPrice AND :maxPrice のようなSQLに、minPriceとmaxPriceプロパティを持つオブジェクトを渡す。 Map 実行結果として得られた行をオブジェクトにマッピングする機能。 例: SELECT id, name, price FROM ... のようなSQLの実行結果を、id, name, price のプロ

                                                              JVM系言語のSQLマッパーについてPostgreSQLの型への対応状況を比較検証 - orangain flavor
                                                            • イミュータブルでゆこうに参加してきた - 天の月

                                                              modeling-how-to-learn.connpass.com 今日はこちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。 会で話されていたこと イベント資料 イミュータブルデータモデルの極意~川島義隆さん~ 川島さんの問題意識~Division into cases~ Dataの場合分け EventとResourceの関係性 EventとResourceのサブタイプ Resource同士の関連付けをする際のコツ 記録として残すEvent, 残さないEvent ドメイン駆動設計とイミュータブルデータモデルの素敵な関係~増田亨さん~ イミュータブルについての厳格性 必ずイミュータブルにする際の設計パターン 増田さんがイミュータブルに拘る理由 ドメインイベントの観点から再考するソフトウェア設計~かとじゅんさん~ ドメインイベントとは ドメインイベントはなぜ有用か

                                                                イミュータブルでゆこうに参加してきた - 天の月
                                                              • Scala 3でデータ指向プログラミングは可能か - かとじゅんの技術日誌

                                                                Scala 3におけるデータ指向プログラミング(以下DOP)について深掘りする。久々にScalaの話題を取り上げるが、これはScala Advent Calendar 2023の14日目の内容でもある。 早速だけど、DOPの基本原則は意外とシンプルだ。 コード(動作)をデータから切り離す データを汎用的なデータ構造で表現する データをイミュータブル(不変)として扱う データスキーマをデータ表現から切り離す イミュータブルなデータは採用することは多いと思うが、これをそのまま実践している人はどのくらいいるだろうか。Scalaではクラス中心の関数型プログラミングが主流だと思うし、私もそうしている。 DOPの詳細は下記の本(以下DOP本)を参照してほしい。 データ指向プログラミング 作者:Yehonathan Sharvit翔泳社Amazon ちなみに留意すべき点がある。DOP本とJavaのPro

                                                                  Scala 3でデータ指向プログラミングは可能か - かとじゅんの技術日誌
                                                                • Parsing SQL - Strumenta

                                                                  The tomassetti.me website has changed: it is now part of strumenta.com. You will continue to find all the news with the usual quality, but in a new layout. The code for this tutorial is on GitHub: parsing-sql SQL is a language to handle data in a relational database. If you worked with data you have probably worked with SQL. In this article we will talk about parsing SQL. It is in the same league

                                                                    Parsing SQL - Strumenta
                                                                  • composed_of を使って Rails で値オブジェクトを扱う - Sansan Tech Blog

                                                                    DSOC サービス開発部でエンジニアをしている石畑です。普段は Rails で名寄せサービスを作っています。 今回は Rails で値オブジェクトを扱うのに ActiveRecord の composed_of が便利なので、紹介します。 値オブジェクト 値オブジェクトは DDD でも紹介されている概念です。多くのわかりやすい解説が世の中にあるので、詳しくは検索してもらえればと思いますが、ものすごく大雑把に説明すると「各属性で等価を判断できる不変なオブジェクト」です。 例えば「とあるスーパーでお肉を売る」を考えたときに、最初「300 円」で売っていた「お肉 A」を途中タイムセールで 100 円引きの「200 円」で売ったとしても「お肉 A」は値段を変更する前と「同一のお肉」です。 お肉のセール そのため、「お肉」の同一性は属性で判断することはできず、バーコードのような識別子で同一性を追跡し

                                                                      composed_of を使って Rails で値オブジェクトを扱う - Sansan Tech Blog
                                                                    • Rubyコミッターの村田賢太がApache Arrowのコミッターに就任

                                                                      株式会社Speee開発部R&Dグループ所属のRubyコミッター、村田賢太/mrkn がApache Arrowのコミッターに就任いたしました。 https://arrow.apache.org/committers/ Apache Arrowとは、オンラインメモリのデータ表現、データ処理を効率化するプロジェクトです。 村田は弊社のデータ利活用を推進するR&D領域に対して指導的な役割を担っておりますが、今回のApache Arrowコミッター就任によって、さらに先進的な挑戦ができるものと期待しております。 プログラミング言語Rubyの開発者であり、弊社技術顧問のまつもとゆきひろ氏は、以下のようにコメントしています。 Apache Arrowを使えば、異なる言語間でも効率よくデータを共有できるので、「適材適所」のシステムを構築できます。 これはPythonやJava(Spark)などを追いかけ

                                                                        Rubyコミッターの村田賢太がApache Arrowのコミッターに就任
                                                                      • Ruby 3.1.0 Preview 1 Released

                                                                        Posted by naruse on 9 Nov 2021 We are pleased to announce the release of Ruby 3.1.0-preview1. YJIT: New experimental in-process JIT compiler Ruby 3.1 merges YJIT, a new in-process JIT compiler developed by Shopify. Since Ruby 2.6 introduced MJIT in 2018, its performance greatly improved, and finally we achieved Ruby3x3 last year. But even though Optcarrot has shown impressive speedups, the JIT has

                                                                        • パターンからわかりやすく入門するドメイン駆動設計(DDD)|研修コースに参加してみた | SEプラス 研修 Topics

                                                                          成瀬さんは日本最大の Java のカンファレンスでの登壇に加え、 YouTube でも「なるせみ」という IT 技術解説で人気のチャンネルを持ってらっしゃいます。 ドメイン駆動設計とは まずはドメイン駆動設計とは何か紹介いただきました。 ソフトウェア開発は難しい 理由: たくさんの技術 + 対象のドメイン知識 (物流、など) ドメインとはソフトウェア対象領域 ドメインのソフトウェアを作りたいなら、ドメインを主軸とした設計 = ドメイン駆動設計が必要 「エリック・エヴァンスのドメイン駆動設計」(翔泳社刊) という本が原典(翻訳版は 2013 年刊行。 原著は 2003 年出版) ただし、とっっっっっっても難解 ドメイン駆動設計の進め方 “モデリング” と “パターン” というパートに分けて進める 関係者と開発者が集まって、モデリングで設計して、設計したものをパターンで実装する それぞれに専門

                                                                            パターンからわかりやすく入門するドメイン駆動設計(DDD)|研修コースに参加してみた | SEプラス 研修 Topics
                                                                          • 入門Javaのenum - Qiita

                                                                            この記事のサンプルコードは、enumの説明に特化しています。それゆえ、一般的には良くないとされるコードも含まれています(金額の計算で BigDecimal ではなく int や double を使っているなど)。 分類などをどう表すか 例えば、架空のECサイトのシステムを考えます。このECサイトの会員にはブロンズ会員・シルバー会員・ゴールド会員の3つのランクがあり、ランクによって割引率などが異なります。これをどうやって表しましょうか? まずは良くない例です。 public class Rank { public static final int BRONZE = 1; public static final int SILVER = 2; public static final int GOLD = 3; }

                                                                              入門Javaのenum - Qiita
                                                                            • 週刊Railsウォッチ(20210510前編)属性メソッドをキャッシュして最適化、Railsのガバナンスに関する声明、bundle install高速化ほか|TechRacho by BPS株式会社

                                                                              週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Rails: 先週の改修(Rails公式ニュースより) 今回は以下のコミットリストのChangelogのうち、セキュリティ修正以外のものから見繕いました。

                                                                                週刊Railsウォッチ(20210510前編)属性メソッドをキャッシュして最適化、Railsのガバナンスに関する声明、bundle install高速化ほか|TechRacho by BPS株式会社
                                                                              • ECMAScript 2019 and beyond...

                                                                                Newsletter Subscribe to keep up-to-date with the latest content! Last month - June 2019 - 10th edition of ECMA-262 standard was officially published. What does it mean? - Well, ECMAScript 2019 is here! The latest and greatest specification for JavaScript and other derivatives languages to follow. And while you may already have heard of some of its new features, we'll recall all of them! Plus some

                                                                                  ECMAScript 2019 and beyond...
                                                                                • Androidのビルド用Dockerイメージダイエット計画 - dely Tech Blog

                                                                                  こんにちは。dely株式会社でAndroidチームのマネージャーをやっているうめもり(Twitter: @kr9ly)です。 この記事は「dely #2 Advent Calendar 2020」の7日目の記事です。 6日目の記事は、knchst さんによる「エンジニアの僕が初めてプロダクトマネージャーをする上で特に意識したこと」でした。僕も人に依頼するときは菓子折り持って行ってその場で食べてもらってから依頼することにします。 www.notion.so 「dely #1 Advent Calendar 2020」もありますので、是非そちらもご覧ください。 早速ですが、皆さん、AWS CodeBuild使ってますか? Amazon Elastic Container Registryと組み合わせて使うと、ビルドイメージのProvisioningがとても高速に終わるのでdelyのAndroi

                                                                                    Androidのビルド用Dockerイメージダイエット計画 - dely Tech Blog