並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 27 件 / 27件

新着順 人気順

sealed class interface javaの検索結果1 - 27 件 / 27件

  • 【C#】何故 C# を好むのか。~他の言語と比較しながら~ - ねののお庭。

    世の中には多くの C# に関する誤解が蔓延っています。 偏見にも満ちています。 そして技術的に正しい批判ではなく、根本的に技術的に誤った批判ばかりで正直悲しい。 技術的に正しい形の批判なら「お、そうだな。そしてそれの解決策はですねぇ...(ニヤニヤ)」となるのですが...。 そして C# 界隈から一歩出ると、「え、C# で作ってるの!?なんで??」とか言われる事が非常に多い始末。 C# 大好きマンとしては非常に嘆かわしい。 嘆かわしい限りなので、ここでなぜ C# を私が好むか、そして何故ソフトウェアの開発に向いているかを語りたいと思います。そして誤解が解けたら嬉しい。ついでに C# を書きたいと思ってくれたら嬉しい。 想定読者 前書きという名の予防線 事前知識: C# と .NET C# はパフォーマンスの高い言語 C# はビルドも高速 C# はオープンソースかつクロスプラットフォーム 言

      【C#】何故 C# を好むのか。~他の言語と比較しながら~ - ねののお庭。
    • プログラミング言語オタクとして改めてC#を語りたい

      皆さんはC#、使っていますか? 世界的には人気の言語であるC#ですが、残念ながら日本ではあまり流行っていないというのが現状です。というわけで色々なプログラミング言語をかじっている身としては、ちゃんとC#の良さを知ってもらいたい!ということで改めて筆を取った次第です。 C#だけでなくGoやRust、Swiftなどの様々な言語の話を盛り込んでいるので、普段からC#を使っているという方もそうでない方も、是非一度この記事に目を通してもらえると嬉しいです。 この記事を書いたきっかけ 私がこの記事を書き始めたのは、何縫ねの。さんによる下の記事がきっかけだったりします。 内容に関してはC#に関わるあらゆる良さが語られていて非常に良い記事なので、是非とも一読することをお勧めします。特に事前知識: C# と .NETあたりの項目はこの記事では前提知識として説明を省略しているため、.NETが何かをよく知らない

        プログラミング言語オタクとして改めてC#を語りたい
      • Java 19が正式リリース。より軽量な仮想スレッド、RISC-Vへの移植など新機能。1年後のJava 21が次のLTS版に

        Java 19が正式リリース。より軽量な仮想スレッド、RISC-Vへの移植など新機能。1年後のJava 21が次のLTS版に Javaの新バージョン「Java 19」正式版がリリースされました。 Java 19 is now available! #Java19 #JDK19 #openjdk Download now: https://t.co/dKovWtNGrs Release notes: https://t.co/EOyaGTLHrl API Javadoc: https://t.co/ViIj9H4JrI Features: https://t.co/XuEExSR7gs Inside Java on JDK 19: https://t.co/q5WGZwxMzb pic.twitter.com/XYYA06ll0m — Java (@java) September 20, 2

          Java 19が正式リリース。より軽量な仮想スレッド、RISC-Vへの移植など新機能。1年後のJava 21が次のLTS版に
        • Kotlinの「コンテクスト指向プログラミング」とは何か? - Don't Repeat Yourself

          導入 Kotlinにおける高階関数 2種類の高階関数 スコープ関数 コンテクスト指向プログラミングで何ができるか? Context Parametersによるコンテクスト指向プログラミングの拡張 定義と解決したい課題 できること モノイド Raise DSL 関数型プログラミング言語からの影響 最後に 導入 あまりKotlinそれ自体で話題になっているわけではないのですが、Kotlinは「コンテクスト指向なプログラミング言語だ」とたまに言及されることがあります。たとえばKotlinのコンパイラチームの方が書いている記事にそのような用語で言及されているのを見かけます。 proandroiddev.com 私はKotlinに入門した際に、この言語はスコープの単位でいろいろ物事が整理されるように作られていそうだと感じていました。たとえばスマートキャストのように、特定の操作をして以降のスコープにお

            Kotlinの「コンテクスト指向プログラミング」とは何か? - Don't Repeat Yourself
          • Kotlinの新しいエラーハンドリング「Rich Errors」 - Don't Repeat Yourself

            先日より開催されていたKotlinConfで、新しいエラーハンドリング「Rich Errors」についての言及がありました。従来のように例外を使用するのではなく、エラーを値として扱えるようにする新機能です。聴き逃しているだけかもしれませんが、まだリリース予定などは立っておらず、機能を設計中の段階なのではないかと思われます。 私はもともとKotlinのエラーハンドリングはなかなか悩ましいなと思っていた節があり、ずいぶん前からKEEP上での議論を追うなどしてキャッチアップしていました。最近同僚ともエラーハンドリングに関する決め事をあれこれするために議論しており、私自身はエラーハンドリングに対する関心が高いです。 私の所感としては、Kotlinの言語設計によく合ったエラーハンドリングの方式が採用されそうで非常に楽しみにしています。最近の議論ではともすればモナドであるとか、Result<T, E>

              Kotlinの新しいエラーハンドリング「Rich Errors」 - Don't Repeat Yourself
            • Java 17の新機能でドメインモデリングの表現力を高めてみる - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

              基盤本部(開発部門)の木下です。Java 17 の新機能を使って、ドメイン駆動設計(Domain Driven Design: DDD)のモデリングの表現力を高める例をご紹介します。 皆さんは「事前条件が OK ならデータベースを更新する」というロジックを、クリーンアーキテクチャのどのレイヤーに実装していますか? 事前条件はドメイン知識なのでドメインサービスに実装したいところですが、リポジトリーを操作するアプリケーションサービスの中に書かれることも多いのではないでしょうか。 クリーンアーキテクチャー。https://style.biglobe.co.jp/entry/2020/02/13/150709 より引用 この記事では、ドメインサービスとアプリケーションサービスをきれいに分離するために、Java 17 で正式導入された interface の sealed と permits を活用

                Java 17の新機能でドメインモデリングの表現力を高めてみる - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
              • OOP: the worst thing that happened to programming

                > BTC: bc1qs0sq7agz5j30qnqz9m60xj4tt8th6aazgw7kxr ETH: 0x1D834755b5e889703930AC9b784CB625B3cd833E USDT(Tron): TPrCq8LxGykQ4as3o1oB8V7x1w2YPU2o5n Ton: UQAtBuFWI3H_LpHfEToil4iYemtfmyzlaJpahM3tFSoxomYQ Doge: D7GMQdKhKC9ymbT9PtcetSFTQjyPRRfkwTdismiss OOP: the worst thing that happened to programming [2/24/2025] In this article, we will try to understand why OOP is the worst thing that happened to prog

                  OOP: the worst thing that happened to programming
                • ZOZOマッチアプリのアーキテクチャと技術構成 - ZOZO TECH BLOG

                  はじめに こんにちは、ZOZOの堀江(@Horie1024)です。2025年6月、新規事業として「ZOZOマッチ」をリリースしました。ZOZOマッチは、ZOZOとして初めてFlutterを採用したモバイルアプリです。これまでiOS/Androidそれぞれでの開発体制をとってきた中でFlutterでのクロスプラットフォーム開発に舵を切るのは、ZOZOにとって新しい挑戦でした。 本記事は、社外登壇イベント「ナレッジナイト」で使用した資料1をベースに、一部内容を加筆・整理してまとめたものです。私たちがFlutterを選定した背景と、実際のアーキテクチャ・技術構成について紹介します。ZOZOにおける新しい挑戦の記録であると同時に、これからFlutterを導入しようとするチームの参考になれば幸いです。 目次 はじめに 目次 ZOZOマッチとは Flutter採用の背景 ビジネス的背景 チーム的背景

                    ZOZOマッチアプリのアーキテクチャと技術構成 - ZOZO TECH BLOG
                  • JDK 21のswitch式でpattern match書いたら10倍以上遅い件 - xuwei-k's blog

                    switch式の結果javapしたらhttps://t.co/xMc0YEYsrg java.lang.runtime.SwitchBootstraps と tableswitch が使われることに気がついたが、これ巨大なswitch式をJDK 21以降で書いた場合、同等の巨大なmatch式をScalaで書くよりも速度が速い可能性があるのでは??? これScalaで活用できるか?というと— Kenji Yoshida (@xuwei_k) September 25, 2023 switch式の結果javapしたら https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/runtime/SwitchBootstraps.html java.lang.runtime.SwitchBootstraps と ta

                      JDK 21のswitch式でpattern match書いたら10倍以上遅い件 - xuwei-k's blog
                    • Ktor × Exposed × Koin × kotlin-resultを用いたDDDを意識したアプリケーションの実装 - Don't Repeat Yourself

                      ここ数年で『関数型ドメインモデリング』という書籍や、『Functional and Reactive Domain Modeling』といった書籍を読んだ経験から、今業務で取り組んでいるKotlinではどう表現できるのかに興味がありました。年末年始に少しまとまった時間が取れたので、実際に実装してみました。今回は、その過程でどのような知見を得られたかを、主には自分の理解のためにまとめておきたいと思います。 関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう (アスキードワンゴ) 作者:Scott Wlaschin,猪股 健太郎ドワンゴAmazon github.com 先に書いておきますが、長いです。目次をご覧になって、興味のある場所をかいつまんでお読みください。 免責事項 お題 技術スタック 設計 全体的な設計 Kotlinの使用に関するもの データ型の定

                        Ktor × Exposed × Koin × kotlin-resultを用いたDDDを意識したアプリケーションの実装 - Don't Repeat Yourself
                      • 代数的データ型をJavaで安全に使いこなす - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

                        基盤本部(開発部門)の木下です。前回、Java 17 の新機能を使ってドメイン駆動設計(Domain Driven Design: DDD)のモデリングの表現力を高める例をご紹介しました。 style.biglobe.co.jp 代数的データ型(Algebraic Data Types)を導入するのがポイントなのですが、馴染みのないメンバーも多かったので、実例を使って詳しく解説してみました。関数型プログラミング由来のとても便利な道具です。ぜひ活用してみてください。 代数的データ型とは 直積型 直和型 直和型の Java での実装 ベタに class で表現してみる 2つのクラスと interface で実現 安全に利用できるメソッドを提供する おわりに 代数的データ型とは 代数的データ型とは、基本となる型を組み合わせて作られる型のことです。 代数的データ型は直和型と直積型の2つからなります

                          代数的データ型をJavaで安全に使いこなす - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
                        • Kotlin sealedタイプによる論理和型の実装: ポリモーフィズム形式と代数的データ型形式 - ドワンゴ教育サービス開発者ブログ

                          はじめに ポリモーフィズム形式の実装 ポリモーフィズム形式の実装の利点 ポリモーフィズム形式の実装の欠点 代数的データ型形式の実装 代数的データ型形式の実装の利点 代数的データ型形式の実装の欠点 まとめ We are hiring! はじめに Kotlinのsealedタイプ (sealed class と sealed interface) は、外部モジュールによるクラスの継承やインターフェースの実装 (以降は実装で統一します) を制限することで、継承先クラスの一覧を静的に取得できるようにする機能です。 以下は公式ドキュメントの例ですが、sealedタイプを使うことで log() 関数内の when が全てのとり得るパターンを網羅していることがコンパイル時にチェックされ、冗長な else を省くことができます。 また、Error インターフェースの直接の実装先が増えて when が網羅性

                            Kotlin sealedタイプによる論理和型の実装: ポリモーフィズム形式と代数的データ型形式 - ドワンゴ教育サービス開発者ブログ
                          • Announcing Dart 3

                            Hello from Google I/O 2023. Today, live from Mountain View, we’re announcing Dart 3 — the largest Dart release to date! Dart 3 contains three major advancements. First, we’ve completed the journey to 100% sound null safety. Second, we’ve added major new language features for records, patterns, and class modifiers. Third, we’re giving a preview of the future, where we broaden our platform support w

                              Announcing Dart 3
                            • Android版CODEアプリのアーキテクチャと使用ライブラリ - リサーチ・アンド・イノベーション 開発者ブログ

                              リサーチ・アンド・イノベーションの高田(tfandkusu)です。Androidエンジニアをやっています。弊社には3人目のAndroidエンジニアを採用する予定があり現在準備中です。この記事では応募者が弊社で働くイメージを持ちやすくするために、Android版CODEアプリのアーキテクチャと使用ライブラリを広く簡潔に紹介します。 アーキテクチャ アーキテクチャは5層構造のレイヤードアーキテクチャになっています。Android公式のアプリの推奨アーキテクチャのViewModelとRepositoryの間にUseCaseを加えた構造を採用しています。UseCaseを加えた理由はViewModelの単体テストの肥大化を防ぐためです。 アーキテクチャ 非同期処理 Kotlin CoroutinesをFlowを含めて使用してます。 RemoteDataStore サーバサイドはRuby on Rai

                                Android版CODEアプリのアーキテクチャと使用ライブラリ - リサーチ・アンド・イノベーション 開発者ブログ
                              • neue cc - R3 - C#用のReactive Extensionsの新しい現代的再実装

                                先日、新しいC#用のReactive Extensionsの実装としてR3を正式公開しました!R3はRx for .NETを第一世代、UniRxを第二世代とした場合の、第三世代のRxという意味で命名しています。Rxとしてのコア部分(ほぼdotnet/reactiveと同様)は.NET共通のライブラリとして提供し、各プラットフォーム特化のカスタムスケジューラーやオペレーターは別ライブラリに分けるという形により、全ての.NETプラットフォーム向けのコアライブラリと、各種フレームワーク Unity, Godot, Avalonia, WPF, WinForms, WinUI3, Stride, LogicLooper, MAUI, MonoGame 向けの拡張ライブラリを提供しています。 GitHub - Cysharp/R3 幾つかの破壊的変更を含むため、ドロップインリプレースメントではないで

                                • grpc-kotlinの実装をinterfaceの定義によってテンプレート化する - ドワンゴ教育サービス開発者ブログ

                                  はじめに grpc-kotlin の実装に必要な要素 リクエスト・レスポンスクラス サービスクラス サーバークラス 普通に実装したときの不満点 不満1: 異なる関心事の混在 不満2: 共通処理 不満3: エラーハンドリング インターフェースを定義する validateAndConvertRequest process convertResponse エラーハンドリング おわりに We are hiring! & Kotlin Fest出展のお知らせ はじめに 過去にも何度か紹介しておりますが、現在開発中の新しい教材システムでは新たにgRPC通信によるKotlinサーバーを採用して開発が進められています。 blog.nnn.dev そして、技術選定の方針としてWebアプリケーションフレームワークはなるべくシンプルで薄くすることを決めたので、Spring Boot のような別フレームワークを介

                                    grpc-kotlinの実装をinterfaceの定義によってテンプレート化する - ドワンゴ教育サービス開発者ブログ
                                  • 代数データ型の直積型と直和型の理解 - きしだのHatena

                                    代数データ型という考え方があって、型に対する代数的な操作を行うものっぽいです。代数的な操作というのは、足し算とか掛け算ですね。直和型と直積型というのがあります。 直積型は構造体のようなもので、Javaだとrecordが導入されましたね。 record A(int p1, boolean p2) {} みたいなものです。 これがなぜ積なのかというと、このレコードAの取りうる値の組み合わせは、intの値のパターン数(2 ^ 32) × booleanの値のパターン数(2)で2 ^ 33になるからなんだと思います。 直和型は、型がこれかこれ、みたいになるやつです。Javaだとtry-catchのcatch句に直和型が指定できて、この例外かこの例外、みたいな書き方ができますね。 catch (NullPointerException | NumberFormatException ex) あとse

                                      代数データ型の直積型と直和型の理解 - きしだのHatena
                                    • 要約Java8→17 。何が変わったのか?

                                      Java17が2021/9/14にリリースされました。 Java17は長期サポートされる(LTS)バージョンです。 特にJavaに携わっているエンジニアが大半というボンズテックでは注視していることでもあります。 エンタープライズとして今後もJavaを使っていけるかの試金石になるバージョンなのではないかと感じています。 実際にJava17になって何が変わったのかを要約解説いたします。 1.何でJava8→Java17なのか? Oracle JDK 17より再び無償利用可能。この1点に尽きます。 ご存じの方も多いと思いますが、OracleはJava11から商用利用を有償化したため、LTS(Long Term Support、長期サポート)版としてはJava8が最終版となっていました。 ところが一転、先日リリースされた「Oracle JDK 17」では再び無償化となりました。 理由は推測するしか

                                        要約Java8→17 。何が変わったのか?
                                      • とほほのKotlin入門 - とほほのWWW入門

                                        概要 Kotlinとは Kotlinを試してみる インストール Hello world 基本的な覚え事 コマンド引数 print, println コメント 行末のセミコロン コーディング規約 キーワード 変数 型 真偽値(Boolean) 数値(Byte, Short, Int, Long, Float, Double) 文字(Char) 文字列(String) Any型(Any) 型変換 配列 リスト セット マップ レンジ(range) 型を確認する(is, !is) 型の別名(typealias) キャスト(as, as?) ダイナミック型(dynamic) 演算子 制御構文 if式 fotループ forEachループ whileループ do-whileループ break文 continue文 when式 ラベル(@) 例外処理(try, throw, catch, finally

                                        • xvw.lol - Why I chose OCaml as my primary language

                                          This article is a translation, the original version is available here. I started using the OCaml language regularly around 2012, and since then, my interest and enthusiasm for this language have only grown. It has become my preferred choice for almost all my personal projects, and it has also influenced my professional choices. Since 2014, I have been actively participating in public conferences d

                                          • Unityのアプリ上でWebAssemblyを動かしてみる - Activ8 Tech Blog

                                            こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 唐突ですが、自分は「WebAssembly(Wasm)」という技術はほとんどよく知らずに「Webブラウザ上でJavaScript以外のコードが高パフォーマンスで動かせる」くらいのものだと勝手に想像していて、UnityやC#でアプリケーションの開発をしている自分とは関わりが薄いだろうと思っていました。 ところが、たまたま別の調べ物をしていた際に次の記事を見つけ、Unityのアプリケーション上でWasmのコードを動かすことができることに衝撃を受けました。 zenn.dev 特に驚いたポイントは下記でした。 Wasmがブラウザだけではなくアプリの上でも動作すること Wasmの作成は様々な言語で可能なこと WasmのバイナリはOSやCPUアーキテクチャ別に用意する必要がないこと*1 通常のソフトウェア開発ではこれら

                                              Unityのアプリ上でWebAssemblyを動かしてみる - Activ8 Tech Blog
                                            • (翻訳) Kotlinでの型付きエラー処理 - /var/log/jsoizo

                                              この記事は以下のブログの翻訳記事で、著者の許諾のもと翻訳しています。翻訳過程で機械翻訳を活用しており、原典と翻訳を十分に照らし合わせて内容が正しいことを確認しておりますが、細かいニュアンスなどが気になる場合は原典をご確認ください。また、誤訳などあればtwitterにてご連絡いただけたら修正いたします。 medium.com 目次 目次 イントロ 例外(Exceptions) 型付きエラー処理(Typed Error Handling) 比較研究 実験結果 6位: 早期returnなしのsealed classマッチング 5位: Either<L, R> のflatMapチェーン 4位: 例外と再スロー(rethrow) 3位: 早期returnありのsealed classマッチング 2位: Arrowの either { } ビルダー 1位: Arrowの context(Raise<E

                                                (翻訳) Kotlinでの型付きエラー処理 - /var/log/jsoizo
                                              • Android版『NAVITIME』 リアーキテクチャのすべて|NAVITIME_Tech

                                                こんにちは、うつぼです。ナビタイムジャパンで『NAVITIME』アプリのAndroid開発を担当しています。 2年前より『NAVITIME』Androidアプリのリアーキテクチャを推進していました。私はリードエンジニアとして、開発や設計、レビュー、そして開発チームの最適化などを行ってきました。 この度それが完了したため、導入したアーキテクチャや開発の工夫を振り返ろうと思います。 ※リアーキテクチャは、リニューアルの一環として行われ、アプリとしてはUIも新しく刷新しています。リニューアルしたアプリは現在、GooglePlayにて段階的に公開しています。 なぜリアーキテクチャするのか、リアーキテクチャ開始時の構想などについては下記をご覧ください。 アプリの構成リアーキテクチャを振り返る上で必要な、アプリの構成です。 MVVM + レイヤードアーキテクチャ Databinding 画面はFrag

                                                  Android版『NAVITIME』 リアーキテクチャのすべて|NAVITIME_Tech
                                                • Kotlin 1.6.0 Released | The Kotlin Blog

                                                  Kotlin 1.6.0 is now officially released with Stable exhaustive whens, Kover, and a new memory manager for Kotlin/Native. Other language and standard library features released in 1.5.30 became Stable as well. Thanks for the feedback you’ve shared with us. If you still haven’t tried these new features out, now is the time! In this blog post, you can find an overview of the following updates: Languag

                                                    Kotlin 1.6.0 Released | The Kotlin Blog
                                                  • The huge potential of Kotlin/Wasm

                                                    Last week, a preview release of Kotlin/Wasm was announced as part of Kotlin 1.8.20-Beta. For me who has been nudging the Kotlin team to work on WebAssembly support since June 2016, that’s a huge step forward even if providing WebAssembly first class support for Kotlin will be a long journey. I also decided recently to contribute actively by creating KoWasm, an experimental side project intended to

                                                    • C# at Google Style Guide 日本語訳

                                                      google_csharp_style_guide_ja.md C# at Google Style Guide を日本語訳したものです。一部こなれていない箇所もあるので、お気づきの点があれば気軽にコメントでご指摘頂ければ幸いです。 C# at Google Style Guide 日本語訳 このスタイルガイドは Google 社内で開発された C# コード用であり、Google の C# コードのデフォルトのスタイルです。 Google C++ スタイルや Google Java スタイルなど、Google の他の言語に準拠した文体の選択を行います。 フォーマットについてのガイドライン 命名規則 命名規則は Microsoft の C# 命名ガイドラインに従います。Microsoft の命名ガイドラインが指定されていない場合(プライベート変数やローカル変数など)、ルールは CoreFX

                                                        C# at Google Style Guide 日本語訳
                                                      • コード品質向上のテクニック:第45回 終わり null ならすべてよし?

                                                        こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 45 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) 終わり null ならすべてよし? Java や Kotlin の Iterator で next を呼ぶときは、「次」の要素が存在することを確認しなければなりません (通常は hasNext で確認します)。以下のコードのように、「次」の要素がない状態で next を呼び出すと、NoSuchE

                                                          コード品質向上のテクニック:第45回 終わり null ならすべてよし?
                                                        1