タグ

ブックマーク / qiita.com (861)

  • これならできる!ドメイン駆動設計に役立つイベントストーミング - Qiita

    はじめに コンテナ技術の進展に伴って、ビジネス環境の変化に迅速に対応できるマイクロサービスに関心が集まっています。最近では、マイクロサービスを分割する方法の一つとしてドメイン駆動設計が注目されています。ドメイン駆動設計では、業務に精通した方々や技術者が、モデリングなどいろいろな技法や専門用語を使い、それらを理解した上で設計を進めていきます。様々なステークホルダーとチームを組んで一緒に取り組むにしても、直観的にはとてもわかりづらいと感じています。そこで、いろいろと記事を調べてみたり、身近な技術者と意見交換をしたところ、イベントストーミングという手法がありました。イベントストーミングに関する記事は他の記事に比べあまり多くはないので、この場で共有しておきたいと思い掲載することにしました。これからドメイン駆動設計をはじめるという方や、既に取り組んでいるけれど進め方に悩んでいる方など、参考になれば幸

    これならできる!ドメイン駆動設計に役立つイベントストーミング - Qiita
  • Swiftで複数の非同期処理の完了時に処理を行う - Qiita

    非同期処理1: ----->完了 非同期処理2: ----------->完了★全ての処理が終わったココで何かしたい! 非同期処理3: -->完了 利用例 ある画面で複数のAPIの非同期通信処理が必要で、全てのAPIレスポンスを取得した後に画面を更新したい (複数種類のAPIのレスポンスデータを取得後、UITableViewをreloadData()を1回だけ呼ぶ等) SDKでデータの取得処理が非同期になっており、for文で全ての複数データを取得してからデータ整形したい (Photos frameworkのrequestImageメソッド等) 実装例(並列①) 各非同期処理の開始時にstart、完了時にendを出力するプログラムです。 GCD(Grand Central Dispatch)のDispatchGroupを作成し、async(group:qos:flags:execute:)メ

    Swiftで複数の非同期処理の完了時に処理を行う - Qiita
  • [Kotlin] isEmpty(), isBlank()などの違い早見表 - Qiita

    背景 そもそも、なぜこの記事を書こうと思ったのかと言うと、PHPのメソッドの早見表はあるのに、Kotlinが無いな・・・。って思っただけです。 文字比較の早見表 書き方のフォーマットは、この記事参考にしてます。「PHP isset, empty, is_null の違い早見表」 値 isEmpty isNotEmpty isNullOrEmpty isBlank isNotBlank isNullOrBlank orEmpty

    [Kotlin] isEmpty(), isBlank()などの違い早見表 - Qiita
  • Spring BootでサーバーサイドKotlin入門 - Qiita

    普段の業務ではPHP(Laravel)を使っています。 この間Android開発でKotlinを経験し、一度は静的型付言語でWeb開発をしてみたいとも思っていたのでKotlin×Spring Bootで簡単なWebアプリを作ってみることにしました。 Kotlin触ってて思ったのが、Javaの知識を前提に書かれている情報が多いな〜1ということでした。 自分は基情報対策くらいしかJavaやってなくて、結構調べなきゃいけなかったりと面倒だったので、できるだけJavaの知識がなくても分かるように書いていこうと思います。 環境 OS: macOS Catalina 言語: Kotlin フレームワーク: Spring Boot ビルドツール: Gradle IDE: Intellij IDEA フレームワークをSpring Bootにした理由はKotlinでWeb開発するなら一番スタンダードっぽか

    Spring BootでサーバーサイドKotlin入門 - Qiita
  • Vim script でアヤメの品種を分類する - Qiita

    はじめに 以前、Vim script で機械学習 という記事を書いた事で、「Vim script で機械学習は可能」という事を皆さんにもご理解頂けたはずなので、今回は Vim script を使ってアヤメの品種分類をしたいと思います。 出典: https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%A4%E3%83%A1 iris.csv とは アヤメは温帯に生息するおよそ150種類からなるアヤメ科の植物で、その多くは、がく片の長さ、がく片の幅、花弁の長さ、花弁の幅でその品種が分類できるそうです。この研究結果を UCI(カリフォルニア大学アーバイン校)がデータマイニングの検証用データとして iris.csv というファイル名で配布していて機械学習をやる方の間では有名なデータセットになっています1。iris.csv に含まれるのは、setosa、versi

    Vim script でアヤメの品種を分類する - Qiita
  • Googleが薦める「Jpegの品質は85」を検証する - Qiita

    結論 同じ品質を指定しても、画像の種類によってファイルサイズはもちろん、画質にもばらつきが出ます。 ただし、似たような傾向が現れる品質のポイントがあるので、そこを押さえれば画質や性能のムラを最小限に抑えられそうです。 通常は85がよい。Googleの推奨通り。画質優先時は90がよい。 品質85を境にファイルサイズが急に大きくなる。 品質90で画像によらず実際の画質が安定する。それ未満の場合は画質のばらつきが大きい。 品質100は非常に非効率。PNG24にした方がいい。 画像は当に奥が深く、あくまである実験による結論です。前提や手順は文をご覧ください。 背景 Jpegファイルを出力するとき、0から100までの品質を指定します。同じ品質で出力されたはずなのに、ノイズが目立つ画像とそうでない画像があると感じたことはないでしょうか。 Jpegの原理については、多くの情報があるので省略します。超

    Googleが薦める「Jpegの品質は85」を検証する - Qiita
  • Swift 5.1 に導入される Opaque Result Type とは何か - Qiita

    Swift 5.1 で Opaque Result Type (SE-0244) が導入されます。 Opaque Result Type とは何でしょうか。例を見てみましょう。次のような Animal と Cat があるとします。 protocol Animal { func foo() } struct Cat: Animal { func foo() { print("cat") } } some という新しい言語機能を導入しなくても、 -> some Animal の代わりに -> Cat や -> Animal とすれば既存の言語機能で同じようなことが実現できます。しかし、 -> Cat では、内部実装を過剰に公開している -> Animal では、パフォーマンス上のロスが発生する という問題がありました。これを解決するために、 内部実装を隠蔽しながらパフォーマンスにも影響しない手

    Swift 5.1 に導入される Opaque Result Type とは何か - Qiita
  • 【React】React18の新機能 useInsertionEffectとは? - Qiita

    // CSS-in-JS library import { useInsertionEffect } from 'react'; function useCSS(rule) { useInsertionEffect(() => { // <style>...</style>を挿入する }); return rule; } useLayoutEffetより先に実行してくれるのがいい。 レンダリングの処理は以下のようになっており、useInsertionEffect は、useLayoutEffet が実行される前に実行されます。 useLayoutEffetは、画面の描画する前に実行するため、useEffectのちらつきを解決してくれくれる便利なHooksです。 useLayoutEffectの処理と同じタイミングで、CSS in JSのスタイル挿入をしてしまうと、変更前のスタイルで、use

    【React】React18の新機能 useInsertionEffectとは? - Qiita
  • iOS13のSceneDelegate周りのアプリの起動シーケンス - Qiita

    概要 iOS13から新たにUIWindowSceneDelegateが導入され、プロジェクトを新規作成するとclass SceneDelegateがテンプレートとして生成されるようになりました。この記事では、このSceneDelegateとアプリの起動シーケンスについて説明します。まだわかっていない部分もあるので、そこは疑問の内容を書きました。 Sceneの概要 Sceneについてザックリと説明します。正確なところは公式の文書を参照してください。 SceneとはアプリのUIを表示するための窓の事です。iPadでは以前から複数のアプリを同時に分割表示する事ができましたが、同一のアプリを同時に複数表示する事はできませんでした。iOS13からはこれが可能になります。この時、分割されている画面1つがSceneに対応します。同一のアプリが複数表示されているときは、内部的にアプリケーションとしては1つ

    iOS13のSceneDelegate周りのアプリの起動シーケンス - Qiita
  • フリーWi-Fiを使ったら秘密情報を抜かれる経路にはどのようなものがあるか - Qiita

    ゴールデンウィークのはじめ(4月29日)に投稿された以下のツイートですが、5月7日20時において、1,938.8万件の表示ということで、非常に注目されていることが分かります。 我が名はアシタカ!スタバのFreeWi-Fiを使いながら会社の機密情報を扱う仕事をしてたら全部抜かれた。どうすればよい! pic.twitter.com/e26L1Bj32Z — スタバでMacを開くエンジニア (@MacopeninSUTABA) April 29, 2023 これに対して、私は以下のようにツイートしましたが、 これ入社試験の問題にしようかな。『スタバのFreeWi-Fiを使いながら会社の機密情報を扱う仕事をしてたら全部抜かれた』と言う事象に至る現実的にありえる脅威を説明せよ。結構難しいと思いますよ。 https://t.co/LH21zphCTV — 徳丸 浩 (@ockeghem) April

    フリーWi-Fiを使ったら秘密情報を抜かれる経路にはどのようなものがあるか - Qiita
  • 2020年現在のNewSQLについて - Qiita

    Disclaimer 当記事はNewSQL開発ベンダの技術ブログや各種論文、その他ニュースサイト等の内容を個人的にまとめたものです。 そのため、理解不足等に起因する誤解・誤認を含む可能性があります。更なる理解が必要な方はリファレンスに挙げた各種文献を直接参照下さい。技術的な指摘は可能であれば取り込み修正しますが、迅速な対応はお約束できません。 NewSQLの解説は二部構成 当記事は前編でNewSQLの概要編となる。 全体の目次は下記である。 NewSQLとは何か NewSQLのアーキテクチャ NewSQLとこれまでのデータベースの比較 NewSQLのコンポーネント詳解 1章から3章までの内容を当記事で解説する。 4章はさらに詳細な技術的解説となり、後編の「NewSQLのコンポーネント詳解」で記述している。 こちらも合わせて一読いただきたい。 1. NewSQLとは何か NewSQLとは、海

    2020年現在のNewSQLについて - Qiita
  • Swift5.1のattribute全解説|全27種 - Qiita

    概要 Swift5.1で利用できるattributeの一覧です。(Public APIのみ) 記事は以前作成したSwiftのattributeまとめ[Swift4対応]をSwift5.1向けに更新したものです。 attributeは全てを暗記する必要はありません。これなんだっけ、と思ったときにこの記事でさくっと見られる簡易リファレンスになればと思います。 attributeとは コンパイラに対し、宣言や型の補足情報を伝えるもの 属性や修飾子とも呼ばれる Swift5.1では公式リファレンスに記載されているもので全27種類 attributeの記法 attributeの記法は以下のようになり、より詳細な情報を補足するために引数も指定することができる @〜という記法はコンパイラディレクティブと呼ばれ、コンパイラに対する指示を記載する際に利用される attribute一覧 autoclosur

    Swift5.1のattribute全解説|全27種 - Qiita
  • 「SwiftUIでMVVMを採用するのは止めよう」と思い至った理由 - Qiita

    2022/04/23 追記 記事の続編として、以下の記事を書きましたので、合わせて御覧ください。 仕事SwiftUIでTCAを使ってみて、かなり知見がたまったので、その解説です。 MVVMからTCAへの移行を考えているのであれば、参考になると思います。 宣言的UIに、MVVMって不要なのでは? iOS開発の現場で、宣言的UIが当たり前に使われるような時代になりました。 SwiftUIの開発体験、素晴らしい です。最高です。 しかし最近、SwiftUIで当たり前のように 「MVVMで開発しよう」 となったときに、 「ほんとにそれでいいんだっけ?」 と疑問に思いました。 自分の考えを深掘ってみると 問い: iOS開発で、宣言的UIにMVVMを採用することは当にいいんでしたっけ? 結論: 「SwiftUIを使うのであれば、MVVMを採用するのは止めよう」 理由: ViewModelの存在

    「SwiftUIでMVVMを採用するのは止めよう」と思い至った理由 - Qiita
  • 仮想スクロールのすヽめ - Qiita

    平日の早朝に道玄坂を下るアベックに破滅と滅亡を。どうも、@neer_chanです。 皆さん、仮想スクロールしてますか? 概要 仮想スクロールとは 仮想スクロールの仕組み 仮想スクロールの魅力 前提として、縦スクロールの話をします。 仮想スクロールとは GIFの通り、見えている範囲(+α)のみレンダリングするもの。 要は、ロケット鉛筆みたいなものです。(絶対に違う) 仮想スクロールの仕組み イカれたメンバーを紹介するぜ! 見える範囲を指定するためのDiv スクロールする高さを指定するDiv ListItemを置くUnorderdList いつかの、いくつかのきみとListItem 以上の4つが登場するメンバーだ! ちなみに、通常のスクロールの場合は2の役割を3が行う感じになります。 また、以下の要素をあらかじめ指定する必要があります。 見える範囲に表示する4のListItemの個数(あるいは

    仮想スクロールのすヽめ - Qiita
  • Railsでやってしまいがちな保守性を下げてしまうコードとその解決策 - Qiita

    こんにちは。COUNTERWORKSアドベントカレンダー13日目担当の疋田です。 先月からエンジニアとしてJOINしました。現在、業務ではshopcounterというサービスのRailsアプリケーション開発や日々の運用、データ集計や分析を元にしたプロダクトの改善などをメインで行っています。 スタートアップのエンジニアを経験していく中で、常に素早くPDCA回してユーザからのフィードバックをプロダクトに反映することが重要になってくるため、エンジニアとしてはコードの変更のしやすさとか捨てやすさ、読みやすさってかなり重要だなーと改めて強く思ってます。 今回は3年くらいRailsやってきた中でちょっとずつ溜まってきたメンテするときこういうコード辛かったなって部分を共有できたらなと思います。 ちなみに、これらはすべて今までの自分自身もやっていた時期があるコードであり、反省の意味も込めて書いてみます。

    Railsでやってしまいがちな保守性を下げてしまうコードとその解決策 - Qiita
  • vim-lspでできること - Qiita

    最近になってようやくlspを使い始めたのですが、結局補完とエラー取得と定義ジャンプしかしていないなーと思ったので、他にどんな事ができるのかを調べて見ました。 設定方法等はvim-lspのREADMEやWikiを見たら行けるかと思います。 また、最近ではmattn/vim-lsp-settingsというプラグインが作成され、LSPの面倒くさい設定を書かなくてもローカルに自動でLSをインストールしてくれるようになりました。 もし面倒くさくてインストールしていないという方がいれば、試してみることをおすすめします。 基的にはヘルプで確認すればいいんですが、僕のLSPに対する知識のなさと英語力のなさで結構わからない事があったのでメモがわりに書きます。 ※ この記事は定期的に便利なコマンドに気づいたときに加筆したりしています。なので古い情報と新しい情報が混ざっていることがあるので注意ください。 基

    vim-lspでできること - Qiita
  • 2022年秋版 最新React/Typescript開発環境の作成 - Qiita

    vite4がリリースされましたが、プロジェクト作成時に「vite@latest」を指定しているため問題ありません。 vite4は、以下を参照してください。 https://vitejs.dev/blog/announcing-vite4.html はじめに Reactの開発環境は、CRA(Create React APP)がよく使われますが、CRAは沢山のモジュールの整合性の確認などのため、アップデートがリリースされるまでの間隔が結構あります。 また、使われているモジュールをアップデートするとエラーに悩まされたりします。 ゼロからReactの開発環境を作成していたのですが、いろいろとトライを繰り返すうちに以下の方法に落ち着きました。 比較的短時間で環境が作成できますし、全て最新のモジュールが使えます。 Vite nodejsを用いたJavaSriptプロジェクトは、、Webpackなどでプ

    2022年秋版 最新React/Typescript開発環境の作成 - Qiita
  • Zig の文書読んで所感を記す - Qiita

    これは何? Zig を学ぼうと 公式文書 (0.91時点) を読んでいるんだけど、読みながら思ったことを記していく。 続編は Zig の文書読んで所感を記す #2 へ。 その前に Zig への言及が最近多いなぁ、でもシンプルな言語だって言うしまあどうでもいいかなぁ、ぐらいの気持ちでいたんだけど、ZigはCMakeの代替となるか を読んで、俄然興味が湧いてきて、じゃあ読んでみるか、と思った。 数値 i32 とか u16 のような名前で型が提供されている。 整数は 128bit まである。そればかりか、 3bit とか 53bit のような中途半端な幅の整数も使える模様。面白い。 さらに。何に使うのかわかってないけど、 i0 u0 のようなゼロビットの整数もある。 ちなみに0ビット整数には 0 が代入できる。 u1 は、 0 または 1。 i1 は、 0 または -1 が代入可能。 浮動小数点

    Zig の文書読んで所感を記す - Qiita
  • Reactに有利なベンチマークを作ってみた - Qiita

    皆さんこんにちは。現在、フロントエンドでは宣言的UIが大流行しており、そのためのライブラリもReactを筆頭に複数存在しています。 ライブラリが複数存在するところには当然のように比較や論争が起こるものですが、UIライブラリの場合はパフォーマンスがよく焦点となります。 筆者はReactの信者ですが、Reactは古株ということもあってか、最近の議論ではReactは他のライブラリと比較されるかませ犬のような役割を担うのがよく見られます。「仮想DOMは必要ない」といった類のものです。 しかし、筆者の考えではReactは今でも、もっとも真剣にパフォーマンスに取り組んでいるUIライブラリです。特に、Reactはパフォーマンスを高いユーザーエクスペリエンスのための手段として捉えており、ドキュメントにもユーザーエクスペリエンスという言葉が多く出てきます。 そこで、今回はReactが最も有利になるようなベン

    Reactに有利なベンチマークを作ってみた - Qiita
  • Bash: わかるとほんのちょっとうれしくなること5選 - Qiita

    Bash の勉強を始めた頃、頭がごちゃごちゃになって調べたこと、わかるとほんのちょっとうれしくなったことを5個ピックアップしてみました。 - 目次 - alias sudo='sudo ' と alias sudo='sudo -E ' bash -c /dev/null grep -rl xargs で任意の位置に引数を展開する - 説明 - 1. alias sudo='sudo ' alias コマンドを使うと、長いコマンドを別名で登録できて、とても便利です。 でもそのまま sudo と組み合わせると、エラーになります。 例えば、la という登録名で、ls -a を実行させると、 sudo la でエラーになります。 bash のマニュアルには、以下のように書かれています。 alias [-p] [name[=value] ...] value の末尾に空白があると、エイリアスが展開

    Bash: わかるとほんのちょっとうれしくなること5選 - Qiita