タグ

ggkuronのブックマーク (1,906)

  • CSS Modulesの歴史、現在、これから - Hatena Developer Blog

    マンガメディア開発チームの id:mizdra です。半年ほど前から「フロントエンドエキスパート」という肩書きをもらい、社内でフロントエンドの啓蒙活動をしています。具体的にどんな活動をしているかについては、社内のポッドキャストで少し話しましたので、興味があれば聞いてみてください。 developer.hatenastaff.com 最近、私はReactを採用する社内プロダクトでのCSSの書き方を検討していました。最終的にそのプロダクトでは、CSS Modulesを採用するに至りました。しかしその過程で、CSS Modulesのメンテナンス体制に対して懸念があり、将来的な存続を危ぶむ声が界隈にあることを知りました。 ただし、実際にメンテナンス体制について調べてみたところ、万全ではないものの引き続きメンテナンスがされていて、使用もできることが分かりました。そこで、今回はCSS Modulesに

    CSS Modulesの歴史、現在、これから - Hatena Developer Blog
    ggkuron
    ggkuron 2022/09/08
  • ネットワークの輻輳は避けられない — 数学で証明

    IEEE Spectrumより。 トラフィック問題を「解決」することが事態が悪化させることもある BY チャールズ・Q・チョイ 高速道路網が交通渋滞に悩まされるように、コンピュータ・ネットワークも輻輳(混雑)に直面することがある。この度の新しい研究で、コンピュータ・ネットワークの遅延を制御するために設計された多くの主要なアルゴリズムが、一部のユーザにすべての帯域を占有させ、他のユーザには実質的に何も提供しないという、極めて不公平なものであることが判明した。 インターネット上でデータを送信するコンピュータやその他の機器は、データを小さなパケットに分割し、特殊なアルゴリズムを用いて、これらのパケットを送信する速度を決定している。これらの輻輳制御アルゴリズムは、同じネットワーク上の他のユーザと共有しながら、利用可能なすべてのネットワーク容量を発見し、利用することを目的としている。 過去10年間、

    ggkuron
    ggkuron 2022/09/05
  • powershell-gives-you-wrongs.md

    powershell-gives-you-wrongs.md PowerShell Gives You Wrongs 三年半の格闘の末に僕が見たもの、あるいは試行錯誤の覚書、すなわち二番煎じ。 はじめに PowerShell 3.0以上のバージョンを使用すること。2.0以下のバージョンは、書き捨ては仕方ないとしても、保守対象のスクリプトを書くべきではないし、あらゆる言及に値しない。全力でバージョンアップをしろ。 式と文の常識を超えて PowerShellで、いわゆる三項演算子いうところの条件演算子を書きたい、と思ったところで、そもそもif文が値を返すことに気づく。 > $answer = if($true){"good"}else{"bad"} > $answer good しかし、if は文であって式でない。代入文の右辺には文が置けるので上記は問題ないが、当然、式を置くべきところに文は置

    powershell-gives-you-wrongs.md
  • ソフトウェア開発者は徹夜してはいけない - ソフトウェア工学研究の日々

    睡眠は大切とよく言われますが、睡眠不足が開発者に与える影響をまじめに調べた面白い論文が、ソフトウェア工学のトップ論文誌 IEEE Transactions on Software Engineering に掲載されていました。ソフトウェア工学研究室助教の Raula 先生から教えてもらいました。 Need for Sleep: The Impact of a Night of Sleep Deprivation on Novice Developers’ Performance - IEEE Journals & Magazine この論文での被験者はイタリアの大学生 45人。Test-First 開発でプログラムを書かせるタスクを行ってもらっています。23人には実験前日に睡眠を控えてもらい、平均で直近20時間程度は寝てない状態になっています。対照群は、前日に平均で6.5時間、通常通り寝た

    ソフトウェア開発者は徹夜してはいけない - ソフトウェア工学研究の日々
    ggkuron
    ggkuron 2022/08/26
  • はじめに

    好奇心旺盛な人のためのWebRTC #このは、WebRTCの実装者が苦労して得た知識を世界に向けて発信するために作成されました。 好奇心旺盛な人のためのWebRTC は、常により多くのことを求めている人のために書かれたオープンソースの書籍です。 このは抽象化されたものではありません。 このはプロトコルとAPIに関するもので、特定のソフトウェアについて語るものではありません。 私たちはRFCを要約し、文書化されていないすべての知識を一箇所に集めることを試みます。書はチュートリアルではないので、コードはあまり含まれません。 WebRTCは素晴らしい技術ですが、使いこなすのは難しいものです。このはベンダーに依存せず、利益相反を排除するようにしています。 このは誰のためのものか。 #WebRTC が何を解決するのかさえ知らず、もっと学びたいと思っている開発者。既に WebRTC を使っ

    ggkuron
    ggkuron 2022/08/23
  • より良いトランザクションスクリプトを目指す - enrike3のブログ

    ファウラーのエンタープライズアプリケーションアーキテクチャパターン(PofEAA)において、 ビジネスロジックのアーキテクチャにはドメインモデルかトランザクションスクリプトかという二択があります。 仮にプレイヤーの名前変更(ゲームでは可能なことも普通にあるので)をするとします。 ドメインモデル var user = _repository.Find(userId); user.ChangeName(name); //バリデーションは中で行われる=ビジネスロジックがオブジェクトにある _repository.Save(user); ドメインモデル貧血症 //ロジックがモデルオブジェクトの外にある if(!IsValidName(name)) { throw new ArgumentException("name"); } var user = _repository.Find(userId)

    より良いトランザクションスクリプトを目指す - enrike3のブログ
    ggkuron
    ggkuron 2022/08/23
  • Reinventing the Transaction Script | F# for fun and profit

    This page contains links to the slides and code from my talk “Reinventing the Transaction Script”. Here’s the blurb for the talk: The Transaction Script pattern organizes business logic as a single procedure. It has always been considered less sophisticated and flexible than a layered architecture with a rich domain model. But is that really true? In this talk, we’ll reinvent the Transaction Scrip

    Reinventing the Transaction Script | F# for fun and profit
    ggkuron
    ggkuron 2022/08/22
  • 値オブジェクトへの誤解が生まれる一つのストーリー - 文脈と定義を大事にする

    先日、 という記事を書いたところ、思ったよりも反響がありました。その影響があったかは不明ですが、また値オブジェクトについての話題がちょびちょびと発生していました。 そのやり取りの中で、私は未読だった論文が紹介されていて、その論文を読んだことで「このようにすると値オブジェクトに誤解が生じる」という一つのストーリーを認知できたため、どのようにこの論文を読むと誤解が発生するか、という事について説明します。 なお、前回書いた記事も、この記事も、誤りを糾弾したいとか、誤ったから著者が悪であるといった事を主張しているわけではありませんので、改めて記しておきます。この記事では、単純に事実の指摘と修正の提案、およびなぜ文脈や定義を大事にする必要があるのかという事について述べます。 いい加減、値オブジェクトの話題はしつこすぎるのでは?非生産的なのでは?そんな事よりもっと生産的な事をしたら?というご意見もある

    値オブジェクトへの誤解が生まれる一つのストーリー - 文脈と定義を大事にする
    ggkuron
    ggkuron 2022/08/18
  • Introduction - Learning Rust With Entirely Too Many Linked Lists

    Learn Rust With Entirely Too Many Linked Lists Got any issues or want to check out all the final code at once? Everything's on Github! NOTE: The current edition of this book is written against Rust 2018, which was first released with rustc 1.31 (Dec 8, 2018). If your rust toolchain is new enough, the Cargo.toml file that cargo new creates should contain the line edition = "2018" (or if you're read

    ggkuron
    ggkuron 2022/08/10
  • 第723回 複雑なコマンドパイプラインを簡単に組み立てる方法 | gihyo.jp

    パイプライン処理とは GUIは非常に直感的です。はじめて使うアプリであっても、なんとなくそれなりに動かせてしまうという点で、優れたインターフェイスと言えます。しかし効率を突き詰めると、軍配が上がるのはGUIよりもCLIでしょう。連載の読者であれば、UnixライクなOSのCLIが持つパワーについては当然ご存知かと思います。 とはいえ、古典的なUnixコマンドの多くは、単体ではそれほど強力なものではありません。というのも、ひとつひとつのコマンドはシンプルに、特定の用途においてのみ上手く動作するよう設計されていることがほとんどだからです。こうしたコマンド群に無限のシナジーを与えるのが「パイプライン処理」です。標準入出力を通じて複数のコマンドを直列に繋げることで、複雑な処理をインスタントに組み立てることができるパイプラインは、まさにUnix哲学の体現であり、CLIの真髄はここにあると言ってもよい

    第723回 複雑なコマンドパイプラインを簡単に組み立てる方法 | gihyo.jp
    ggkuron
    ggkuron 2022/07/14
  • neue cc - async/awaitのキャンセル処理やタイムアウトを効率的に扱うためのパターン&プラクティス

    async/awaitの鬼門の一つとして、適切なキャンセル処理が挙げられます。別に基的にはそんな難しいことではなく、CancellationTokenSourceを作る、CanellationTokenを渡す、OperationCanceledExceptionをハンドリングする。というだけの話です。けれど、Tokenに手動でコールバックをRegisterしたときとか、渡す口が空いてないものに無理やりなんとかするときとか、タイムアウトに使った場合の始末とか、ちょっと気の利いた処理をしたいような場面もあり、そうした時にどうすれば良いのか悩むこともあります。 こういうのはパターンと対応さえ覚えてしまえばいい話でもあるので、今回はAlterNatsの実装時に直面したパターンから、「外部キャンセル・タイムアウト・大元のDispose」が複合された状況での処理の記述方法と、適切な例外処理、そして最

    ggkuron
    ggkuron 2022/07/13
  • 技術書は出版社の直販サイトでPDFを買っている - あんパン

    よくKindleでセールやってる! 50%オフ! 50%ポイント還元! ということがあるけれど、全部無視して出版社のサイトでPDFを購入している。 DRMがかかっていない メールアドレスがPDFのページに刻印されたりはある 好きなリーダーで読める 自分の管理方法は後述 出版社に一番還元できる と勝手に思っている あたりが理由。 購入できるサイト O'Reilly Japan Ebook Store 一部EPUBやmobiもある Gihyo Digital Publishing … 技術評論社の電子書籍 EPUBもある 紙の書籍のおまけをここでダウンロードできたりもして便利 SEshop.com | 翔泳社の通販 定期的にセールをやっていて、最大で50%ポイント還元がある 紙の書籍も50%還元になることがあってびっくりする… 文とは関係ないけど ILLUSTRATION 2022 のシリー

    技術書は出版社の直販サイトでPDFを買っている - あんパン
    ggkuron
    ggkuron 2022/06/28
  • チームで高品質なコードを追求するための「設計標準」の育て方 / loglass coding standard

    ログラスでは、チームとして高品質なコードを追求するために「設計標準」というものを定め、チームで育てています。 この資料ではそのような取り組みについてご紹介します。 株式会社ログラス会社紹介資料 https://speakerdeck.com/loglass2019/whats-loglass ウラ凸 - シリーズA 17億円調達のログラスのウラ側へ、カジュアル面談で突撃しよう https://meety.net/articles/t2--zrl4ohf4gx6 外部公開している設計標準の資料 https://little-hands.hatenablog.com/entry/2022/01/28/programming-principle https://little-hands.hatenablog.com/entry/2022/01/24/domain-object-design

    チームで高品質なコードを追求するための「設計標準」の育て方 / loglass coding standard
    ggkuron
    ggkuron 2022/06/23
  • チームで取り組みテスト改善のあゆみ

    Boost Your Performance and Developer Productivity with Jakarta EE 11

    チームで取り組みテスト改善のあゆみ
    ggkuron
    ggkuron 2022/06/23
  • "The Essence of Software"が提唱する全く新しいソフトウェア設計の考え方|Idein株式会社

    (6/22 注:書き足りないと思っていた箇所を補って加筆修正しました) エンジニアのbonotakeです。Ideinに入ってかれこれ3年以上経ちますが、Ideinでブログ記事を書くのは初めてです。 今日は、ソフトウェア設計の全く新しい考え方について書かれた "The Essence of Software" というの紹介をしたいと思います。 このの著者はMIT教授でソフトウェア工学の世界的な研究者であるDaniel Jacksonです。形式手法Alloyの発明者、と言ったほうが通じる人には通じるかもしれません。形式手法とは、ありていにいえば、数理論理学を駆使してソフトウェアに潜むバグを論理的に駆逐する手法です。 (個人的な宣伝ですが、彼の書いたAlloyのを以前翻訳して出版しました。) そんな彼が昨年11月に新著を出版したというので、ほぼその日に買いました。……ですが、を開いてみる

    "The Essence of Software"が提唱する全く新しいソフトウェア設計の考え方|Idein株式会社
    ggkuron
    ggkuron 2022/06/22
  • 「問題から目を背けず取り組む」 �一休の開発チームが6年間で学んだこと

    Developer Summit 2020 発表資料 #devsumi

    「問題から目を背けず取り組む」 �一休の開発チームが6年間で学んだこと
    ggkuron
    ggkuron 2022/06/21
  • How to hide the Design/Split/Source bar in Visual Studio 2015?

    ggkuron
    ggkuron 2022/06/15
  • スクラムチームを支える心理学 - 死亡前死因分析

    この記事では、私たちのチームがスプリントゴールの達成とコード品質の低下を防ぐために行っているプラクティス、「死亡前死因分析」について紹介します。 スクラムチームと計画 変化への適応が強調されるスクラムですが、だからと言って事前の計画をないがしろにすることはできません。 私たちのチームが大切にしているキーワードのひとつに、“Measure twice, cut once” (二度測って、一度で切る)があります。もともとは優れた大工の仕事を指す言葉で、注意深く計画し一度で仕事を済ませる、手戻りのない状況を表現する言い回しです。 私たちにとっても、“Measure twice, cut once” の大切さは大工にとってのそれと変わりません。手戻りはデリバリの速度だけでなく、実装の素直さやコードの端的さにも悪い影響を与えるためです。ソフトウェアのバグが一番現れやすい箇所は「苦労と試行錯誤の末にな

    スクラムチームを支える心理学 - 死亡前死因分析
    ggkuron
    ggkuron 2022/06/14
  • Design System Ops(デザインシステムOps)とは?

    キーポイント Design System Opsは、デザインシステムとその構成要素を運用し、標準化するための方法である チームの非効率な作業を減らし、ワークフローを最適化し、デザインシステムを普及させ、システムの拡張を簡単にすることができる Design System Opsは、ただユーザーを特定し、取り除きたいDesign System Opsの問題を定め、解決策を実行し、その効果を測定するもので、誰でも始められる UXPin MergeはデザインシステムからUIコンポーネントをインポートし、そのコンポーネントを使ってデザインエディターでプロトタイプを作成しやすくするツールであり、Design System Opsに最適 企業や部署が効率性を追求し、運用コストを削減するにつれて、より多くのOpsの役割が見出されています。DesignOpsという言葉は聞いたことがあると思いますが、Desi

    Design System Ops(デザインシステムOps)とは?
    ggkuron
    ggkuron 2022/06/06
  • null 条件演算子を式ツリーデータに変換することができない - miso_soup3 Blog

    C# 6 の機能である null 条件演算子を式ツリーに入れようとしたら、図のようにコンパイルエラーが発生しました。メッセージは、「式ツリーのラムダに null 伝搬演算子を含めることはできません。」です。 「ラムダ式から式ツリーの変換って何か制約あったけ?」 「どうして三項演算子での書き方(図の後者の記述)だとOKなのにこれはだめなんだろう?」 といろいろ分からなかったので整理しました。 調べた結果、このコンパイルエラーの原因は次のことが原因でした。 null 条件演算子は式ツリーデータに変換できない null 条件演算子と例の三項演算子は、同じことではない ラムダ式のすべてが式ツリーデータに変換できるわけではない また、null 条件演算子を式ツリーデータに変換するように対応すれば幸せ、という話でもない 言葉について ここまで画像と文章にいろいろな言葉がでてきますが、参考リンクを置いて

    null 条件演算子を式ツリーデータに変換することができない - miso_soup3 Blog
    ggkuron
    ggkuron 2022/06/06