タグ

ブックマーク / ledsun.hatenablog.com (5)

  • Matz Keynote - @ledsun blog

    僕と僕の所属する会社はRubyでの受託開発を生業にしています。 ここ数年は引き合いが多くて営業で困ったことがありません。 技術力を評価していただいている面もあると思いますが。 Rubyが魅力あふれるプログラミング言語で、お金を払ってでもRubyでアプリケーションを作りたい人が、世の中にたくさんいるので成り立っています。 Ruby言語の父、まつもとゆきひろさんいわく「Rubyを作っているのはコミュニティー」であるそうです。 つぎのようなコントリビュートを待っているそうです。 ブログで記事を書こう バグレポートしよう https://bugs.ruby-lang.org/ で、機能をリクエストしよう 8割はリジェクトされます バグをなおしましょう githubでPRをうけつけています 新機能のPRは、https://bugs.ruby-lang.org/ で議論して追加する決定をしないと、取り

    Matz Keynote - @ledsun blog
  • 人はFat Modelを恐れサービスを求め ドメインモデルは貧血に至る - @ledsun blog

    この文章は祈りです。 主にRuby on Railsアプリケーションを想定した話です。 Ruby on Railsアプリケーションでは、Fat Model問題という問題が起きることがあります。 ドメインオブジェクトが肥大化しメンテナンスしにくくなる問題です。 Fat Model問題に対応するためにサービスレイヤーを導入することがあります。 「ドメインモデル貧血症」と呼ばれているアンチパターンです。 ドメインモデル貧血症 ドメインのロジックをドメインオブジェクトの中に入れないという設計ルールに従っているのでしょう。その代わり、すべてのドメインロジックを含むサービスオブジェクト群が存在しているのです。 Fat Modelを恐れよ Fat Modelは「単一責任原則」を満たしていないモデルです。 単一責任原則 | プログラマが知るべき97のこと 1つのサブシステムやモジュール、クラス、関数などに

    人はFat Modelを恐れサービスを求め ドメインモデルは貧血に至る - @ledsun blog
  • Romeは本当に速かった - @ledsun blog

    RomeプロジェクトJavaScriptフォーマッターがリリースされました。 rome.tools ちょうどPrettier を使っているプロジェクトがあったので比較してみました。 当にめちゃくちゃ速い。 prettierで8秒掛かるのが0.5秒とかで終わる。— ぎゃばん@手洗い (@ledsun) April 6, 2022 prettierを速く動かしたくてparallel-prettierに.prettierignoreを読む修正を加えて動かして速くなったか - Qiita でNode.jsのまま並列化したparallel-prettierを試したときは やったね1.25倍速くなりました! でした。 それと比べてるとRomeは10倍以上速くなっています。 驚異的です。 JavaScriptパーサーやASTを扱うライブラリーなどの資産がないrustで書き直すのは、大変な労力に思えま

    Romeは本当に速かった - @ledsun blog
  • Node.jsのスーパープログラマ達の今 - @ledsun blog

    僕がNode.jsを熱心に勉強していた頃に、スーパープログラマとして憧れていた人たちが、今何をやっているのか調べてみました。 github.com Express.jsなんかを作っていたtjは、Go言語がメインに書いているようです。 OSS活動自体あまりやっていなさそうです。 github.com Browserifyをつくっていたsubstackは、主にrustを書いているようです。 サーバーを書いていた人はGo言語に、CLIを書いていた人がrustに行くのかもしれません。 github.com Babelを書いていたsebmckもrustです。 github.com Rad VaggはGo言語とPythonのようです。 github.com tjfontaineはOSS活動がほとんど無くなっています。 ここからはNode.jsを去っていない人たちです。 github.com Guill

    Node.jsのスーパープログラマ達の今 - @ledsun blog
  • プログラマにできるとよさそうなこと - @ledsun blog

    十行程度のプログラムが読めること プログラミング言語の文法を知っている 分岐とループを追いかけることができる 変数の状態変化を追いかけることができる 関数呼び出しを追いかけることができる 十行程度のプログラムを複数回書いたことがある プログラムを読んでプログラムの動的な振る舞いを想像できる プログラムの主な処理の結果を想像できる 主な処理の終了条件がわかる プログラムから主な処理を読み取れる 似たようなプログラムを書いて、動かしたことがある 既知のプログラムと読んでいるプログラムの違いがわかる イディオムを知っている イディオムを書いたことがある プログラムがどう動くか知っている 重複したソースコードを関数に抽出できる 重複したソースコードがわかる 同じ入力と出力をもつコードブロックがわかる コードブロック単位で入出力を比較できる プログラムのある機能がソースコードのどの部分に依存している

    プログラマにできるとよさそうなこと - @ledsun blog
  • 1