*(アスタリスク)がワイルドカードとして使われるまで - @ledsun blogを公開したところいくつか新情報をいただきました。 サマリ 1951年、スティーヴン・コール・クリーネが正規表現の閉包演算子として*を生み出す。 1965-1969年のどこか、Multicsに*をワイルドカードとして導入 1969~1971年あたり、デニス・リッチーがUNIXのglobにワイルドカードを導入 ケン・トンプソンとデニス・リッチーはMulticsプロジェクトに参加していたので、そこからワイルドカードをUNIXに輸入したようです。 *(アスタリスク)がワイルドカードとして使われるようになったのはMuliticsプロジェクトのどこかのようです。 DEC TOPS-10ルートもあるかもしれません。情報お待ちしております。 寄せられた情報 ちなみにglobを書いたのはKen ThompsonではなくDenn
... and tips on how to use libphonenumber. Given how ubiquitous phone numbers are and how long they've been around, it's surprising how many false assumptions programmers continue to make about them. An individual has a phone number Some people do not own phones, or do not wish to provide you with their telephone number when asked. Do not require a user to provide a phone number unless it is essen
morimorihogeです。ちょっと色々忙しくて死んでますが、深夜の勢いで書いてみます。 ことの起こり Twitterにてこんな発言を見かけました この2017年の記事だと、RoRのテーブルのdatetime型にはatをdate型にはonを付けようと書いてあるけど、APIでカラムのデータを返す場合、フロント側としてはdateというサフィックスが付いていた方がやりやすいという意見があって、この辺のベストな感じが気になったhttps://t.co/8MMMHlFvGx — yotuba@Railsエンジニア (@yotuba_eng) July 1, 2021 元記事(翻訳)はこちら Rails: 日付や時刻のカラム名を命名規則に合わせよう(翻訳) 本件について、Twitterではreplyしてみたのですが、文字数の都合で詳細に書きづらいということもあり、一度自分の意見をまとめてみようという
ずいぶん間隔が空いてしまいましたが、gregor-ramblings-jaプロジェクトで「Gregor's Ramblings」の記事をまた翻訳しました。今回は「What is in a Name?(名前がいったい何だというの?)」です。 JMSなど非同期メッセージングを使ったシステム間統合では、「チャンネル(channel)」という概念が登場します。この記事は、チャンネルにどんな名前を付けるべきか、という議論を展開しています。チャンネルにどんな名前を付けるかが、単なる名前の良し悪しだけでなく、システムのアーキテクチャを「呼出スタック」ベースのスタイルから「EDA(Event Driven Architecture、イベント駆動アーキテクチャ)」へ遷移させるインパクトについて語っています。 EDA、イベントベースのシステムについての秀逸な解説記事になっていますので、興味のある方はぜひ読んで
この問題の一つの解決策となりうるのが Repository パターンである。 Repository パターンを用いた簡単な疑似コードを書いてみる。 class HogeRepository { public Hoge get(int id) { Row row = db.execute("SELECT id, a, b FROM hoge where id=?", id); return new Hoge(row.getInt('id'), row.getInt('a'), row.getStr('b')); } public void save(Hoge hoge) { db.execute("INSERT INTO hoge VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE ...", hoge.id, hoge.a, hoge.b); } } clas
・開催日 2021/1/27 ・イベント名 リーダブルコード LT会 https://rakus.connpass.com/event/199845/
クリーンアーキテクチャで web アプリケーションを作る際に、バリデーションはどのレイヤの責務なのか?と悩むことが多いため、それについての考察を行ってみる。 あと、バリデーションについて書いてたはずがドメインロジックとアプリケーションロジックの違いについても結構言及せざるを得ない感じになったので、そのへんの話もしてみる。 結論から言うと バリデーションはどのレイヤの責務なのか?という問い自体が間違いであり、レイヤごとにそのレイヤの責務となるバリデーションを行うべき、というのが今のところの結論。 バリデーションという単語は意味があまりに広い。「意図していないもの/ことを防ぐ」ことはすべてバリデーションと呼ばれている節がある。そのことにより、バリデーションというのはあたかも唯一つの責務であるかのように錯覚しがちだが、そうではない。クリーンアーキテクチャではレイヤによって責務を分担しているが、同
@Loup'sより。今は...? 60年代後半に登場してから、オブジェクト指向プログラミングは、私たちの業界に浸透してきました。現在主流のプログラミング言語はすべてOOPをサポートしています — C を除いて、もはや主流ではありませんが。私が直接会ったプログラマの多くは、世界を次のように分ける傾向があります。 手続き型プログラミング。悪い。 オブジェクト指向プログラミング。良い。 風変わりな研究もの。証明されていない、怖い、維持不可能。 一見すると、OOPは普及しています。 一方で、深刻な突然変異を経験しているにもかかわらず、OOPは知識のある人々(私自身を含む)から依然として強く批判されています。さらに悪いことに、ゲーム業界はOOPから離れつつあるようです。ビデオゲームはシミュレーションであり、OOPのコアなニッチです。Simulaの名前もそれに由来しています。もし、その仕事にさえ最適な
catern.comより。 継承は、侵入的リスト(intrusive lists)をサポートし、メモリを節約し、ガベージコレクタを簡素化する方法として、Simula言語によって発明されました。 継承がSimulaによって発明されたことはよく知られています。Simulaのプログラミング言語の歴史のセッションでは、その発明の背後にある動機が説明されています。では、見てみましょう。 ガベージコレクタの簡素化 Simulaが、コンポジションを使わずに継承を作ったのは、ガベージコレクタを簡潔にできるからです。 Simulaには、簡潔な参照カウントとガベージコレクションの実装がありました。 十分なプログラミングの柔軟性を備えた[手動メモリ割り当て]方式を見つることができなかったので、Weizenbaum(1962)のアイデアを借りて参照カウント方式を実装し、さらに「最後の手段」としてガベージコレクタを
CyberZ CTO室のメンバーの森 (@at_sushi_at) です。 先日、株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 そこで話した内容とスライドを完全公開します。 45分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 はじめに こんにちは、森 篤史と言います。2019年度入社で今年で3年目になります。株式会社CyberZのOPENREC.tvというプロダクトでAndroidアプリチームのリーダをやっています。 最近はプログラムを書く仕事以外に、次世代マネジメント室という全社横断組織でDevelopers Blogの改善プロジェクトを実行したり、CyberZ CTO室で組織活性化に取り組んでいます。 あと、2019年度の未踏スーパークリエータにも認定されました。 メインの仕事としては、入社して
これはずいぶん昔からあるアンチパターンのひとつですが、今になって台頭してきているようです。 Eric Evans と話したのですが、彼も、それがだんだんポピュラーになってきていることに気づいていました。 私たちほど大の「真ドメインモデル」推進者としてみれば、ちょっとうれしくありません。 ドメインモデル貧血症の基本的な症状は、一見、それが本物のドメインモデルに見えるという点です。オブジェクトがいくつかあり、それらはドメイン空間にある名詞から名前をつけられています。それから、オブジェクト同士がしっかりとしたリレーションで結びついており、本物のドメインモデルと同じような構造を持っているのです。 ただし、オブジェクトの振る舞いを見れば違いが分かります。それらのオブジェクトにはわずかな振る舞いしかない、ということに気づくと思います。 ドメインのロジックをドメインオブジェクトの中に入れないという設計ル
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く