何を言っているのかと言うと、みんな大好きクリーンアーキテクチャの右下に図示されているFlow of Controlのこと。 黒線が引かれているということは、つまりUsecaseの中でOutput Portのインターフェイスを持つPresenterの関数なりが最終的に実行されるということである。 ここで湧き上がってくる疑念は「UsecaseがPresenterを呼び出さなくてもControllerに返り値とかで値を返して、Controller経由でPresenterに渡して実行しても同じなんじゃないの?」である。つまりOutput Portというインターフェイスそのものを撤廃してControllerにPresenterを使わせるアイデアである。たしかに、仮にこの方針で行ったとしても依存の方向が壊されることはない。 Software Engineeringでは同様の質問がかなり盛り上がっている
","naka5":"<!-- BFF501 PC記事下(中⑤企画)パーツ=1541 -->","naka6":"<!-- BFF486 PC記事下(中⑥デジ編)パーツ=8826 --><!-- /news/esi/ichikiji/c6/default.htm -->","naka6Sp":"<!-- BFF3053 SP記事下(中⑥デジ編)パーツ=8826 -->","adcreative72":"<!-- BFF920 広告枠)ADCREATIVE-72 こんな特集も -->\n<!-- Ad BGN -->\n<!-- dfptag PC誘導枠5行 ★ここから -->\n<div class=\"p_infeed_list_wrapper\" id=\"p_infeed_list1\">\n <div class=\"p_infeed_list\">\n <div class=\"
「東西南北」が全て入ってる地名はありませんか?というご質問をいただきましたが、わたしの知る限りここがそうですね👇 「長野県東筑摩郡筑北村西条聖南町」 もしほかにあったら教えてください(北海道あたりにありそうな気はしてます) https://t.co/aAhgawGUBY
はじめに 明けましておめでとうございます! 年末年始でKotlinで木構造を宣言的に扱うためのkotlin-treeというOSSを公開しました! KotlinのCollection APIのように木構造を処理することができます。楽! val treeNode: TreeNode<Int> = nodeOf( 1, mutableListOf( nodeOf( 11, mutableList( leafOf(111), leafOf(112) ) ), leafOf(12) ) ) // 1 // ├── 11 // │ ├── 111 // │ └── 112 // └── 12 treeNode.map { ele -> ele * 2 } // 2 // ├── 22 // │ ├── 222 // │ └── 224 // └── 24 以下作ったモチベーションをつらつら書きます。
(この話は最初Twitterに書こうと思ったけど、長くなるのでブログに書くことにしました) 僕はRSpecやMinitestでテストを書くのは得意ですが、常にテストファースト(TDD)で開発するとは限りません。 今業務でやってるタスクはこんなふうに進めてます。 雑に動くものを作る ↓ 見た目をきれいにする&機能を作り込む ↓ テストを書く ↓ リファクタリングする この順番で開発する理由を以下に述べます。 雑に動くものを最初に作る理由 最初は見た目とか、異常系とか、細かい仕様とかを無視して、正常系が一通り動くものを作ります。 これはこれから作ろうとしているものの認識が合っているかどうかをPO(プロダクトオーナー)に確認するためです。 実際に動く画面を見せると「こんな感じでOK」とか「ここはこういうふうにしたい」というフィードバックをもらうことができます。 また、開発者としてもコードを書きな
データセンター内のIP共有サーバー間でIPを共有するという考え方は新しいものではありません。ルーター上のSource-NATで実現してきた方法です。残念なことに、必要なエグレスIPの数が非常に多く、また運用のサイズも大きいため、ルーターレベルでステートフルファイアウォールまたはNATに依存できません。また、当社は共有状態を好まないので、NATの分散インストールは避けたいところです。 代わりに選択したのは、ポート範囲によるサーバー間におけるエグレスIPの分割です。特定のエグレスIP に対して、各サーバーは使用可能な送信元ポートのごく一部(ポートスライス)を所有します。 インターネットからリターンパケットが届くと、それを正しいマシンに戻すルーティングをしなければなりません。このタスクのために、L4 XDPベースのロードバランサーである "Unimog "をカスタマイズしました。当社のL4 XD
はじめに コンテナオーケストレーションサービスの一つである AWS ECS on Fargate (以下 ECS on Fargate) では、FireLens を利用することで、コンテナが出力するログを簡単に任意のログ基盤へ送信できます。 しかし、FireLens を通じてコンテナのログをルーティングする場合、16 KB 以上のログは分割された状態でログルーティング用のコンテナに到達します。構造化ログを実現するためにアプリケーションが JSON などの形式でログを出力している場合、ログを分割される前の状態に復元する必要があります。 この記事では、FireLens とは何かをおさらいした上で、上記の問題の背景を解説します。また、この問題の解決策についてこれまで知られてきた方法と、最近の ECS on Fargate のアップデートにより利用できるようになった方法を解説します。それにより、読
この記事では、CQRSの入門として、軽量CQRS、別名クエリモデルについて解説します。 DDDの参照系処理で発生する課題 解決策 CQRSのメリット、デメリット 実装時の注意事項 部分的導入について なぜQueryServiceの定義がUseCase層なのか 整合性をどうやって担保するのか よくある誤解 データソースを分ける必要があるのか イベントソーシングとの関係 過去資料との繋がり もっと詳しく知りたい方は 現場での導入で困ったら DDDの参照系処理で発生する課題 DDDで定義されている実装パターンを使っていると、基本的には永続化層との入出力はRepositoryを使うことになります。 更新系の処理ではEntityやValueObjectでドメインの知識を表現し、Repositoryを使って集約単位で永続化するという構成をとると、非常にメンテナンス性の良いものになります。 参考過去記事
都会に出ていってしまった息子の部屋を片付けるべく母親の私が整理している。 私に似て玩具好きに育った息子は沢山の置き土産を残していった。押入いっぱいのおもちゃだ。 値のはる物は本人がある程度売っぱらったので「残りは捨てても売ってもいいよ」と託された。 現在は絶賛無職の専業主婦、そしてヤフオク歴20年の“粗利は100円でもあればいい女”の私は売るほかなかった。最近はメルカリのほうもよく売れる。 息子はとにかく玩具を“見つける・選ぶ・買う”ことが好きで、開封して一度作ったり弄れればもう放置する人間だったので押入はバラバラになったプラモやフィギュアやらが袋や箱に入れられて佃煮のようだ。 まず箱を用意してそれぞれにトランスフォーマー 、特撮系、ボトルマン、ガンダム系、ベイブレード、ナーフ…と張り紙をしてそこにぶっ込んでいく。特撮系は嵩張るので3箱になった。 わかりやすい物は分類しやすいが分解しやすい
まずは結論から SpringのDIコンテナに管理してもらいたいクラスが、自分で作成しているクラスなのか、それとも外部のライブラリ(サードパーティのライブラリ)のクラスなのかによって、@Componentを使うか@Beanを使うか変わる。 @Componentとは @Compnentは、Spring BootでWebのMVCアプリを作成するときに使用する@Controller, @Service, @Repositoryと同様に、SpringのDIコンテナに管理させて@AutowireなどでDIできるようにしたいクラスにつける。 @Controller等はMVCの文脈上で特化したクラスにつけられるのに対して、@Componentはそれら以外の特化していないクラス全般に付与するだけで、基本的には同じ。 @Beanとは @Beanも同様にSpringのDIコンテナに管理させたいものにつける点は同
先日、2026年W杯までの“続投”を発表したサッカー日本代表・森保一監督(54歳)。東京五輪代表チームの立ち上げから5年、その戦いぶりを現地取材してきたスポーツライター飯尾篤史氏が、多くの批判を受けながらも信念を貫いてきた勝負師の本音に迫った(全3回の1回目/#2、#3へ)※インタビューは2022年12月28日の続投会見の前に行ったものです。 ――先日、ある日本人監督の方がこんなことを話していました。「日本代表監督になるのが目標だったけど、自分には無理だな」と。「あれだけ批判され、重圧が掛かって、一筋縄ではいかない選手たちを束ねたうえで、あの舞台で結果を引き寄せるなんて、自分にはできそうもない」と。 森保一(以下、森保/敬称略) でも、責任という意味ではクラブの監督も代表チームの監督も変わらないと思いますよ。クラブの監督だって、もちろん批判に晒されますし。 ――でも、注目度や批判の量は全然
こんにちは、CTOの山﨑です。 これは Kyash Advent Calendar 2022 の24日目の記事です。 私はこれまでキャリアややりたいことを逆算して今行動するべきだという考えを持っている一方で、自分がそういった思考や行動をするのが苦手で実際にできていないことがコンプレックスの一つでした。しかし、その時の偶然だったりチャンスを得た結果を積み上げてキャリアを作るという事例を聞いたり、クランボルツ教授による計画的偶発性理論をベースした考えを元に自分のキャリアを整理した結果、そのコンプレックスが解消できたことが個人的に大きなトピックの一つでした。 このエントリーでは私のキャリアに対する考えや行動の一部を紹介すると共に、同じような悩みやコンプレックスを持っている人にとって、何かが変わるきっかけになれば幸いです。 予期せぬチャンスに備える もともとエンジニアリングマネージャーのキャリアの
とても長くなりました。10,000字を超えています。 途中で読み疲れちゃうようだったら、ブックマークなどを利用して、分けて読んでいただけると幸いです。 なにがあったのか、まず事実関係を確認「売れなかった」からではない。一部の論者は「MRJはユーザーのニーズに合っていないから失敗した」とかいう誤解をしているようですが、そうではありません。ニーズに合っていたか、よい飛行機だったか、という問題ではないのです。旅客機の開発はお金と時間がかかるので、最初に「見込み客」との契約を行い、それが成立した時点で開発を決定するのです。この顧客を「ローンチ・カストマー」と言います。 MRJの場合、ローンチ・カストマーは全日空でしたが、開発が進むにつれて海外からの発注も獲得しており、将来的に採算がとれるかどうかは別として、「顧客ニーズに合わない」的外れの製品ではありませんでした。 もちろん、これから開発する飛行機
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く