tzmfreedomのブックマーク (1,932)

  • 株式会社インフィニットループは今年も The PHP Foundation に寄付をしました|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

    株式会社インフィニットループは今年も The PHP Foundation に寄付をしました こんにちは、仙台支社のいがらしです。インフィニットループは前回、前々回に引き続き、今年も会社として、The PHP Foundation に寄付をしました。 TL;DR この記事では以下について述べています。 The PHP Foundation は PHP そのものの開発を支援する団体で、多くの成果をあげてきました 言語の継続性と更なる発展には私たちに限らず、多くの企業からの支援が必要です PHP の存続と発展のため、みなさんの会社でもぜひ寄付を検討してみてください 勝率を上げる賭け方がある 現代人はとても忙しく、世にはありとあらゆる種類の情報があふれており、限られた時間の中で読める文章の量は限られています。 今、冒頭の 3 行まとめを乗り越えてこの記事を読み進めているあなたは、きっと PHP

    株式会社インフィニットループは今年も The PHP Foundation に寄付をしました|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
  • Mockeryでのモックの作り方を調べてみた - あしたからがんばる

    とある方から、「なんで静的メソッドはモックできないんですか?」ときかれたときに、「そういえば、Mockがどういう原理で動いているかいまいち知らないなー」と思ったので、モックがどのように作られているのかを調べてみました。 僕は普段はMockeryを使用しているので、Mockeryでのモックの生成のされ方をまとめます。 docs.mockery.io Mockeryは色々な種類のモックが作れるので、今回は一番ベーシックな「スタブやモック」の生成過程を追ってみました。 コードでいうと、以下のような感じのやつ。 <?php Mockery::mock(Post::class); 以下ではこのコードを例にとって説明していきます。 大まかな流れ 雑にまとめると、以下です。 Postクラスを継承したモッククラスの定義を作成する 定義したモッククラスをロードする ロードしたモッククラスのインスタンスを生成

    Mockeryでのモックの作り方を調べてみた - あしたからがんばる
  • Table-driven testing に縛られないGoのテストパターン

    2024/06/08に開催されたGo Conference 2024のLTで発表した資料です。 https://gocon.jp/2024/sessions/19/

    Table-driven testing に縛られないGoのテストパターン
  • Modular Monolith はどの辺りから考え始めるものなのか - id:onk のはてなブログ

    モノリスでは大変なので、マイクロサービスやモジュラーモノリスにして認知負荷を減らしたり、生産性の劣化に抗いたいという考え方がある。 モジュラーモノリスとは モジュラーモノリスについては、だいたい infoq.com のモノリスシリーズ(?)を読めば良いんじゃないか。 有名なのは Shopify のヤツ。 モノリスとマイクロサービスの中間にある、1 アプリケーションなんだけどモノリスでは無い、アプリ内でモジュール分けされているアーキテクチャのこと。app/ の直下に MVC を置くんじゃなくて、COMPONENTS (例えば billing)/app/ の下に MVC を置く、ようなイメージ。 モジュラーに移行するタイミング 僕の感覚だと、数百モデルは全然モノリスで扱えると思っている。少なくとも 300 models 程度でモジュラーにしていく必要はまったく感じない。 世の中で見つけたモデル

    Modular Monolith はどの辺りから考え始めるものなのか - id:onk のはてなブログ
  • RubyKaigi 2024に参加 & 登壇しました + Rubyアソシエーション開発助成の話 - shioimm || coe401_

    RubyKaigi 20024 RubyKaigi 2024おつかれさまでした! 沖縄から帰ってきてはや一週間余り、ようやく今年のRubyKaigiが終わったという現実を受け入れられるようになってきました。 海が綺麗でしたね ありがたいことに、わたしは今回もsocketライブラリのHappy Eyeballs Version 2(以下HEv2)対応を題材に登壇の機会をいただきました。 rubykaigi.org また今年は勤務先のエス・エム・エスがブースを獲得したので、初めてスポンサーとしてブースに立つこともできました。 この記事ではRubyKaigi 2024に至るまでと、それからRubyKaigi 2024会期中の出来事について振り返ってみたいと思います。 ※とんでもない長文ですがご容赦ください Happy Eyeballs Version 2 対応socketライブラリ開発日誌 上記

    RubyKaigi 2024に参加 & 登壇しました + Rubyアソシエーション開発助成の話 - shioimm || coe401_
  • 令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io

    Intro CSRF という古の攻撃がある。この攻撃を「古(いにしえ)」のものにすることができたプラットフォームの進化の背景を、「Cookie が SameSite Lax by Default になったからだ」という解説を見ることがある。 確かに、現実的にそれによって攻撃の成立は難しくなり、救われているサービスもある。しかし、それはプラットフォームが用意した対策の質から言うと、解釈が少しずれていると言えるだろう。 今回は、「CSRF がどうして成立していたのか」を振り返ることで、当にプラットフォームに足りていなかったものと、それを補っていった経緯、当にすべき対策は何であるかを解説していく。 結果として見えてくるのは、今サービスを実装する上での「ベース」(not ベスト)となるプラクティスだと筆者は考えている。 CSRF 成立の条件 例えば、攻撃者が用意した attack.examp

    令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io
  • LaravelのFormRequestでバリデートまでのソースコードを読む - Qiita

    public function dispatch(Route $route, $controller, $method) { $parameters = $this->resolveClassMethodDependencies( $route->parametersWithoutNulls(), $controller, $method ); //... }

    LaravelのFormRequestでバリデートまでのソースコードを読む - Qiita
    tzmfreedom
    tzmfreedom 2024/04/21
    “FormRequest::class”
  • FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション

    PHPカンファレンス小田原2024 の発表資料です。 https://phpcon-odawara.connpass.com/event/296492/ https://fortee.jp/phpconodawara-2024/proposal/7c57d5ca-213a-4d7a-aaf0-26ddc44897f0

    FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
  • PHPStanクイックガイド2023

    PHPStan (PHP Static Analysis Tool)はコードを実行せずに検査できるツールです。稿では業務アプリケーションにPHPStanを導入するまでに押さえておきたい事柄を記述します。 導入 PHPStanは稿記述時点の1.9.x系において、PHP 7.2以降で実行できます。PHPStanは composer require --dev phpstan/phpstan でのインストールが基です。 プロジェクトルートの phpstan.dist.neon に、以下のように記述してください。 pathsには実際にPHPファイルが格納されているディレクトリを指定しましょう。たとえばフレームワークによっては app inc public のようなディレクトリに配置されているかもしれません。 levelは現在のところ1〜9が定義されており、文字列の"max"を指定することで将

    PHPStanクイックガイド2023
  • 入門 継続的デリバリー

    継続的デリバリーとは、コード変更を必要に応じて迅速かつ安全に、継続的にリリースできるようにするための開発手法です。書は、初めて継続的デリバリーに取り組む読者向けに、必要な知識とベストプラクティスをていねいに紹介する入門書です。基的な概念や技術、アプローチの解説はもとより、章ごとに事例を使用しながら、継続的デリバリーを実践する際に直面するさまざまなシナリオを取り上げ、その全体像・世界観を包括的に理解することができます。 序文 はじめに 第1部 継続的デリバリーとは 1章 『入門 継続的デリバリー』へようこそ 1.1 継続的デリバリーは必要? 1.2 なぜ継続的デリバリー? 1.3 継続的デリバリーとは 1.4 インテグレーション 1.5 継続的インテグレーション 1.6 何をデリバリーするのか? 1.7 デリバリー 1.8 継続的デリバリーと継続的デプロイメント 1.9 継続的デリバリー

    入門 継続的デリバリー
  • 180件のPRを遡って、良いレビューコメントをLintのルールに組み込んだ - BASEプロダクトチームブログ

    はじめに こんにちは。シニアエンジニアのプログラミングをするパンダ(@Panda_Program)です。記事は BASE アドベントカレンダー 2023 の11日目の記事です。 BASE のバックエンド開発では巨大なモノリスからモジュラーモノリスへの移行が進んでいます。この記事では、モジュラーモノリスの中で自分のチームが担当しているモジュールに導入した PHPStan のカスタムルールの導入とその効果について紹介します。 PHPStan は BASE のモジュラーモノリスなバックエンドシステムに既に導入されていました。モジュラーモノリスの中で PHPStan のカスタムルールは2種類あります。各モジュールが守るべき共通のルールと、それぞれのモジュール内で特有のルールです。 PHP のコード品質を担保する PHPStan は多くの開発現場で採用されていますが、具体的なカスタムルールの事例は

    180件のPRを遡って、良いレビューコメントをLintのルールに組み込んだ - BASEプロダクトチームブログ
  • PHPStanのカスタムルールを導入しました | PR TIMES 開発者ブログ

    PhpParser\Node\Stmt\Return_ └─ expr: PhpParser\Node\Expr\BinaryOp\BooleanAnd ├─ left: PhpParser\Node\Expr\PropertyFetch | ├─ var: PhpParser\Node\Expr\Variable | └─ name: PhpParser\Node\Identifier └─ right: PhpParser\Node\Expr\StaticCall ├─ class: PhpParser\Node\Name ├─ name: PhpParser\Node\Identifier └─ args: array() PHPParserの型を知っておくと、PHPStanを用いてLintRuleを作る際に非常に役立ちます。 ちなみに扱える型は、基のNode型を継承したものが18

    PHPStanのカスタムルールを導入しました | PR TIMES 開発者ブログ
  • 「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由

    「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由 #17 動的型付け言語と大規模開発 テーマは「動的型付け言語と大規模開発」 まつもとゆきひろ氏:まつもとゆきひろです。Matzチャンネル17回目ということでお送りします。ちょっと前になりますが9月28日に私が技術顧問を始めたクラウドサーカスという会社さんがテックイベントを開催されて、その時のテーマが「動的型付け言語と大規模開発」というテーマでした。 その時に話したこととか、話そうとしたこと、話そうと思っていたんだけど時間の関係で話せなかったことなどを補足する意味も含めて今日はちょっと放送しようかと思います。というか、分量が多いので2回に分けて話そうかなと思っています。 このクラウドサーカスのイベントのテーマは別に私から指定したわけではなくて、先方が「こんなテーマで話したいんだ」とか「聞き

    「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由
  • Goのerrorがスタックトレースを含まない理由 - methaneのブログ

    Twitterでこんな記事を見かけたので。 zenn.dev ジェネリクスの件もそうですが、Goの言語設計は現実主義なのになにか特別なポリシーによるものだと宗教化されてしまって、ファンには勝手に崇拝されてアンチにはディスられがちだなーと感じます。 Goのエラー処理を改善する実験プロジェクトxerrorsがGo体のerrorsにマージされた時、 errors.New() はスタックトレースを取得していました。しかしGo 1.13がリリースされる前に削除されました。 削除された理由の1つは、今までの errors.New() のパフォーマンスに依存していたコードの速度が低下しアロケーションが増えることです。 github.com しかし、これが理由だと今まで思ってたのですが、実際にはもう1つより重要な理由がありました。エラーのフォーマットです。エラーに複数のフォーマットを持たせようという提案

    Goのerrorがスタックトレースを含まない理由 - methaneのブログ
  • エンジニア基礎 ウィルゲート2024年度エンジニア新卒研修

    ▼この研修についてのテックブログ記事 https://tech.willgate.co.jp/entry/2024/04/01/184252 ▼補足 株式会社ウィルゲート 2024年度エンジニア新卒研修「エンジニア基礎」の資料です。 実際に研修で使用したものを加筆修正して外部公開しています。 ▼研修を実演するイベントが開催されました 2024/4/15 18:30〜『エンジニア基礎 - 話題の新卒向け研修実演』 https://forkwell.connpass.com/event/315283/ YouTube Live アーカイブ https://www.youtube.com/watch?v=VidNzvmlbvE

    エンジニア基礎 ウィルゲート2024年度エンジニア新卒研修
  • スタートアップでソフトウェアエンジニアとして10年たって大事にしていることリスト - tomoima525's blog

    今から10年前の2014年4月に、いわゆるIT系大企業のDBエンジニアを辞めてメルカリでソフトウェアエンジニアとして働き始め、そこから紆余曲折を経て10年たった。 当時の予定通り、まだ現役でコードを書いている。海外に拠点は移り、色んな国の人たちと仕事をするようになり、役割もテックリード、マネジャー、CTOと変わってきた。ソフトウェア開発について考え方もさまざまな変遷を経ているが、少しずつ培ってきた、大事にしていることをあげてみる。 ソフトウェア/アーキテクチャ/コード ソフトウェアは他者の価値(i.e. 課題を解決する/コストをカットする)を生み出してなんぼ。コードが綺麗でも売上は立たない。 アーキテクチャやプログラミング言語のトレンドは変化する。追いかけるよりも、その時々のチームやプロダクトに合った設計やプログラムを選択する。 遊び心は大事。チームやプロダクトにそれほど合ってなくても新し

    スタートアップでソフトウェアエンジニアとして10年たって大事にしていることリスト - tomoima525's blog
  • お問い合わせ対応の輪番制による運用をやめるに至った意思とそこからの学び - BASEプロダクトチームブログ

    はじめに こんにちは。 Feature Dev1 グループでマネージャーをしている髙嶋です。 突然ですが、サービス運営するうえでユーザーからのお問い合わせ対応を無視することはできません。 そしていかに迅速かつ適切な内容で回答できるかどうかは、どこまでいってもゴールのない永遠の課題と言えるものでしょう。 ネットショップ作成サービス BASE に関するお問い合わせ対応についての運用に直近変化があったため、その経緯と効果(はある意味これからでもありますが)を共有させていただきたいと思います。 サマリとしては、概ね以下のような内容となります。 お問い合わせ対応のうち、技術的な観点が要求されるものはエンジニアに対して調査依頼がきます BASE では特定の部署が対応する形ではなく、開発組織横断で対応にあたっています 具体的には通称 cs_q というチャンネルに調査依頼がくるので、基的には依頼がなされ

    お問い合わせ対応の輪番制による運用をやめるに至った意思とそこからの学び - BASEプロダクトチームブログ
  • ログラスを支える設計標準について / loglass-design-standards

    設計カンファレンス extends OOCの発表資料です。

    ログラスを支える設計標準について / loglass-design-standards
  • SRE Magazine - 001号(2024/04/01)

    巻頭言:SRE Magazineを始めました 書いた人:しょっさん( @syossan27 ) SRE Magazineの発刊についての想いなどを書いてます。 ばばさんがお勧めする「SRE入門」と「SRE入門の入門」に効く書籍や文章 書いた人:ばば/netmarkjp さん( @netmarkjp ) SRE入門に効く書籍や文章を紹介しています。 非常時の可用性をフィーチャーフラグで保つアイディア 書いた人:iwamot さん( @iwamot ) アクセス急増などの非常時でも可用性を保つ手法に「緊急レバー」があります。この記事では、緊急レバーの実装にフィーチャーフラグを用いるアイディアを提示します。 SIEMってサイトの信頼性向上に寄与するの? 書いた人:Yuta Kawasaki(ゆーた)さん( @yuta_k0911 ) SIEM on Amazon OpenSearch Servi

    SRE Magazine - 001号(2024/04/01)
  • 広く使用されている「xz」にssh接続を突破するバックドアが仕込まれていた事が判明。重大度はクリティカルでLinuxのほかmacOSにも影響 | ソフトアンテナ

    Red HatやDebianを含むLinuxディストリビューションで広く使用されている圧縮ツール「xz」の最新版に悪意のあるバックドアが含まれていた事がわかりました(Ars Technica)。 発見した開発者のAndres Freund氏は、xz version 5.6.0と5.6.1に悪意のあるコードが含まれていることが分かったと指摘しています。幸い、このバージョンは主要なLinuxディストリビューションの製品リリースでは使用されていませんが、Fedora 40やFedora Rawhide、Debian testing/unstable/experimentalなどのベータ版リリースには含まれていたそうです。 macOSのHomebrewでは、複数のアプリがxz 5.6.1に依存している事が判明し、現在xz 5.4.6へのロールバックが行われています。 悪意のある変更は難読化され、バ

    広く使用されている「xz」にssh接続を突破するバックドアが仕込まれていた事が判明。重大度はクリティカルでLinuxのほかmacOSにも影響 | ソフトアンテナ