From 3f1cea822f3f6f76154cb6e1a689174def3e9f97 Mon Sep 17 00:00:00 2001 From: Bazlur Rahman Date: Sun, 1 Mar 2026 23:40:57 -0500 Subject: [PATCH 1/4] feat: Add Bengali YAML translations --- html-generators/locales.properties | 1 + .../bn/collections/collectors-teeing.yaml | 18 ++++ .../copying-collections-immutably.yaml | 18 ++++ .../collections/immutable-list-creation.yaml | 18 ++++ .../collections/immutable-map-creation.yaml | 18 ++++ .../collections/immutable-set-creation.yaml | 18 ++++ .../bn/collections/map-entry-factory.yaml | 18 ++++ .../collections/reverse-list-iteration.yaml | 18 ++++ .../bn/collections/sequenced-collections.yaml | 18 ++++ .../bn/collections/stream-toarray-typed.yaml | 18 ++++ .../collections/unmodifiable-collectors.yaml | 18 ++++ .../completablefuture-chaining.yaml | 18 ++++ .../concurrency/concurrent-http-virtual.yaml | 18 ++++ .../executor-try-with-resources.yaml | 18 ++++ .../bn/concurrency/lock-free-lazy-init.yaml | 18 ++++ .../content/bn/concurrency/process-api.yaml | 18 ++++ .../content/bn/concurrency/scoped-values.yaml | 18 ++++ .../content/bn/concurrency/stable-values.yaml | 18 ++++ .../concurrency/structured-concurrency.yaml | 18 ++++ .../bn/concurrency/thread-sleep-duration.yaml | 18 ++++ .../bn/concurrency/virtual-threads.yaml | 18 ++++ .../content/bn/datetime/date-formatting.yaml | 18 ++++ .../bn/datetime/duration-and-period.yaml | 18 ++++ .../content/bn/datetime/hex-format.yaml | 18 ++++ .../bn/datetime/instant-precision.yaml | 18 ++++ .../content/bn/datetime/java-time-basics.yaml | 18 ++++ .../content/bn/datetime/math-clamp.yaml | 18 ++++ .../ejb-timer-vs-jakarta-scheduler.yaml | 18 ++++ .../content/bn/enterprise/ejb-vs-cdi.yaml | 18 ++++ .../jdbc-resultset-vs-jpa-criteria.yaml | 18 ++++ .../content/bn/enterprise/jdbc-vs-jooq.yaml | 18 ++++ .../content/bn/enterprise/jdbc-vs-jpa.yaml | 18 ++++ .../jndi-lookup-vs-cdi-injection.yaml | 18 ++++ .../bn/enterprise/jpa-vs-jakarta-data.yaml | 18 ++++ .../jsf-managed-bean-vs-cdi-named.yaml | 18 ++++ .../manual-transaction-vs-declarative.yaml | 18 ++++ .../enterprise/mdb-vs-reactive-messaging.yaml | 18 ++++ .../bn/enterprise/servlet-vs-jaxrs.yaml | 18 ++++ ...ngleton-ejb-vs-cdi-application-scoped.yaml | 18 ++++ .../bn/enterprise/soap-vs-jakarta-rest.yaml | 18 ++++ .../bn/enterprise/spring-api-versioning.yaml | 18 ++++ .../spring-null-safety-jspecify.yaml | 18 ++++ .../spring-xml-config-vs-annotations.yaml | 18 ++++ .../content/bn/errors/helpful-npe.yaml | 18 ++++ .../content/bn/errors/multi-catch.yaml | 18 ++++ .../content/bn/errors/null-in-switch.yaml | 18 ++++ .../content/bn/errors/optional-chaining.yaml | 18 ++++ .../bn/errors/optional-orelsethrow.yaml | 18 ++++ .../bn/errors/record-based-errors.yaml | 18 ++++ .../bn/errors/require-nonnull-else.yaml | 18 ++++ .../bn/io/deserialization-filters.yaml | 18 ++++ .../content/bn/io/file-memory-mapping.yaml | 18 ++++ .../content/bn/io/files-mismatch.yaml | 18 ++++ translations/content/bn/io/http-client.yaml | 18 ++++ .../content/bn/io/inputstream-transferto.yaml | 18 ++++ .../content/bn/io/io-class-console-io.yaml | 18 ++++ translations/content/bn/io/path-of.yaml | 18 ++++ translations/content/bn/io/reading-files.yaml | 18 ++++ .../try-with-resources-effectively-final.yaml | 18 ++++ translations/content/bn/io/writing-files.yaml | 18 ++++ .../compact-canonical-constructor.yaml | 18 ++++ .../bn/language/compact-source-files.yaml | 18 ++++ .../language/default-interface-methods.yaml | 18 ++++ .../content/bn/language/diamond-operator.yaml | 18 ++++ .../bn/language/exhaustive-switch.yaml | 21 +++++ .../language/flexible-constructor-bodies.yaml | 18 ++++ .../content/bn/language/guarded-patterns.yaml | 18 ++++ .../language/markdown-javadoc-comments.yaml | 18 ++++ .../language/module-import-declarations.yaml | 18 ++++ .../language/pattern-matching-instanceof.yaml | 18 ++++ .../bn/language/pattern-matching-switch.yaml | 18 ++++ .../language/primitive-types-in-patterns.yaml | 18 ++++ .../language/private-interface-methods.yaml | 18 ++++ .../content/bn/language/record-patterns.yaml | 18 ++++ .../bn/language/records-for-data-classes.yaml | 18 ++++ .../content/bn/language/sealed-classes.yaml | 18 ++++ .../static-members-in-inner-classes.yaml | 18 ++++ .../static-methods-in-interfaces.yaml | 18 ++++ .../bn/language/switch-expressions.yaml | 18 ++++ .../text-blocks-for-multiline-strings.yaml | 18 ++++ .../bn/language/type-inference-with-var.yaml | 18 ++++ .../bn/language/unnamed-variables.yaml | 18 ++++ .../bn/security/key-derivation-functions.yaml | 18 ++++ .../content/bn/security/pem-encoding.yaml | 18 ++++ .../content/bn/security/random-generator.yaml | 18 ++++ .../content/bn/security/strong-random.yaml | 18 ++++ .../content/bn/security/tls-default.yaml | 18 ++++ .../bn/streams/collectors-flatmapping.yaml | 18 ++++ .../bn/streams/optional-ifpresentorelse.yaml | 18 ++++ .../content/bn/streams/optional-or.yaml | 18 ++++ .../content/bn/streams/predicate-not.yaml | 18 ++++ .../content/bn/streams/stream-gatherers.yaml | 18 ++++ .../bn/streams/stream-iterate-predicate.yaml | 18 ++++ .../content/bn/streams/stream-mapmulti.yaml | 18 ++++ .../bn/streams/stream-of-nullable.yaml | 18 ++++ .../streams/stream-takewhile-dropwhile.yaml | 18 ++++ .../content/bn/streams/stream-tolist.yaml | 18 ++++ .../bn/streams/virtual-thread-executor.yaml | 18 ++++ .../bn/strings/string-chars-stream.yaml | 18 ++++ .../content/bn/strings/string-formatted.yaml | 18 ++++ .../bn/strings/string-indent-transform.yaml | 18 ++++ .../content/bn/strings/string-isblank.yaml | 18 ++++ .../content/bn/strings/string-lines.yaml | 18 ++++ .../content/bn/strings/string-repeat.yaml | 18 ++++ .../content/bn/strings/string-strip.yaml | 18 ++++ .../bn/tooling/aot-class-preloading.yaml | 18 ++++ .../bn/tooling/built-in-http-server.yaml | 18 ++++ .../bn/tooling/compact-object-headers.yaml | 18 ++++ .../content/bn/tooling/jfr-profiling.yaml | 18 ++++ .../bn/tooling/jshell-prototyping.yaml | 18 ++++ .../bn/tooling/junit6-with-jspecify.yaml | 18 ++++ .../content/bn/tooling/multi-file-source.yaml | 18 ++++ .../bn/tooling/single-file-execution.yaml | 18 ++++ translations/strings/bn.yaml | 88 +++++++++++++++++++ 114 files changed, 2108 insertions(+) create mode 100644 translations/content/bn/collections/collectors-teeing.yaml create mode 100644 translations/content/bn/collections/copying-collections-immutably.yaml create mode 100644 translations/content/bn/collections/immutable-list-creation.yaml create mode 100644 translations/content/bn/collections/immutable-map-creation.yaml create mode 100644 translations/content/bn/collections/immutable-set-creation.yaml create mode 100644 translations/content/bn/collections/map-entry-factory.yaml create mode 100644 translations/content/bn/collections/reverse-list-iteration.yaml create mode 100644 translations/content/bn/collections/sequenced-collections.yaml create mode 100644 translations/content/bn/collections/stream-toarray-typed.yaml create mode 100644 translations/content/bn/collections/unmodifiable-collectors.yaml create mode 100644 translations/content/bn/concurrency/completablefuture-chaining.yaml create mode 100644 translations/content/bn/concurrency/concurrent-http-virtual.yaml create mode 100644 translations/content/bn/concurrency/executor-try-with-resources.yaml create mode 100644 translations/content/bn/concurrency/lock-free-lazy-init.yaml create mode 100644 translations/content/bn/concurrency/process-api.yaml create mode 100644 translations/content/bn/concurrency/scoped-values.yaml create mode 100644 translations/content/bn/concurrency/stable-values.yaml create mode 100644 translations/content/bn/concurrency/structured-concurrency.yaml create mode 100644 translations/content/bn/concurrency/thread-sleep-duration.yaml create mode 100644 translations/content/bn/concurrency/virtual-threads.yaml create mode 100644 translations/content/bn/datetime/date-formatting.yaml create mode 100644 translations/content/bn/datetime/duration-and-period.yaml create mode 100644 translations/content/bn/datetime/hex-format.yaml create mode 100644 translations/content/bn/datetime/instant-precision.yaml create mode 100644 translations/content/bn/datetime/java-time-basics.yaml create mode 100644 translations/content/bn/datetime/math-clamp.yaml create mode 100644 translations/content/bn/enterprise/ejb-timer-vs-jakarta-scheduler.yaml create mode 100644 translations/content/bn/enterprise/ejb-vs-cdi.yaml create mode 100644 translations/content/bn/enterprise/jdbc-resultset-vs-jpa-criteria.yaml create mode 100644 translations/content/bn/enterprise/jdbc-vs-jooq.yaml create mode 100644 translations/content/bn/enterprise/jdbc-vs-jpa.yaml create mode 100644 translations/content/bn/enterprise/jndi-lookup-vs-cdi-injection.yaml create mode 100644 translations/content/bn/enterprise/jpa-vs-jakarta-data.yaml create mode 100644 translations/content/bn/enterprise/jsf-managed-bean-vs-cdi-named.yaml create mode 100644 translations/content/bn/enterprise/manual-transaction-vs-declarative.yaml create mode 100644 translations/content/bn/enterprise/mdb-vs-reactive-messaging.yaml create mode 100644 translations/content/bn/enterprise/servlet-vs-jaxrs.yaml create mode 100644 translations/content/bn/enterprise/singleton-ejb-vs-cdi-application-scoped.yaml create mode 100644 translations/content/bn/enterprise/soap-vs-jakarta-rest.yaml create mode 100644 translations/content/bn/enterprise/spring-api-versioning.yaml create mode 100644 translations/content/bn/enterprise/spring-null-safety-jspecify.yaml create mode 100644 translations/content/bn/enterprise/spring-xml-config-vs-annotations.yaml create mode 100644 translations/content/bn/errors/helpful-npe.yaml create mode 100644 translations/content/bn/errors/multi-catch.yaml create mode 100644 translations/content/bn/errors/null-in-switch.yaml create mode 100644 translations/content/bn/errors/optional-chaining.yaml create mode 100644 translations/content/bn/errors/optional-orelsethrow.yaml create mode 100644 translations/content/bn/errors/record-based-errors.yaml create mode 100644 translations/content/bn/errors/require-nonnull-else.yaml create mode 100644 translations/content/bn/io/deserialization-filters.yaml create mode 100644 translations/content/bn/io/file-memory-mapping.yaml create mode 100644 translations/content/bn/io/files-mismatch.yaml create mode 100644 translations/content/bn/io/http-client.yaml create mode 100644 translations/content/bn/io/inputstream-transferto.yaml create mode 100644 translations/content/bn/io/io-class-console-io.yaml create mode 100644 translations/content/bn/io/path-of.yaml create mode 100644 translations/content/bn/io/reading-files.yaml create mode 100644 translations/content/bn/io/try-with-resources-effectively-final.yaml create mode 100644 translations/content/bn/io/writing-files.yaml create mode 100644 translations/content/bn/language/compact-canonical-constructor.yaml create mode 100644 translations/content/bn/language/compact-source-files.yaml create mode 100644 translations/content/bn/language/default-interface-methods.yaml create mode 100644 translations/content/bn/language/diamond-operator.yaml create mode 100644 translations/content/bn/language/exhaustive-switch.yaml create mode 100644 translations/content/bn/language/flexible-constructor-bodies.yaml create mode 100644 translations/content/bn/language/guarded-patterns.yaml create mode 100644 translations/content/bn/language/markdown-javadoc-comments.yaml create mode 100644 translations/content/bn/language/module-import-declarations.yaml create mode 100644 translations/content/bn/language/pattern-matching-instanceof.yaml create mode 100644 translations/content/bn/language/pattern-matching-switch.yaml create mode 100644 translations/content/bn/language/primitive-types-in-patterns.yaml create mode 100644 translations/content/bn/language/private-interface-methods.yaml create mode 100644 translations/content/bn/language/record-patterns.yaml create mode 100644 translations/content/bn/language/records-for-data-classes.yaml create mode 100644 translations/content/bn/language/sealed-classes.yaml create mode 100644 translations/content/bn/language/static-members-in-inner-classes.yaml create mode 100644 translations/content/bn/language/static-methods-in-interfaces.yaml create mode 100644 translations/content/bn/language/switch-expressions.yaml create mode 100644 translations/content/bn/language/text-blocks-for-multiline-strings.yaml create mode 100644 translations/content/bn/language/type-inference-with-var.yaml create mode 100644 translations/content/bn/language/unnamed-variables.yaml create mode 100644 translations/content/bn/security/key-derivation-functions.yaml create mode 100644 translations/content/bn/security/pem-encoding.yaml create mode 100644 translations/content/bn/security/random-generator.yaml create mode 100644 translations/content/bn/security/strong-random.yaml create mode 100644 translations/content/bn/security/tls-default.yaml create mode 100644 translations/content/bn/streams/collectors-flatmapping.yaml create mode 100644 translations/content/bn/streams/optional-ifpresentorelse.yaml create mode 100644 translations/content/bn/streams/optional-or.yaml create mode 100644 translations/content/bn/streams/predicate-not.yaml create mode 100644 translations/content/bn/streams/stream-gatherers.yaml create mode 100644 translations/content/bn/streams/stream-iterate-predicate.yaml create mode 100644 translations/content/bn/streams/stream-mapmulti.yaml create mode 100644 translations/content/bn/streams/stream-of-nullable.yaml create mode 100644 translations/content/bn/streams/stream-takewhile-dropwhile.yaml create mode 100644 translations/content/bn/streams/stream-tolist.yaml create mode 100644 translations/content/bn/streams/virtual-thread-executor.yaml create mode 100644 translations/content/bn/strings/string-chars-stream.yaml create mode 100644 translations/content/bn/strings/string-formatted.yaml create mode 100644 translations/content/bn/strings/string-indent-transform.yaml create mode 100644 translations/content/bn/strings/string-isblank.yaml create mode 100644 translations/content/bn/strings/string-lines.yaml create mode 100644 translations/content/bn/strings/string-repeat.yaml create mode 100644 translations/content/bn/strings/string-strip.yaml create mode 100644 translations/content/bn/tooling/aot-class-preloading.yaml create mode 100644 translations/content/bn/tooling/built-in-http-server.yaml create mode 100644 translations/content/bn/tooling/compact-object-headers.yaml create mode 100644 translations/content/bn/tooling/jfr-profiling.yaml create mode 100644 translations/content/bn/tooling/jshell-prototyping.yaml create mode 100644 translations/content/bn/tooling/junit6-with-jspecify.yaml create mode 100644 translations/content/bn/tooling/multi-file-source.yaml create mode 100644 translations/content/bn/tooling/single-file-execution.yaml create mode 100644 translations/strings/bn.yaml diff --git a/html-generators/locales.properties b/html-generators/locales.properties index 1013c65..12b7ca3 100644 --- a/html-generators/locales.properties +++ b/html-generators/locales.properties @@ -8,3 +8,4 @@ ar=🇸đŸ‡Ļ Ø§Ų„ØšØąØ¨ŲŠØŠ fr=đŸ‡Ģ🇷 Français ja=đŸ‡¯đŸ‡ĩ æ—ĨæœŦčĒž ko=🇰🇷 한ęĩ­ė–´ +bn=🇧🇩 āĻŦāĻžāĻ‚āϞāĻž diff --git a/translations/content/bn/collections/collectors-teeing.yaml b/translations/content/bn/collections/collectors-teeing.yaml new file mode 100644 index 0000000..349821e --- /dev/null +++ b/translations/content/bn/collections/collectors-teeing.yaml @@ -0,0 +1,18 @@ +--- +title: Collectors.teeing() +oldApproach: āĻĻ⧁āϟāĻŋ āϧāĻžāĻĒ⧇ +modernApproach: teeing() +summary: āĻāĻ•āĻŦāĻžāϰ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻŸā§āϰāĻžāĻ­āĻžāĻ°ā§āϏ āĻ•āϰ⧇āχ āĻĻ⧁āϟāĻŋ āφāϞāĻžāĻĻāĻž āĻāĻ—ā§āϰāĻŋāϗ⧇āĻļāύ (āϏāĻŽāĻˇā§āϟāĻŋ) āĻŦ⧇āϰ āĻ•āϰ⧁āύāĨ¤ +explanation: Collectors.teeing() āĻ¸ā§āĻŸā§āϰāĻŋāĻŽā§‡āϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύāϕ⧇ āĻĻ⧁āϟāĻŋ āφāϞāĻžāĻĻāĻž āĻĄāĻžāωāύāĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ•āĻžāϞ⧇āĻ•ā§āϟāϰ⧇ āĻĒāĻžāĻ āĻžāϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāĻĻ⧇āϰ āĻĢāϞāĻžāĻĢāϞāϗ⧁āϞ⧋āϕ⧇ āĻŽāĻžāĻ°ā§āϜ āĻŦāĻž āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻāϰ āĻĢāϞ⧇ āĻāĻ•āχ āĻĄā§‡āϟāĻž āĻĻ⧁āχāĻŦāĻžāϰ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ āύāĻž āĻāĻŦāĻ‚ āĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāĻļā§€āϞ) āĻ…ā§āϝāĻžāϕ⧁āĻŽā§āϞ⧇āϟāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻĒāĻĄāĻŧ⧇ āύāĻžāĨ¤ +whyModernWins: +- icon: "⚡" + title: āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻĒāĻžāϏ + desc: āĻĻ⧁āχāĻŦāĻžāϰ⧇āϰ āĻŦāĻĻāϞ⧇ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāϟāĻŋ āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āĻŦāĻžāϰāχ āĻĒā§āϰāϏ⧇āϏ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "🧩" + title: āĻ•āĻŽā§āĻĒā§‹āĻœā§‡āĻŦāϞ + desc: āϝ⧇āϕ⧋āύ⧋ āĻĻ⧁āϟāĻŋ āĻ•āĻžāϞ⧇āĻ•ā§āϟāϰāϕ⧇ āĻāĻ•āϟāĻŋ āĻŽāĻžāĻ°ā§āϜāĻžāϰ āĻĢāĻžāĻ‚āĻļāύ āĻĻāĻŋā§Ÿā§‡ āϏāĻšāĻœā§‡āχ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "🔒" + title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻĢāϞāĻžāĻĢāϞ + desc: āϏāϰāĻžāϏāϰāĻŋ āϕ⧋āύ⧋ āϰ⧇āĻ•āĻ°ā§āĻĄ (record) āĻŦāĻž āĻ­ā§āϝāĻžāϞ⧁ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡ āĻŽāĻžāĻ°ā§āϜ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +support: + description: JDK 12 (āĻŽāĻžāĻ°ā§āϚ 2019) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/collections/copying-collections-immutably.yaml b/translations/content/bn/collections/copying-collections-immutably.yaml new file mode 100644 index 0000000..e991756 --- /dev/null +++ b/translations/content/bn/collections/copying-collections-immutably.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ•āĻžāϞ⧇āĻ•āĻļāύāϕ⧇ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (āĻ…āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧀āϝāĻŧ) āĻ­āĻžāĻŦ⧇ āĻ•āĻĒāĻŋ āĻ•āϰāĻž +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻ•āĻĒāĻŋ + āĻ°â€ā§āϝāĻžāĻĒ +modernApproach: List.copyOf() +summary: āϝ⧇āϕ⧋āύ⧋ āĻ•āĻžāϞ⧇āĻ•āĻļāύ⧇āϰ āĻāĻ•āϟāĻŋ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻ•āĻĒāĻŋ āĻāĻ• āĻ•āϞ (call)-āĻāχ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤ +explanation: List.copyOf(), Set.copyOf(), āĻāĻŦāĻ‚ Map.copyOf() āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻ•āĻžāϞ⧇āĻ•āĻļāύāϗ⧁āϞ⧋āϰ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻ¸ā§āĻ¨ā§āϝāĻžāĻĒāĻļāϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āϏ⧋āĻ°ā§āϏ āĻ•āĻžāϞ⧇āĻ•āĻļāύāϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻšā§Ÿ, āϤāĻŦ⧇ āϕ⧋āύ⧋ āύāϤ⧁āύ āĻ•āĻĒāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§Ÿ āύāĻžāĨ¤ +whyModernWins: +- icon: "⚡" + title: āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ āĻ•āĻĒāĻŋ + desc: āϏ⧋āĻ°ā§āϏ āĻ•āĻžāϞ⧇āĻ•āĻļāύāϟāĻŋ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻšāϞ⧇, āύāϤ⧁āύ āĻ•āϰ⧇ āĻ•āĻĒāĻŋ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ +- icon: "📏" + title: āĻāĻ• āĻ•āϞ⧇ āĻ•āĻžāϜ āĻļ⧇āώ + desc: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ ArrayList āϤ⧈āϰāĻŋ āĻŦāĻž āĻ°â€ā§āϝāĻžāĻĒ āĻ•āϰāĻžāϰ āĻĻāϰāĻ•āĻžāϰ āύ⧇āχāĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻĄāĻŋāĻĢ⧇āĻ¨ā§āϏāĻŋāĻ­ āĻ•āĻĒāĻŋ + desc: āĻŽā§‚āϞ āĻ•āĻžāϞ⧇āĻ•āĻļāύ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āφāύāϞ⧇āĻ“ āĻ•āĻĒāĻŋ āĻ•āϰāĻž āĻ•āĻžāϞ⧇āĻ•āĻļāύ⧇ āϤāĻžāϰ āϕ⧋āύ⧋ āĻĒā§āϰāĻ­āĻžāĻŦ āĻĒāĻĄāĻŧ⧇ āύāĻžāĨ¤ +support: + description: JDK 10 (āĻŽāĻžāĻ°ā§āϚ 2018) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/collections/immutable-list-creation.yaml b/translations/content/bn/collections/immutable-list-creation.yaml new file mode 100644 index 0000000..c2750e0 --- /dev/null +++ b/translations/content/bn/collections/immutable-list-creation.yaml @@ -0,0 +1,18 @@ +--- +title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (Immutable) āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ +oldApproach: āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ āĻ°â€ā§āϝāĻžāĻĒāĻŋāĻ‚ +modernApproach: List.of() +summary: āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤ +explanation: List.of() āĻāĻ•āϟāĻŋ āϏāĻ¤ā§āϝāĻŋāĻ•āĻžāϰ⧇āϰ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ - āĻāĻ–āĻžāύ⧇ āϕ⧋āύ⧋ āĻ°â€ā§āϝāĻžāĻĒāĻŋāĻ‚ āĻŦāĻž āĻĄāĻŋāĻĢ⧇āĻ¨ā§āϏāĻŋāĻ­ āĻ•āĻĒāĻŋāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ āĻāϟāĻŋ null-āĻšā§‹āĻ¸ā§āϟāĻžāχāϞ (āĻ…āĻ°ā§āĻĨāĻžā§Ž null āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ āύāĻž) āĻāĻŦāĻ‚ āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ—āϤāĻ­āĻžāĻŦ⧇āĻ“ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞāĨ¤ āĻĒ⧁āϰ⧋āύ⧋ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧇ āϤāĻŋāύāϟāĻŋ āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāϤ⧋āĨ¤ +whyModernWins: +- icon: "📏" + title: āĻāĻ• āĻ•āϞ⧇āχ + desc: āϤāĻŋāύāϟāĻŋ āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻ•āϞāϕ⧇ āĻāĻ•āϟāĻŋ āĻŽāĻžāĻ¤ā§āϰ āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻŽā§‡āĻĨāĻĄ āĻĻāĻŋā§Ÿā§‡ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "🔒" + title: āϏāĻ¤ā§āϝāĻŋāĻ•āĻžāϰ⧇āϰ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ + desc: āĻāϟāĻŋ āϕ⧇āĻŦāϞ āĻāĻ•āϟāĻŋ āĻ°â€ā§āϝāĻžāĻĒāĻžāϰ āύ⧟ – āϞāĻŋāĻ¸ā§āϟāϟāĻŋ āύāĻŋāĻœā§‡āχ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞāĨ¤ +- icon: "đŸ›Ąī¸" + title: null-āϏ⧇āĻĢ + desc: āϤ⧈āϰāĻŋāϰ āϏāĻŽāϝāĻŧāχ null āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻĨāĻžāĻ•āϞ⧇ āϤāĻž āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻ•āϰ⧇, āĻĢāϞ⧇ āĻĻā§āϰ⧁āϤ āĻ¤ā§āϰ⧁āϟāĻŋ āϧāϰāĻž āĻĒā§œā§‡ (failing fast)āĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/collections/immutable-map-creation.yaml b/translations/content/bn/collections/immutable-map-creation.yaml new file mode 100644 index 0000000..7ddf5fe --- /dev/null +++ b/translations/content/bn/collections/immutable-map-creation.yaml @@ -0,0 +1,18 @@ +--- +title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (Immutable) āĻŽā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋ +oldApproach: āĻŽā§āϝāĻžāĻĒ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāϰ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ +modernApproach: Map.of() +summary: āϕ⧋āύ⧋ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāϰ āĻ›āĻžāĻĄāĻŧāĻžāχ āχāύāϞāĻžāχāύ (inline) āĻŽā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϝāĻž āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞāĨ¤ +explanation: Map.of() āϏāϰāĻžāϏāϰāĻŋ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻĒ⧇āϝāĻŧāĻžāϰ (key-value pairs) āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻŽā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ 10āϟāĻŋāϰ āĻŦ⧇āĻļāĻŋ āĻāĻ¨ā§āĻŸā§āϰāĻŋ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ Map.entry() āĻĒ⧇āϝāĻŧāĻžāϰ āϏāĻš Map.ofEntries() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤ +whyModernWins: +- icon: "📏" + title: āχāύāϞāĻžāχāύ āϤ⧈āϰāĻŋ + desc: āϕ⧋āύ⧋ āĻŸā§‡āĻŽā§āĻĒā§‹āϰāĻžāϰāĻŋ āĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻŽā§āϝāĻžāĻĒ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "🔒" + title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻĢāϞāĻžāĻĢāϞ + desc: āĻŽā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋāϰ āĻĒāϰ āφāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻžāĨ¤ +- icon: "đŸšĢ" + title: null āϕ⧀/āĻ­ā§āϝāĻžāϞ⧁ āύ⧇āχ + desc: null āĻāĻ¨ā§āĻŸā§āϰāĻŋ āϏāĻ™ā§āϗ⧇ āϏāĻ™ā§āϗ⧇āχ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/collections/immutable-set-creation.yaml b/translations/content/bn/collections/immutable-set-creation.yaml new file mode 100644 index 0000000..c447cc6 --- /dev/null +++ b/translations/content/bn/collections/immutable-set-creation.yaml @@ -0,0 +1,18 @@ +--- +title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (Immutable) āϏ⧇āϟ āϤ⧈āϰāĻŋ +oldApproach: āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ āĻ°â€ā§āϝāĻžāĻĒāĻŋāĻ‚ +modernApproach: Set.of() +summary: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻ•āϞ (factory call) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āϏ⧇āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤ +explanation: Set.of() āĻāĻ•āϟāĻŋ āϏāĻ¤ā§āϝāĻŋāĻ•āĻžāϰ⧇āϰ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āϏ⧇āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇, āϝāĻž āϏ⧇āϟ āϤ⧈āϰāĻŋāϰ āϏāĻŽāϝāĻŧāχ null āĻāĻŦāĻ‚ āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ (duplicate elements) āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ āύāĻžāĨ¤ āĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āϏ⧇āϟāϕ⧇ āφāϰ āĻ°â€ā§āϝāĻžāĻĒ āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχāĨ¤ +whyModernWins: +- icon: "📏" + title: āϏ⧁āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ + desc: āϤāĻŋāύāϟāĻŋ āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻ•āϞ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻāĻ•āϟāĻŋ āĻŽāĻžāĻ¤ā§āϰ āϞāĻžāχāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "đŸšĢ" + title: āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰ⧇ + desc: āϭ⧁āϞāĻŦāĻļāϤ āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻĻāĻŋāϞ⧇ āĻāϰāϰ (error) āĻĻ⧇āĻŦ⧇āĨ¤ +- icon: "🔒" + title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ + desc: āϏ⧇āϟ āϤ⧈āϰāĻŋāϰ āĻĒāϰ āφāϰ āϝ⧋āĻ— āĻŦāĻž āĻ…āĻĒāϏāĻžāϰāĻŖ (add/remove) āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦ āύāϝāĻŧāĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/collections/map-entry-factory.yaml b/translations/content/bn/collections/map-entry-factory.yaml new file mode 100644 index 0000000..24a4627 --- /dev/null +++ b/translations/content/bn/collections/map-entry-factory.yaml @@ -0,0 +1,18 @@ +--- +title: Map.entry() āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ +oldApproach: SimpleEntry +modernApproach: Map.entry() +summary: āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŽā§āϝāĻžāĻĒ āĻāĻ¨ā§āĻŸā§āϰāĻŋ (map entries) āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤ +explanation: Map.entry() āĻŽā§‡āĻĨāĻĄāϟāĻŋ verbose AbstractMap.SimpleEntry āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ⧇āϰ (constructor) āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (immutable) āĻāĻ¨ā§āĻŸā§āϰāĻŋ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, āϝāĻž Map.ofEntries() āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ…āĻĒāĻžāϰ⧇āĻļāύāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āϖ⧁āĻŦāχ āωāĻĒāϝ⧋āĻ—ā§€āĨ¤ +whyModernWins: +- icon: "📏" + title: āϏ⧁āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ + desc: āϤāĻŋāύāϟāĻŋ āϞāĻžāχāύ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻāĻ•āϟāĻŋ āĻŽāĻžāĻ¤ā§āϰ āϞāĻžāχāύ, āϝāĻž āĻāϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝāϕ⧇ āφāϰāĻ“ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϰ⧇āĨ¤ +- icon: "🔒" + title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ + desc: āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻāĻ¨ā§āĻŸā§āϰāĻŋāϟāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻžāĨ¤ +- icon: "🧩" + title: āĻ•āĻŽā§āĻĒā§‹āĻœā§‡āĻŦāϞ + desc: āĻŦāĻĄāĻŧ āĻŽā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ Map.ofEntries() āĻāϰ āϏāĻžāĻĨ⧇ āĻāϟāĻŋ āĻĻāĻžāϰ⧁āĻŖāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/collections/reverse-list-iteration.yaml b/translations/content/bn/collections/reverse-list-iteration.yaml new file mode 100644 index 0000000..797df01 --- /dev/null +++ b/translations/content/bn/collections/reverse-list-iteration.yaml @@ -0,0 +1,18 @@ +--- +title: āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āφāχāϟāĻžāϰ⧇āĻļāύ āωāĻ˛ā§āĻŸā§‹ āĻĻāĻŋāĻ• āĻĨ⧇āϕ⧇ (Reverse List Iteration) +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ ListIterator +modernApproach: reversed() +summary: āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ for-each āϞ⧁āĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞ⧋āϕ⧇ āωāĻ˛ā§āĻŸā§‹ āĻĻāĻŋāĻ• āĻĨ⧇āϕ⧇ āφāχāϟāĻžāϰ⧇āϟ āĻ•āϰ⧁āύāĨ¤ +explanation: SequencedCollection-āĻāϰ reversed() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻāĻ•āϟāĻŋ āϰāĻŋāĻ­āĻžāĻ°ā§āϏ-āĻ…āĻ°ā§āĻĄāĻžāϰāĻĄ āĻ­āĻŋāω (reverse-ordered view) āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāχ āĻ­āĻŋāωāϟāĻŋ āĻŽā§‚āϞ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻ“āĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϤ⧈āϰāĻŋ āĻšā§Ÿ, āϤāĻžāχ āϕ⧋āύ⧋ āĻ•āĻĒāĻŋ āĻ•āϰāĻž āĻšā§Ÿ āύāĻžāĨ¤ āωāĻ¨ā§āύāϤ for āϞ⧁āĻĒ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ (enhanced for loop syntax) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϰāĻŋāĻ­āĻžāĻ°ā§āϏ āφāχāϟāĻžāϰ⧇āĻļāύāϕ⧇ āĻĢāϰ⧋āϝāĻŧāĻžāĻ°ā§āĻĄ āφāχāϟāĻžāϰ⧇āĻļāύ⧇āϰ āĻŽāϤ⧋āχ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ +whyModernWins: +- icon: "📖" + title: āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ + desc: verbose ListIterator-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āϏāĻšāϜāĻŦā§‹āĻ§ā§āϝ for-each āϞ⧁āĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤ +- icon: "⚡" + title: āϕ⧋āύ⧋ āĻ•āĻĒāĻŋ āĻšāϝāĻŧ āύāĻž + desc: reversed() āĻāĻ•āϟāĻŋ āĻ­āĻŋāω āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, āϤāĻžāχ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ⧇āϰ āĻ“āĻĒāϰ āϕ⧋āύ⧋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϚāĻžāĻĒ (overhead) āĻĒāĻĄāĻŧ⧇ āύāĻžāĨ¤ +- icon: "🧩" + title: āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖ API + desc: List, Deque, āĻāĻŦāĻ‚ SortedSet-āĻāϰ āĻŽāϤ⧋ āĻ•āĻžāϞ⧇āĻ•āĻļāύāϗ⧁āϞ⧋āϤ⧇ āĻāĻ•āχāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 21 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2023) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/collections/sequenced-collections.yaml b/translations/content/bn/collections/sequenced-collections.yaml new file mode 100644 index 0000000..3d81774 --- /dev/null +++ b/translations/content/bn/collections/sequenced-collections.yaml @@ -0,0 +1,18 @@ +--- +title: āϏāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¨ā§āϏāĻĄ āĻ•āĻžāϞ⧇āĻ•āĻļāύ (Sequenced Collections) +oldApproach: āχāύāĻĄā§‡āĻ•ā§āϏ āĻ…ā§āϝāĻžāϰāĻŋāĻĨāĻŽā§‡āϟāĻŋāĻ• (Index Arithmetic) +modernApproach: getFirst()/getLast() +summary: āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ API āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻĒā§āϰāĻĨāĻŽ/āĻļ⧇āώ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻž āĻāĻŦāĻ‚ āϰāĻŋāĻ­āĻžāĻ°ā§āϏāĻĄ āĻ­āĻŋāω (reversed view) āϤ⧈āϰāĻŋ āĻ•āϰāĻžāĨ¤ +explanation: SequencedCollection, List, Deque, SortedSet, āĻāĻŦāĻ‚ LinkedHashSet-āĻ getFirst(), getLast(), reversed(), addFirst(), addLast() āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋ āϝ⧋āĻ— āĻ•āϰ⧇āĨ¤ āĻāϰ āĻĢāϞ⧇ āφāϰ size-1 āĻ…ā§āϝāĻžāϰāĻŋāĻĨāĻŽā§‡āϟāĻŋāĻ• āĻŦāĻž āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞ āϰāĻŋāĻ­āĻžāĻ°ā§āϏ āφāχāϟāĻžāϰ⧇āĻļāύ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ +whyModernWins: +- icon: "📖" + title: āĻ¸ā§āĻŦ-āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟāĻŋāĻ‚ + desc: getLast() āĻŽā§‡āĻĨāĻĄāϟāĻŋ get(size()-1) āĻāϰ āĻšā§‡āϝāĻŧ⧇ āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟ āĻāĻŦāĻ‚ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝāĨ¤ +- icon: "🔄" + title: āϰāĻŋāĻ­āĻžāĻ°ā§āϏāĻĄ āĻ­āĻŋāω + desc: reversed() āĻŽā§‡āĻĨāĻĄ āĻāĻ•āϟāĻŋ āĻ­āĻŋāω (view) āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, āϤāĻžāχ āϕ⧋āύ⧋ āĻ•āĻĒāĻŋ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ +- icon: "🧩" + title: āχāωāύāĻŋāĻĢāĻ°ā§āĻŽ API + desc: List, Deque, āĻāĻŦāĻ‚ SortedSet-āĻāϰ āĻŽāϤ⧋ āĻ•āĻžāϞ⧇āĻ•āĻļāύāϗ⧁āϞ⧋āϤ⧇ āĻāĻ•āχāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 21 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2023) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/collections/stream-toarray-typed.yaml b/translations/content/bn/collections/stream-toarray-typed.yaml new file mode 100644 index 0000000..86a2cc3 --- /dev/null +++ b/translations/content/bn/collections/stream-toarray-typed.yaml @@ -0,0 +1,18 @@ +--- +title: āϟāĻžāχāĻĒāĻĄ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāϕ⧇ āĻ…ā§āϝāĻžāϰ⧇āϤ⧇ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ (Typed Stream toArray) +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻ…ā§āϝāĻžāϰ⧇ āĻ•āĻĒāĻŋ +modernApproach: toArray(generator) +summary: āĻāĻ•āϟāĻŋ āĻŽā§‡āĻĨāĻĄ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ (method reference) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāϕ⧇ āϟāĻžāχāĻĒāĻĄ āĻ…ā§āϝāĻžāϰ⧇āϤ⧇ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: toArray(IntFunction) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĨ⧇āϕ⧇ āϏāĻ āĻŋāĻ• āϟāĻžāχāĻĒ⧇āϰ āĻ…ā§āϝāĻžāϰ⧇ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āĻœā§‡āύāĻžāϰ⧇āϟāϰ (āϝ⧇āĻŽāύ String[]::new) āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāϕ⧇ āĻŦāϞ⧇ āĻĻā§‡ā§Ÿ āϕ⧋āύ āϧāϰāύ⧇āϰ āĻ…ā§āϝāĻžāϰ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ +whyModernWins: +- icon: "đŸŽ¯" + title: āϟāĻžāχāĻĒ-āϏ⧇āĻĢ (Type-safe) + desc: āϕ⧋āύ⧋ Object[] āĻ•āĻžāĻ¸ā§āϟ āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ āύāĻž – āĻ…ā§āϝāĻžāϰ⧇āϰ āϟāĻžāχāĻĒ āϏāĻ āĻŋāĻ• āĻĨāĻžāϕ⧇āĨ¤ +- icon: "🔗" + title: āĻšā§‡āχāύ⧇āĻŦāϞ (Chainable) + desc: āϝ⧇āϕ⧋āύ⧋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĒāĻžāχāĻĒāϞāĻžāχāύ⧇āϰ āĻļ⧇āώ⧇ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "📏" + title: āϏ⧁āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ + desc: āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āχ āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āϞ⧁āĻĒ⧇āϰ āĻ•āĻžāϜ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšā§ŸāĨ¤ +support: + description: JDK 8 (āĻŽāĻžāĻ°ā§āϚ 2014) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/collections/unmodifiable-collectors.yaml b/translations/content/bn/collections/unmodifiable-collectors.yaml new file mode 100644 index 0000000..f30d614 --- /dev/null +++ b/translations/content/bn/collections/unmodifiable-collectors.yaml @@ -0,0 +1,18 @@ +--- +title: āφāύāĻŽāĻĄāĻŋāĻĢāĻžāĻ‡ā§Ÿā§‡āĻŦāϞ āĻ•āĻžāϞ⧇āĻ•ā§āϟāϰ (Unmodifiable Collectors) +oldApproach: collectingAndThen +modernApproach: stream.toList() +summary: stream.toList() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻāĻ•āϟāĻŋ āφāύāĻŽāĻĄāĻŋāĻĢāĻžāĻ‡ā§Ÿā§‡āĻŦāϞ āϞāĻŋāĻ¸ā§āĻŸā§‡ (unmodifiable list) āĻĄā§‡āϟāĻž āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰ⧁āύāĨ¤ +explanation: āϜāĻžāĻ­āĻž 10-āĻ toUnmodifiableList(), toUnmodifiableSet(), āĻāĻŦāĻ‚ toUnmodifiableMap() āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āϝāĻž verbose collectingAndThen āĻ°â€ā§āϝāĻžāĻĒāĻžāϰāϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ, āϜāĻžāĻ­āĻž 16-āĻāϰ stream.toList() āφāϰāĻ“ āϏāϰāϞ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇ – āĻāĻ–āĻžāύ⧇ collect() āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰāĻžāϰāĻ“ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ•āĻžāϞ⧇āĻ•āĻļāύ āϟāĻžāχāĻĒ⧇āϰ āϜāĻ¨ā§āϝ toUnmodifiableSet() āĻāĻŦāĻ‚ toUnmodifiableMap() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤ +whyModernWins: +- icon: "📏" + title: āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ + desc: stream.toList()-āĻāϰ āϜāĻ¨ā§āϝ collect() āĻŦāĻž Collectors āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻžāϰ āϕ⧋āύ⧋ āĻĒā§āĻ°ā§Ÿā§‹āϜāύāχ āύ⧇āχāĨ¤ +- icon: "🔒" + title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (Immutable) + desc: āĻĢāϞāĻžāĻĢāϞ⧇ āϕ⧋āύ⧋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āφāύāĻž āϏāĻŽā§āĻ­āĻŦ āύ⧟ – āφāĻ•āĻ¸ā§āĻŽāĻŋāĻ• āĻŽāĻŋāωāĻŸā§‡āĻļāύ⧇āϰ (accidental mutations) āĻā§āρāĻ•āĻŋ āύ⧇āχāĨ¤ +- icon: "📖" + title: āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ + desc: āϝ⧇āϕ⧋āύ⧋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĒāĻžāχāĻĒāϞāĻžāχāύ⧇āϰ āϟāĻžāĻ°ā§āĻŽāĻŋāύāĻžāϞ āϧāĻžāĻĒ (terminal step) āĻšāĻŋāϏ⧇āĻŦ⧇ āĻāϟāĻŋ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇āχ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝāĨ¤ +support: + description: JDK 16 (āĻŽāĻžāĻ°ā§āϚ 2021) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/concurrency/completablefuture-chaining.yaml b/translations/content/bn/concurrency/completablefuture-chaining.yaml new file mode 100644 index 0000000..3c4d867 --- /dev/null +++ b/translations/content/bn/concurrency/completablefuture-chaining.yaml @@ -0,0 +1,18 @@ +--- +title: CompletableFuture āĻšā§‡āχāύāĻŋāĻ‚ (Chaining) +oldApproach: āĻŦā§āϞāĻ•āĻŋāĻ‚ Future.get() +modernApproach: CompletableFuture +summary: CompletableFuture āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϕ⧋āύ⧋ āĻŦā§āϞāĻ• āύāĻž āĻ•āϰ⧇ āĻ…ā§āϝāĻžāϏāĻŋāĻ™ā§āĻ•ā§āϰ⧋āύāĻžāϏ āĻ…āĻĒāĻžāϰ⧇āĻļāύāϗ⧁āϞāĻŋāϕ⧇ āĻšā§‡āχāύ āĻ•āϰ⧁āύāĨ¤ +explanation: CompletableFuture āύāύ-āĻŦā§āϞāĻ•āĻŋāĻ‚ āĻ…ā§āϝāĻžāϏāĻŋāĻ™ā§āĻ• (async) āĻĒāĻžāχāĻĒāϞāĻžāχāύ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ āφāĻĒāύāĻŋ thenApply, thenCompose, thenAccept āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…āĻĒāĻžāϰ⧇āĻļāύāϗ⧁āϞ⧋āϕ⧇ āĻšā§‡āχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤ exceptionally() āĻŽā§‡āĻĨāĻĄ āĻĻāĻŋā§Ÿā§‡ āĻāϰāϰ (error) āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻž āϝāĻžā§Ÿ āĻāĻŦāĻ‚ allOf/anyOf āĻŽā§‡āĻĨāĻĄ āĻĻāĻŋā§Ÿā§‡ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĢāĻŋāωāϚāĻžāϰāϕ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +whyModernWins: +- icon: "🔗" + title: āĻšā§‡āχāύ⧇āĻŦāϞ (Chainable) + desc: āĻ…ā§āϝāĻžāϏāĻŋāĻ™ā§āĻ• āĻ¸ā§āĻŸā§‡āĻĒāϗ⧁āϞāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ āĻĒāĻžāχāĻĒāϞāĻžāχāύ⧇ āϏāĻžāϜāĻžāύ⧋ āϝāĻžā§ŸāĨ¤ +- icon: "đŸšĢ" + title: āύāύ-āĻŦā§āϞāĻ•āĻŋāĻ‚ (Non-blocking) + desc: āϕ⧋āύ⧋ āĻĨā§āϰ⧇āĻĄ āĻĢāϞāĻžāĻĢāϞ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āϞāϏāĻ­āĻžāĻŦ⧇ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰ⧇ āύāĻžāĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻāϰāϰ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻŋāĻ‚ (Error Handling) + desc: exceptionally() āĻāĻŦāĻ‚ handle() āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰāĻ­āĻžāĻŦ⧇ āĻāϰāϰ āϰāĻŋāĻ•āĻ­āĻžāϰāĻŋ (error recovery) āĻ•āϰāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻž āĻĻā§‡ā§ŸāĨ¤ +support: + description: JDK 8 (āĻŽāĻžāĻ°ā§āϚ 2014) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/concurrency/concurrent-http-virtual.yaml b/translations/content/bn/concurrency/concurrent-http-virtual.yaml new file mode 100644 index 0000000..f8cee75 --- /dev/null +++ b/translations/content/bn/concurrency/concurrent-http-virtual.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϟ HTTP āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ +oldApproach: āĻĨā§āϰ⧇āĻĄ āĻĒ⧁āϞ + URL āĻ•āĻžāύ⧇āĻ•āĻļāύ (URLConnection) +modernApproach: āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄ + HttpClient +summary: āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄ āĻāĻŦāĻ‚ HttpClient āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϏāĻžāĻĨ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āχāωāφāϰāĻāϞ (URL) āĻĨ⧇āϕ⧇ āĻĄā§‡āϟāĻž āĻĢ⧇āϚ (fetch) āĻ•āϰ⧁āύāĨ¤ +explanation: āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄ āĻĒā§āϰāϤāĻŋāϟāĻŋ HTTP āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ•āϰ⧇ āĻĨā§āϰ⧇āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϕ⧇ āĻŦāĻžāĻ¸ā§āϤāĻŦāϏāĻŽā§āĻŽāϤ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ HttpClient-āĻāϰ āϏāĻžāĻĨ⧇ āĻāϰ āϏāĻŽāĻ¨ā§āĻŦā§Ÿā§‡, āĻāϟāĻŋ āϜāϟāĻŋāϞ āĻ…ā§āϝāĻžāϏāĻŋāĻ™ā§āĻ• āĻ•āϞāĻŦā§āϝāĻžāĻ• āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϗ⧁āϞ⧋āϕ⧇ āϏāĻšāϜ āĻŦā§āϞāĻ•āĻŋāĻ‚ āϕ⧋āĻĄ āĻĻāĻŋā§Ÿā§‡ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇, āϝāĻž āϏāĻšāĻœā§‡āχ āĻ¸ā§āϕ⧇āϞ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +whyModernWins: +- icon: "â™žī¸" + title: āĻĒā§āϰāϤāĻŋ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻĨā§āϰ⧇āĻĄ + desc: āϕ⧋āύ⧋ āĻĨā§āϰ⧇āĻĄ āĻĒ⧁āϞ āϏāĻžāχāϜāĻŋāĻ‚ā§Ÿā§‡āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ – āĻĒā§āϰāϤāĻŋāϟāĻŋ āχāωāφāϰāĻāϞ-āĻāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄāĨ¤ +- icon: "📖" + title: āϏāĻšāϜ āϕ⧋āĻĄ + desc: āϏāϰāĻžāϏāϰāĻŋ āĻŦā§āϞāĻ•āĻŋāĻ‚ āϕ⧋āĻĄ āϞāĻŋāϖ⧁āύāĨ¤ +- icon: "⚡" + title: āĻšāĻžāχ āĻĨā§āϰ⧁āĻĒ⧁āϟ (High Throughput) + desc: āĻ¨ā§āϝ⧂āύāϤāĻŽ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻšāĻžāϜāĻžāϰ āĻšāĻžāϜāĻžāϰ āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϟ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ (concurrent requests) āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +support: + description: JDK 21 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2023) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/concurrency/executor-try-with-resources.yaml b/translations/content/bn/concurrency/executor-try-with-resources.yaml new file mode 100644 index 0000000..6cc9a1d --- /dev/null +++ b/translations/content/bn/concurrency/executor-try-with-resources.yaml @@ -0,0 +1,18 @@ +--- +title: ExecutorService āĻ…āĻŸā§‹-āĻ•ā§āϞ⧋āϜ (Auto-Close) +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻļāĻžāϟāĻĄāĻžāωāύ +modernApproach: āĻŸā§āϰāĻžāχ-āωāχāĻĨ-āϰāĻŋāϏ⧋āĻ°ā§āϏ (try-with-resources) +summary: āĻ…āĻŸā§‹āĻŽā§‡āϟāĻŋāĻ• āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟāϰ āĻļāĻžāϟāĻĄāĻžāωāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŸā§āϰāĻžāχ-āωāχāĻĨ-āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: āϜāĻžāĻ­āĻž 19 āĻĨ⧇āϕ⧇, ExecutorService AutoCloseable āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰ⧇āĨ¤ close() āĻŽā§‡āĻĨāĻĄāϟāĻŋ shutdown() āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϟāĻžāĻ¸ā§āĻ•āϗ⧁āϞ⧋ āĻļ⧇āώ āĻšāĻ“ā§ŸāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰ⧇āĨ¤ āĻāϰ āĻĢāϞ⧇ āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ try/finally āĻļāĻžāϟāĻĄāĻžāωāύ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ⧇āϰ āφāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +whyModernWins: +- icon: "🧹" + title: āĻ…āĻŸā§‹ āĻ•ā§āϞāĻŋāύāφāĻĒ (Auto Cleanup) + desc: āĻŦā§āϞāĻ• āĻĨ⧇āϕ⧇ āĻŦ⧇āϰ āĻšāĻ“ā§ŸāĻžāϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇āχ āĻļāĻžāϟāĻĄāĻžāωāύ āĻ¸ā§āĻŦ⧟āĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšā§ŸāĨ¤ +- icon: "đŸ›Ąī¸" + title: āϕ⧋āύ⧋ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϞāĻŋāĻ• āύ⧇āχ + desc: āĻŦā§āϝāϤāĻŋāĻ•ā§āϰāĻŽ (exceptions) āϘāϟāϞ⧇āĻ“ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟāϰ āϏāĻŦāϏāĻŽā§Ÿ āĻļāĻžāϟāĻĄāĻžāωāύ āĻšā§ŸāĨ¤ +- icon: "📖" + title: āĻĒāϰāĻŋāϚāĻŋāϤ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ + desc: āĻĢāĻžāχāϞ, āĻ•āĻžāύ⧇āĻ•āĻļāύ āχāĻ¤ā§āϝāĻžāĻĻāĻŋāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻŸā§āϰāĻžāχ-āωāχāĻĨ-āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ⧇āϰ āĻŽāϤ⧋āχāĨ¤ +support: + description: JDK 19 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2022) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/concurrency/lock-free-lazy-init.yaml b/translations/content/bn/concurrency/lock-free-lazy-init.yaml new file mode 100644 index 0000000..58428f6 --- /dev/null +++ b/translations/content/bn/concurrency/lock-free-lazy-init.yaml @@ -0,0 +1,18 @@ +--- +title: āϞāĻ•-āĻĢā§āϰāĻŋ āϞ⧇āϜāĻŋ āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ (Lock-free Lazy Initialization) +oldApproach: synchronized + volatile +modernApproach: StableValue +summary: āϞ⧇āϜāĻŋ āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻĄāĻžāĻŦāϞ-āĻšā§‡āĻ•āĻĄ āϞāĻ•āĻŋāĻ‚ (double-checked locking) āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ StableValue āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: StableValue āϏāĻ āĻŋāĻ• āĻĨā§āϰ⧇āĻĄ āϏ⧇āĻĢāϟāĻŋ (thread safety) āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇ āϞ⧇āϜāĻŋ āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϕ⧇ āĻāύāĻ•ā§āϝāĻžāĻĒāϏ⧁āϞ⧇āϟ (encapsulates) āĻ•āϰ⧇āĨ¤ JVM āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āĻĒāϰ āϰāĻŋāĻĄ āĻĒāĻžāĻĨāϕ⧇ (read path) āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻž āĻ­āϞāĻžāϟāĻžāχāϞ āϰāĻŋāĻĄā§‡āϰ (volatile reads) āĻšā§‡āϝāĻŧ⧇ āĻĻā§āϰ⧁āϤāϤāϰ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +whyModernWins: +- icon: "🧹" + title: āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ (boilerplate) āύ⧇āχ + desc: āĻāĻ–āĻžāύ⧇ volatile, synchronized, āĻŦāĻž āĻĄāĻžāĻŦāϞ-āύāĻžāϞ-āĻšā§‡āĻ• āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "⚡" + title: āĻĻā§āϰ⧁āϤāϤāϰ āϰāĻŋāĻĄ (Faster Reads) + desc: āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āĻĒāϰ JVM āĻ•āύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ-āĻĢā§‹āĻ˛ā§āĻĄ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +- icon: "✅" + title: āĻĒā§āϰāĻŽāĻžāĻŖāĻŋāϤāĻ­āĻžāĻŦ⧇ āϏāĻ āĻŋāĻ• (Provably Correct) + desc: āĻāĻ–āĻžāύ⧇ āϕ⧋āύ⧋ āϏ⧂āĻ•ā§āĻˇā§āĻŽ āĻ…āĻ°ā§āĻĄāĻžāϰāĻŋāĻ‚ āĻŦāĻžāĻ— āĻĨāĻžāϕ⧇ āύāĻž – JVM āύāĻŋāĻœā§‡āχ āĻāϟāĻŋ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 25 (JEP 502, StableValue) āĻ āĻĒā§āϰāĻŋāĻ­āĻŋāωāĨ¤ --enable-preview āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ \ No newline at end of file diff --git a/translations/content/bn/concurrency/process-api.yaml b/translations/content/bn/concurrency/process-api.yaml new file mode 100644 index 0000000..e8a1291 --- /dev/null +++ b/translations/content/bn/concurrency/process-api.yaml @@ -0,0 +1,18 @@ +--- +title: āĻŽāĻĄāĻžāĻ°ā§āύ āĻĒā§āϰāϏ⧇āϏ API (Modern Process API) +oldApproach: Runtime.exec() +modernApproach: ProcessHandle +summary: ProcessHandle āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ (OS) āĻĒā§āϰāϏ⧇āϏāϗ⧁āϞ⧋ āĻĒāϰāĻŋāĻĻāĻ°ā§āĻļāύ (inspect) āĻāĻŦāĻ‚ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰ⧁āύāĨ¤ +explanation: ProcessHandle āĻŽā§‡āĻĨāĻĄ PID, āĻĒā§āϰāϏ⧇āϏ⧇āϰ āϤāĻĨā§āϝ (āĻ•āĻŽāĻžāĻ¨ā§āĻĄ, āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϏ, āĻ¸ā§āϟāĻžāĻ°ā§āϟ āϟāĻžāχāĻŽ, CPU āχāωāϏ⧇āϜ), āĻĒā§āϝāĻžāϰ⧇āĻ¨ā§āϟ/āϚāĻžāχāĻ˛ā§āĻĄ āϏāĻŽā§āĻĒāĻ°ā§āĻ• āĻāĻŦāĻ‚ āĻĒā§āϰāϏ⧇āϏ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻžāĻ•āĻļāύ (destruction) āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϤāĻĨā§āϝ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāϰ āĻĢāϞ⧇ āφāϰ Undocumented Process āχāĻ¨ā§āϟāĻžāϰāύāĻžāϞāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ +whyModernWins: +- icon: "🔍" + title: āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϤāĻĨā§āϝ + desc: PID, āĻ•āĻŽāĻžāĻ¨ā§āĻĄ, āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϏ, āĻ¸ā§āϟāĻžāĻ°ā§āϟ āϟāĻžāχāĻŽ, CPU āχāωāϏ⧇āϜ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰ⧁āύāĨ¤ +- icon: "đŸŒŗ" + title: āĻĒā§āϰāϏ⧇āϏ āĻŸā§āϰāĻŋ (Process Tree) + desc: āĻĒā§āϝāĻžāϰ⧇āĻ¨ā§āϟ, āϚāĻžāχāĻ˛ā§āĻĄ āĻāĻŦāĻ‚ āĻĄāĻŋāϏ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϟ āĻĒā§āϰāϏ⧇āϏāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āύ⧇āĻ­āĻŋāϗ⧇āϟ (navigate) āĻ•āϰ⧁āύāĨ¤ +- icon: "📊" + title: āĻŽāύāĻŋāϟāϰāĻŋāĻ‚ + desc: onExit() āĻŽā§‡āĻĨāĻĄ āĻ…ā§āϝāĻžāϏāĻŋāĻ™ā§āĻ• (async) āĻŽāύāĻŋāϟāϰāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ CompletableFuture āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/concurrency/scoped-values.yaml b/translations/content/bn/concurrency/scoped-values.yaml new file mode 100644 index 0000000..7fb829d --- /dev/null +++ b/translations/content/bn/concurrency/scoped-values.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ¸ā§āϕ⧋āĻĒāĻĄ āĻ­ā§āϝāĻžāϞ⧁ (Scoped Values) +oldApproach: ThreadLocal +modernApproach: ScopedValue +summary: ThreadLocal-āĻāϰ āĻ…āϏ⧁āĻŦāĻŋāϧāĻžāϗ⧁āϞ⧋ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āĻ•āϞ āĻ¸ā§āĻŸā§āϝāĻžāĻ• (call stacks) āϜ⧁āĻĄāĻŧ⧇ āύāĻŋāϰāĻžāĻĒāĻĻ⧇ āĻĄā§‡āϟāĻž āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: ScopedValue āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ, āωāĻ¤ā§āϤāϰāĻžāϧāĻŋāĻ•āĻžāϰāϝ⧋āĻ—ā§āϝ (inheritable) āĻāĻŦāĻ‚ āĻ¸ā§āϕ⧋āĻĒ-āϏ⧀āĻŽāĻŋāϤ (scope-limited) āĻ•āύāĻŸā§‡āĻ•ā§āϏāϟ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ ThreadLocal-āĻāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇, āĻ¸ā§āϕ⧋āĻĒāĻĄ āĻ­ā§āϝāĻžāϞ⧁āϗ⧁āϞ⧋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ•ā§āϞāĻŋāύāφāĻĒ āĻšā§Ÿ, āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻĨā§āϰ⧇āĻĄāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝ āϕ⧋āύ⧋ āĻŽā§‡āĻĨāĻĄ (callees) āĻĻā§āĻŦāĻžāϰāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āύāĻžāĨ¤ +whyModernWins: +- icon: "🔒" + title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (Immutable) + desc: āĻ…āĻ¨ā§āϝ āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋ āĻ¸ā§āϕ⧋āĻĒāĻĄ āĻ­ā§āϝāĻžāϞ⧁ āĻĒāĻĄāĻŧāϤ⧇ āĻĒāĻžāϰāϞ⧇āĻ“ āϤāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤ +- icon: "🧹" + title: āĻ…āĻŸā§‹ āĻ•ā§āϞāĻŋāύāφāĻĒ (Auto Cleanup) + desc: āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞ remove() āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ – āĻ­ā§āϝāĻžāϞ⧁āϟāĻŋ āĻŦā§āϞāϕ⧇āϰ āĻ¸ā§āϕ⧋āĻĒ āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāϚāĻžāϞāĻŋāϤ āĻšā§ŸāĨ¤ +- icon: "⚡" + title: āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ-āĻĨā§āϰ⧇āĻĄ āϏ⧇āĻĢ (Virtual-thread Safe) + desc: āϞāĻ•ā§āώ āϞāĻ•ā§āώ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻĨā§āϰ⧇āĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āĻāϟāĻŋ āĻĻāĻ•ā§āώāϤāĻžāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 25 LTS (JEP 506, āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2025) āĻ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ \ No newline at end of file diff --git a/translations/content/bn/concurrency/stable-values.yaml b/translations/content/bn/concurrency/stable-values.yaml new file mode 100644 index 0000000..f018a71 --- /dev/null +++ b/translations/content/bn/concurrency/stable-values.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ¸ā§āĻŸā§‡āĻŦāϞ āĻ­ā§āϝāĻžāϞ⧁ (Stable Values) +oldApproach: āĻĄāĻžāĻŦāϞ-āĻšā§‡āĻ•āĻĄ āϞāĻ•āĻŋāĻ‚ (Double-Checked Locking) +modernApproach: StableValue +summary: volatile āĻŦāĻž synchronized āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻ•āϰ⧇āχ āĻĨā§āϰ⧇āĻĄ-āϏ⧇āĻĢ āϞ⧇āϜāĻŋ āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ (thread-safe lazy initialization) āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžā§Ÿāύ āĻ•āϰ⧁āύāĨ¤ +explanation: StableValue āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻĨā§āϰ⧇āĻĄ āϏ⧇āĻĢāϟāĻŋ āϏāĻš āĻāĻ•āϟāĻŋ āϞ⧇āϜāĻŋ āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāϜāĻĄ, āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻ­ā§āϝāĻžāϞ⧁ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āĻĄāĻžāĻŦāϞ-āĻšā§‡āĻ•āĻĄ āϞāĻ•āĻŋāĻ‚, volatile āĻĢāĻŋāĻ˛ā§āĻĄ āĻŦāĻž synchronized āĻŦā§āϞāϕ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ āĻāĻŽāύāĻ•āĻŋ JVM āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āĻĒāϰ āϰāĻŋāĻĄ āĻĒāĻžāĻĨāϕ⧇ (read path) āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜāĻ“ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +whyModernWins: +- icon: "🧹" + title: āϜāĻŋāϰ⧋ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ (Zero Boilerplate) + desc: āϕ⧋āύ⧋ volatile, synchronized, āĻŦāĻž null āĻšā§‡āĻ• āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "⚡" + title: JVM-āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜāĻĄ + desc: āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āĻĒāϰ JVM āĻ­ā§āϝāĻžāϞ⧁āϟāĻŋāϕ⧇ āĻ•āύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ-āĻĢā§‹āĻ˛ā§āĻĄ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻāĻ•āĻŦāĻžāϰ āύāĻŋāĻļā§āϚāĻŋāϤ (Guaranteed Once) + desc: āϏāĻžāĻĒā§āϞāĻžāϝāĻŧāĻžāϰ (supplier) āϕ⧇āĻŦāϞ āĻāĻ•āĻŦāĻžāϰāχ āϰāĻžāύ āĻ•āϰ⧇, āĻāĻŽāύāĻ•āĻŋ āĻ•āύāĻŸā§‡āύāĻļāύ⧇āϰ (contention) āĻŽāĻ§ā§āϝ⧇āĻ“āĨ¤ +support: + description: JDK 25 (JEP 502) āĻ āĻĒā§āϰāĻŋāĻ­āĻŋāωāĨ¤ --enable-preview āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ \ No newline at end of file diff --git a/translations/content/bn/concurrency/structured-concurrency.yaml b/translations/content/bn/concurrency/structured-concurrency.yaml new file mode 100644 index 0000000..1020f2d --- /dev/null +++ b/translations/content/bn/concurrency/structured-concurrency.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāĻ°ā§āĻĄ āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋ (Structured Concurrency) +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄ āϞāĻžāχāĻĢāϏāĻžāχāϕ⧇āϞ +modernApproach: StructuredTaskScope +summary: āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϟ āϟāĻžāĻ¸ā§āĻ•āϗ⧁āϞāĻŋāϰ (concurrent tasks) āϞāĻžāχāĻĢāϟāĻžāχāĻŽāϕ⧇ āĻ•āĻžāĻœā§‡āϰ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āχāωāύāĻŋāϟ (single unit of work) āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰ⧁āύāĨ¤ +explanation: āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāĻ°ā§āĻĄ āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋ āĻāĻ•āĻĻāϞ āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϟ āϟāĻžāĻ¸ā§āĻ•āϕ⧇ āĻāĻ•āϟāĻŋ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āϕ⧋āύ⧋ āϏāĻžāĻŦāϟāĻžāĻ¸ā§āĻ• (subtask) āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϝāĻŧ, āϤāĻŦ⧇ āĻ…āĻ¨ā§āϝāϗ⧁āϞ⧋ āĻŦāĻžāϤāĻŋāϞ (cancelled) āĻšā§Ÿā§‡ āϝāĻžā§ŸāĨ¤ āĻ¸ā§āϕ⧋āĻĒ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇ āϝ⧇ āĻĨā§āϰ⧇āĻĄ āϞāĻŋāĻ• (thread leaks) āĻšāĻŦ⧇ āύāĻž āĻāĻŦāĻ‚ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻĒā§āϝāĻžāϰ⧇āĻ¨ā§āϟ-āϚāĻžāχāĻ˛ā§āĻĄ āϰāĻŋāϞ⧇āĻļāύāĻļāĻŋāĻĒ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "đŸ›Ąī¸" + title: āϕ⧋āύ⧋ āĻĨā§āϰ⧇āĻĄ āϞāĻŋāĻ• āύ⧇āχ + desc: āĻ¸ā§āϕ⧋āĻĒ āĻŦāĻ¨ā§āϧ āĻšāĻ“ā§ŸāĻžāϰ āφāϗ⧇ āϏāĻŦ āĻĢāĻ°ā§āĻ•āĻĄ āϟāĻžāĻ¸ā§āĻ• (forked tasks) āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšā§ŸāĨ¤ +- icon: "⚡" + title: āĻĻā§āϰ⧁āϤ āĻŦā§āϝāĻ°ā§āĻĨāϤāĻž + desc: ShutdownOnFailure āĻŽā§‡āĻĨāĻĄ āϕ⧋āύ⧋ āĻāĻ•āϟāĻŋ āϟāĻžāĻ¸ā§āĻ• āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϞ⧇ āĻŦāĻžāĻ•āĻŋ sibling āϟāĻžāĻ¸ā§āĻ•āϗ⧁āϞ⧋ āĻŦāĻžāϤāĻŋāϞ āĻ•āϰ⧇ āĻĻā§‡ā§ŸāĨ¤ +- icon: "📐" + title: āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āĻžāĻ āĻžāĻŽā§‹ + desc: āϟāĻžāĻ¸ā§āĻ• āϞāĻžāχāĻĢāϟāĻžāχāĻŽ āϕ⧋āĻĄā§‡āϰ āϞ⧇āĻ•ā§āϏāĻŋāĻ•āĻžāϞ āĻ¸ā§āϕ⧋āĻĒ⧇āϰ (lexical scope) āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞ⧇ āϝāĻžā§ŸāĨ¤ +support: + description: JDK 25-āĻ āĻĒā§‚āĻ°ā§āĻŦāϰ⧂āĻĒ (āĻĒāĻžā§āϚāĻŽ āĻĒā§āϰāĻŋāĻ­āĻŋāω, JEP 505)āĨ¤ --enable-preview āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ \ No newline at end of file diff --git a/translations/content/bn/concurrency/thread-sleep-duration.yaml b/translations/content/bn/concurrency/thread-sleep-duration.yaml new file mode 100644 index 0000000..5024f54 --- /dev/null +++ b/translations/content/bn/concurrency/thread-sleep-duration.yaml @@ -0,0 +1,18 @@ +--- +title: Duration āϏāĻš Thread.sleep +oldApproach: āĻŽāĻŋāϞāĻŋāϏ⧇āϕ⧇āĻ¨ā§āĻĄ +modernApproach: Duration +summary: āĻ¸ā§āĻŦ-āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟāĻŋāĻ‚ (self-documenting) āϟāĻžāχāĻŽ āĻ­ā§āϝāĻžāϞ⧁āϰ āϜāĻ¨ā§āϝ Duration āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: Thread.sleep(Duration) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϟāĻžāχāĻŽā§‡āϰ āχāωāύāĻŋāϟāϕ⧇ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ āĻāϰ āĻĢāϞ⧇ 5000 āĻŦāϞāϤ⧇ āĻŽāĻŋāϞāĻŋāϏ⧇āϕ⧇āĻ¨ā§āĻĄ āύāĻžāĻ•āĻŋ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻŦā§‹āĻāĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇, āϤāĻž āύāĻŋāϝāĻŧ⧇ āϕ⧋āύ⧋ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ āĻāϟāĻŋ Duration.ofSeconds, ofMillis, ofMinutes āχāĻ¤ā§āϝāĻžāĻĻāĻŋāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "📖" + title: āĻ¸ā§āĻŦ-āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟāĻŋāĻ‚ (Self-documenting) + desc: Duration.ofSeconds(5) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻĻā§āĻŦā§āϝāĻ°ā§āĻĨāĻšā§€āύ (unambiguous)āĨ¤ +- icon: "đŸ›Ąī¸" + title: āχāωāύāĻŋāϟ-āϏ⧇āĻĢ (Unit-safe) + desc: āϭ⧁āϞāĻŦāĻļāϤ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏ⧇āϕ⧇āĻ¨ā§āĻĄāϕ⧇ āĻŽāĻŋāϞāĻŋāϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĒāĻžāϏ āĻ•āϰāĻžāϰ āĻā§āρāĻ•āĻŋ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +- icon: "🧩" + title: āĻ•āĻŽā§āĻĒā§‹āĻœā§‡āĻŦāϞ (Composable) + desc: Duration āĻŽā§āϝāĻžāĻĨ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§Ÿ, āϝ⧇āĻŽāύ plus(), multipliedBy() āχāĻ¤ā§āϝāĻžāĻĻāĻŋāĨ¤ +support: + description: JDK 19 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2022) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/concurrency/virtual-threads.yaml b/translations/content/bn/concurrency/virtual-threads.yaml new file mode 100644 index 0000000..07bcbd6 --- /dev/null +++ b/translations/content/bn/concurrency/virtual-threads.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻĨā§āϰ⧇āĻĄ +oldApproach: āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āĻĨā§āϰ⧇āĻĄ +modernApproach: āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻĨā§āϰ⧇āĻĄ +summary: āĻ­āĻžāϰ⧀ āĻ“āĻāϏ (OS) āĻĨā§āϰ⧇āĻĄā§‡āϰ āĻŦāĻĻāϞ⧇ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϞāĻ•ā§āώ āϞāĻ•ā§āώ āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻĨā§āϰ⧇āĻĄāĨ¤ +explanation: āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻĨā§āϰ⧇āĻĄāϗ⧁āϞ⧋ āĻŽā§‚āϞāϤ JVM āĻĻā§āĻŦāĻžāϰāĻž āĻĒāϰāĻŋāϚāĻžāϞāĻŋāϤ āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ āĻĨā§āϰ⧇āĻĄ, āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āύāϝāĻŧāĨ¤ āĻĨā§āϰ⧇āĻĄ āĻĒ⧁āϞ āϟāĻŋāωāύāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻāĻžāĻŽā§‡āϞāĻž āĻ›āĻžāĻĄāĻŧāĻžāχ āφāĻĒāύāĻŋ āĻāϗ⧁āϞ⧋ āϞāĻ•ā§āώ āϞāĻ•ā§āώ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤ āĻāχāϚāϟāĻŋāϟāĻŋāĻĒāĻŋ (HTTP) āĻ•āϞ āĻāĻŦāĻ‚ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āĻ•ā§‹ā§Ÿā§‡āϰāĻŋāϰ āĻŽāϤ⧋ I/O-āĻŦāĻžāωāĻ¨ā§āĻĄ āĻ•āĻžāĻœā§‡āϰ āϜāĻ¨ā§āϝ āĻāϗ⧁āϞ⧋ āĻāĻ•āĻĻāĻŽ āφāĻĻāĻ°ā§āĻļāĨ¤ +whyModernWins: +- icon: "⚡" + title: āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ + desc: āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻĨā§āϰ⧇āĻĄ āĻŽāĻžāĻ¤ā§āϰ āĻ•āϝāĻŧ⧇āĻ• āĻ•āĻŋāϞ⧋āĻŦāĻžāχāϟ (KB) āĻŽā§‡āĻŽāϰāĻŋ āύ⧇āϝāĻŧ, āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āĻĨā§āϰ⧇āĻĄ āύ⧇āϝāĻŧ āĻŽā§‡āĻ—āĻžāĻŦāĻžāχāϟ (MB)āĨ¤ +- icon: "â™žī¸" + title: āĻ¸ā§āϕ⧇āϞ⧇āĻŦāϞ + desc: āϞāĻ•ā§āώ āϞāĻ•ā§āώ āĻĨā§āϰ⧇āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ — āϕ⧋āύ⧋ āĻĒ⧁āϞ āϏāĻžāχāϜāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "🧹" + title: āϏāĻŋāĻŽā§āĻĒāϞ āĻŽāĻĄā§‡āϞ + desc: āϏāĻžāϧāĻžāϰāĻŖ āĻŦā§āϞāĻ•āĻŋāĻ‚ āϕ⧋āĻĄ āϞāĻŋāϖ⧁āύ, āϝāĻž āĻ…ā§āϝāĻžāϏāĻŋāĻ™ā§āĻ•ā§āϰ⧋āύāĻžāϏ āϕ⧋āĻĄā§‡āϰ āĻŽāϤ⧋āχ āĻ¸ā§āϕ⧇āϞ⧇āĻŦāϞāĨ¤ +support: + description: JDK 21 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2023) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/datetime/date-formatting.yaml b/translations/content/bn/datetime/date-formatting.yaml new file mode 100644 index 0000000..ac25195 --- /dev/null +++ b/translations/content/bn/datetime/date-formatting.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĄā§‡āϟ āĻĢāϰāĻŽā§‡āϟāĻŋāĻ‚ (Date Formatting) +oldApproach: SimpleDateFormat +modernApproach: DateTimeFormatter +summary: āĻĨā§āϰ⧇āĻĄ-āϏ⧇āĻĢ (thread-safe) āĻāĻŦāĻ‚ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (immutable) DateTimeFormatter āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĄā§‡āϟ āĻĢāϰāĻŽā§āϝāĻžāϟ āĻ•āϰ⧁āύāĨ¤ +explanation: DateTimeFormatter āĻŽā§‡āĻĨāĻĄāϟāĻŋ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻāĻŦāĻ‚ āĻĨā§āϰ⧇āĻĄ-āϏ⧇āĻĢ, āϝāĻž SimpleDateFormat āĻĨ⧇āϕ⧇ āφāϞāĻžāĻĻāĻžāĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ•āύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ (constant) āĻšāĻŋāϏāĻžāĻŦ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āϝāĻžā§Ÿ āĻāĻŦāĻ‚ āĻĨā§āϰ⧇āĻĄ āϜ⧁āĻĄāĻŧ⧇ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ ISO_LOCAL_DATE āĻāϰ āĻŽāϤ⧋ āĻĒā§āϰāĻŋāĻĄāĻŋāĻĢāĻžāχāĻ¨ā§āĻĄ āĻĢāϰāĻŽā§‡āϟāĻžāϰ (predefined formatters) āϏāĻžāϧāĻžāϰāĻŖ āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +whyModernWins: +- icon: "đŸ›Ąī¸" + title: āĻĨā§āϰ⧇āĻĄ-āϏ⧇āĻĢ (Thread-safe) + desc: āϏāĻŋāĻ™ā§āĻ•ā§āϰ⧋āύāĻžāχāĻœā§‡āĻļāύ (synchronization) āĻ›āĻžāĻĄāĻŧāĻžāχ āĻĨā§āϰ⧇āĻĄ āϜ⧁āĻĄāĻŧ⧇ āĻĢāϰāĻŽā§‡āϟāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "📋" + title: āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻĢāϰāĻŽā§āϝāĻžāϟ (Built-in Formats) + desc: āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡āϰ āϜāĻ¨ā§āϝ ISO_LOCAL_DATE, ISO_INSTANT āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "🔒" + title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (Immutable) + desc: āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĢāĻžāχāύāĻžāϞ āĻ•āύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ (static final constants) āĻšāĻŋāϏāĻžāĻŦ⧇ āύāĻŋāϰāĻžāĻĒāĻĻ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύāĨ¤ +support: + description: JDK 8 (āĻŽāĻžāĻ°ā§āϚ 2014) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/datetime/duration-and-period.yaml b/translations/content/bn/datetime/duration-and-period.yaml new file mode 100644 index 0000000..7d32a3f --- /dev/null +++ b/translations/content/bn/datetime/duration-and-period.yaml @@ -0,0 +1,18 @@ +--- +title: Duration āĻāĻŦāĻ‚ Period +oldApproach: āĻŽāĻŋāϞāĻŋāϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻŽā§āϝāĻžāĻĨ (Millisecond Math) +modernApproach: Duration / Period +summary: āϟāĻžāχāĻĒ-āϏ⧇āĻĢ Duration āĻāĻŦāĻ‚ Period āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻŽāϝāĻŧ⧇āϰ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻšāĻŋāϏāĻžāĻŦ āĻ•āϰ⧁āύāĨ¤ +explanation: Duration āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϏāĻŽāϝāĻŧ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻĒāϰāĻŋāĻŽāĻžāĻŖ (āϝ⧇āĻŽāύ āϘāĻ¨ā§āϟāĻž, āĻŽāĻŋāύāĻŋāϟ, āϏ⧇āϕ⧇āĻ¨ā§āĻĄ) āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧāĨ¤ āĻ…āĻ¨ā§āϝāĻĻāĻŋāϕ⧇, Period āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϤāĻžāϰāĻŋāĻ–-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻĒāϰāĻŋāĻŽāĻžāĻŖ (āϝ⧇āĻŽāύ āĻŦāĻ›āϰ, āĻŽāĻžāϏ, āĻĻāĻŋāύ) āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤ ChronoUnit.between() āĻŽā§‡āĻĨāĻĄ āĻĻāĻŋā§Ÿā§‡ āϏāĻšāϜāĻ­āĻžāĻŦ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āύāĻŋāĻ°ā§āϪ⧟ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āĻāχ āϏāĻ•āϞ āĻŽā§‡āĻĨāĻĄ āĻāϜāĻŋ āϕ⧇āϏāϗ⧁āϞ⧋ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "đŸŽ¯" + title: āϟāĻžāχāĻĒ-āϏ⧇āĻĢ (Type-safe) + desc: āϏāĻŽāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ Duration āĻāĻŦāĻ‚ āϤāĻžāϰāĻŋāϖ⧇āϰ āϜāĻ¨ā§āϝ Period āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ – āϕ⧋āύ⧋ āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤāĻŋ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +- icon: "đŸ›Ąī¸" + title: āϏāĻ āĻŋāĻ• āĻ—āĻŖāύāĻž (Correct Math) + desc: DST āĻŸā§āϰāĻžāύāϜāĻŋāĻļāύ, āϞāĻŋāĻĒ āχāϝāĻŧāĻžāϰ (leap years) āĻāĻŦāĻ‚ āϞāĻŋāĻĒ āϏ⧇āϕ⧇āĻ¨ā§āĻĄ (leap seconds) āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +- icon: "📖" + title: āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ + desc: ChronoUnit.DAYS.between() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āχāĻ‚āϰ⧇āϜāĻŋ āĻŦāĻžāĻ•ā§āϝ⧇āϰ āĻŽāϤ⧋āχ āϏāĻšāϜāĻŦā§‹āĻ§ā§āϝāĨ¤ +support: + description: JDK 8 (āĻŽāĻžāĻ°ā§āϚ 2014) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/datetime/hex-format.yaml b/translations/content/bn/datetime/hex-format.yaml new file mode 100644 index 0000000..967d9c3 --- /dev/null +++ b/translations/content/bn/datetime/hex-format.yaml @@ -0,0 +1,18 @@ +--- +title: HexFormat +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻšā§‡āĻ•ā§āϏ āĻ•āύāĻ­āĻžāĻ°ā§āϏāύ +modernApproach: HexFormat +summary: HexFormat āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻšā§‡āĻ•ā§āϏ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ (hex strings) āĻāĻŦāĻ‚ āĻŦāĻžāχāϟ āĻ…ā§āϝāĻžāϰ⧇ (byte arrays) āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻ•āύāĻ­āĻžāĻ°ā§āϟ āĻ•āϰ⧁āύāĨ¤ +explanation: HexFormat āĻŦāĻžāχāϟ, āχāύāϟāĻŋāϜāĻžāϰ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻĻā§āĻŦāĻŋ-āĻŽā§āĻ–ā§€ (bidirectional) āĻšā§‡āĻ•ā§āϏ āĻāύāϕ⧋āĻĄāĻŋāĻ‚/āĻĄāĻŋāϕ⧋āĻĄāĻŋāĻ‚ āϏ⧁āĻŦāĻŋāϧāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋāϤ⧇ āĻĄāĻŋāϞāĻŋāĻŽāĻŋāϟāĻžāϰ, āĻĒā§āϰāĻŋāĻĢāĻŋāĻ•ā§āϏ, āϏāĻžāĻĢāĻŋāĻ•ā§āϏ āĻāĻŦāĻ‚ āϕ⧇āϏ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āĻāϰ āĻĢāϞ⧇ āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻĢāϰāĻŽā§‡āϟāĻŋāĻ‚ āĻŦāĻž āĻĒāĻžāĻ°ā§āϏāĻŋāĻ‚ā§Ÿā§‡āϰ āφāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +whyModernWins: +- icon: "📐" + title: āĻĻā§āĻŦāĻŋ-āĻŽā§āĻ–ā§€ (Bidirectional) + desc: āĻāĻ•āϟāĻŋ API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻžāχāĻŸâ†’āĻšā§‡āĻ•ā§āϏ āĻāĻŦāĻ‚ āĻšā§‡āĻ•ā§āĻ¸â†’āĻŦāĻžāχāϟ-āĻ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "🔧" + title: āĻ•āύāĻĢāĻŋāĻ—āĻžāϰāϝ⧋āĻ—ā§āϝ (Configurable) + desc: āĻĄāĻŋāϞāĻŋāĻŽāĻŋāϟāĻžāϰ, āĻĒā§āϰāĻŋāĻĢāĻŋāĻ•ā§āϏ, āϏāĻžāĻĢāĻŋāĻ•ā§āϏ, āφāĻĒāĻžāϰ/āϞ⧋āϝāĻŧāĻžāϰ āϕ⧇āϏ āϏ⧇āϟ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "đŸ“Ļ" + title: āĻ…ā§āϝāĻžāϰ⧇ āϏāĻžāĻĒā§‹āĻ°ā§āϟ (Array Support) + desc: āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻžāχāϟ āĻ…ā§āϝāĻžāϰ⧇ āĻāĻ•āϏāĻžāĻĨ⧇ āĻāύāϕ⧋āĻĄ/āĻĄāĻŋāϕ⧋āĻĄ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +support: + description: JDK 17 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2021) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/datetime/instant-precision.yaml b/translations/content/bn/datetime/instant-precision.yaml new file mode 100644 index 0000000..0b909ee --- /dev/null +++ b/translations/content/bn/datetime/instant-precision.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ¨ā§āϝāĻžāύ⧋āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻĒā§āϰāĻŋāϏāĻŋāĻļāύ āϏāĻš āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ (Instant with Nanosecond Precision) +oldApproach: āĻŽāĻŋāϞāĻŋāϏ⧇āϕ⧇āĻ¨ā§āĻĄ +modernApproach: āĻ¨ā§āϝāĻžāύ⧋āϏ⧇āϕ⧇āĻ¨ā§āĻĄ +summary: āĻŽāĻžāχāĻ•ā§āϰ⧋āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻŦāĻž āĻ¨ā§āϝāĻžāύ⧋āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻĒā§āϰāĻŋāϏāĻŋāĻļāύ āϏāĻš āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ (timestamps) āĻĒāĻžāύāĨ¤ +explanation: āϜāĻžāĻ­āĻž 9-āĻ āĻ•ā§āϞāĻ• āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāύ āωāĻ¨ā§āύāϤ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇, āϝāĻžāϰ āĻĢāϞ⧇ Instant.now() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻĒā§āϰāĻŋāϏāĻŋāĻļāύ (āĻ•āĻŋāϛ⧁ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻ¨ā§āϝāĻžāύ⧋āϏ⧇āϕ⧇āĻ¨ā§āĻĄ) āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻĒ⧁āϰ⧋āύ⧋ currentTimeMillis() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϕ⧇āĻŦāϞ āĻŽāĻŋāϞāĻŋāϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻĒā§āϰāĻŋāϏāĻŋāĻļāύ āĻĻāĻŋāϤāĨ¤ +whyModernWins: +- icon: "đŸŽ¯" + title: āωāĻšā§āϚ āĻĒā§āϰāĻŋāϏāĻŋāĻļāύ (Higher Precision) + desc: āĻŽāĻŋāϞāĻŋāϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏ⧇āϕ⧇āĻ¨ā§āĻĄ/āĻ¨ā§āϝāĻžāύ⧋āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒāĨ¤ +- icon: "📐" + title: āϟāĻžāχāĻĒ-āϏ⧇āĻĢ (Type-safe) + desc: āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ āϤāĻžāϰ āĻĒā§āϰāĻŋāϏāĻŋāĻļāύ āύāĻŋāĻœā§‡āχ āĻŦāĻšāύ āĻ•āϰ⧇ – āĻāĻ–āĻžāύ⧇ āϕ⧋āύ⧋ āĻ…āĻ¸ā§āĻĒāĻˇā§āϟ āϞāĻ‚ āĻ­ā§āϝāĻžāϞ⧁ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +- icon: "🌐" + title: UTC-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• + desc: āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ āϏāĻ°ā§āĻŦāĻĻāĻž UTC āϤ⧇ āĻĨāĻžāϕ⧇ – āϕ⧋āύ⧋ āϟāĻžāχāĻŽāĻœā§‹āύ āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤāĻŋ āύ⧇āχāĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/datetime/java-time-basics.yaml b/translations/content/bn/datetime/java-time-basics.yaml new file mode 100644 index 0000000..7988e30 --- /dev/null +++ b/translations/content/bn/datetime/java-time-basics.yaml @@ -0,0 +1,18 @@ +--- +title: java.time API āĻŦ⧇āϏāĻŋāĻ• +oldApproach: Date + Calendar +modernApproach: java.time.* +summary: Date āĻāĻŦāĻ‚ Calendar-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (immutable) āĻāĻŦāĻ‚ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻĄā§‡āϟ/āϟāĻžāχāĻŽ āϟāĻžāχāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: java.time API-āϤ⧇ LocalDate, LocalTime, LocalDateTime, Instant, ZonedDateTime āĻāϰ āĻŽāϤ⧋ āĻ•ā§āϞāĻžāϏ āĻ°ā§Ÿā§‡āϛ⧇, āϝāĻž āϏāĻŦāχ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻāĻŦāĻ‚ āĻĨā§āϰ⧇āĻĄ-āϏ⧇āĻĢāĨ¤ āĻŽāĻžāϏāϗ⧁āϞ⧋ 1-āχāύāĻĄā§‡āĻ•ā§āϏāĻĄāĨ¤ āĻāϰ āĻĢāϞ⧇ Calendar.JANUARY = 0 āĻāϰ āĻŽāϤ⧋ āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤāĻŋ āφāϰ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +whyModernWins: +- icon: "🔒" + title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (Immutable) + desc: āĻĄā§‡āϟ/āϟāĻžāχāĻŽ āĻ­ā§āϝāĻžāϞ⧁āϗ⧁āϞ⧋ āϭ⧁āϞāĻŦāĻļāϤ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžā§Ÿ āύāĻžāĨ¤ +- icon: "📖" + title: āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ API + desc: Month.JANUARY āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ, 0 āύ⧟āĨ¤ DayOfWeek.MONDAY āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ, 2 āύ⧟āĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻĨā§āϰ⧇āĻĄ-āϏ⧇āĻĢ (Thread-safe) + desc: āϏāĻŋāĻ™ā§āĻ•ā§āϰ⧋āύāĻžāχāĻœā§‡āĻļāύ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ – āĻĨā§āϰ⧇āĻĄ āϜ⧁āĻĄāĻŧ⧇ āĻ…āĻŦāĻžāϧ⧇ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +support: + description: JDK 8 (āĻŽāĻžāĻ°ā§āϚ 2014) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/datetime/math-clamp.yaml b/translations/content/bn/datetime/math-clamp.yaml new file mode 100644 index 0000000..632e6ff --- /dev/null +++ b/translations/content/bn/datetime/math-clamp.yaml @@ -0,0 +1,18 @@ +--- +title: Math.clamp() +oldApproach: āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ min/max +modernApproach: Math.clamp() +summary: āĻāĻ•āϟāĻŋ āĻŽāĻžāĻ¤ā§āϰ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϞ (call) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻ­ā§āϝāĻžāϞ⧁āϕ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŦāĻžāωāĻ¨ā§āĻĄā§‡āϰ (bounds) āĻŽāĻ§ā§āϝ⧇ āϰāĻžāϖ⧁āύ (clamp)āĨ¤ +explanation: Math.clamp(value, min, max) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ­ā§āϝāĻžāϞ⧁āϕ⧇ [min, max] āϰ⧇āĻžā§āĻœā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧ āϰāĻžāϖ⧇āĨ¤ āĻāϟāĻŋ āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ Math.min/Math.max āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻšā§‡āϝāĻŧ⧇ āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻāĻŦāĻ‚ int, long, float, āĻāĻŦāĻ‚ double āϟāĻžāχāĻĒ⧇āϰ āϜāĻ¨ā§āϝ āωāĻĒāϞāĻŦā§āϧāĨ¤ +whyModernWins: +- icon: "📖" + title: āĻ¸ā§āĻŦ-āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟāĻŋāĻ‚ (Self-documenting) + desc: clamp(value, min, max) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻĻā§āĻŦā§āϝāĻ°ā§āĻĨāĻšā§€āύ (unambiguous)āĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻ•āĻŽ āĻ¤ā§āϰ⧁āϟāĻŋ-āĻĒā§āϰāĻŦāĻŖ (Less Error-prone) + desc: āϭ⧁āϞāĻŦāĻļāϤ min/max-āĻāϰ āĻ…āĻ°ā§āĻĄāĻžāϰ āĻ…āĻĻāϞāĻŦāĻĻāϞ (swapping) āĻ•āϰāĻžāϰ āĻā§āρāĻ•āĻŋ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +- icon: "đŸŽ¯" + title: āϏāĻŦ āύāĻŋāωāĻŽā§‡āϰāĻŋāĻ• āϟāĻžāχāĻĒ (All Numeric Types) + desc: int, long, float, āĻāĻŦāĻ‚ double āϏāĻš āϏāĻŦ āύāĻŋāωāĻŽā§‡āϰāĻŋāĻ• āϟāĻžāχāĻĒ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 21 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2023) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/enterprise/ejb-timer-vs-jakarta-scheduler.yaml b/translations/content/bn/enterprise/ejb-timer-vs-jakarta-scheduler.yaml new file mode 100644 index 0000000..22e920e --- /dev/null +++ b/translations/content/bn/enterprise/ejb-timer-vs-jakarta-scheduler.yaml @@ -0,0 +1,18 @@ +--- +title: EJB āϟāĻžāχāĻŽāĻžāϰ āĻŦāύāĻžāĻŽ āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž āĻļāĻŋāĻĄāĻŋāωāϞāĻžāϰ (Jakarta Scheduler) +oldApproach: EJB TimerService +modernApproach: ManagedScheduledExecutorService +summary: āϏāĻšāϜ āĻļāĻŋāĻĄāĻŋāωāϞāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āĻšā§‡āĻ­āĻŋāĻ“āϝāĻŧ⧇āϟ EJB āϟāĻžāχāĻŽāĻžāϰ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋāϰ (Jakarta Concurrency) ManagedScheduledExecutorExecutorService āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: EJB āϟāĻžāχāĻŽāĻžāϰāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ @Stateless āĻŦāĻž @Singleton āĻŦāĻŋāύ (bean), @Timeout āĻ•āϞāĻŦā§āϝāĻžāĻ• āĻāĻŦāĻ‚ XML āĻŦāĻž āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻļāĻŋāĻĄāĻŋāωāϞ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋ ManagedScheduledExecutorService āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇, āϝāĻž āĻĒāϰāĻŋāϚāĻŋāϤ java.util.concurrent āĻļāĻŋāĻĄāĻŋāωāϞāĻŋāĻ‚ API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻāϰ āĻĢāϞ⧇ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ āĻ•āĻŽā§‡ āφāϏ⧇, āχāωāύāĻŋāϟ āĻŸā§‡āĻ¸ā§āϟāĻŋāĻ‚ āϏāĻšāϜ āĻšāϝāĻŧ āĻāĻŦāĻ‚ EJB āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰāϤāĻž āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +whyModernWins: +- icon: "đŸĒļ" + title: āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ āĻšā§āϰāĻžāϏ + desc: @Timeout āĻ•āϞāĻŦā§āϝāĻžāĻ• āĻŦāĻž ScheduleExpression-āĻāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ – āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ ScheduledExecutorService API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "đŸ§Ē" + title: āωāĻ¨ā§āύāϤ āĻŸā§‡āĻ¸ā§āϟāĻāĻŦāĻŋāϞāĻŋāϟāĻŋ (Testability) + desc: āĻĒā§āϞ⧇āχāύ āĻŽā§‡āĻĨāĻĄ āĻāĻŦāĻ‚ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟāϰ āĻŽāĻ•āϏ (mocks) EJB āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻ›āĻžā§œāĻžāχ āχāωāύāĻŋāϟ āĻŸā§‡āĻ¸ā§āϟāĻŋāĻ‚āϕ⧇ āϏāĻšāϜ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ +- icon: "â˜ī¸" + title: āĻ•ā§āϞāĻžāωāĻĄ-āύ⧇āϟāĻŋāĻ­ āĻĢā§āϰ⧇āĻ¨ā§āĻĄāϞāĻŋ + desc: Managed Executors āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϞāĻžāχāĻĢāϏāĻžāχāϕ⧇āϞ⧇āϰ āϏāĻžāĻĨ⧇ āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āϟ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ āϰāĻžāύāϟāĻžāχāĻŽā§‡ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +support: + description: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE 10 / Concurrency 3.0 āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ⧎ \ No newline at end of file diff --git a/translations/content/bn/enterprise/ejb-vs-cdi.yaml b/translations/content/bn/enterprise/ejb-vs-cdi.yaml new file mode 100644 index 0000000..449eaba --- /dev/null +++ b/translations/content/bn/enterprise/ejb-vs-cdi.yaml @@ -0,0 +1,18 @@ +--- +title: EJB āĻŦāύāĻžāĻŽ CDI +oldApproach: EJB +modernApproach: CDI Bean +summary: āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋ āχāύāĻœā§‡āĻ•āĻļāύ (dependency injection) āĻāĻŦāĻ‚ āĻŸā§āϰāĻžāύāϜāĻžāĻ•āĻļāύ⧇āϰ (transactions) āϜāĻ¨ā§āϝ āĻšā§‡āĻ­āĻŋāĻ“āϝāĻŧ⧇āϟ EJBs-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ CDI āĻŦāĻŋāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: CDI (Contexts and Dependency Injection) EJBs-āĻāϰ āĻŽāϤ⧋āχ āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋ āχāύāĻœā§‡āĻ•āĻļāύ āĻāĻŦāĻ‚ āĻŸā§āϰāĻžāύāϜāĻžāĻ•āĻļāύ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇, āϤāĻŦ⧇ āĻāϟāĻŋ āĻĒā§āϞ⧇āχāύ āϜāĻžāĻ­āĻž āĻ•ā§āϞāĻžāϏ⧇āϰ (plain Java classes) āĻŽāϤ⧋, āϝ⧇āĻ–āĻžāύ⧇ āϕ⧋āύ⧋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻŦāĻž āϏ⧁āĻĒāĻžāϰāĻ•ā§āϞāĻžāϏ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ @ApplicationScoped āĻāĻŦāĻ‚ @RequestScoped āĻāϰ āĻŽāϤ⧋ āĻ¸ā§āϕ⧋āĻĒāϗ⧁āϞ⧋ āϞāĻžāχāĻĢāϏāĻžāχāϕ⧇āϞ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻ•āϰ⧇ āĻāĻŦāĻ‚ @Transactional āĻŦāĻžāĻ§ā§āϝāϤāĻžāĻŽā§‚āϞāĻ• EJB āĻŸā§āϰāĻžāύāϜāĻžāĻ•āĻļāύ āϏ⧇āĻŽāĻžāĻ¨ā§āϟāĻŋāĻ•ā§āϏāϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "đŸĒļ" + title: āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ + desc: CDI āĻŦāĻŋāύāϏ āĻšāϞ⧋ āĻĒā§āϞ⧇āχāύ āϜāĻžāĻ­āĻž āĻ•ā§āϞāĻžāϏ, āϝ⧇āĻ–āĻžāύ⧇ EJB-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϕ⧋āύ⧋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻŦāĻž āĻĄāĻŋāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒāϟāϰ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ +- icon: "💉" + title: āχāωāύāĻŋāĻĢāĻžāχāĻĄ āχāύāĻœā§‡āĻ•āĻļāύ + desc: @Inject āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŽā§āϝāĻžāύ⧇āϜāĻĄ āĻŦāĻŋāύ, JAX-RS āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻāĻŦāĻ‚ āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE āĻ•āĻŽā§āĻĒā§‹āύ⧇āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āχāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +- icon: "đŸ§Ē" + title: āϏāĻšāϜ āχāωāύāĻŋāϟ āĻŸā§‡āĻ¸ā§āϟāĻŋāĻ‚ + desc: EJB āĻĒā§āϰāĻ•ā§āϏāĻŋ āĻ“āĻ­āĻžāϰāĻšā§‡āĻĄ āĻ›āĻžā§œāĻžāχ āĻĒā§āϞ⧇āχāύ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋ āχāύāĻ¸ā§āĻŸā§āϝāĻžāύāĻļāĻŋā§Ÿā§‡āϟ (instantiate) āĻāĻŦāĻ‚ āĻŽāĻ• (mock) āĻ•āϰāĻž āϏāĻšāϜāĨ¤ +support: + description: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE 8 / Java 11 āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ⧎ \ No newline at end of file diff --git a/translations/content/bn/enterprise/jdbc-resultset-vs-jpa-criteria.yaml b/translations/content/bn/enterprise/jdbc-resultset-vs-jpa-criteria.yaml new file mode 100644 index 0000000..a1aae52 --- /dev/null +++ b/translations/content/bn/enterprise/jdbc-resultset-vs-jpa-criteria.yaml @@ -0,0 +1,18 @@ +--- +title: JDBC ResultSet āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āĻŦāύāĻžāĻŽ JPA Criteria API +oldApproach: JDBC ResultSet +modernApproach: JPA Criteria API +summary: āĻĄāĻžāχāύāĻžāĻŽāĻŋāĻ• āϕ⧋āϝāĻŧ⧇āϰāĻŋāϰ (dynamic queries) āϜāĻ¨ā§āϝ JPA-āĻāϰ āϟāĻžāχāĻĒ-āϏ⧇āĻĢ Criteria API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞ JDBC ResultSet āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +explanation: Raw JDBC āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇ SQL āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āϤ⧈āϰāĻŋ āĻ•āϰāĻž, āχāύāĻĄā§‡āĻ•ā§āϏ āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϏ⧇āϟ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāϟāĻŋ ResultSet āĻ•āϞāĻžāĻŽāϕ⧇ āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞāĻŋ āĻŽā§āϝāĻžāĻĒ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§ŸāĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϭ⧁āϞ-āĻĒā§āϰāĻŦāĻŖ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻāĻŦāĻ‚ āĻ•āϞāĻžāĻŽ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāϞ⧇ āϕ⧋āύ⧋ āĻāϰāϰ āύāĻž āĻĻ⧇āĻ–āĻŋā§Ÿā§‡āχ āϕ⧋āĻĄ āϭ⧇āϙ⧇ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ JPA Criteria API āĻāĻ•āϟāĻŋ āϟāĻžāχāĻĒ-āϏ⧇āĻĢ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāϰ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϟāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϕ⧋āϝāĻŧ⧇āϰāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āĻ•āϞāĻžāĻŽā§‡āϰ āύāĻžāĻŽāϗ⧁āϞ⧋ āĻāύāϟāĻŋāϟāĻŋ āĻŽāĻĄā§‡āϞ⧇āϰ (entity model) āϏāĻžāĻĨ⧇ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āϟ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻĢāϞāĻžāĻĢāϞ āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϘāĻŸā§‡ āĻāĻŦāĻ‚ āϜāϟāĻŋāϞ āĻĄāĻžāχāύāĻžāĻŽāĻŋāĻ• āϕ⧋āϝāĻŧ⧇āϰāĻŋāϗ⧁āϞ⧋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻ•āύāĻ•ā§āϝāĻžāĻŸā§‡āύ⧇āĻļāύ (string concatenation) āĻ›āĻžā§œāĻžāχ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰāĻ­āĻžāĻŦ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +whyModernWins: +- icon: "🔒" + title: āϟāĻžāχāĻĒ-āϏ⧇āĻĢ āϕ⧋āϝāĻŧ⧇āϰāĻŋ (Type-safe Queries) + desc: Criteria āĻŦāĻŋāĻ˛ā§āĻĄāĻžāϰāϟāĻŋ āĻ•āĻŽā§āĻĒāĻžāχāϞ āϟāĻžāχāĻŽā§‡ āĻĢāĻŋāĻ˛ā§āĻĄā§‡āϰ āύāĻžāĻŽ āĻāĻŦāĻ‚ āϟāĻžāχāĻĒ⧇āϰ āĻ…āĻŽāĻŋāϞ (type mismatches) āϧāϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +- icon: "đŸ—ēī¸" + title: āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ (Automatic Mapping) + desc: JPA ResultSet āĻĨ⧇āϕ⧇ āĻāύāϟāĻŋāϟāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡ (entity objects) āĻĢāϞāĻžāĻĢāϞ āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ•āϰ⧇ – āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻ•āϞāĻžāĻŽ-āĻŦāĻžāχ-āĻ•āϞāĻžāĻŽ āĻĄā§‡āϟāĻž āĻāĻ•ā§āϏāĻŸā§āϰāĻžāĻ•ā§āϟ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ +- icon: "🧩" + title: āĻ•āĻŽā§āĻĒā§‹āĻœā§‡āĻŦāϞ āĻĒā§āϰ⧇āĻĄāĻŋāϕ⧇āϟ (Composable Predicates) + desc: āĻĄāĻžāχāύāĻžāĻŽāĻŋāĻ• where-clause āϗ⧁āϞ⧋ and(), or(), āĻāĻŦāĻ‚ āϰāĻŋāχāωāĻœā§‡āĻŦāϞ Predicate āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰāĻ­āĻžāĻŦ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +support: + description: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE 8 / Java 11 āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ⧎ \ No newline at end of file diff --git a/translations/content/bn/enterprise/jdbc-vs-jooq.yaml b/translations/content/bn/enterprise/jdbc-vs-jooq.yaml new file mode 100644 index 0000000..3c69afe --- /dev/null +++ b/translations/content/bn/enterprise/jdbc-vs-jooq.yaml @@ -0,0 +1,18 @@ +--- +title: JDBC āĻŦāύāĻžāĻŽ jOOQ +oldApproach: Raw JDBC +modernApproach: jOOQ SQL DSL +summary: jOOQ-āĻāϰ āϟāĻžāχāĻĒ-āϏ⧇āĻĢ, āĻĢā§āĻ˛ā§ā§Ÿā§‡āĻ¨ā§āϟ SQL DSL āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Raw JDBC āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• SQL āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +explanation: jOOQ (Java Object Oriented Querying) āφāĻĒāύāĻžāϰ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻĨ⧇āϕ⧇ āϜāĻžāĻ­āĻž āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰ⧇, āĻŸā§‡āĻŦāĻŋāϞ āĻāĻŦāĻ‚ āĻ•āϞāĻžāĻŽā§‡āϰ āύāĻžāĻŽāϗ⧁āϞ⧋āϕ⧇ āϟāĻžāχāĻĒ-āϏ⧇āĻĢ āϜāĻžāĻ­āĻž āĻ•āύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻŸā§‡ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻāϰ āĻĢā§āĻ˛ā§ā§Ÿā§‡āĻ¨ā§āϟ DSL SQL āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏāϕ⧇ āĻĒā§āϰāϤāĻŋāĻĢāϞāĻŋāϤ āĻ•āϰ⧇, āĻĢāϞ⧇ āϕ⧋āϝāĻŧ⧇āϰāĻŋāϗ⧁āϞ⧋ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ āĻāĻŦāĻ‚ āĻ•āĻŽā§āĻĒā§‹āĻœā§‡āĻŦāϞ (composable) āĻĨāĻžāϕ⧇āĨ¤ āϏāĻŽāĻ¸ā§āϤ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻŦāĻžāχāĻ¨ā§āĻĄ (bind) āĻšā§Ÿ, āϝāĻž SQL āχāύāĻœā§‡āĻ•āĻļāύ⧇āϰ āĻā§āρāĻ•āĻŋ āĻĻā§‚āϰ āĻ•āϰ⧇āĨ¤ JPA/JPQL-āĻāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇, jOOQ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ SQL-āϕ⧇ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ – āωāχāĻ¨ā§āĻĄā§‹ āĻĢāĻžāĻ‚āĻļāύ, CTEs, RETURNING āĻ•ā§āϞāϜ āĻāĻŦāĻ‚ āϭ⧇āĻ¨ā§āĻĄāϰ-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϗ⧁āϞ⧋ āĻāĻ–āĻžāύ⧇ āĻĢāĻžāĻ°ā§āĻ¸ā§āϟ-āĻ•ā§āϞāĻžāϏ āĻĢāĻŋāϚāĻžāϰāĨ¤ +whyModernWins: +- icon: "🔒" + title: āϟāĻžāχāĻĒ-āϏ⧇āĻĢ āĻ•āϞāĻžāĻŽ + desc: āĻ•āϞāĻžāĻŽā§‡āϰ āύāĻžāĻŽāϗ⧁āϞ⧋ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰāĻž āϜāĻžāĻ­āĻž āĻ•āύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ āĻšāϝāĻŧ – āϟāĻžāχāĻĒā§‹ āĻāĻŦāĻ‚ āϟāĻžāχāĻĒ⧇āϰ āĻ…āĻŽāĻŋāϞ āϰāĻžāύāϟāĻžāχāĻŽ āĻĢ⧇āχāϞ⧁āϰ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āĻāϰāϰ āĻšāĻŋāϏāĻžāĻŦ⧇ āϧāϰāĻž āĻĒā§œā§‡āĨ¤ +- icon: "📖" + title: SQL āĻĢā§āĻ˛ā§ā§Ÿā§‡āĻ¨ā§āϏāĻŋ + desc: jOOQ DSL SQL āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏāϕ⧇ āϘāύāĻŋāĻˇā§āĻ āĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϤāĻŋāĻĢāϞāĻŋāϤ āĻ•āϰ⧇, āϤāĻžāχ āϜāϟāĻŋāϞ JOINs, āϏāĻžāĻŦāϕ⧋āϝāĻŧ⧇āϰāĻŋ (subqueries) āĻāĻŦāĻ‚ CTEs āϏāĻšāĻœā§‡āχ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ āĻĨāĻžāϕ⧇āĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻĄāĻŋāϜāĻžāχāύ āĻĻā§āĻŦāĻžāϰāĻž āχāύāĻœā§‡āĻ•āĻļāύ-āĻŽā§āĻ•ā§āϤ + desc: āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞāĻŋ āϏāĻ°ā§āĻŦāĻĻāĻž āύāĻŋāϰāĻžāĻĒāĻĻ⧇ āĻŦāĻžāχāĻ¨ā§āĻĄ āĻĨāĻžāϕ⧇ – āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻ•āύāĻ•ā§āϝāĻžāĻŸā§‡āύ⧇āĻļāύ (string concatenation) āύāĻž āĻĨāĻžāĻ•āĻžā§Ÿ SQL āχāύāĻœā§‡āĻ•āĻļāύ⧇āϰ āϕ⧋āύ⧋ āĻā§āρāĻ•āĻŋ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +support: + description: jOOQ āĻ“āĻĒ⧇āύ-āϏ⧋āĻ°ā§āϏ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āϏāĻŽāĻ¸ā§āϤ āĻĒā§āϰāϧāĻžāύ āĻ“āĻĒ⧇āύ-āϏ⧋āĻ°ā§āϏ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇; āĻĒ⧁āϰāĻžāύ⧋ āĻŦāĻžāĻŖāĻŋāĻœā§āϝāĻŋāĻ• āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻĻāĻ¤ā§āϤ āϞāĻžāχāϏ⧇āĻ¨ā§āϏ āĻĒā§āϰāϝāĻŧā§‹āϜāύ \ No newline at end of file diff --git a/translations/content/bn/enterprise/jdbc-vs-jpa.yaml b/translations/content/bn/enterprise/jdbc-vs-jpa.yaml new file mode 100644 index 0000000..7c9e380 --- /dev/null +++ b/translations/content/bn/enterprise/jdbc-vs-jpa.yaml @@ -0,0 +1,18 @@ +--- +title: JDBC āĻŦāύāĻžāĻŽ JPA +oldApproach: JDBC +modernApproach: JPA EntityManager +summary: JPA-āĻāϰ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ-āϰāĻŋāϞ⧇āĻļāύāĻžāϞ āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āĻāĻŦāĻ‚ EntityManager āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ JDBC āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +explanation: JPA (Jakarta Persistence API) āϜāĻžāĻ­āĻž āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϕ⧇ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āϰ⧋-āĻāϰ (database rows) āϏāĻžāĻĨ⧇ āĻŽā§āϝāĻžāĻĒ āĻ•āϰ⧇, āϝāĻž āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ ResultSet āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āĻāĻŦāĻ‚ SQL āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻ•āύāĻ•ā§āϝāĻžāĻŸā§‡āύ⧇āĻļāύāϕ⧇ āĻĻā§‚āϰ āĻ•āϰ⧇āĨ¤ EntityManager find(), persist(), āĻāĻŦāĻ‚ JPQL āϕ⧋āϝāĻŧ⧇āϰāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇, āϝāĻžāϤ⧇ āφāĻĒāύāĻŋ Raw SQL-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻĄā§‹āĻŽā§‡āχāύ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ (domain objects) āύāĻŋāϝāĻŧ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āϝāĻ–āύ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻĒ⧁āϞāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻŸā§āϰāĻžāύāϜāĻžāĻ•āĻļāύ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "đŸ—ēī¸" + title: āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ + desc: āĻāύāϟāĻŋāϟāĻŋāϗ⧁āϞ⧋ āĻĒā§āϞ⧇āχāύ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻĄ āĻ•ā§āϞāĻžāϏ – āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ ResultSet-āϕ⧇ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "🔒" + title: āϟāĻžāχāĻĒ-āϏ⧇āĻĢ āϕ⧋āϝāĻŧ⧇āϰāĻŋ (Type-safe Queries) + desc: JPQL Raw āĻŸā§‡āĻŦāĻŋāϞ āĻāĻŦāĻ‚ āĻ•āϞāĻžāĻŽ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻāύāϟāĻŋāϟāĻŋ āϟāĻžāχāĻĒ āĻāĻŦāĻ‚ āĻĢāĻŋāĻ˛ā§āĻĄā§‡āϰ āωāĻĒāϰ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +- icon: "⚡" + title: āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻ•ā§āϝāĻžāĻļāĻŋāĻ‚ (Built-in Caching) + desc: āĻĢāĻžāĻ°ā§āĻ¸ā§āϟ- āĻāĻŦāĻ‚ āϏ⧇āϕ⧇āĻ¨ā§āĻĄ-āϞ⧇āϭ⧇āϞ āĻ•ā§āϝāĻžāĻļ⧇āϗ⧁āϞ⧋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ⧇āϰ āϰāĻžāωāĻ¨ā§āĻĄ-āĻŸā§āϰāĻŋāĻĒ (round-trips) āĻ•āĻŽāĻŋāϝāĻŧ⧇ āĻĻā§‡ā§ŸāĨ¤ +support: + description: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE 8 / Java 11 āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ⧎ \ No newline at end of file diff --git a/translations/content/bn/enterprise/jndi-lookup-vs-cdi-injection.yaml b/translations/content/bn/enterprise/jndi-lookup-vs-cdi-injection.yaml new file mode 100644 index 0000000..a97b547 --- /dev/null +++ b/translations/content/bn/enterprise/jndi-lookup-vs-cdi-injection.yaml @@ -0,0 +1,18 @@ +--- +title: JNDI Lookup āĻŦāύāĻžāĻŽ CDI Injection +oldApproach: JNDI Lookup +modernApproach: CDI @Inject +summary: āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ-āĻŽā§āϝāĻžāύ⧇āϜāĻĄ āϰāĻŋāϏ⧋āĻ°ā§āϏāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻĢā§āĻ°ā§āϝāĻžāϜāĻžāχāϞ (fragile) JNDI āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āϞ⧁āĻ•āφāĻĒ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āϟāĻžāχāĻĒ-āϏ⧇āĻĢ CDI āχāύāĻœā§‡āĻ•āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: āĻĒā§āϰāϚāϞāĻŋāϤ JNDI āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āφāĻĒāύāĻžāϕ⧇ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āϰāĻŋāϏ⧋āĻ°ā§āϏ āύāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇, NamingException āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ InitialContext āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰāϤ⧇ āĻŦāĻžāĻ§ā§āϝ āĻ•āϰ⧇āĨ¤ @Inject (āĻŦāĻž āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰāĻŋāϏ⧋āĻ°ā§āϏāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ @Resource) āϏāĻš CDI āχāύāĻœā§‡āĻ•āĻļāύ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϕ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋ (dependencies) āĻ“āϝāĻŧā§āϝāĻžāϰ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ āϟāĻžāχāĻĒā§‹ (typos) āĻ•āĻŽā§āĻĒāĻžāχāϞ-āϟāĻžāχāĻŽ āĻāϰāϰ⧇ āĻĒāϰāĻŋāĻŖāϤ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋ āϏāĻšāĻœā§‡ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰāĻž āϝāĻžā§Ÿ āĻ•āĻžāϰāĻŖ āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋāϗ⧁āϞ⧋ āϏāϰāĻžāϏāϰāĻŋ āχāύāĻœā§‡āĻ•ā§āϟ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦāĨ¤ +whyModernWins: +- icon: "🔒" + title: āϟāĻžāχāĻĒ-āϏ⧇āĻĢ āĻ“ā§Ÿā§āϝāĻžāϰāĻŋāĻ‚ (Type-safe Wiring) + desc: āχāύāĻœā§‡āĻ•āĻļāύ āĻāϰāϰāϗ⧁āϞ⧋ āĻĄāĻŋāĻĒā§āϞāϝāĻŧāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϏāĻŽāϝāĻŧ āϧāϰāĻž āĻĒāĻĄāĻŧ⧇, āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āϞ⧁āĻ•āφāĻĒ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϰāĻžāύāϟāĻžāχāĻŽā§‡ āύāϝāĻŧāĨ¤ +- icon: "đŸ—‘ī¸" + title: āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ (Boilerplate) āύ⧇āχ + desc: InitialContext āϤ⧈āϰāĻŋ, JNDI āύāĻžāĻŽ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻāĻŦāĻ‚ NamingException āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻŋāĻ‚ā§Ÿā§‡āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻĻā§‚āϰ āĻ•āϰ⧇āĨ¤ +- icon: "đŸ§Ē" + title: āĻŸā§‡āĻ¸ā§āĻŸā§‡āĻŦāϞ (Testable) + desc: āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋāϗ⧁āϞ⧋ āχāύāĻœā§‡āĻ•ā§āĻŸā§‡āĻĄ āĻĢāĻŋāĻ˛ā§āĻĄ, āϝāĻž āχāωāύāĻŋāϟ āĻŸā§‡āĻ¸ā§āĻŸā§‡ āĻŽāĻ• (mocks) āĻĻāĻŋā§Ÿā§‡ āϏāĻšāĻœā§‡ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +support: + description: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE 8 / Java 11 āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ⧎ \ No newline at end of file diff --git a/translations/content/bn/enterprise/jpa-vs-jakarta-data.yaml b/translations/content/bn/enterprise/jpa-vs-jakarta-data.yaml new file mode 100644 index 0000000..f96cd91 --- /dev/null +++ b/translations/content/bn/enterprise/jpa-vs-jakarta-data.yaml @@ -0,0 +1,18 @@ +--- +title: JPA āĻŦāύāĻžāĻŽ āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž āĻĄā§‡āϟāĻž (Jakarta Data) +oldApproach: JPA EntityManager +modernApproach: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž āĻĄā§‡āϟāĻž āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ (Jakarta Data Repository) +summary: āĻāĻ•āϟāĻŋ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž āĻĄā§‡āϟāĻžāϕ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ DAO āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĻāĻŋāύāĨ¤ +explanation: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž āĻĄā§‡āϟāĻž (Jakarta EE 11) āĻĄā§‡āϟāĻž āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏāϕ⧇ āĻāĻ•āϟāĻŋ āĻĒāĻŋāĻ“āϰ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āĻļāύ⧇ āĻĒāϰāĻŋāĻŖāϤ āĻ•āϰ⧇āĨ¤ āφāĻĒāύāĻŋ @Repository āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āĻĻāĻŋāϝāĻŧ⧇ āĻāĻ•āϟāĻŋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āύ āĻāĻŦāĻ‚ CrudRepository-āĻāϰ āĻŽāϤ⧋ āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āϟāĻžāχāĻĒ āĻāĻ•ā§āϏāĻŸā§‡āĻ¨ā§āĻĄ āĻ•āϰ⧇āύāĨ¤ āϰāĻžāύāϟāĻžāχāĻŽ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰ⧇ – FindByName-āĻāϰ āĻŽāϤ⧋ āĻŽā§‡āĻĨāĻĄā§‡āϰ āύāĻžāĻŽ āĻĨ⧇āϕ⧇ āĻĄā§‡āϰāĻžāχāĻ­āĻĄ āϕ⧋āϝāĻŧ⧇āϰāĻŋ (derived queries) āϏāĻš – āĻĢāϞ⧇ āϕ⧋āύ⧋ EntityManager āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ, JPQL āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻŦāĻž āĻšāĻžāϤ⧇ āϞ⧇āĻ–āĻž āϏ⧇āĻ­/āĻĢāĻžāχāĻ¨ā§āĻĄ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ +whyModernWins: +- icon: "đŸĒ„" + title: āϜāĻŋāϰ⧋ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ (Zero Boilerplate) + desc: āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ āĻ•āϰ⧁āύ; āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ⧇āϰ āϏāĻŽāϝāĻŧ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ DAO āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰ⧇āĨ¤ +- icon: "🔍" + title: āĻĄā§‡āϰāĻžāχāĻ­āĻĄ āϕ⧋āϝāĻŧ⧇āϰāĻŋ (Derived Queries) + desc: FindByNameAndStatus-āĻāϰ āĻŽāϤ⧋ āĻŽā§‡āĻĨāĻĄā§‡āϰ āύāĻžāĻŽāϗ⧁āϞ⧋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĒāĻžāĻ°ā§āϏ āĻ•āϰāĻž āĻšā§Ÿ – āϕ⧋āύ⧋ JPQL āĻŦāĻž SQL āĻāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "🔌" + title: āĻĒā§‹āĻ°ā§āĻŸā§‡āĻŦāϞ (Portable) + desc: āϝ⧇āϕ⧋āύ⧋ āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE 11 āĻ•āĻŽāĻĒā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϰāĻžāύāϟāĻžāχāĻŽ āϕ⧋āύ⧋ āϭ⧇āĻ¨ā§āĻĄāϰ āϞāĻ•-āχāύ āĻ›āĻžāĻĄāĻŧāĻžāχ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ +support: + description: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE 11 / Java 21 (2024) āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/enterprise/jsf-managed-bean-vs-cdi-named.yaml b/translations/content/bn/enterprise/jsf-managed-bean-vs-cdi-named.yaml new file mode 100644 index 0000000..8f13ea3 --- /dev/null +++ b/translations/content/bn/enterprise/jsf-managed-bean-vs-cdi-named.yaml @@ -0,0 +1,18 @@ +--- +title: JSF Managed Bean āĻŦāύāĻžāĻŽ CDI Named Bean +oldApproach: "@ManagedBean" +modernApproach: "@Named + CDI" +summary: āĻāĻ•āϟāĻŋ āχāωāύāĻŋāĻĢāĻžāχāĻĄ āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋ āχāύāĻœā§‡āĻ•āĻļāύ (dependency injection) āĻŽāĻĄā§‡āϞ⧇āϰ āϜāĻ¨ā§āϝ āĻĄā§‡āĻĒā§āϰāĻŋāϕ⧇āĻŸā§‡āĻĄ (deprecated) JSF @ManagedBean-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ CDI @Named āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: JSF-āĻāϰ @ManagedBean āĻāĻŦāĻ‚ @ManagedProperty Jakarta Faces 2.3-āĻ āĻĄā§‡āĻĒā§āϰāĻŋāϕ⧇āĻŸā§‡āĻĄ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āĻāĻŦāĻ‚ Jakarta EE 10 āĻĨ⧇āϕ⧇ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤ CDI-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύāϟāĻŋ @Named āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻŋāύāϕ⧇ EL āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ⧇ āĻāĻ•ā§āϏāĻĒā§‹āϜ āĻ•āϰ⧇ āĻāĻŦāĻ‚ @Inject āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋ āĻ“āϝāĻŧā§āϝāĻžāϰāĻŋāĻ‚āϝāĻŧ⧇āϰ (wiring) āϜāĻ¨ā§āϝ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻŦāĻŋāύ āĻŽāĻĄā§‡āϞāϕ⧇ āĻāϕ⧀āĻ­ā§‚āϤ āĻ•āϰ⧇ – JSF āĻĒ⧇āϜ, JAX-RS āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻāĻŦāĻ‚ EJBs āϏāĻŦāĻžāχ āĻāĻ•āχ CDI āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "🔗" + title: āχāωāύāĻŋāĻĢāĻžāχāĻĄ āĻŽāĻĄā§‡āϞ + desc: āĻāĻ•āϟāĻŋ CDI āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϏāĻŦ āĻŦāĻŋāύ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰ⧇ – JSF, REST āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āϞ⧇āϝāĻŧāĻžāϰ āĻāĻ•āχ āχāύāĻœā§‡āĻ•āĻļāύ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰ⧇āĨ¤ +- icon: "đŸ—‘ī¸" + title: āĻ•āĻŽ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ + desc: @Inject āĻŽā§‡āĻĨāĻĄāϟāĻŋ @ManagedProperty āĻāĻŦāĻ‚ āĻāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āϏ⧇āϟāĻžāϰ āĻŽā§‡āĻĨāĻĄāϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +- icon: "🔮" + title: āĻĢāĻŋāωāϚāĻžāϰ-āĻĒā§āϰ⧁āĻĢ + desc: @ManagedBean Jakarta EE 10 āĻĨ⧇āϕ⧇ āϏāϰāĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇; @Named āĻšāϞ⧋ āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύāĨ¤ +support: + description: CDI @Named Java EE 6 āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ; @ManagedBean Jakarta EE 10 āĻ āϏāϰāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇ \ No newline at end of file diff --git a/translations/content/bn/enterprise/manual-transaction-vs-declarative.yaml b/translations/content/bn/enterprise/manual-transaction-vs-declarative.yaml new file mode 100644 index 0000000..22a60c4 --- /dev/null +++ b/translations/content/bn/enterprise/manual-transaction-vs-declarative.yaml @@ -0,0 +1,18 @@ +--- +title: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ JPA āĻŸā§āϰāĻžāύāϜāĻžāĻ•āĻļāύ āĻŦāύāĻžāĻŽ āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āϟāĻŋāĻ­ @Transactional +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻŸā§āϰāĻžāύāϜāĻžāĻ•āĻļāύ +modernApproach: "@Transactional" +summary: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ @Transactional āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ begin/commit/rollback āĻŦā§āϞāĻ•āϗ⧁āϞ⧋ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +explanation: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻŸā§āϰāĻžāύāϜāĻžāĻ•āĻļāύ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ (transaction management) āϜāĻ¨ā§āϝ begin(), commit(), āĻāĻŦāĻ‚ rollback() āĻ•āϞāϗ⧁āϞ⧋āϕ⧇ āĻŸā§āϰāĻžāχ-āĻ•ā§āϝāĻžāϚ āĻŦā§āϞāĻ• (try-catch blocks)-āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•ā§āϏāĻĒā§āϞāĻŋāϏāĻŋāϟāĻ­āĻžāĻŦ⧇ (explicitly) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšā§Ÿ – āĻĒā§āϰāϤāĻŋāϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻŽā§‡āĻĨāĻĄā§‡ āĻāχ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ (boilerplate) āϕ⧋āĻĄ āϰāĻŋāĻĒāĻŋāϟ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤ @Transactional āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āϞāĻžāχāĻĢāϏāĻžāχāϕ⧇āϞ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟāϕ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻ•āĻžāϛ⧇ āĻĄā§‡āϞāĻŋāϗ⧇āϟ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻŽā§‡āĻĨāĻĄā§‡āϰ āφāϗ⧇ āĻāĻ•āϟāĻŋ āĻŸā§āϰāĻžāύāϜāĻžāĻ•āĻļāύ āĻļ⧁āϰ⧁ āĻ•āϰ⧇, āϏāĻĢāϞ āĻšāϞ⧇ āĻ•āĻŽāĻŋāϟ āĻ•āϰ⧇ āĻāĻŦāĻ‚ RuntimeException āϘāϟāϞ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϰ⧋āϞāĻŦā§āϝāĻžāĻ• (roll back) āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "đŸ—‘ī¸" + title: āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ āύ⧇āχ + desc: āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āϰāĻŋāĻĒāĻŋāĻŸā§‡āϟāĻŋāĻ­ begin/commit/rollback āĻŸā§āϰāĻžāχ-āĻ•ā§āϝāĻžāϚ āĻŦā§āϞāĻ•āϗ⧁āϞ⧋āϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +- icon: "đŸ›Ąī¸" + title: āύāĻŋāϰāĻžāĻĒāĻĻ āϰ⧋āϞāĻŦā§āϝāĻžāĻ• (Safer Rollback) + desc: āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āφāύāĻšā§‡āĻ•āĻĄ āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ (unchecked exceptions) āϘāϟāϞ⧇ āϰ⧋āϞāĻŦā§āϝāĻžāĻ• āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇ – āĻ•ā§āϝāĻžāϚ āĻŦā§āϞāĻ• āϭ⧁āϞ⧇ āϝāĻžāĻ“ā§ŸāĻžāϰ āϕ⧋āύ⧋ āĻā§āρāĻ•āĻŋ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +- icon: "📐" + title: āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āϟāĻŋāĻ­ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ (Declarative Control) + desc: āĻĒā§āϰ⧋āĻĒāĻžāϗ⧇āĻļāύ (propagation), āφāχāϏ⧋āϞ⧇āĻļāύ (isolation) āĻāĻŦāĻ‚ āϰ⧋āϞāĻŦā§āϝāĻžāĻ• āύāĻŋ⧟āĻŽāϗ⧁āϞ⧋ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āĻ…ā§āϝāĻžāĻŸā§āϰāĻŋāĻŦāĻŋāωāϟ (annotation attributes) āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻž āĻšā§ŸāĨ¤ +support: + description: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE 8 / Java 11 āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ⧎ \ No newline at end of file diff --git a/translations/content/bn/enterprise/mdb-vs-reactive-messaging.yaml b/translations/content/bn/enterprise/mdb-vs-reactive-messaging.yaml new file mode 100644 index 0000000..b738254 --- /dev/null +++ b/translations/content/bn/enterprise/mdb-vs-reactive-messaging.yaml @@ -0,0 +1,18 @@ +--- +title: Message-Driven Bean āĻŦāύāĻžāĻŽ āϰāĻŋāĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āĻŽā§‡āϏ⧇āϜāĻŋāĻ‚ (Reactive Messaging) +oldApproach: Message-Driven Bean +modernApproach: āϰāĻŋāĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āĻŽā§‡āϏ⧇āϜāĻŋāĻ‚ (Reactive Messaging) +summary: āϏāĻšāϜ āχāϭ⧇āĻ¨ā§āϟ āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ JMS Message-Driven Beans-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ MicroProfile Reactive Messaging āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: Message-Driven Beans-āĻāϰ āϜāĻ¨ā§āϝ MessageListener āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰāĻž, āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāϭ⧇āĻļāύ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻāĻŦāĻ‚ JMS āĻŽā§‡āϏ⧇āϜ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ (deserialize) āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§ŸāĨ¤ MicroProfile Reactive Messaging āĻāĻ•āϟāĻŋ āĻŽā§‡āĻĨāĻĄā§‡ āĻāĻ•āϟāĻŋ āϏāĻšāϜ @Incoming āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āϝāĻž āϏāϰāĻžāϏāϰāĻŋ āϟāĻžāχāĻĒāĻĄ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āĨ¤ āĻšā§āϝāĻžāύ⧇āϞ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞāĻžāχāϜāĻĄ āĻšāĻ“ā§ŸāĻžā§Ÿ āϕ⧋āĻĄ āĻŦā§āϰ⧋āĻ•āĻžāϰ-āĻ…ā§āϝāĻžāĻ—āύāĻ¸ā§āϟāĻŋāĻ• (broker-agnostic) āĻšā§Ÿ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āĻ…āύ⧇āĻ• āϏāĻšāϜāĨ¤ +whyModernWins: +- icon: "đŸĒļ" + title: āĻ¨ā§āϝ⧂āύāϤāĻŽ āϕ⧋āĻĄ + desc: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ @Incoming āĻŽā§‡āĻĨāĻĄ MDB āĻ•ā§āϞāĻžāϏ, MessageListener āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāϭ⧇āĻļāύ āĻ•āύāĻĢāĻŋāĻ—āϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +- icon: "🔌" + title: āĻŦā§āϰ⧋āĻ•āĻžāϰ-āĻ…ā§āϝāĻžāĻ—āύāĻ¸ā§āϟāĻŋāĻ• (Broker-agnostic) + desc: āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϕ⧋āĻĄ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āύāĻž āĻ•āϰ⧇āχ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ Kafka, AMQP, āĻŦāĻž JMS āĻ•āĻžāύ⧇āĻ•ā§āϟāϰ āĻ…āĻĻāϞāĻŦāĻĻāϞ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "â˜ī¸" + title: āĻ•ā§āϞāĻžāωāĻĄ-āύ⧇āϟāĻŋāĻ­ āĻĢāĻŋāϟ + desc: āϰāĻŋāĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻŦā§āϝāĻžāĻ•āĻĒā§āϰ⧇āĻļāĻžāϰ āĻāĻŦāĻ‚ āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ āϰāĻžāύāϟāĻžāχāĻŽ āĻāϟāĻŋāϕ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāĻžāχāϜāĻĄ āĻĄāĻŋāĻĒā§āϞāϝāĻŧāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āφāĻĻāĻ°ā§āĻļ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ +support: + description: āĻŽāĻžāχāĻ•ā§āϰ⧋āĻĒā§āϰ⧋āĻĢāĻžāχāϞ 4.0 / SmallRye āϰāĻŋāĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āĻŽā§‡āϏ⧇āϜāĻŋāĻ‚ āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/enterprise/servlet-vs-jaxrs.yaml b/translations/content/bn/enterprise/servlet-vs-jaxrs.yaml new file mode 100644 index 0000000..178420c --- /dev/null +++ b/translations/content/bn/enterprise/servlet-vs-jaxrs.yaml @@ -0,0 +1,18 @@ +--- +title: Servlet āĻŦāύāĻžāĻŽ JAX-RS +oldApproach: HttpServlet +modernApproach: JAX-RS Resource +summary: āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ HttpServlet āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āĻŸā§‡āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āϟāĻŋāĻ­ JAX-RS āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ•ā§āϞāĻžāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: JAX-RS (Jakarta RESTful Web Services) āφāĻĒāύāĻžāϕ⧇ @GET, @Path, āĻāĻŦāĻ‚ @Produces-āĻāϰ āĻŽāϤ⧋ āϏāĻšāϜ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ REST āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻ•ā§āϏāĻĒā§‹āϜ āĻ•āϰāϤ⧇ āĻĻā§‡ā§ŸāĨ¤ āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞāĻŋ āĻĒāĻžāĻ°ā§āϏ (parse) āĻ•āϰāĻž āĻŦāĻž āϰ⧇āϏāĻĒāĻ¨ā§āϏ⧇ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ āϟāĻžāχāĻĒ āϏ⧇āϟ āĻ•āϰāĻžāϰ āφāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ – āϰāĻžāύāϟāĻžāχāĻŽ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻŽāĻžāĻ°ā§āĻļāĻžāϞāĻŋāĻ‚ (marshalling) āĻāĻŦāĻ‚ āϰāĻžāωāϟāĻŋāĻ‚ (routing) āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "📐" + title: āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āϟāĻŋāĻ­ āϰāĻžāωāϟāĻŋāĻ‚ (Declarative Routing) + desc: āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύāϗ⧁āϞ⧋ HTTP āĻŽā§‡āĻĨāĻĄ, āĻĒāĻžāĻĨ āĻāĻŦāĻ‚ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ āϟāĻžāχāĻĒ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰ⧇, āχāĻŽā§āĻĒāĻžāϰ⧇āϟāĻŋāĻ­ (imperative) if/else āĻĄāĻŋāϏāĻĒā§āϝāĻžāĻšā§‡āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇āĨ¤ +- icon: "🔄" + title: āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻŽāĻžāĻ°ā§āĻļāĻžāϞāĻŋāĻ‚ (Automatic Marshalling) + desc: POJOs āϏāϰāĻžāϏāϰāĻŋ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧁āύ; @Produces-āĻāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϰāĻžāύāϟāĻžāχāĻŽ āϏ⧇āϗ⧁āϞ⧋āϕ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ JSON āĻŦāĻž XML-āĻ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰ⧇āĨ¤ +- icon: "đŸ§Ē" + title: āϏāĻšāĻœā§‡ āĻŸā§‡āĻ¸ā§āϟāĻŋāĻ‚ (Easier Testing) + desc: āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋ āĻĒā§āϞ⧇āχāύ āϜāĻžāĻ­āĻž āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ, āϝāĻž āϏāĻžāĻ°ā§āĻ­āϞ⧇āϟ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻ›āĻžā§œāĻžāχ āĻŸā§‡āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +support: + description: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE 8 / Java 11 āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ⧎ \ No newline at end of file diff --git a/translations/content/bn/enterprise/singleton-ejb-vs-cdi-application-scoped.yaml b/translations/content/bn/enterprise/singleton-ejb-vs-cdi-application-scoped.yaml new file mode 100644 index 0000000..d5f44b0 --- /dev/null +++ b/translations/content/bn/enterprise/singleton-ejb-vs-cdi-application-scoped.yaml @@ -0,0 +1,18 @@ +--- +title: Singleton EJB āĻŦāύāĻžāĻŽ CDI @ApplicationScoped +oldApproach: "@Singleton EJB" +modernApproach: "@ApplicationScoped CDI" +summary: āϏāĻšāϜ āĻļ⧇āϝāĻŧāĻžāĻ°ā§āĻĄ-āĻ¸ā§āĻŸā§‡āϟ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ Singleton EJBs-āϕ⧇ CDI @ApplicationScoped āĻŦāĻŋāύ āĻĻāĻŋā§Ÿā§‡ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +explanation: Singleton EJBs āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ (@Lock, @ConcurrencyManagement) āĻāĻŦāĻ‚ āχāĻ—āĻžāϰ āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ (@Startup) EJB āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āύāĻŋāϝāĻŧ⧇ āφāϏ⧇āĨ¤ āĻāĻ•āϟāĻŋ CDI @ApplicationScoped āĻŦāĻŋāύ āĻ…āύ⧇āĻ• āĻ•āĻŽ āφāύ⧁āĻˇā§āĻ āĻžāύāĻŋāĻ•āϤāĻžāϰ āϏāĻžāĻĨ⧇ āĻāĻ•āχ āϏāĻŋāĻ™ā§āϗ⧇āϞ-āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āϞāĻžāχāĻĢāϏāĻžāχāϕ⧇āϞ āĻ…āĻ°ā§āϜāύ āĻ•āϰ⧇āĨ¤ āϝāĻ–āύ āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ, āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ java.util.concurrent āχāωāϟāĻŋāϞāĻŋāϟāĻŋāϗ⧁āϞ⧋ EJB āϞāĻ• āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύāϗ⧁āϞ⧋āϰ āĻšā§‡āϝāĻŧ⧇ āφāϰāĻ“ āϏ⧂āĻ•ā§āĻˇā§āĻŽ-āĻĻāĻžāύāĻž āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ (finer-grained control) āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "đŸĒļ" + title: āĻ•āĻŽ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āύāϝāĻŧ⧇āϜ (Annotation Noise) + desc: āϕ⧋āύ⧋ @ConcurrencyManagement, @Lock, āĻŦāĻž @Startup āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ – āϕ⧇āĻŦāϞ āĻāĻ•āϟāĻŋ @ApplicationScoped āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύāĨ¤ +- icon: "🔧" + title: āύāĻŽāύ⧀āϝāĻŧ āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋ (Flexible Concurrency) + desc: āφāĻĒāύāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āĻĨā§āϰ⧇āĻĄ-āϏ⧇āĻĢāϟāĻŋāϰ (thread-safety) āϜāĻ¨ā§āϝ java.util.concurrent āϞāĻ• āĻŦāĻž volatile āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "đŸ§Ē" + title: āϏāĻšāϜ āĻŸā§‡āĻ¸ā§āϟāĻŋāĻ‚ + desc: āĻĒā§āϞ⧇āχāύ CDI āĻŦāĻŋāύāϏāϗ⧁āϞ⧋ EJB āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻ›āĻžāĻĄāĻŧāĻžāχ āĻŸā§‡āĻ¸ā§āĻŸā§‡ āϏāϰāĻžāϏāϰāĻŋ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ (instantiate) āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +support: + description: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE 8 / Java 11 āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ⧎ \ No newline at end of file diff --git a/translations/content/bn/enterprise/soap-vs-jakarta-rest.yaml b/translations/content/bn/enterprise/soap-vs-jakarta-rest.yaml new file mode 100644 index 0000000..b2baf4a --- /dev/null +++ b/translations/content/bn/enterprise/soap-vs-jakarta-rest.yaml @@ -0,0 +1,18 @@ +--- +title: SOAP āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻŦāύāĻžāĻŽ āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž REST +oldApproach: JAX-WS / SOAP +modernApproach: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž REST / JSON +summary: āĻšā§‡āĻ­āĻŋāĻ“āϝāĻŧ⧇āϟ SOAP/WSDL āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟāϕ⧇ (endpoints) āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž REST āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻāĻŦāĻ‚ JSON āĻĻāĻŋā§Ÿā§‡ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +explanation: SOAP-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻŋāϏāϗ⧁āϞ⧋ WSDL āĻ•āύāĻŸā§āĻ°ā§āϝāĻžāĻ•ā§āϟ (contracts), XML āĻŽāĻžāĻ°ā§āĻļāĻžāϞāĻŋāĻ‚ (marshalling), āĻāĻŦāĻ‚ JAX-WS āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύāϗ⧁āϞ⧋āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇, āϝāĻž āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āĻ“āĻ­āĻžāϰāĻšā§‡āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž REST (āφāϗ⧇ JAX-RS) @GET, @Path, āĻāĻŦāĻ‚ @Produces-āĻāϰ āĻŽāϤ⧋ āĻ¸ā§āĻŦāĻœā§āĻžāĻžāϤ (intuitive) āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ RESTful JSON API āĻāĻ•ā§āϏāĻĒā§‹āϜ āĻ•āϰ⧇āĨ¤ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻŽāĻĄā§‡āϞāϟāĻŋ āϏāĻšāϜ, āĻĒ⧇āϞ⧋āĻĄ (payloads) āϛ⧋āϟ, āĻāĻŦāĻ‚ āĻāχ āĻ…ā§āϝāĻžāĻĒā§āϰ⧋āϚāϟāĻŋ āφāϧ⧁āύāĻŋāĻ• āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻžāĻ°ā§āĻ­āĻŋāϏāϗ⧁āϞ⧋āϰ āϝ⧋āĻ—āĻžāϝ⧋āϗ⧇āϰ āĻĒāĻĻā§āϧāϤāĻŋāϰ āϏāĻžāĻĨ⧇ āϏāĻ™ā§āĻ—āϤāĻŋāĻĒā§‚āĻ°ā§āĻŖāĨ¤ +whyModernWins: +- icon: "đŸĒļ" + title: āĻšāĻžāϞāĻ•āĻž āĻĒ⧇āϞ⧋āĻĄ + desc: JSON, SOAP XML āĻāύāϭ⧇āϞāĻžāĻĒ⧇āϰ (envelopes) āĻšā§‡āϝāĻŧ⧇ āĻŦ⧇āĻļāĻŋ āĻ•āĻŽā§āĻĒā§āϝāĻžāĻ•ā§āϟ, āϝāĻž āĻŦā§āϝāĻžāĻ¨ā§āĻĄāωāχāĻĨ (bandwidth) āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āϏāĻŋāĻ‚ āĻ“āĻ­āĻžāϰāĻšā§‡āĻĄ āĻ•āĻŽāĻžāϝāĻŧāĨ¤ +- icon: "📐" + title: āϏāĻšāϜ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ + desc: @GET, @Path, āĻāĻŦāĻ‚ @Produces WSDL, @WebService, āĻāĻŦāĻ‚ @WebMethod-āĻāϰ āφāύ⧁āĻˇā§āĻ āĻžāύāĻŋāĻ•āϤāĻžāϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +- icon: "🔌" + title: āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻžāĻ°ā§āĻ­āĻŋāϏ-āϰ⧇āĻĄāĻŋ + desc: āĻ•ā§āϞāĻžāωāĻĄ-āύ⧇āϟāĻŋāĻ­ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ⧇ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ-āϟ⧁-āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻ•āĻŽāĻŋāωāύāĻŋāϕ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ REST/JSON āĻšāϞ⧋ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄāĨ¤ +support: + description: āϜāĻžāĻ•āĻžāĻ°ā§āϤāĻž EE 8 / Java 11 āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ⧎ \ No newline at end of file diff --git a/translations/content/bn/enterprise/spring-api-versioning.yaml b/translations/content/bn/enterprise/spring-api-versioning.yaml new file mode 100644 index 0000000..0c5c80f --- /dev/null +++ b/translations/content/bn/enterprise/spring-api-versioning.yaml @@ -0,0 +1,18 @@ +--- +title: Spring Framework 7 API āĻ­āĻžāĻ°ā§āϏāύāĻŋāĻ‚ (Versioning) +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āχāωāφāϰāĻāϞ āĻĒāĻžāĻĨ āĻ­āĻžāĻ°ā§āϏāύāĻŋāĻ‚ +modernApproach: āύ⧇āϟāĻŋāĻ­ API āĻ­āĻžāĻ°ā§āϏāύāĻŋāĻ‚ +summary: Spring Framework 7-āĻāϰ āύ⧇āϟāĻŋāĻ­ API āĻ­āĻžāĻ°ā§āϏāύāĻŋāĻ‚ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āĻŸā§‡āĻĄ āĻ­āĻžāĻ°ā§āϏāύ-āĻĒā§āϰāĻŋāĻĢāĻŋāĻ•ā§āϏāĻĄ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ (version-prefixed controllers) āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +explanation: Spring Framework 7 āĻāϰ āφāϗ⧇, API āĻ­āĻžāĻ°ā§āϏāύāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϤāĻŋ āĻ­āĻžāĻ°ā§āϏāύ⧇āϰ āϜāĻ¨ā§āϝ āφāϞāĻžāĻĻāĻž āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻ•ā§āϞāĻžāϏ (āϝ⧇āĻŽāύ /api/v1/products, /api/v2/products) āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϤ⧋, āϝāĻž āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚āϕ⧇ āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ āĻ•āϰāϤ āĻāĻŦāĻ‚ āĻ­āĻžāĻ°ā§āϏāύāĻŋāĻ‚ āϞāϜāĻŋāĻ•āϕ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĢāĻžāχāϞ⧇ āĻ›āĻĄāĻŧāĻŋāϝāĻŧ⧇ āĻĻāĻŋāϤāĨ¤ Spring Framework 7, @RequestMapping āĻāĻŦāĻ‚ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύāϗ⧁āϞ⧋āϤ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ­āĻžāĻ°ā§āϏāύ āĻ…ā§āϝāĻžāĻŸā§āϰāĻŋāĻŦāĻŋāωāϟ āϝ⧋āĻ— āĻ•āϰ⧇ āύ⧇āϟāĻŋāĻ­ āĻ­āĻžāĻ°ā§āϏāύāĻŋāĻ‚ āĻĒā§āϰāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āϛ⧇, āϏāĻžāĻĨ⧇ WebMvcConfigurer-āĻ āĻāĻ•āϟāĻŋ configureApiVersioning āĻšā§āĻ•āĻ“ āĻ°ā§Ÿā§‡āϛ⧇āĨ¤ āĻ­āĻžāĻ°ā§āϏāύāϟāĻŋ āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ āĻšā§‡āĻĄāĻžāϰ, āĻāĻ•āϟāĻŋ āχāωāφāϰāĻāϞ āĻĒāĻžāĻĨ āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āϟ, āĻŦāĻž āĻāĻ•āϟāĻŋ āϕ⧋āϝāĻŧ⧇āϰāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻĨ⧇āϕ⧇ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āϝāĻžā§Ÿ – āϏāĻŦāχ āĻāĻ• āϜāĻžāϝāĻŧāĻ—āĻž āĻĨ⧇āϕ⧇ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŋāϤāĨ¤ +whyModernWins: +- icon: "đŸ—‚ī¸" + title: āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āĻļāύ āύ⧇āχ + desc: āϏāĻŦ āĻ­āĻžāĻ°ā§āϏāύ āĻāĻ•āϟāĻŋ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻ•ā§āϞāĻžāϏ⧇āχ āĻĨāĻžāϕ⧇; āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āχāĻ¨ā§āĻĄāĻŋāĻ­āĻŋāϜ⧁āϝāĻŧāĻžāϞ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻžāϰ āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋ āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϏāύ āĻ…ā§āϝāĻžāĻŸā§āϰāĻŋāĻŦāĻŋāωāϟ āĻŦāĻšāύ āĻ•āϰ⧇āĨ¤ +- icon: "âš™ī¸" + title: āϏ⧇āĻ¨ā§āĻŸā§āϰāĻžāϞāĻžāχāϜāĻĄ āĻ­āĻžāĻ°ā§āϏāύ āĻ¸ā§āĻŸā§āĻ°ā§āϝāĻžāĻŸā§‡āϜāĻŋ + desc: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ configureApiVersioning āĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻšā§‡āĻĄāĻžāϰ āĻĨ⧇āϕ⧇ āχāωāφāϰāĻāϞ āĻŦāĻž āϕ⧋āϝāĻŧ⧇āϰāĻŋ-āĻĒā§āϝāĻžāϰāĻžāĻŽ āĻ­āĻžāĻ°ā§āϏāύāĻŋāĻ‚āϝāĻŧ⧇ āĻ¸ā§āϝ⧁āχāϚ āĻ•āϰ⧁āύāĨ¤ +- icon: "📈" + title: āχāύāĻ•ā§āϰāĻŋāĻŽā§‡āĻ¨ā§āϟāĻžāϞ āχāĻ­ā§‹āϞāĻŋāωāĻļāύ + desc: āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻšā§€āύ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻ¸ā§āĻĒāĻ°ā§āĻļ āύāĻž āĻ•āϰ⧇ āĻŦāĻž āύāϤ⧁āύ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āύāĻž āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻŽā§‡āĻĨāĻĄā§‡ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ­āĻžāĻ°ā§āϏāύ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ +support: + description: Spring Framework 7.0 āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ (Java 17+ āĻĒā§āϰāϝāĻŧā§‹āϜāύ) \ No newline at end of file diff --git a/translations/content/bn/enterprise/spring-null-safety-jspecify.yaml b/translations/content/bn/enterprise/spring-null-safety-jspecify.yaml new file mode 100644 index 0000000..8a4bcc7 --- /dev/null +++ b/translations/content/bn/enterprise/spring-null-safety-jspecify.yaml @@ -0,0 +1,18 @@ +--- +title: JSpecify āϏāĻš Spring Null Safety +oldApproach: Spring @NonNull/@Nullable +modernApproach: JSpecify @NullMarked +summary: Spring 7 JSpecify āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āϛ⧇, āϝāĻž āύāύ-āύāĻžāϞāϕ⧇ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻž āĻ•āĻŽāĻŋā§Ÿā§‡ āφāϏ⧇āĨ¤ +explanation: Spring 5 āĻāĻŦāĻ‚ 6 `org.springframework.lang` āĻĒā§āϝāĻžāϕ⧇āĻœā§‡ āϤāĻžāĻĻ⧇āϰ āύāĻŋāϜāĻ¸ā§āĻŦ Null Safety āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āϚāĻžāϞ⧁ āĻ•āϰ⧇āĻ›āĻŋāϞāĨ¤ āϝāĻĻāĻŋāĻ“ āϏ⧇āϗ⧁āϞ⧋ āωāĻĒāĻ•āĻžāϰ⧀ āĻ›āĻŋāϞ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāϟāĻŋ āύāύ-āύāĻžāϞ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟāϕ⧇ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āϟ (annotate) āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϤ⧋āĨ¤ Spring 7 JSpecify-āϤ⧇ āĻŽāĻžāχāĻ—ā§āϰ⧇āϟ āĻ•āϰ⧇āϛ⧇, āϝāĻž Null Safety-āĻāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ•ā§āϰāϏ-āχāϕ⧋āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄāĨ¤ `@NullMarked` āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āĻ•ā§āϞāĻžāϏ āĻŦāĻž āĻĒā§āϝāĻžāϕ⧇āϜ āϞ⧇āϭ⧇āϞ⧇ āĻ˜ā§‹āώāĻŖāĻž āĻ•āϰ⧇ āϝ⧇, āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āϏāĻŽāĻ¸ā§āϤ āφāύāĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻŸā§‡āĻĄ āϟāĻžāχāĻĒ āύāύ-āύāĻžāϞāĨ¤ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒā§āϰāĻ•ā§ƒāϤ āύāĻžāϞāĻāĻŦāϞ āϟāĻžāχāĻĒāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ `@Nullable` āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āϝāĻž āϕ⧋āĻĄā§‡āϰ āĻ­āĻžāĻ°ā§āĻŦā§‹āϏāĻŋāϟāĻŋ (verbosity) āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ āĻšā§āϰāĻžāϏ āĻ•āϰ⧇āĨ¤ JSpecify āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύāϗ⧁āϞāĻŋ NullAway, Error Prone āĻāĻŦāĻ‚ IntelliJ IDEA-āĻāϰ āĻŽāϤ⧋ āĻĒā§āϰāϧāĻžāύ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻ…ā§āϝāĻžāύāĻžāϞāĻžāχāϏāĻŋāϏ āϟ⧁āϞ āĻĻā§āĻŦāĻžāϰāĻž āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤ, āϝāĻž Spring-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύāϗ⧁āϞ⧋āϰ āĻšā§‡ā§Ÿā§‡ āφāϰāĻ“ āϏāĻŽā§ƒāĻĻā§āϧ āϟ⧁āϞāĻŋāĻ‚ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āύāĻŋāϝāĻŧ⧇ āφāϏ⧇āĨ¤ +whyModernWins: +- icon: "âœ‚ī¸" + title: āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āύāύ-āύāĻžāϞ + desc: @NullMarked āϏāĻŽāĻ¸ā§āϤ āφāύāĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻŸā§‡āĻĄ āϟāĻžāχāĻĒāϕ⧇ āύāύ-āύāĻžāϞ āĻ•āϰ⧇ āϤ⧋āϞ⧇, āϤāĻžāχ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āύāĻžāϞāĻāĻŦāϞ (nullable) āĻŦā§āϝāϤāĻŋāĻ•ā§āϰāĻŽāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ +- icon: "🌐" + title: āχāϕ⧋āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ + desc: JSpecify āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύāϗ⧁āϞ⧋ NullAway, Error Prone āĻāĻŦāĻ‚ IDEs āĻĻā§āĻŦāĻžāϰāĻž āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤ āĻāĻ•āϟāĻŋ āĻ•ā§āϰāϏ-āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄāĨ¤ +- icon: "🔍" + title: āϏāĻŽā§ƒāĻĻā§āϧ āϟ⧁āϞāĻŋāĻ‚ + desc: āφāϧ⧁āύāĻŋāĻ• āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻ…ā§āϝāĻžāύāĻžāϞāĻžāχāϜāĻžāϰāϗ⧁āϞ⧋ JSpecify-āĻāϰ āύāĻžāϞ āĻŽāĻĄā§‡āϞ āĻŦā§‹āĻā§‡ āĻāĻŦāĻ‚ āĻ•āĻŽā§āĻĒāĻžāχāϞ āϟāĻžāχāĻŽā§‡ āĻ­āĻžā§Ÿā§‹āϞ⧇āĻļāύ⧇āϰ (violations) āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇āĨ¤ +support: + description: Spring Framework 7.0 āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ (Java 17+ āĻĒā§āϰāϝāĻŧā§‹āϜāύ) \ No newline at end of file diff --git a/translations/content/bn/enterprise/spring-xml-config-vs-annotations.yaml b/translations/content/bn/enterprise/spring-xml-config-vs-annotations.yaml new file mode 100644 index 0000000..d3513ad --- /dev/null +++ b/translations/content/bn/enterprise/spring-xml-config-vs-annotations.yaml @@ -0,0 +1,18 @@ +--- +title: Spring XML āĻŦāĻŋāύ āĻ•āύāĻĢāĻŋāĻ— āĻŦāύāĻžāĻŽ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ-āĻĄā§āϰāĻžāχāϭ⧇āύ (Annotation-Driven) +oldApproach: XML āĻŦāĻŋāύ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύ +modernApproach: āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ-āĻĄā§āϰāĻžāχāϭ⧇āύ āĻŦāĻŋāύāϏ (Annotation-Driven Beans) +summary: Spring Boot-āĻ āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ Spring XML āĻŦāĻŋāύ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ-āĻĄā§āϰāĻžāχāϭ⧇āύ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: āϐāϤāĻŋāĻšā§āϝāĻŦāĻžāĻšā§€ Spring āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞ⧋āϤ⧇ XML āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻŦāĻŋāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž āĻšāϤ⧋, āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ•ā§āϞāĻžāϏ āĻāĻŦāĻ‚ āĻāϰ āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋāϗ⧁āϞ⧋āϕ⧇ āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž āĻšāϤ⧋āĨ¤ Spring 2.5 āĻĨ⧇āϕ⧇ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻĨāĻžāĻ•āϞ⧇āĻ“, Spring Boot āĻ…āĻŸā§‹-āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĒā§āϰāĻŦāĻ°ā§āϤāύ āύāĻž āĻ•āϰāĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ XML-āχ āĻĒā§āϰāϧāĻžāύ āĻ…ā§āϝāĻžāĻĒā§āϰ⧋āϚ āĻ›āĻŋāϞāĨ¤ Spring Boot @Component, @Service, @Repository, āĻāĻŦāĻ‚ @Controller āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύāϝ⧁āĻ•ā§āϤ āĻŦāĻŋāύāϗ⧁āϞ⧋āϕ⧇ āĻ•ā§āϞāĻžāϏāĻĒāĻĨ āĻ¸ā§āĻ•ā§āϝāĻžāύāĻŋāĻ‚ā§Ÿā§‡āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻļāύāĻžāĻ•ā§āϤ āĻ•āϰ⧇, āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āχāύāĻœā§‡āĻ•āĻļāύ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋ āĻĒā§‚āϰāĻŖ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāϏāĻĒāĻĨ āĻĨ⧇āϕ⧇ DataSource-āĻāϰ āĻŽāϤ⧋ āχāύāĻĢā§āϰāĻžāĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰ⧇ – āĻāϰ āĻĢāϞ⧇ āϏāĻŽāĻ¸ā§āϤ XML āĻ“āϝāĻŧā§āϝāĻžāϰāĻŋāĻ‚ āĻĢāĻžāχāϞ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ +whyModernWins: +- icon: "đŸšĢ" + title: XML āύ⧇āχ + desc: @SpringBootApplication āĻ•āĻŽā§āĻĒā§‹āύ⧇āĻ¨ā§āϟ āĻ¸ā§āĻ•ā§āϝāĻžāύāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ…āĻŸā§‹-āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻŸā§āϰāĻŋāĻ—āĻžāϰ āĻ•āϰ⧇, āϝāĻžāϰ āĻĢāϞ⧇ āϏāĻŽāĻ¸ā§āϤ XML āĻ“āϝāĻŧā§āϝāĻžāϰāĻŋāĻ‚ āĻĢāĻžāχāϞ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻĻā§‚āϰ āĻšā§ŸāĨ¤ +- icon: "💉" + title: āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āχāύāĻœā§‡āĻ•āĻļāύ + desc: Spring āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋ āχāύāĻœā§‡āĻ•ā§āϟ āĻ•āϰ⧇, āϝāĻž āĻŦāĻŋāύāϗ⧁āϞ⧋āϕ⧇ āϏāĻšāĻœā§‡ āĻŸā§‡āĻ¸ā§āϟ āĻāĻŦāĻ‚ āĻŦā§‹āĻāĻž āϝāĻžā§ŸāĨ¤ +- icon: "⚡" + title: āĻ…āĻŸā§‹-āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ (Auto-configuration) + desc: Spring Boot āϜāĻŋāϰ⧋ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ āϏāĻš āĻ•ā§āϞāĻžāϏāĻĒāĻĨ āĻĨ⧇āϕ⧇ DataSource, JPA, āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āχāύāĻĢā§āϰāĻžāĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰ⧇āĨ¤ +support: + description: Spring Boot 1.0 (āĻāĻĒā§āϰāĻŋāϞ 2014) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ; Spring Boot 3 āĻāϰ āϜāĻ¨ā§āϝ Java 17+ āĻĒā§āϰāϝāĻŧā§‹āϜāύ \ No newline at end of file diff --git a/translations/content/bn/errors/helpful-npe.yaml b/translations/content/bn/errors/helpful-npe.yaml new file mode 100644 index 0000000..1d407ae --- /dev/null +++ b/translations/content/bn/errors/helpful-npe.yaml @@ -0,0 +1,18 @@ +--- +title: āĻšā§‡āĻ˛ā§āĻĒāĻĢ⧁āϞ NullPointerExceptions +oldApproach: āĻ•ā§āϰāĻŋāĻĒā§āϟāĻŋāĻ• NPE +modernApproach: āĻĄāĻŋāĻŸā§‡āχāϞāĻĄ NPE +summary: JVM āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āφāĻĒāύāĻžāϕ⧇ āĻĻ⧇āĻ–āĻŋāϝāĻŧ⧇ āĻĻ⧇āĻŦ⧇ āϕ⧋āύ āĻ­ā§āϝāĻžāϰāĻŋāϝāĻŧ⧇āĻŦāϞāϟāĻŋ null āĻ›āĻŋāϞāĨ¤ +explanation: āĻšā§‡āĻ˛ā§āĻĒāĻĢ⧁āϞ NPEs āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϕ⧋āύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύāϟāĻŋ null āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āϕ⧋āύ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϝāĻŧ⧇āϛ⧇, āϤāĻž āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰ⧇āĨ¤ Java 14 āĻĨ⧇āϕ⧇ āĻāϟāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āϟāĻ­āĻžāĻŦ⧇ āĻāύāĻžāĻŦāϞ āĻĨāĻžāϕ⧇ – āĻāϰ āϜāĻ¨ā§āϝ āϕ⧋āύ⧋ āϕ⧋āĻĄ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ, āĻļ⧁āϧ⧁ JDK āφāĻĒāĻ—ā§āϰ⧇āĻĄ āĻ•āϰāϞ⧇āχ āĻšāĻŦ⧇āĨ¤ +whyModernWins: +- icon: "🔍" + title: āϏāĻ āĻŋāĻ• āĻ­ā§āϝāĻžāϰāĻŋāϝāĻŧ⧇āĻŦāϞ + desc: āĻāϰāϰ āĻŽā§‡āϏ⧇āĻœā§‡ āĻšā§‡āχāύ⧇ āĻĨāĻžāĻ•āĻž null āĻ­ā§āϝāĻžāϰāĻŋāϝāĻŧ⧇āĻŦāϞāϟāĻŋāϰ āύāĻžāĻŽ āωāĻ˛ā§āϞ⧇āĻ– āĻĨāĻžāϕ⧇āĨ¤ +- icon: "⚡" + title: āĻĻā§āϰ⧁āϤ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ (Debugging) + desc: ā§ĢāϟāĻŋ āĻšā§‡āχāύāĻĄ āĻ•āϞ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϕ⧋āύāϟāĻŋ null āĻ›āĻŋāϞ āϤāĻž āύāĻŋāϝāĻŧ⧇ āφāϰ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āύāĻžāĨ¤ +- icon: "🆓" + title: āĻĢā§āϰāĻŋ āφāĻĒāĻ—ā§āϰ⧇āĻĄ + desc: āϕ⧋āύ⧋ āϕ⧋āĻĄ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ›āĻžā§œāĻžāχ JDK 14+ āĻ āϰāĻžāύ āĻ•āϰ⧁āύāĨ¤ +support: + description: JDK 14 (āĻŽāĻžāĻ°ā§āϚ 2020) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/errors/multi-catch.yaml b/translations/content/bn/errors/multi-catch.yaml new file mode 100644 index 0000000..2993636 --- /dev/null +++ b/translations/content/bn/errors/multi-catch.yaml @@ -0,0 +1,18 @@ +--- +title: āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻ•ā§āϝāĻžāϚ āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻŋāĻ‚ (Multi-catch Exception Handling) +oldApproach: āφāϞāĻžāĻĻāĻž āĻ•ā§āϝāĻžāϚ āĻŦā§āϞāĻ• +modernApproach: āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻ•ā§āϝāĻžāϚ +summary: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻ•ā§āϝāĻžāϚ āĻŦā§āϞāϕ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āϟāĻžāχāĻĒ (exception types) āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧁āύāĨ¤ +explanation: āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻ•ā§āϝāĻžāϚ (Multi-catch) āĻāĻ•āχ āϕ⧋āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āϟāĻžāχāĻĒ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞāϟāĻŋ āĻāĻĢ⧇āĻ•ā§āϟāĻŋāĻ­āϞāĻŋ āĻĢāĻžāχāύāĻžāϞ (effectively final) āĻĨāĻžāϕ⧇, āϤāĻžāχ āφāĻĒāύāĻŋ āϕ⧋āύ⧋ āĻ°â€ā§āϝāĻžāĻĒāĻŋāĻ‚ āĻ›āĻžā§œāĻžāχ āĻāϟāĻŋ āϰāĻŋāĻĨā§āϰ⧋ (rethrow) āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤ +whyModernWins: +- icon: "📏" + title: DRY (Don't Repeat Yourself) + desc: āĻāĻ•āχ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻŋāĻ‚ āϞāϜāĻŋāĻ• āϤāĻŋāύāĻŦāĻžāϰ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻāĻ•āĻŦāĻžāϰ āϞ⧇āĻ–āĻž āĻšā§ŸāĨ¤ +- icon: "🔄" + title: āϰāĻŋāĻĨā§āϰ⧋āϝāĻŧ⧇āĻŦāϞ (Rethrowable) + desc: āĻ•ā§āϝāĻžāϚ āĻ•āϰāĻž āĻāĻ•ā§āϏ⧇āĻĒāĻļāύāϟāĻŋāϕ⧇ āϤāĻžāϰ āϏāĻ āĻŋāĻ• āϟāĻžāχāĻĒ āϏāĻš āĻĒ⧁āύāϰāĻžā§Ÿ āĻĨā§āϰ⧋ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "📖" + title: āĻ¸ā§āĻ•ā§āϝāĻžāύ⧇āĻŦāϞ (Scannable) + desc: āϏāĻŦ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻž āϟāĻžāχāĻĒ āĻāĻ• āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧāĨ¤ +support: + description: JDK 7 (āϜ⧁āϞāĻžāχ 2011) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/errors/null-in-switch.yaml b/translations/content/bn/errors/null-in-switch.yaml new file mode 100644 index 0000000..6df1293 --- /dev/null +++ b/translations/content/bn/errors/null-in-switch.yaml @@ -0,0 +1,18 @@ +--- +title: āϏ⧁āχāϚ-āĻ null āϕ⧇āχāϏ (Null case in switch) +oldApproach: āϏ⧁āχāϚ-āĻāϰ āφāϗ⧇ āĻ—āĻžāĻ°ā§āĻĄ (Guard Before Switch) +modernApproach: case null +summary: āϏāϰāĻžāϏāϰāĻŋ āĻāĻ•āϟāĻŋ āϏ⧁āχāϚ āϕ⧇āχāϏ āĻšāĻŋāϏ⧇āĻŦ⧇ null āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧁āύ – āφāϞāĻžāĻĻāĻž āĻ—āĻžāĻ°ā§āĻĄā§‡āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +explanation: āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚ āϏ⧁āχāϚ (Pattern matching switch) āĻāĻ•āϟāĻŋ āϕ⧇āχāϏ āϞ⧇āĻŦ⧇āϞ (case label) āĻšāĻŋāϏ⧇āĻŦ⧇ null-āϕ⧇ āĻŽā§āϝāĻžāϚ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϟāĻŋ āϏ⧁āχāĻšā§‡āϰ āφāϗ⧇ null āĻšā§‡āĻ• āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ⧀āϝāĻŧāϤāĻž āĻĻā§‚āϰ āĻ•āϰ⧇ āĻāĻŦāĻ‚ null āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻŋāĻ‚āϕ⧇ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻ“ āĻ­āĻŋāϜāĻŋāĻŦāϞ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ +whyModernWins: +- icon: "đŸŽ¯" + title: āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ + desc: null āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻŋāĻ‚ āϏāϰāĻžāϏāϰāĻŋ āϏ⧁āχāĻšā§‡āϰ āĻŽāĻ§ā§āϝ⧇āχ āĻĻ⧃āĻļā§āϝāĻŽāĻžāύāĨ¤ +- icon: "đŸ›Ąī¸" + title: āϕ⧋āύ⧋ NPE āύ⧇āχ + desc: āĻāĻ•āϟāĻŋ null āĻ­ā§āϝāĻžāϞ⧁āϰ āωāĻĒāϰ āϏ⧁āχāϚ āĻ•āϰāϞ⧇ NullPointerException āĻĨā§āϰ⧋ (throw) āĻšāĻŦ⧇ āύāĻžāĨ¤ +- icon: "📐" + title: āĻ…āϞ-āχāύ-āĻ“āϝāĻŧāĻžāύ (All-in-one) + desc: null āϏāĻš āϏāĻŽāĻ¸ā§āϤ āϕ⧇āχāϏ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āϏ⧁āχāϚ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ⧇ āĻĨāĻžāϕ⧇āĨ¤ +support: + description: JDK 21 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2023) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/errors/optional-chaining.yaml b/translations/content/bn/errors/optional-chaining.yaml new file mode 100644 index 0000000..40fc791 --- /dev/null +++ b/translations/content/bn/errors/optional-chaining.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ…āĻĒāĻļāύāĻžāϞ āĻšā§‡āχāύāĻŋāĻ‚ (Optional Chaining) +oldApproach: āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ Null āĻšā§‡āĻ• +modernApproach: āĻ…āĻĒāĻļāύāĻžāϞ āĻĒāĻžāχāĻĒāϞāĻžāχāύ (Optional Pipeline) +summary: āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ null āĻšā§‡āĻ•āϗ⧁āϞ⧋āϕ⧇ āĻāĻ•āϟāĻŋ āĻ…āĻĒāĻļāύāĻžāϞ āĻĒāĻžāχāĻĒāϞāĻžāχāύ āĻĻāĻŋā§Ÿā§‡ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +explanation: Optional.map() āĻŽā§‡āĻĨāĻĄāϟāĻŋ null āĻ­ā§āϝāĻžāϞ⧁āϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āĻšā§‡āχāύ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĒā§āϰāĻĨāĻŽ null āĻ āĻĒ⧌āρāĻ›āĻžāϞ⧇ āĻļāĻ°ā§āϟ-āϏāĻžāĻ°ā§āĻ•āĻŋāϟ (short-circuiting) āĻ•āϰ⧇āĨ¤ orElse() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻ­ā§āϝāĻžāϞ⧁ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻĒāĻŋāϰāĻžāĻŽāĻŋāĻĄ-āĻ…āĻŦ-āĻĄā§āĻŽ (pyramid-of-doom) null āĻšā§‡āĻ•āĻŋāĻ‚ āĻĻā§‚āϰ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "🔗" + title: āĻšā§‡āχāύ⧇āĻŦāϞ (Chainable) + desc: āĻĒā§āϰāϤāĻŋāϟāĻŋ .map() āĻ¸ā§āĻŸā§‡āĻĒ null āĻ­ā§āϝāĻžāϞ⧁āϕ⧇ āĻ¸ā§āĻŦāĻšā§āĻ›āĻ­āĻžāĻŦ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +- icon: "📖" + title: āϞāĻŋāύāĻŋāϝāĻŧāĻžāϰ āĻĢā§āϞ⧋ (Linear Flow) + desc: āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ if-āĻŦā§āϞāϕ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻŦāĻžāĻŽ āĻĨ⧇āϕ⧇ āĻĄāĻžāύ⧇ (left-to-right) āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ āĻĢā§āϞ⧋āĨ¤ +- icon: "đŸ›Ąī¸" + title: NPE-āĻĒā§āϰ⧁āĻĢ + desc: āĻĒā§āϰāϤāĻŋāϟāĻŋ āϧāĻžāĻĒ⧇ null āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻž āĻšā§Ÿ – āϕ⧋āύ⧋ āĻ•ā§āĻ°ā§āϝāĻžāĻļ āĻšāĻ“ā§ŸāĻž āϏāĻŽā§āĻ­āĻŦ āύ⧟āĨ¤ +support: + description: JDK 8+ āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ (9+ āĻ āωāĻ¨ā§āύāϤ) \ No newline at end of file diff --git a/translations/content/bn/errors/optional-orelsethrow.yaml b/translations/content/bn/errors/optional-orelsethrow.yaml new file mode 100644 index 0000000..ab2bc91 --- /dev/null +++ b/translations/content/bn/errors/optional-orelsethrow.yaml @@ -0,0 +1,18 @@ +--- +title: āϏāϰāĻŦāϰāĻžāĻšāĻ•āĻžāϰ⧀ āĻ›āĻžāĻĄāĻŧāĻž Optional.orElseThrow() +oldApproach: get() āĻ…āĻĨāĻŦāĻž orElseThrow(supplier) +modernApproach: orElseThrow() +summary: get()-āĻāϰ āĻāĻ•āϟāĻŋ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ, āωāĻĻā§āĻĻ⧇āĻļā§āϝ-āĻĒā§āϰāĻ•āĻžāĻļāĻ• āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻšāĻŋāϏāĻžāĻŦ⧇ Optional.orElseThrow() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: Optional.get() āϕ⧇ āϏāĻžāϧāĻžāϰāĻŖāϤ "āϕ⧋āĻĄ āĻ¸ā§āĻŽā§‡āϞ" (code smell) āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ āĻĢ⧇āχāϞ⧁āϰ⧇āϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āϞ⧁āĻ•āĻŋā§Ÿā§‡ āϰāĻžāϖ⧇āĨ¤ Java 10-āĻ āϝ⧁āĻ•ā§āϤ āĻšāĻ“ā§ŸāĻž no-arg orElseThrow() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻ āĻŋāĻ• āĻāĻ•āχ āĻ•āĻžāϜ āĻ•āϰ⧇, āϤāĻŦ⧇ āĻāϟāĻŋ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝāϕ⧇ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰ⧇ āϝ⧇, āϤāĻžāϰāĻž āĻāĻ•āϟāĻŋ āĻ­ā§āϝāĻžāϞ⧁ āφāĻļāĻž āĻ•āϰāϛ⧇ āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āϤāĻž āύāĻž āĻĨāĻžāϕ⧇ āϤāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āϚāĻžāχāĨ¤ +whyModernWins: +- icon: "📖" + title: āĻ¸ā§āĻŦ-āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟāĻŋāĻ‚ (Self-documenting) + desc: orElseThrow() āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āϝ⧇, āĻ­ā§āϝāĻžāϞ⧁āϰ āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤāĻŋ āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤāĨ¤ +- icon: "🔒" + title: get() āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϝāĻžā§Ÿ + desc: āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻ…ā§āϝāĻžāύāĻžāϞāĻžāχāϏāĻŋāϏ āϟ⧁āϞāϏ get() āĻŽā§‡āĻĨāĻĄāϕ⧇ āĻā§āρāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰ⧇; orElseThrow() āĻāĻ•āϟāĻŋ āχāĻĄāĻŋāĻ“āĻŽā§āϝāĻžāϟāĻŋāĻ• (idiomatic) āϏāĻŽāĻžāϧāĻžāύāĨ¤ +- icon: "⚡" + title: āĻ•āĻŽ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ (Less Boilerplate) + desc: āĻĄāĻŋāĻĢāĻ˛ā§āϟ NoSuchElementException-āĻāϰ āϜāĻ¨ā§āϝ āϏāĻžāĻĒā§āϞāĻžāϝāĻŧāĻžāϰ āĻĒāĻžāϏ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +support: + description: JDK 10 (āĻŽāĻžāĻ°ā§āϚ 2018) āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/errors/record-based-errors.yaml b/translations/content/bn/errors/record-based-errors.yaml new file mode 100644 index 0000000..a6b42f8 --- /dev/null +++ b/translations/content/bn/errors/record-based-errors.yaml @@ -0,0 +1,18 @@ +--- +title: āϰ⧇āĻ•āĻ°ā§āĻĄ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻāϰāϰ āϰ⧇āϏāĻĒāĻ¨ā§āϏ (Record-based Error Responses) +oldApproach: āĻŽā§āϝāĻžāĻĒ (Map) āĻŦāĻž āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ āĻ•ā§āϞāĻžāϏ +modernApproach: āĻāϰāϰ āϰ⧇āĻ•āĻ°ā§āĻĄāϏ (Error Records) +summary: āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ, āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻāϰāϰ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āϟāĻžāχāĻĒ⧇āϰ āϜāĻ¨ā§āϝ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞ⧋ āĻāϰāϰ āϰ⧇āϏāĻĒāĻ¨ā§āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āĻĻāĻŽ āĻĒāĻžāϰāĻĢ⧇āĻ•ā§āϟ – āĻāϗ⧁āϞ⧋ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ, āϤ⧁āϞāύāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻ˛ā§āϟ-āχāύ equals/hashCode āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āϞāĻ—āĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ toString āĻŽā§‡āĻĨāĻĄ āĻĨāĻžāϕ⧇āĨ¤ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰāϗ⧁āϞ⧋ (custom constructors) āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ āĻŦāĻž āĻĄāĻŋāĻĢāĻ˛ā§āϟ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +whyModernWins: +- icon: "📏" + title: āϏ⧁āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ + desc: ā§Šā§Ļ āϞāĻžāχāύ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ ā§Š āϞāĻžāχāύ⧇āχ āĻāϰāϰ āϟāĻžāχāĻĒ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰ⧁āύāĨ¤ +- icon: "🔒" + title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (Immutable) + desc: āĻāϰāϰ āĻĄā§‡āϟāĻž āϤ⧈āϰāĻŋāϰ āĻĒāϰ āϭ⧁āϞāĻŦāĻļāϤ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻžāĨ¤ +- icon: "📋" + title: āĻ…āĻŸā§‹ toString + desc: āϞāĻ—āĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āωāĻĒāϝ⧁āĻ•ā§āϤ – āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϏāĻŦ āĻĢāĻŋāĻ˛ā§āĻĄ āĻĻ⧇āĻ–āĻžāϝāĻŧāĨ¤ +support: + description: JDK 16 (āĻŽāĻžāĻ°ā§āϚ 2021) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/errors/require-nonnull-else.yaml b/translations/content/bn/errors/require-nonnull-else.yaml new file mode 100644 index 0000000..d8b4ca5 --- /dev/null +++ b/translations/content/bn/errors/require-nonnull-else.yaml @@ -0,0 +1,18 @@ +--- +title: Objects.requireNonNullElse() +oldApproach: āϟāĻžāϰāύāĻžāϰāĻŋ Null āĻšā§‡āĻ• +modernApproach: requireNonNullElse() +summary: āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻ­ā§āϝāĻžāϞ⧁ āϏāĻš āĻāĻ•āϟāĻŋ āύāύ-āύāĻžāϞ āĻ­ā§āϝāĻžāϞ⧁ (non-null value) āĻĒāĻžāύ, āϕ⧋āύ⧋ āϟāĻžāϰāύāĻžāϰāĻŋ (ternary) āĻāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +explanation: requireNonNullElse āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻĒā§āϰāĻĨāĻŽ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϟāĻŋ āύāύ-āύāĻžāϞ āĻšāϞ⧇ āϏ⧇āϟāĻŋ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϟāĻŋ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻ­ā§āϝāĻžāϞ⧁āϟāĻŋ āύāĻŋāĻœā§‡āχ null āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž – āϝāĻĻāĻŋ āωāĻ­āϝāĻŧāχ null āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻāϟāĻŋ NPE āĻĨā§āϰ⧋ āĻ•āϰ⧇, āϝāĻž āĻļ⧁āϰ⧁āϰ āĻĻāĻŋāϕ⧇āχ āĻŦāĻžāĻ— āϧāϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "📖" + title: āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝ + desc: āĻŽā§‡āĻĨāĻĄā§‡āϰ āύāĻžāĻŽāϟāĻŋ āĻāϟāĻŋ āϕ⧀ āĻ•āĻžāϜ āĻ•āϰ⧇ āϤāĻž āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰ⧇āĨ¤ +- icon: "đŸ›Ąī¸" + title: Null-āϏ⧇āĻĢ āĻĄāĻŋāĻĢāĻ˛ā§āϟ + desc: āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻ­ā§āϝāĻžāϞ⧁āϟāĻŋāĻ“ null āĻāϰ āϜāĻ¨ā§āϝ āĻšā§‡āĻ• āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ +- icon: "📏" + title: āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ + desc: āϏāĻšāϜ null-or-default āϞāϜāĻŋāϕ⧇āϰ āϜāĻ¨ā§āϝ āϟāĻžāϰāύāĻžāϰāĻŋāϰ āĻšā§‡ā§Ÿā§‡ āĻāϟāĻŋ āĻ…āύ⧇āĻ• āĻ­āĻžāϞ⧋āĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/io/deserialization-filters.yaml b/translations/content/bn/io/deserialization-filters.yaml new file mode 100644 index 0000000..9c2d5fb --- /dev/null +++ b/translations/content/bn/io/deserialization-filters.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ (Deserialization Filters) +oldApproach: āϏāĻŦāĻ•āĻŋāϛ⧁ āĻŽā§‡āύ⧇ āύāĻŋāύ +modernApproach: ObjectInputFilter +summary: āφāĻ•ā§āϰāĻŽāĻŖ āĻĒā§āϰāϤāĻŋāϰ⧋āϧ⧇āϰ āϜāĻ¨ā§āϝ āϕ⧋āύ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϕ⧇ āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āϤāĻž āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧ āĻ•āϰ⧁āύāĨ¤ +explanation: ObjectInputFilter āφāĻĒāύāĻžāϕ⧇ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϕ⧇ āĻ…ā§āϝāĻžāϞāĻžāĻ“āϞāĻŋāĻ¸ā§āϟ/āĻĄā§‡āύāĻžāχāϞāĻŋāĻ¸ā§āϟ (allowlist/denylist) āĻ•āϰāϤ⧇, āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻ—ā§āϰāĻžāĻĢ⧇āϰ āĻ—āĻ­ā§€āϰāϤāĻž, āĻ…ā§āϝāĻžāϰ⧇āϰ āϏāĻžāχāϜ āĻāĻŦāĻ‚ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āĻ•āĻžāωāĻ¨ā§āϟ āϞāĻŋāĻŽāĻŋāϟ āĻ•āϰāϤ⧇ āĻĻā§‡ā§ŸāĨ¤ āĻāϟāĻŋ āϕ⧋āύ⧋ āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻ›āĻžāĻĄāĻŧāĻžāχ āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻĻ⧁āĻ°ā§āĻŦāϞāϤāĻžāϰ āĻŦāĻŋāϰ⧁āĻĻā§āϧ⧇ āϏ⧁āϰāĻ•ā§āώāĻž āĻĻā§‡ā§ŸāĨ¤ +whyModernWins: +- icon: "đŸ›Ąī¸" + title: āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž + desc: āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ/āĻ•ā§āώāϤāĻŋāĻ•āϰ āĻ•ā§āϞāĻžāϏāϗ⧁āϞāĻŋāϰ āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻĒā§āϰāϤāĻŋāϰ⧋āϧ āĻ•āϰ⧇āĨ¤ +- icon: "📐" + title: āĻĢāĻžāχāύ-āĻ—ā§āϰ⧇āχāύāĻĄ (Fine-grained) + desc: āĻĄā§‡āĻĒāĻĨ, āĻ…ā§āϝāĻžāϰ⧇ āϏāĻžāχāϜ, āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāϏ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻ•āϰ⧁āύāĨ¤ +- icon: "đŸ—ī¸" + title: JVM-āĻ“āϝāĻŧāĻžāχāĻĄ (JVM-wide) + desc: JVM-āĻāϰ āϏāĻŽāĻ¸ā§āϤ āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ—ā§āϞ⧋āĻŦāĻžāϞ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āϏ⧇āϟ āĻ•āϰ⧁āύāĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/io/file-memory-mapping.yaml b/translations/content/bn/io/file-memory-mapping.yaml new file mode 100644 index 0000000..b5876ad --- /dev/null +++ b/translations/content/bn/io/file-memory-mapping.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĢāĻžāχāϞ āĻŽā§‡āĻŽāϰāĻŋ āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ (File Memory Mapping) +oldApproach: MappedByteBuffer +modernApproach: Arena āϏāĻš MemorySegment +summary: MemorySegment āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ 2GB āĻāϰ āĻšā§‡ā§Ÿā§‡ āĻŦ⧜ āĻĢāĻžāχāϞāϗ⧁āϞ⧋āϕ⧇ āĻĄāĻŋāϟāĻžāϰāĻŽāĻŋāύāĻŋāĻ¸ā§āϟāĻŋāĻ• āĻ•ā§āϞāĻŋāύāφāĻĒ (deterministic cleanup) āϏāĻš āĻŽā§āϝāĻžāĻĒ āĻ•āϰ⧁āύāĨ¤ +explanation: The Foreign Function & Memory API (JEP 454) āύāĻŋāϰāĻžāĻĒāĻĻ āĻāĻŦāĻ‚ āĻĻāĻ•ā§āώ āĻŽā§‡āĻŽāϰāĻŋ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ MemorySegment āĻĒā§āϰāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āϛ⧇āĨ¤ MappedByteBuffer-āĻāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇, MemorySegment 2GB (Integer.MAX_VALUE) āĻāϰ āĻšā§‡āϝāĻŧ⧇ āĻŦāĻĄāĻŧ āĻĢāĻžāχāϞāϗ⧁āϞ⧋āϕ⧇ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇, Arena-āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĄāĻŋāϟāĻžāϰāĻŽāĻŋāύāĻŋāĻ¸ā§āϟāĻŋāĻ• āĻ•ā§āϞāĻŋāύāφāĻĒ (deterministic cleanup) āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āφāϧ⧁āύāĻŋāĻ• āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āφāϰāĻ“ āĻ­āĻžāϞ⧋ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ āĻĻā§‡ā§ŸāĨ¤ +whyModernWins: +- icon: "📏" + title: āϕ⧋āύ⧋ āϏāĻžāχāϜ āϞāĻŋāĻŽāĻŋāϟ āύ⧇āχ + desc: āϕ⧋āύ⧋ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āφāωāϟ āĻ›āĻžāĻĄāĻŧāĻžāχ 2GB āĻāϰ āĻšā§‡āϝāĻŧ⧇ āĻŦ⧜ āĻĢāĻžāχāϞ āĻŽā§āϝāĻžāĻĒ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "🔒" + title: āĻĄāĻŋāϟāĻžāϰāĻŽāĻŋāύāĻŋāĻ¸ā§āϟāĻŋāĻ• āĻ•ā§āϞāĻŋāύāφāĻĒ + desc: Arena āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇ āϝ⧇ āĻŽā§‡āĻŽāϰāĻŋ āĻ¸ā§āϕ⧋āĻĒ āĻāĻ•ā§āϏāĻŋāϟ (scope exit) āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻĢā§āϰāĻŋ āĻšā§Ÿ, GC āϟāĻžāχāĻŽā§‡ āύ⧟āĨ¤ +- icon: "⚡" + title: āωāĻ¨ā§āύāϤ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ + desc: āφāϧ⧁āύāĻŋāĻ• āĻŽā§‡āĻŽāϰāĻŋ āĻŽāĻĄā§‡āϞ āĻāĻŦāĻ‚ āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖāĨ¤ +support: + description: JDK 22 (āĻŽāĻžāĻ°ā§āϚ 2024) āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/io/files-mismatch.yaml b/translations/content/bn/io/files-mismatch.yaml new file mode 100644 index 0000000..fe17c69 --- /dev/null +++ b/translations/content/bn/io/files-mismatch.yaml @@ -0,0 +1,18 @@ +--- +title: Files.mismatch() +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻŦāĻžāχāϟ āĻ•āĻŽā§āĻĒ⧇āϝāĻŧāĻžāϰ +modernApproach: Files.mismatch() +summary: āĻĻ⧁āϟāĻŋ āĻĢāĻžāχāϞāϕ⧇ āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āϞ⧋āĻĄ āύāĻž āĻ•āϰ⧇āχ āĻĻāĻ•ā§āώāϤāĻžāϰ āϏāĻžāĻĨ⧇ āϤ⧁āϞāύāĻž āĻ•āϰ⧁āύāĨ¤ +explanation: Files.mismatch() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻĒā§āϰāĻĨāĻŽ āĻ­āĻŋāĻ¨ā§āύ āĻŦāĻžāχāĻŸā§‡āϰ āĻĒāϜāĻŋāĻļāύ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, āĻ…āĻĨāĻŦāĻž āĻĢāĻžāχāϞāϗ⧁āϞ⧋ āĻ…āĻ­āĻŋāĻ¨ā§āύ āĻšāϞ⧇ -1 āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āϞ⧇āϜāĻŋ āϰāĻŋāĻĄ (lazy read) āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĒā§āϰāĻĨāĻŽ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ⧇ āĻļāĻ°ā§āϟ-āϏāĻžāĻ°ā§āĻ•āĻŋāϟ (short-circuits) āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "⚡" + title: āĻŽā§‡āĻŽāϰāĻŋ-āĻāĻĢāĻŋāĻļāĻŋāϝāĻŧ⧇āĻ¨ā§āϟ (Memory-efficient) + desc: āĻāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĢāĻžāχāϞāϕ⧇ āĻŦāĻžāχāϟ āĻ…ā§āϝāĻžāϰ⧇āϤ⧇ āϞ⧋āĻĄ āĻ•āϰ⧇ āύāĻžāĨ¤ +- icon: "đŸŽ¯" + title: āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰ⧇ + desc: āĻĒā§āϰāĻĨāĻŽ āĻ…āĻŽāĻŋāϞ⧇āϰ āϏāĻ āĻŋāĻ• āĻŦāĻžāχāϟ āĻĒāϜāĻŋāĻļāύ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ +- icon: "📏" + title: āĻāĻ• āĻ•āϞ + desc: āϕ⧋āύ⧋ āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻŦāĻžāχāϟ āĻ…ā§āϝāĻžāϰ⧇ āĻ•āĻŽā§āĻĒ⧇āϝāĻŧāĻžāϰ āϞāϜāĻŋāϕ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +support: + description: JDK 12 (āĻŽāĻžāĻ°ā§āϚ 2019) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/io/http-client.yaml b/translations/content/bn/io/http-client.yaml new file mode 100644 index 0000000..543af7f --- /dev/null +++ b/translations/content/bn/io/http-client.yaml @@ -0,0 +1,18 @@ +--- +title: āĻŽāĻĄāĻžāĻ°ā§āύ HTTP āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ (Modern HTTP client) +oldApproach: HttpURLConnection +modernApproach: HttpClient +summary: āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ, āφāϧ⧁āύāĻŋāĻ• HTTP āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āĻŸā§‡āϰ (requests) āϜāĻ¨ā§āϝ āĻŦāĻŋāĻ˛ā§āϟ-āχāύ HttpClient āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: HttpClient HTTP/1.1 āĻāĻŦāĻ‚ HTTP/2, āĻ…ā§āϝāĻžāϏāĻŋāĻ™ā§āĻ• āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ, WebSocket, āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟāϰ āĻāĻŦāĻ‚ āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻĒ⧁āϞāĻŋāĻ‚ (connection pooling) āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇āĨ¤ āĻāϰ āĻĢāϞ⧇ URLConnection āĻ•āĻžāĻ¸ā§āϟ āĻ•āϰāĻž āĻŦāĻž InputStream āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞāĻŋ āϰāĻŋāĻĄ āĻ•āϰāĻžāϰ āφāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +whyModernWins: +- icon: "📐" + title: āĻŦāĻŋāĻ˛ā§āĻĄāĻžāϰ API (Builder API) + desc: āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ, āĻšā§‡āĻĄāĻžāϰ āĻāĻŦāĻ‚ āϟāĻžāχāĻŽāφāωāĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻĢā§āĻ˛ā§ā§Ÿā§‡āĻ¨ā§āϟ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāϰāĨ¤ +- icon: "🔄" + title: HTTP/2 āϏāĻžāĻĒā§‹āĻ°ā§āϟ + desc: āĻŽāĻžāĻ˛ā§āϟāĻŋāĻĒā§āϞ⧇āĻ•ā§āϏāĻŋāĻ‚ (multiplexing) āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒ⧁āĻļ āϏāĻš āĻŦāĻŋāĻ˛ā§āϟ-āχāύ HTTP/2āĨ¤ +- icon: "⚡" + title: āĻ…ā§āϝāĻžāϏāĻŋāĻ™ā§āĻ• āϰ⧇āĻĄāĻŋ (Async Ready) + desc: sendAsync() āĻŽā§‡āĻĨāĻĄāϟāĻŋ CompletableFuture āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 11 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2018) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/io/inputstream-transferto.yaml b/translations/content/bn/io/inputstream-transferto.yaml new file mode 100644 index 0000000..c9ddacb --- /dev/null +++ b/translations/content/bn/io/inputstream-transferto.yaml @@ -0,0 +1,18 @@ +--- +title: InputStream.transferTo() +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻ•āĻĒāĻŋ āϞ⧁āĻĒ +modernApproach: transferTo() +summary: āĻāĻ• āĻ•āϞ (call)-āĻāχ āĻāĻ•āϟāĻŋ InputStream āĻĨ⧇āϕ⧇ OutputStream-āĻ āĻĄā§‡āϟāĻž āĻ•āĻĒāĻŋ āĻ•āϰ⧁āύāĨ¤ +explanation: transferTo() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āχāύāĻĒ⧁āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĨ⧇āϕ⧇ āϏāĻŽāĻ¸ā§āϤ āĻŦāĻžāχāϟ āϰāĻŋāĻĄ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞ⧋āϕ⧇ āφāωāϟāĻĒ⧁āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽā§‡ āϰāĻžāχāϟ āĻ•āϰ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āϕ⧋āύ⧋ āĻŦāĻžāĻĢāĻžāϰ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ āĻŦāĻž āϞ⧁āĻĒ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜāĻĄ āχāĻ¨ā§āϟāĻžāϰāύāĻžāϞ āĻŦāĻžāĻĢāĻžāϰ (optimized internal buffer) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "📏" + title: āĻāĻ• āϞāĻžāχāύ + desc: āĻāĻ•āϟāĻŋ āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻĻāĻŋāϝāĻŧ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϰāĻŋāĻĄ/āϰāĻžāχāϟ āϞ⧁āĻĒ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +- icon: "⚡" + title: āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜāĻĄ (Optimized) + desc: āχāĻ¨ā§āϟāĻžāϰāύāĻžāϞ āĻŦāĻžāĻĢāĻžāϰ⧇āϰ āϏāĻžāχāϜ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ⧇āϰ āϜāĻ¨ā§āϝ āϟāĻŋāωāύ (tuned) āĻ•āϰāĻž āĻšā§ŸāĨ¤ +- icon: "đŸ›Ąī¸" + title: āϕ⧋āύ⧋ āĻŦāĻžāĻ— āύ⧇āχ + desc: āĻŦāĻžāĻĢāĻžāϰ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻ…āĻĢ-āĻŦāĻžāχ-āĻ“āϝāĻŧāĻžāύ (off-by-one) āĻāϰāϰ āĻšāĻ“ā§ŸāĻžāϰ āĻā§āρāĻ•āĻŋ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/io/io-class-console-io.yaml b/translations/content/bn/io/io-class-console-io.yaml new file mode 100644 index 0000000..cf70ba0 --- /dev/null +++ b/translations/content/bn/io/io-class-console-io.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ•āύāϏ⧋āϞ I/O-āĻāϰ āϜāĻ¨ā§āϝ IO āĻ•ā§āϞāĻžāϏ +oldApproach: System.out / Scanner +modernApproach: IO āĻ•ā§āϞāĻžāϏ +summary: āύāϤ⧁āύ IO āĻ•ā§āϞāĻžāϏ āĻ•āύāϏ⧋āϞ āχāύāĻĒ⧁āϟ āĻāĻŦāĻ‚ āφāωāϟāĻĒ⧁āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āϏāĻšāϜ, āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻŽā§‡āĻĨāĻĄ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰ⧇āĨ¤ +explanation: Java 25 implicitly declared classes āĻĢāĻŋāϚāĻžāϰ⧇āϰ āĻ…āĻ‚āĻļ āĻšāĻŋāϏ⧇āĻŦ⧇ IO āĻ•ā§āϞāĻžāϏ (java.io.IO) āϚāĻžāϞ⧁ āĻ•āϰ⧇āϛ⧇āĨ¤ āĻāϟāĻŋ println(), print(), readln(), āĻāĻŦāĻ‚ read()-āĻāϰ āĻŽāϤ⧋ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻĨāĻĄ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇, āϝāĻž System.out āĻāĻŦāĻ‚ Scanner-āĻāϰ āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ āĻ•āĻŽā§āĻŦāĻŋāύ⧇āĻļāύāϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ IO.readln(prompt) āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻ•āϞ-āĻāχ āĻĒā§āϰāĻŽā§āĻĒāϟāĻŋāĻ‚ (prompting) āĻāĻŦāĻ‚ āϰāĻŋāĻĄāĻŋāĻ‚ (reading) āωāĻ­āϝāĻŧāχ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ āĻ•ā§āϞāĻžāϏāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āϏ⧋āĻ°ā§āϏ āĻĢāĻžāχāϞāϗ⧁āϞ⧋āϤ⧇ āωāĻĒāϞāĻŦā§āϧ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ (import) āĻ•āϰāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻŸā§āĻ°ā§āϝāĻžāĻĄāĻŋāĻļāύāĻžāϞ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +whyModernWins: +- icon: "✨" + title: āύāĻžāϟāϕ⧀āϝāĻŧāĻ­āĻžāĻŦ⧇ āϏāĻšāϜ + desc: āĻĻ⧁āϟāĻŋ āĻŽā§‡āĻĨāĻĄ Scanner āϏ⧇āϟāφāĻĒ, āĻĒā§āϰāĻŽā§āĻĒāϟāĻŋāĻ‚, āϰāĻŋāĻĄāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻŋāύāφāĻĒ⧇āϰ āϏāĻžāϤāϟāĻŋ āϞāĻžāχāύ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +- icon: "🔒" + title: āϕ⧋āύ⧋ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϞāĻŋāĻ• āύ⧇āχ + desc: āĻ•ā§āϞ⧋āϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϕ⧋āύ⧋ Scanner āύ⧇āχ – IO āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋ āχāĻ¨ā§āϟāĻžāϰāύāĻžāϞāĻŋ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +- icon: "🎓" + title: āύāϤ⧁āύāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻšāϜ + desc: āύāϤ⧁āύ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāϰāĻž Scanner, System.out, āĻŦāĻž āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ āĻļ⧇āĻ–āĻž āĻ›āĻžāĻĄāĻŧāĻžāχ āĻ•āύāϏ⧋āϞ I/O āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +support: + description: implicitly declared classes (JEP 495) āĻāϰ āĻ…āĻ‚āĻļ āĻšāĻŋāϏāĻžāĻŦ⧇ JDK 25-āĻ āĻĒā§āϰāĻŋāĻ­āĻŋāω \ No newline at end of file diff --git a/translations/content/bn/io/path-of.yaml b/translations/content/bn/io/path-of.yaml new file mode 100644 index 0000000..9592176 --- /dev/null +++ b/translations/content/bn/io/path-of.yaml @@ -0,0 +1,18 @@ +--- +title: Path.of() āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ +oldApproach: Paths.get() +modernApproach: Path.of() +summary: Path āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻĨāĻžāĻ•āĻž āφāϧ⧁āύāĻŋāĻ• āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻŽā§‡āĻĨāĻĄ Path.of() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: Path.of() āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻŽā§‡āĻĨāĻĄ āϝāĻž āϏāϰāĻžāϏāϰāĻŋ Path āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āϝ⧋āĻ— āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇, āϝāĻž āφāϞāĻžāĻĻāĻž Paths āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻ•ā§āϞāĻžāϏāϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ List.of(), Map.of() āχāĻ¤ā§āϝāĻžāĻĻāĻŋāϰ āĻŽāϤ⧋ āĻŦ⧇āĻļāĻŋ āĻĄāĻŋāϏāĻ•āĻ­āĻžāϰ⧇āĻŦāϞ (discoverable) āĻāĻŦāĻ‚ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϟ (consistent)āĨ¤ +whyModernWins: +- icon: "📐" + title: āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖ API + desc: List.of(), Set.of() āĻāϰ āĻŽāϤ⧋ .of() āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇āĨ¤ +- icon: "📖" + title: āĻĄāĻŋāϏāĻ•āĻ­āĻžāϰ⧇āĻŦāϞ (Discoverable) + desc: āĻāϟāĻŋ Path āϟāĻžāχāĻĒ⧇āϰ āĻŽāĻ§ā§āϝ⧇āχ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ, āφāϞāĻžāĻĻāĻž Paths āĻ•ā§āϞāĻžāϏ⧇ āύ⧟āĨ¤ +- icon: "🧹" + title: āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϏ āĻ•āĻŽ + desc: Paths āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻ•ā§āϞāĻžāϏ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +support: + description: JDK 11 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2018) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/io/reading-files.yaml b/translations/content/bn/io/reading-files.yaml new file mode 100644 index 0000000..7cb4619 --- /dev/null +++ b/translations/content/bn/io/reading-files.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĢāĻžāχāϞ āϰāĻŋāĻĄāĻŋāĻ‚ (Reading Files) +oldApproach: BufferedReader +modernApproach: Files.readString() +summary: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āϞāĻžāχāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĢāĻžāχāϞāϕ⧇ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ (String)-āĻ āϰāĻŋāĻĄ āĻ•āϰ⧁āύāĨ¤ +explanation: Files.readString() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ⧇āϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟāϕ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚-āĻ āϰāĻŋāĻĄ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻāύāϕ⧋āĻĄāĻŋāĻ‚ (āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ UTF-8) āĻāĻŦāĻ‚ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ•ā§āϞāĻŋāύāφāĻĒ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ āĻŦāĻĄāĻŧ āĻĢāĻžāχāϞāϗ⧁āϞ⧋āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āϞ⧇āϜāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ Files.lines() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +whyModernWins: +- icon: "📏" + title: āĻāĻ• āϞāĻžāχāύ + desc: BufferedReader āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āĻŸā§‡āϰ ā§ŽāϟāĻŋ āϞāĻžāχāύ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +- icon: "🧹" + title: āĻ…āĻŸā§‹ āĻ•ā§āϞāĻŋāύāφāĻĒ (Auto Cleanup) + desc: āĻĢāĻžāχāϞ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ•ā§āϞ⧋āϜāĻĄ āĻšā§ŸāĨ¤ +- icon: "🌐" + title: UTF-8 āĻĄāĻŋāĻĢāĻ˛ā§āϟ + desc: āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āϏāĻ āĻŋāĻ• āĻāύāϕ⧋āĻĄāĻŋāĻ‚ – āϕ⧋āύ⧋ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰ āϏ⧇āϟ (charset) āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤāĻŋ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +support: + description: JDK 11 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2018) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/io/try-with-resources-effectively-final.yaml b/translations/content/bn/io/try-with-resources-effectively-final.yaml new file mode 100644 index 0000000..2904699 --- /dev/null +++ b/translations/content/bn/io/try-with-resources-effectively-final.yaml @@ -0,0 +1,18 @@ +--- +title: āĻŸā§āϰāĻžāχ-āωāχāĻĨ-āϰāĻŋāϏ⧋āĻ°ā§āϏ āχāĻŽāĻĒā§āϰ⧁āĻ­āĻŽā§‡āĻ¨ā§āϟ (Try-with-resources Improvement) +oldApproach: āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ +modernApproach: āĻāĻĢ⧇āĻ•ā§āϟāĻŋāĻ­āϞāĻŋ āĻĢāĻžāχāύāĻžāϞ (Effectively Final) +summary: āĻŸā§āϰāĻžāχ-āωāχāĻĨ-āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϏ (try-with-resources) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻāĻĢ⧇āĻ•ā§āϟāĻŋāĻ­āϞāĻŋ-āĻĢāĻžāχāύāĻžāϞ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞāϗ⧁āϞ⧋āϕ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: Java 9 āĻāĻĢ⧇āĻ•ā§āϟāĻŋāĻ­āϞāĻŋ-āĻĢāĻžāχāύāĻžāϞ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞāϗ⧁āϞ⧋āϕ⧇ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ (re-declaration) āĻ›āĻžā§œāĻžāχ āϏāϰāĻžāϏāϰāĻŋ āĻŸā§āϰāĻžāχ-āωāχāĻĨ-āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϏ-āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻā§‡ā§ŸāĨ¤ āϰāĻŋāϏ⧋āĻ°ā§āϏāϟāĻŋ āĻŸā§āϰāĻžāχ āĻŦā§āϞāϕ⧇āϰ āĻŦāĻžāχāϰ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϞ⧇ āĻāϟāĻŋ āφāϰāĻ“ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻšā§ŸāĨ¤ +whyModernWins: +- icon: "🧹" + title: āϕ⧋āύ⧋ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ āĻĒ⧁āύāϰāĻžā§Ÿ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ + desc: āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ⧇āϰ āύāĻžāĻŽ āϏāϰāĻžāϏāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "📖" + title: āĻ•āĻŽ āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤāĻŋ + desc: āĻŸā§āϰāĻžāχ āĻŦā§āϞāϕ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āϕ⧋āύ⧋ āφāϞāĻžāĻĻāĻž āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ āύāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšā§Ÿ āύāĻžāĨ¤ +- icon: "📏" + title: āϏ⧁āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ + desc: āĻ•āĻŽ āϞāĻžāχāύ āϕ⧋āĻĄ, āĻāĻ•āχ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϏ⧇āĻĢāϟāĻŋ (resource safety)āĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/io/writing-files.yaml b/translations/content/bn/io/writing-files.yaml new file mode 100644 index 0000000..1671606 --- /dev/null +++ b/translations/content/bn/io/writing-files.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĢāĻžāχāϞ āϰāĻžāχāϟāĻŋāĻ‚ (Writing Files) +oldApproach: FileWriter + BufferedWriter +modernApproach: Files.writeString() +summary: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āϞāĻžāχāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ (String) āĻĢāĻžāχāϞ āĻ āϰāĻžāχāϟ āĻ•āϰ⧁āύāĨ¤ +explanation: Files.writeString() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ UTF-8 āĻāύāϕ⧋āĻĄāĻŋāĻ‚ āϏāĻš āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ⧇ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ āϰāĻžāχāϟ āĻ•āϰ⧇āĨ¤ āĻ…āĻĒāĻļāύāϗ⧁āϞ⧋ āĻ…ā§āϝāĻžāĻĒ⧇āĻ¨ā§āĻĄ (appending), āϤ⧈āϰāĻŋ āĻ•āϰāĻž (creating) āχāĻ¤ā§āϝāĻžāĻĻāĻŋāϰ āϜāĻ¨ā§āϝ āĻĒāĻžāϏ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +whyModernWins: +- icon: "📏" + title: āĻāĻ• āϞāĻžāχāύ + desc: āĻāĻ–āĻžāύ⧇ āϰāĻžāχāϟāĻžāϰ āĻ°â€ā§āϝāĻžāĻĒāĻŋāĻ‚ (writer wrapping) āĻŦāĻž āĻŸā§āϰāĻžāχ-āωāχāĻĨ-āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϏ⧇āϰ (try-with-resources) āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "đŸ›Ąī¸" + title: āϏ⧇āĻĢ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϏ + desc: UTF-8 āĻāύāϕ⧋āĻĄāĻŋāĻ‚, āϏāĻ āĻŋāĻ• āĻĢāĻžāχāϞ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•ā§āϞāĻŋāύāφāĻĒāĨ¤ +- icon: "🔧" + title: āĻ…āĻĒāĻļāύāϏ + desc: āĻ…ā§āϝāĻžāĻĒ⧇āĻ¨ā§āĻĄ (append), āĻ•ā§āϰāĻŋāϝāĻŧ⧇āϟ (create) āχāĻ¤ā§āϝāĻžāĻĻāĻŋāϰ āϜāĻ¨ā§āϝ OpenOption āĻĢā§āĻ˛ā§āϝāĻžāĻ— āĻĒāĻžāϏ āĻ•āϰ⧁āύāĨ¤ +support: + description: JDK 11 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2018) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/compact-canonical-constructor.yaml b/translations/content/bn/language/compact-canonical-constructor.yaml new file mode 100644 index 0000000..c27434d --- /dev/null +++ b/translations/content/bn/language/compact-canonical-constructor.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āĻ•ā§āϝāĻžāύ⧋āύāĻŋāĻ•āĻžāϞ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ (Compact Canonical Constructor) +oldApproach: āĻāĻ•ā§āϏāĻĒā§āϞāĻŋāϏāĻŋāϟ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ +modernApproach: āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ +summary: āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϞāĻŋāĻ¸ā§āϟ āϰāĻŋāĻĒāĻŋāϟ āύāĻž āĻ•āϰ⧇āχ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻĢāĻŋāĻ˛ā§āĻĄāϗ⧁āϞ⧋āϕ⧇ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āϟ (validate) āĻāĻŦāĻ‚ āύāϰāĻŽāĻžāϞāĻžāχāϜ (normalize) āĻ•āϰ⧁āύāĨ¤ +explanation: āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞ⧋ āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āĻ•ā§āϝāĻžāύ⧋āύāĻŋāĻ•āĻžāϞ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ (declare) āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻž āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϞāĻŋāĻ¸ā§āϟ āĻāĻŦāĻ‚ āĻĢāĻŋāĻ˛ā§āĻĄ āĻ…ā§āϝāĻžāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ āĻŦāĻžāĻĻ āĻĻā§‡ā§ŸāĨ¤ āφāĻĒāύāĻžāϰ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ āϞāϜāĻŋāĻ• āϰāĻžāύ āĻ•āϰāĻžāϰ āĻĒāϰ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĢāĻŋāĻ˛ā§āĻĄāϗ⧁āϞ⧋āϤ⧇ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻ…ā§āϝāĻžāϏāĻžāχāύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻĒā§āϰāĻŋāĻ•āĻ¨ā§āĻĄāĻŋāĻļāύ āĻšā§‡āĻ•, āĻĄāĻŋāĻĢ⧇āĻ¨ā§āϏāĻŋāĻ­ āĻ•āĻĒāĻŋ āĻāĻŦāĻ‚ āύāϰāĻŽāĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āφāĻĻāĻ°ā§āĻļāĨ¤ +whyModernWins: +- icon: "âœ‚ī¸" + title: āĻ•āĻŽ āϰāĻŋāĻĒāĻŋāĻŸā§‡āĻļāύ (Less Repetition) + desc: āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϞāĻŋāĻ¸ā§āϟ āϰāĻŋāĻĒāĻŋāϟ āĻ•āϰāĻž āĻŦāĻž āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĢāĻŋāĻ˛ā§āĻĄ āĻ…ā§āϝāĻžāϏāĻžāχāύ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ + desc: null āĻšā§‡āĻ•, āϰ⧇āĻžā§āϜ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ āĻāĻŦāĻ‚ āĻĄāĻŋāĻĢ⧇āĻ¨ā§āϏāĻŋāĻ­ āĻ•āĻĒāĻŋāϰ āϜāĻ¨ā§āϝ āĻĒāĻžāϰāĻĢ⧇āĻ•ā§āϟāĨ¤ +- icon: "📖" + title: āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āωāĻĻā§āĻĻ⧇āĻļā§āϝ + desc: āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āĻŸā§‡āϰ (boilerplate) āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ⧇āϰ āωāĻĒāϰ āĻœā§‹āϰ āĻĻā§‡ā§ŸāĨ¤ +support: + description: JDK 16 (āĻŽāĻžāĻ°ā§āϚ 2021) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/compact-source-files.yaml b/translations/content/bn/language/compact-source-files.yaml new file mode 100644 index 0000000..f331f80 --- /dev/null +++ b/translations/content/bn/language/compact-source-files.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āϏ⧋āĻ°ā§āϏ āĻĢāĻžāχāϞ (Compact Source Files) +oldApproach: āĻŽā§‡āχāύ āĻ•ā§āϞāĻžāϏ āϏ⧇āϰāĻŋāĻŽāύāĻŋ +modernApproach: void main() +summary: āĻ•ā§āϞāĻžāϏ āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āĻļāύ āĻŦāĻž āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻ­ā§Ÿā§‡āĻĄ āĻŽā§‡āχāύ (public static void main) āĻ›āĻžā§œāĻžāχ āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϞāĻŋāϖ⧁āύāĨ¤ +explanation: āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āϏ⧋āĻ°ā§āϏ āĻĢāĻžāχāϞāϗ⧁āϞ⧋ āϏāĻšāϜ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āĻ•ā§āϞāĻžāϏ āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āĻļāύ āĻāĻŦāĻ‚ āĻŽā§‡āχāύ āĻŽā§‡āĻĨāĻĄ āϏāĻŋāĻ—āύ⧇āϚāĻžāϰ⧇āϰ āφāύ⧁āĻˇā§āĻ āĻžāύāĻŋāĻ•āϤāĻž āĻĻā§‚āϰ āĻ•āϰ⧇āĨ¤ java.io.IO āĻāϰ āχāĻŽā§āĻĒā§āϞāĻŋāϏāĻŋāϟ (implicit) āχāĻŽā§āĻĒā§‹āĻ°ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞāĻŋāϤ āĻšā§Ÿā§‡, āĻāĻŽāύāĻ•āĻŋ println āϏāϰāĻžāϏāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +whyModernWins: +- icon: "🚀" + title: āϜāĻŋāϰ⧋ āϏ⧇āϰāĻŋāĻŽāύāĻŋ (Zero Ceremony) + desc: āϕ⧋āύ⧋ āĻ•ā§āϞāĻžāϏ, āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻ­ā§Ÿā§‡āĻĄ āĻŽā§‡āχāύ, āĻŦāĻž String[] args-āĻāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "🎓" + title: āύāϤ⧁āύāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻšāϜ + desc: āύāϤ⧁āύ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϰāϰāĻž āĻĒā§āϰāĻĨāĻŽ āϞāĻžāχāύ āĻĨ⧇āϕ⧇āχ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āϕ⧋āĻĄ āϞāĻŋāĻ–āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +- icon: "📝" + title: āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ-āĻāϰ āĻŽāϤ⧋ + desc: āĻĻā§āϰ⧁āϤ āĻĒā§āϰ⧋āĻŸā§‹āϟāĻžāχāĻĒ, āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻāĻŦāĻ‚ āωāĻĻāĻžāĻšāϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻĒāĻžāϰāĻĢ⧇āĻ•ā§āϟāĨ¤ +support: + description: JDK 25 LTS (JEP 512, āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2025) āĻ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ \ No newline at end of file diff --git a/translations/content/bn/language/default-interface-methods.yaml b/translations/content/bn/language/default-interface-methods.yaml new file mode 100644 index 0000000..41158b0 --- /dev/null +++ b/translations/content/bn/language/default-interface-methods.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĄāĻŋāĻĢāĻ˛ā§āϟ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻŽā§‡āĻĨāĻĄ (Default Interface Methods) +oldApproach: āĻļā§‡ā§ŸāĻžāϰāĻĄ āĻŦāĻŋāĻšā§‡āĻ­āĻŋāĻ“āϰ⧇āϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻŦāĻ¸ā§āĻŸā§āĻ°ā§āϝāĻžāĻ•ā§āϟ āĻ•ā§āϞāĻžāϏ (Abstract classes for shared behavior) +modernApproach: āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻŽā§‡āĻĨāĻĄ (Default methods on interfaces) +summary: āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻŽā§‡āĻĨāĻĄ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āϝ⧋āĻ— āĻ•āϰ⧁āύ, āϝāĻž āĻŦāĻŋāĻšā§‡āĻ­āĻŋāĻ“āϰ⧇āϰ āĻāĻ•āĻžāϧāĻŋāĻ• āχāύāĻšā§‡āϰāĻŋāĻŸā§‡āĻ¨ā§āϏ (multiple inheritance) āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤ +explanation: āϜāĻžāĻ­āĻž 8 āĻāϰ āφāϗ⧇, āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻšā§€āύ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āĻŦāĻŋāĻšā§‡āĻ­āĻŋāĻ“āϰ āĻļā§‡ā§ŸāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻŦāĻ¸ā§āĻŸā§āĻ°ā§āϝāĻžāĻ•ā§āϟ āĻ•ā§āϞāĻžāϏ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϤ⧋, āϝāĻž āφāĻĒāύāĻžāϕ⧇ āϏāĻŋāĻ™ā§āϗ⧇āϞ āχāύāĻšā§‡āϰāĻŋāĻŸā§‡āĻ¨ā§āϏ⧇ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧ āϰāĻžāĻ–āϤāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϕ⧇ āĻŽā§‡āĻĨāĻĄ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ (method implementations) āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāϤ⧇ āĻĻā§‡ā§Ÿ, āĻĢāϞ⧇ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋ āĻāĻ•āĻžāϧāĻŋāĻ• āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻĨ⧇āϕ⧇ āĻŦāĻŋāĻšā§‡āĻ­āĻŋāĻ“āϰ āχāύāĻšā§‡āϰāĻŋāϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϟāĻŋ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύāϗ⧁āϞ⧋āϕ⧇ āĻŦā§āϰ⧇āĻ• āύāĻž āĻ•āϰ⧇āχ āĻ•āĻžāϞ⧇āĻ•āĻļāύ API (āϝ⧇āĻŽāύ List.forEach, Map.getOrDefault) āχāĻ­āĻ˛ā§āĻ­ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āĻĒāϰāĻŋāĻšāĻžāĻ°ā§āϝ āĻ›āĻŋāϞāĨ¤ +whyModernWins: +- icon: "🔀" + title: āĻŽāĻžāĻ˛ā§āϟāĻŋāĻĒāϞ āχāύāĻšā§‡āϰāĻŋāĻŸā§‡āĻ¨ā§āϏ (Multiple Inheritance) + desc: āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻŽā§‡āĻĨāĻĄ āϏāĻš āĻāĻ•āĻžāϧāĻŋāĻ• āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻ…ā§āϝāĻžāĻŦāĻ¸ā§āĻŸā§āĻ°ā§āϝāĻžāĻ•ā§āϟ āĻ•ā§āϞāĻžāϏ āχāύāĻšā§‡āϰāĻŋāĻŸā§‡āĻ¨ā§āϏ⧇āϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇āĨ¤ +- icon: "đŸ“Ļ" + title: API āχāĻ­ā§‹āϞāĻŋāωāĻļāύ + desc: āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύāϗ⧁āϞ⧋āϕ⧇ āĻŦā§āϰ⧇āĻ• āύāĻž āĻ•āϰ⧇āχ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϗ⧁āϞ⧋āϤ⧇ āύāϤ⧁āύ āĻŽā§‡āĻĨāĻĄ āϝ⧋āĻ— āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "🧩" + title: āĻ•āĻŽā§āĻĒā§‹āĻœā§‡āĻŦāϞ āĻŦāĻŋāĻšā§‡āĻ­āĻŋāĻ“āϰ (Composable Behavior) + desc: āĻāĻ•āĻžāϧāĻŋāĻ• āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻĨ⧇āϕ⧇ āĻ•ā§āϝāĻžāĻĒāĻžāĻŦāĻŋāϞāĻŋāϟāĻŋāϗ⧁āϞ⧋ āĻ…āĻŦāĻžāϧ⧇ āĻŽāĻŋāĻ•ā§āϏ āĻāĻŦāĻ‚ āĻŽā§āϝāĻžāϚ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +support: + description: JDK 8 (āĻŽāĻžāĻ°ā§āϚ 2014) āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧāĨ¤ \ No newline at end of file diff --git a/translations/content/bn/language/diamond-operator.yaml b/translations/content/bn/language/diamond-operator.yaml new file mode 100644 index 0000000..4680a21 --- /dev/null +++ b/translations/content/bn/language/diamond-operator.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ…ā§āϝāĻžāύ⧋āύāĻŋāĻŽāĻžāϏ āĻ•ā§āϞāĻžāϏ āϏāĻš āĻĄāĻžāϝāĻŧāĻŽāĻ¨ā§āĻĄ āĻ…āĻĒāĻžāϰ⧇āϟāϰ (Diamond with Anonymous Classes) +oldApproach: āϟāĻžāχāĻĒ Args āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ +modernApproach: Diamond <> +summary: āĻĄāĻžāϝāĻŧāĻŽāĻ¨ā§āĻĄ āĻ…āĻĒāĻžāϰ⧇āϟāϰ āĻāĻ–āύ āĻ…ā§āϝāĻžāύ⧋āύāĻŋāĻŽāĻžāϏ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϰ (anonymous classes) āϏāĻžāĻĨ⧇āĻ“ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +explanation: Java 7-āĻ Diamond āĻ…āĻĒāĻžāϰ⧇āϟāϰ āϚāĻžāϞ⧁ āĻ•āϰāĻž āĻšāϞ⧇āĻ“ āĻāϟāĻŋ āĻ…ā§āϝāĻžāύ⧋āύāĻŋāĻŽāĻžāϏ āχāύāĻžāϰ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϰ (anonymous inner classes) āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ āύāĻžāĨ¤ Java 9 āĻāϟāĻŋ āĻ āĻŋāĻ• āĻ•āϰ⧇āϛ⧇, āϤāĻžāχ āφāĻĒāύāĻžāϕ⧇ āφāϰ āϰāĻžāχāϟ-āĻšā§āϝāĻžāĻ¨ā§āĻĄ āϏāĻžāχāĻĄā§‡ āϟāĻžāχāĻĒ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϏ (type arguments) āϰāĻŋāĻĒāĻŋāϟ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +whyModernWins: +- icon: "📏" + title: āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖ āύāĻŋ⧟āĻŽ (Consistent Rules) + desc: Diamond āĻ…āĻĒāĻžāϰ⧇āϟāϰ āϏāĻŦ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻ•āĻžāϜ āĻ•āϰ⧇ – āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāύ⧋āύāĻŋāĻŽāĻžāϏ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϤ⧇ āĻāĻ•āχāĻ­āĻžāĻŦ⧇āĨ¤ +- icon: "🧹" + title: āĻ•āĻŽ āϰāĻŋāĻĄāĻžāύāĻĄā§‡āĻ¨ā§āϏāĻŋ (Less Redundancy) + desc: āϟāĻžāχāĻĒ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϏ āĻŦāĻžāĻŽ āĻĻāĻŋāϕ⧇ āĻāĻ•āĻŦāĻžāϰ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ, āφāϰ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "🔧" + title: DRY āĻĒā§āϰāĻŋāĻ¨ā§āϏāĻŋāĻĒāĻžāϞ (DRY Principle) + desc: āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āϟāĻžāχāĻĒ āϜāĻžāύ⧇ – āϤāĻžāĻšāϞ⧇ āĻāϟāĻŋ āĻĻ⧁āχāĻŦāĻžāϰ āϞ⧇āĻ–āĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āϕ⧀? +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻ…ā§āϝāĻžāύ⧋āύāĻŋāĻŽāĻžāϏ āĻ•ā§āϞāĻžāϏ āϏāĻš āĻĄāĻžāϝāĻŧāĻŽāĻ¨ā§āĻĄ āĻ…āĻĒāĻžāϰ⧇āϟāϰāĨ¤ \ No newline at end of file diff --git a/translations/content/bn/language/exhaustive-switch.yaml b/translations/content/bn/language/exhaustive-switch.yaml new file mode 100644 index 0000000..6d90209 --- /dev/null +++ b/translations/content/bn/language/exhaustive-switch.yaml @@ -0,0 +1,21 @@ +--- +title: āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻ›āĻžāĻĄāĻŧāĻžāχ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϏ⧁āχāϚ +oldApproach: āĻŦāĻžāĻ§ā§āϝāϤāĻžāĻŽā§‚āϞāĻ• āĻĄāĻŋāĻĢāĻ˛ā§āϟ +modernApproach: āϏāĻŋāϞ āĻ•āϰāĻž āύāĻŋāσāĻļ⧇āώāĻŋāϤāϤāĻž +summary: āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āϝāĻžāϚāĻžāχ āĻ•āϰ⧇ āϝ⧇ āϏāĻŽāĻ¸ā§āϤ āϏāĻŋāϞ āĻ•āϰāĻž āϏāĻžāĻŦāϟāĻžāχāĻĒ āĻ•āĻ­āĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ — āϕ⧋āύ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸā§‡āϰ + āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχāĨ¤ +explanation: āĻāĻ•āϟāĻŋ āϏāĻŋāϞ āĻ•āϰāĻž āϟāĻžāχāĻĒ⧇āϰ āωāĻĒāϰ āĻ¸ā§āϝ⧁āχāϚ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āϏāĻŽāĻ¸ā§āϤ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āϏāĻžāĻŦāϟāĻžāχāĻĒāϗ⧁āϞāĻŋ + āϜāĻžāύ⧇ āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϕ⧇āϏ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āϤāĻž āϝāĻžāϚāĻžāχ āĻ•āϰ⧇āĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϏāĻžāĻŦ-āϟāĻžāχāĻĒ + āϝ⧋āĻ— āĻ•āϰ⧇āύ, āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āĻāĻ–āύ āĻ…āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϏ⧁āχāϚāϕ⧇ āĻĢā§āĻ˛ā§āϝāĻžāĻ— āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "✅" + title: āĻ•āĻŽā§āĻĒāĻžāχāϞ-āϏāĻŽāϝāĻŧ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž + desc: āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϏāĻžāĻŦāϟāĻžāχāĻĒ āϝ⧋āĻ— āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϜāĻžāϝāĻŧāĻ—āĻž āĻĻ⧇āĻ–āĻžāϝāĻŧāĨ¤ +- icon: "\U0001F6AB" + title: āϕ⧋āύ āĻĄā§‡āĻĄ āϕ⧋āĻĄ āύ⧇āχ + desc: āĻŦāĻžāĻ— āĻŽāĻžāĻ¸ā§āĻ• āĻ•āϰ⧇ āĻāĻŽāύ āϕ⧋āύ⧋ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻļāĻžāĻ–āĻž āύ⧇āχāĨ¤ +- icon: "\U0001F4D0" + title: āĻŦā§€āϜāĻ—āĻŖāĻŋāϤ⧇āϰ āĻĒā§āϰāĻ•āĻžāϰ + desc: āϜāĻžāĻ­āĻžāϤ⧇ āϏāĻŋāϞ āĻ•āϰāĻž + āϰ⧇āĻ•āĻ°ā§āĻĄ + āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϏ⧁āχāϚ = āϏāĻ āĻŋāĻ• ADTsāĨ¤ +support: + description: JDK 21 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2023) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ diff --git a/translations/content/bn/language/flexible-constructor-bodies.yaml b/translations/content/bn/language/flexible-constructor-bodies.yaml new file mode 100644 index 0000000..4a71333 --- /dev/null +++ b/translations/content/bn/language/flexible-constructor-bodies.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĢā§āϞ⧇āĻ•ā§āϏāĻŋāĻŦāϞ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āĻŦāĻĄāĻŋāϏ (Flexible Constructor Bodies) +oldApproach: super() āĻāϰ āĻĒāϰ⧇ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āϟ (Validate After super()) +modernApproach: super() āĻāϰ āφāϗ⧇ āϕ⧋āĻĄ (Code Before super()) +summary: super() āĻŦāĻž this() āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰāĻžāϰ āφāϗ⧇ āĻ­ā§āϝāĻžāϞ⧁ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āϟ (validate) āĻāĻŦāĻ‚ āĻ•āĻŽā§āĻĒāĻŋāωāϟ (compute) āĻ•āϰ⧁āύāĨ¤ +explanation: Java 25 āĻāχ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āϤ⧁āϞ⧇ āύāĻŋā§Ÿā§‡āϛ⧇ āϝ⧇ super() āĻ…āĻŦāĻļā§āϝāχ āĻĒā§āϰāĻĨāĻŽ āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāĻ–āύ āφāĻĒāύāĻŋ āĻĒā§āϝāĻžāϰ⧇āĻ¨ā§āϟ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ⧇āϰ āĻ•āĻžāϛ⧇ āĻĄā§‡āϞāĻŋāϗ⧇āϟ āĻ•āϰāĻžāϰ āφāϗ⧇ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āϟ āĻ•āϰāϤ⧇, āĻĄāĻŋāϰāĻžāχāĻ­āĻĄ āĻ­ā§āϝāĻžāϞ⧁ (derived values) āĻ•āĻŽā§āĻĒāĻŋāωāϟ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§‡āϟ āϏ⧇āϟāφāĻĒ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤ +whyModernWins: +- icon: "đŸ›Ąī¸" + title: āĻĻā§āϰ⧁āϤ āĻŦā§āϝāĻ°ā§āĻĨ (Fail Fast) + desc: āϏ⧁āĻĒāĻžāϰāĻ•ā§āϞāĻžāϏ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āϰāĻžāύ āĻ•āϰāĻžāϰ āφāϗ⧇ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āϟ āĻ•āϰ⧁āύāĨ¤ +- icon: "🧮" + title: āĻĒā§āϰāĻĨāĻŽā§‡ āĻ•āĻŽā§āĻĒāĻŋāωāϟ (Compute First) + desc: super() āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰāĻžāϰ āφāϗ⧇ āĻ­ā§āϝāĻžāϞ⧁ āĻĄāĻŋāϰāĻžāχāĻ­ āĻāĻŦāĻ‚ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻ•āϰ⧁āύāĨ¤ +- icon: "🧹" + title: āϕ⧋āύ⧋ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āφāωāϟ āύ⧇āχ + desc: āĻāχ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āĻāĻĄāĻŧāĻžāϤ⧇ āφāϰ āϕ⧋āύ⧋ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻšā§‡āĻ˛ā§āĻĒāĻžāϰ āĻŽā§‡āĻĨāĻĄ āĻŦāĻž āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +support: + description: JDK 25 LTS (JEP 513, āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2025) āĻ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ \ No newline at end of file diff --git a/translations/content/bn/language/guarded-patterns.yaml b/translations/content/bn/language/guarded-patterns.yaml new file mode 100644 index 0000000..2a64046 --- /dev/null +++ b/translations/content/bn/language/guarded-patterns.yaml @@ -0,0 +1,18 @@ +--- +title: āϝāĻ–āύ āĻ—āĻžāĻ°ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ (Guarded Patterns with when) +oldApproach: āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ if +modernApproach: when āĻ•ā§āϞāϜ (when Clause) +summary: when āĻ—āĻžāĻ°ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āϕ⧇āχāϏāϗ⧁āϞ⧋āϤ⧇ āĻ•āĻ¨ā§āĻĄāĻŋāĻļāύ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ +explanation: āĻ—āĻžāĻ°ā§āĻĄā§‡āĻĄ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ (Guarded Patterns) āφāĻĒāύāĻžāϕ⧇ āĻāĻ•āϟāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻŦ⧁āϞāĻŋāϝāĻŧāĻžāύ āĻ•āĻ¨ā§āĻĄāĻŋāĻļāύ (boolean condition) āϏāĻš āĻāĻ•āϟāĻŋ āϟāĻžāχāĻĒ āĻŽā§āϝāĻžāϚāϕ⧇ āϰāĻŋāĻĢāĻžāχāύ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻŦā§āϰāĻžāĻžā§āϚāĻŋāĻ‚ āϞāϜāĻŋāĻ•āϕ⧇ āϕ⧇āχāϏ⧇āϰ āĻ­āĻŋāϤāϰ⧇ if āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ āύ⧇āĻ¸ā§āϟ āύāĻž āĻ•āϰ⧇ āϏ⧁āχāĻšā§‡āϰ (switch) āĻŽāĻ§ā§āϝ⧇āχ āϰāĻžāϖ⧇āĨ¤ +whyModernWins: +- icon: "đŸŽ¯" + title: āϏ⧁āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŽā§āϝāĻžāϚāĻŋāĻ‚ (Precise Matching) + desc: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āϕ⧇āχāϏ āϞ⧇āĻŦ⧇āϞ⧇ āϟāĻžāχāĻĒ āĻāĻŦāĻ‚ āĻ•āĻ¨ā§āĻĄāĻŋāĻļāύ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧁āύāĨ¤ +- icon: "📐" + title: āĻĢā§āĻ˛ā§āϝāĻžāϟ āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ (Flat Structure) + desc: āϏ⧁āχāϚ āϕ⧇āχāϏ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āϕ⧋āύ⧋ āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ if/else āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +- icon: "📖" + title: āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ āωāĻĻā§āĻĻ⧇āĻļā§āϝ (Readable Intent) + desc: when āĻ•ā§āϞāϜāϟāĻŋ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻ­āĻžāώāĻžāϰ āĻŽāϤ⧋ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝāĨ¤ +support: + description: JDK 21 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2023) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/markdown-javadoc-comments.yaml b/translations/content/bn/language/markdown-javadoc-comments.yaml new file mode 100644 index 0000000..20dbc37 --- /dev/null +++ b/translations/content/bn/language/markdown-javadoc-comments.yaml @@ -0,0 +1,18 @@ +--- +title: Javadoc āĻ•āĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻŽāĻžāĻ°ā§āĻ•āĻĄāĻžāωāύ (Markdown in Javadoc comments) +oldApproach: HTML-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• Javadoc +modernApproach: āĻŽāĻžāĻ°ā§āĻ•āĻĄāĻžāωāύ Javadoc +summary: āωāĻ¨ā§āύāϤ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝāϤāĻžāϰ (readability) āϜāĻ¨ā§āϝ HTML āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻŽāĻžāĻ°ā§āĻ•āĻĄāĻžāωāύ⧇ (Markdown) Javadoc āĻ•āĻŽā§‡āĻ¨ā§āϟ āϞāĻŋāϖ⧁āύāĨ¤ +explanation: Java 23 āϐāϤāĻŋāĻšā§āϝāĻŦāĻžāĻšā§€ /** */ HTML-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡āϰ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻšāĻŋāϏ⧇āĻŦ⧇ /// āĻŽāĻžāĻ°ā§āĻ•āĻĄāĻžāωāύ-āĻ¸ā§āϟāĻžāχāϞ Javadoc āĻ•āĻŽā§‡āĻ¨ā§āϟ āϚāĻžāϞ⧁ āĻ•āϰ⧇āϛ⧇āĨ¤ āĻŽāĻžāĻ°ā§āĻ•āĻĄāĻžāωāύ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ āϕ⧋āĻĄ āĻŦā§āϞāĻ•, āĻāĻŽāĻĢāĻžāϏāĻŋāϏ, āϞāĻŋāĻ¸ā§āϟ āĻāĻŦāĻ‚ āϞāĻŋāĻ‚āĻ• āϏāĻžāĻĒā§‹āĻ°ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āϞāĻŋāĻ–āϤ⧇ āĻ“ āĻĒāĻĄāĻŧāϤ⧇ āφāϰāĻ“ āϏāĻšāϜāĨ¤ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ Javadoc āφāωāϟāĻĒ⧁āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻŽāĻžāĻ°ā§āĻ•āĻĄāĻžāωāύāϕ⧇ HTML-āĻ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "📖" + title: āĻĒā§āϰāĻžāĻ•ā§ƒāϤāĻŋāĻ• āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ + desc: HTML āĻŸā§āϝāĻžāϗ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āχāύāϞāĻžāχāύ āϕ⧋āĻĄā§‡āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāĻ•āϟāĻŋāĻ•āϏ āĻāĻŦāĻ‚ āĻŦā§āϞāϕ⧇āϰ āϜāĻ¨ā§āϝ ``` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "âœī¸" + title: āϞāĻŋāĻ–āϤ⧇ āϏāĻšāϜ + desc: {@code},
, 

āĻŸā§āϝāĻžāϗ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ – āĻļ⧁āϧ⧁ āĻŽāĻžāĻ°ā§āĻ•āĻĄāĻžāωāύ āϞāĻŋāϖ⧁āύāĨ¤ +- icon: "👁" + title: āĻāĻĄāĻŋāϟāϰ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻ­āĻžāϞ⧋ + desc: āĻŽāĻžāĻ°ā§āĻ•āĻĄāĻžāωāύ āφāϧ⧁āύāĻŋāĻ• IDEs (Integrated Development Environments) āĻāĻŦāĻ‚ āĻŸā§‡āĻ•ā§āϏāϟ āĻāĻĄāĻŋāϟāϰāϗ⧁āϞ⧋āϤ⧇ āϏ⧁āĻ¨ā§āĻĻāϰāĻ­āĻžāĻŦ⧇ āϰ⧇āĻ¨ā§āĻĄāĻžāϰ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 23 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2024) āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/module-import-declarations.yaml b/translations/content/bn/language/module-import-declarations.yaml new file mode 100644 index 0000000..f2966c8 --- /dev/null +++ b/translations/content/bn/language/module-import-declarations.yaml @@ -0,0 +1,18 @@ +--- +title: āĻŽāĻĄāĻŋāωāϞ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āĻļāύ (Module Import Declarations) +oldApproach: āĻ…āύ⧇āĻ• āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ +modernApproach: import module +summary: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻŽāĻĄāĻŋāωāϞ⧇āϰ āϏāĻŽāĻ¸ā§āϤ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻž āĻĒā§āϝāĻžāϕ⧇āϜ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧁āύāĨ¤ +explanation: āĻŽāĻĄāĻŋāωāϞ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āĻļāύ (Module import declarations) āφāĻĒāύāĻžāϕ⧇ āĻāĻ•āϟāĻŋ āĻŽāĻĄāĻŋāωāϞ āϝāĻž āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇, āϤāĻžāϰ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻāĻ• āϞāĻžāχāύ⧇ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻ•āϰāϤ⧇ āĻĻā§‡ā§ŸāĨ¤ āĻāϟāĻŋ java.base āĻāϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āωāĻĒāϝ⧋āĻ—ā§€, āϝāĻž āĻ•āĻžāϞ⧇āĻ•āĻļāύ, I/O, āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻāĻŦāĻ‚ āφāϰāĻ“ āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁ āĻ•āĻ­āĻžāϰ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "🧹" + title: āĻāĻ• āϞāĻžāχāύ + desc: āĻ…āύ⧇āĻ•āϗ⧁āϞ⧋ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟāϕ⧇ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻŽāĻĄāĻŋāωāϞ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻĻāĻŋā§Ÿā§‡ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +- icon: "đŸ“Ļ" + title: āĻŽāĻĄāĻŋāωāϞ-āĻ…ā§āϝāĻžāĻ“ā§ŸāĻžāϰ (Module-aware) + desc: āĻĒā§āϝāĻžāϕ⧇āĻœā§‡āϰ āϏ⧁āϏāĻ‚āĻ—āϤ āϏ⧇āϟ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻ•āϰāϤ⧇ āĻŽāĻĄāĻŋāωāϞ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϕ⧇ āĻ•āĻžāĻœā§‡ āϞāĻžāĻ—āĻžā§ŸāĨ¤ +- icon: "🚀" + title: āĻĻā§āϰ⧁āϤ āĻļ⧁āϰ⧁ + desc: āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻāĻŦāĻ‚ āĻĒā§āϰ⧋āĻŸā§‹āϟāĻžāχāĻĒ⧇āϰ āϜāĻ¨ā§āϝ āĻĒāĻžāϰāĻĢ⧇āĻ•ā§āϟ, āϝ⧇āĻ–āĻžāύ⧇ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž tediousāĨ¤ +support: + description: JDK 25 LTS (JEP 511, āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2025) āĻ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ \ No newline at end of file diff --git a/translations/content/bn/language/pattern-matching-instanceof.yaml b/translations/content/bn/language/pattern-matching-instanceof.yaml new file mode 100644 index 0000000..db52e61 --- /dev/null +++ b/translations/content/bn/language/pattern-matching-instanceof.yaml @@ -0,0 +1,18 @@ +--- +title: instanceof-āĻāϰ āϜāĻ¨ā§āϝ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚ (Pattern matching for instanceof) +oldApproach: instanceof + Cast +modernApproach: āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ (Pattern Variable) +summary: āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϟāĻžāχāĻĒ āĻšā§‡āĻ• (type check) āĻāĻŦāĻ‚ āĻ•āĻžāĻ¸ā§āϟ (cast) āϕ⧇ āĻāĻ• āĻ¸ā§āĻŸā§‡āĻĒ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧁āύāĨ¤ +explanation: instanceof-āĻāϰ āϜāĻ¨ā§āϝ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚ āϟāĻžāχāĻĒ āĻšā§‡āϕ⧇āϰ āĻĒāϰ⧇ āĻ…āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ•āĻžāĻ¸ā§āϟāϕ⧇ āĻĻā§‚āϰ āĻ•āϰ⧇āĨ¤ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ¸ā§āϕ⧋āĻĒāĻĄ (scoped) āĻšāϝāĻŧ āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϟāĻŋ āĻŽā§āϝāĻžāϚ āĻ•āϰ⧇, āϝāĻž āϕ⧋āĻĄāϕ⧇ āφāϰāĻ“ āύāĻŋāϰāĻžāĻĒāĻĻ āĻāĻŦāĻ‚ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ +whyModernWins: +- icon: "🔄" + title: āϕ⧋āύ⧋ āĻ…āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ•āĻžāĻ¸ā§āϟ āύ⧇āχ + desc: āϟāĻžāχāĻĒ āĻšā§‡āĻ• āĻāĻŦāĻ‚ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ⧇āχ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšāϝāĻŧāĨ¤ +- icon: "📏" + title: āĻ•āĻŽ āϞāĻžāχāύ + desc: āĻĻ⧁āϟāĻŋāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻāĻ•āϟāĻŋ āϞāĻžāχāύ – āĻ•āĻžāĻ¸ā§āϟ āϞāĻžāχāύāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻŦāĻŋāϞ⧁āĻĒā§āϤ āĻšā§Ÿā§‡ āϝāĻžā§ŸāĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻ¸ā§āϕ⧋āĻĒ āϏ⧇āĻĢāϟāĻŋ (Scope Safety) + desc: āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϏ⧇āχ āĻ¸ā§āϕ⧋āĻĒ⧇ āĻĨāĻžāϕ⧇ āϝ⧇āĻ–āĻžāύ⧇ āϟāĻžāχāĻĒāϟāĻŋ āύāĻŋāĻļā§āϚāĻŋāϤ (guaranteed) āĻšā§ŸāĨ¤ +support: + description: JDK 16 (āĻŽāĻžāĻ°ā§āϚ 2021) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/pattern-matching-switch.yaml b/translations/content/bn/language/pattern-matching-switch.yaml new file mode 100644 index 0000000..d49845f --- /dev/null +++ b/translations/content/bn/language/pattern-matching-switch.yaml @@ -0,0 +1,18 @@ +--- +title: āϏ⧁āχāϚ-āĻ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚ (Pattern matching in switch) +oldApproach: if-else āĻšā§‡āχāύ +modernApproach: āϟāĻžāχāĻĒ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϏ (Type Patterns) +summary: āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āϏ⧁āχāϚ āϟāĻžāχāĻĒ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ if-else instanceof āĻšā§‡āχāύāϗ⧁āϞ⧋āϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +explanation: āϏ⧁āχāϚ-āĻ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚ āφāĻĒāύāĻžāϕ⧇ āϏāϰāĻžāϏāϰāĻŋ āϟāĻžāχāĻĒ⧇āϰ āϏāĻžāĻĨ⧇ āĻŽā§āϝāĻžāϚ āĻ•āϰāϤ⧇ āĻĻā§‡ā§Ÿ, āϟāĻžāχāĻĒ āĻŸā§‡āĻ¸ā§āϟ, āĻ•āĻžāĻ¸ā§āϟ āĻāĻŦāĻ‚ āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚āϕ⧇ āĻāĻ•āϟāĻŋ āϏ⧁āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āϕ⧇āχāϏ āϞ⧇āĻŦ⧇āϞ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āĻ•āĻŽāĻĒā§āϞāĻŋāϟāύ⧇āϏ āĻšā§‡āĻ• āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "📐" + title: āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāĻ°ā§āĻĄ āĻĄāĻŋāϏāĻĒā§āϝāĻžāϚ (Structured Dispatch) + desc: āϏ⧁āχāϚ āĻŦā§āϰāĻžāĻžā§āϚāĻŋāĻ‚ āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰāϕ⧇ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻāĻŦāĻ‚ āĻ¸ā§āĻ•ā§āϝāĻžāύ⧇āĻŦāϞ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ +- icon: "đŸŽ¯" + title: āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻĢāĻ°ā§āĻŽ (Expression Form) + desc: āϏāϰāĻžāϏāϰāĻŋ āĻāĻ•āϟāĻŋ āĻ­ā§āϝāĻžāϞ⧁ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇ – āϕ⧋āύ⧋ āĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "✅" + title: āĻāĻ•ā§āϏāĻšāĻ¸ā§āϟāĻŋāĻ­āύ⧇āϏ (Exhaustiveness) + desc: āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇ āϝ⧇ āϏāĻŦ āϟāĻžāχāĻĒ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤ +support: + description: JDK 21 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2023) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/primitive-types-in-patterns.yaml b/translations/content/bn/language/primitive-types-in-patterns.yaml new file mode 100644 index 0000000..57a0fea --- /dev/null +++ b/translations/content/bn/language/primitive-types-in-patterns.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ⧇ āĻĒā§āϰāĻŋāĻŽāĻŋāϟāĻŋāĻ­ āϟāĻžāχāĻĒāϏ (Primitive Types in Patterns) +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āϰ⧇āĻžā§āϜ āĻšā§‡āĻ•āϏ (Manual Range Checks) +modernApproach: āĻĒā§āϰāĻŋāĻŽāĻŋāϟāĻŋāĻ­ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϏ (Primitive Patterns) +summary: āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚ āĻāĻ–āύ āĻļ⧁āϧ⧁ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āύāϝāĻŧ, āĻĒā§āϰāĻŋāĻŽāĻŋāϟāĻŋāĻ­ āϟāĻžāχāĻĒāϗ⧁āϞ⧋āϰ (primitive types) āϏāĻžāĻĨ⧇āĻ“ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +explanation: Java 25 āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚āϕ⧇ āĻĒā§āϰāĻŋāĻŽāĻŋāϟāĻŋāĻ­ āϟāĻžāχāĻĒāϗ⧁āϞ⧋āϤ⧇ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻ•āϰ⧇āϛ⧇āĨ¤ āφāĻĒāύāĻŋ int, long, double āχāĻ¤ā§āϝāĻžāĻĻāĻŋāϰ āĻŽāϤ⧋ āĻĒā§āϰāĻŋāĻŽāĻŋāϟāĻŋāĻ­ āϟāĻžāχāĻĒāϗ⧁āϞ⧋ when āĻ—āĻžāĻ°ā§āĻĄ (when guards) āϏāĻš āϏ⧁āχāϚ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ⧇ (switch patterns) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ, āϝāĻž āĻŦāĻ•ā§āϏāĻŋāĻ‚ āĻŦāĻž āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āϰ⧇āĻžā§āϜ āĻšā§‡āϕ⧇āϰ (manual range checks) āĻĒā§āĻ°ā§Ÿā§‹āϜāύ⧀āϝāĻŧāϤāĻž āĻĻā§‚āϰ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "đŸ“Ļ" + title: āϕ⧋āύ⧋ āĻŦāĻ•ā§āϏāĻŋāĻ‚ (Boxing) āύ⧇āχ + desc: āĻĒā§āϰāĻŋāĻŽāĻŋāϟāĻŋāĻ­ āϟāĻžāχāĻĒāϗ⧁āϞ⧋āϕ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻŽā§āϝāĻžāϚ āĻ•āϰ⧁āύ – āϕ⧋āύ⧋ Integer āĻ°â€ā§āϝāĻžāĻĒāĻžāϰ⧇āϰ (wrapper) āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "đŸŽ¯" + title: āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ (Pattern Consistency) + desc: āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻāĻŦāĻ‚ āĻĒā§āϰāĻŋāĻŽāĻŋāϟāĻŋāĻ­ āϟāĻžāχāĻĒāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻāĻ•āχ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏāĨ¤ +- icon: "⚡" + title: āωāĻ¨ā§āύāϤ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ + desc: āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚āϝāĻŧ⧇ āĻ…āĻŸā§‹āĻŦāĻ•ā§āϏāĻŋāĻ‚ā§Ÿā§‡āϰ (autoboxing) āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϞ⧋āĻĄ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϝāĻžāύāĨ¤ +support: + description: JDK 25-āĻ āĻĒā§āϰāĻŋāĻ­āĻŋāω (āϤ⧃āϤ⧀āϝāĻŧ āĻĒā§āϰāĻŋāĻ­āĻŋāω, JEP 507)āĨ¤ --enable-preview āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ \ No newline at end of file diff --git a/translations/content/bn/language/private-interface-methods.yaml b/translations/content/bn/language/private-interface-methods.yaml new file mode 100644 index 0000000..b89d071 --- /dev/null +++ b/translations/content/bn/language/private-interface-methods.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĒā§āϰāĻžāχāϭ⧇āϟ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻŽā§‡āĻĨāĻĄ (Private Interface Methods) +oldApproach: āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āĻŸā§‡āĻĄ āϞāϜāĻŋāĻ• +modernApproach: āĻĒā§āϰāĻžāχāϭ⧇āϟ āĻŽā§‡āĻĨāĻĄāϏ (Private Methods) +summary: āĻĒā§āϰāĻžāχāϭ⧇āϟ āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻļā§‡ā§ŸāĻžāϰāĻĄ āϞāϜāĻŋāĻ• (shared logic) āĻāĻ•ā§āϏāĻŸā§āĻ°ā§āϝāĻžāĻ•ā§āϟ āĻ•āϰ⧁āύāĨ¤ +explanation: Java 9 āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻĒā§āϰāĻžāχāϭ⧇āϟ āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧ, āϝāĻž āφāĻĒāύāĻžāϕ⧇ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟāĻŋāĻ‚ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϰ (implementing classes) āĻ•āĻžāϛ⧇ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻĄāĻŋāĻŸā§‡āχāϞāϏ āĻāĻ•ā§āϏāĻĒā§‹āϜ āύāĻž āĻ•āϰ⧇āχ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āϕ⧋āĻĄ āĻļā§‡ā§ŸāĻžāϰ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "🧩" + title: āϕ⧋āĻĄ āϰāĻŋāχāωāϜ (Code Reuse) + desc: āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ›āĻžāĻĄāĻŧāĻžāχ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āϞāϜāĻŋāĻ• āĻļā§‡ā§ŸāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "🔐" + title: āĻāύāĻ•ā§āϝāĻžāĻĒāϏ⧁āϞ⧇āĻļāύ (Encapsulation) + desc: āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻĄāĻŋāĻŸā§‡āχāϞāϏ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟāĻŋāĻ‚ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋ āĻĨ⧇āϕ⧇ āϞ⧁āĻ•āĻžāύ⧋ āĻĨāĻžāϕ⧇āĨ¤ +- icon: "🧹" + title: DRY āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ + desc: āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āφāϰ āĻ•āĻĒāĻŋ-āĻĒ⧇āĻ¸ā§āĻŸā§‡āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/record-patterns.yaml b/translations/content/bn/language/record-patterns.yaml new file mode 100644 index 0000000..68dc0db --- /dev/null +++ b/translations/content/bn/language/record-patterns.yaml @@ -0,0 +1,18 @@ +--- +title: āϰ⧇āĻ•āĻ°ā§āĻĄ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ (Destructuring) +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ +modernApproach: āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰāĻŋāĻ‚ (Destructuring) +summary: āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϗ⧁āϞ⧋āϤ⧇ āϏāϰāĻžāϏāϰāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞ⧋ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āĻ•āϰ⧁āύ – āĻāĻ• āĻ¸ā§āĻŸā§‡āĻĒ⧇āχ āĻĢāĻŋāĻ˛ā§āĻĄ āĻāĻ•ā§āϏāĻŸā§āĻ°ā§āϝāĻžāĻ•ā§āϟ āĻ•āϰ⧁āύāĨ¤ +explanation: āϰ⧇āĻ•āĻ°ā§āĻĄ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ (Record patterns) āφāĻĒāύāĻžāϕ⧇ instanceof āĻāĻŦāĻ‚ switch āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻāĻ•āϟāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄā§‡āϰ āĻ•āĻŽā§āĻĒā§‹āύ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ āϏāϰāĻžāϏāϰāĻŋ āĻĄāĻŋāĻ•āĻŽā§āĻĒā§‹āϜ (decompose) āĻ•āϰāϤ⧇ āĻĻā§‡ā§ŸāĨ¤ āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāĻ“ āϏāĻžāĻĒā§‹āĻ°ā§āĻŸā§‡āĻĄ, āϝāĻž āχāĻ¨ā§āϟāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧ⧇āϟ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ āĻ›āĻžā§œāĻžāχ āĻĄāĻŋāĻĒ āĻŽā§āϝāĻžāϚāĻŋāĻ‚ (deep matching) āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "đŸŽ¯" + title: āϏāϰāĻžāϏāϰāĻŋ āĻāĻ•ā§āϏāĻŸā§āϰāĻžāĻ•āĻļāύ (Direct Extraction) + desc: āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏāϰ (accessors) āĻ•āϞ āύāĻž āĻ•āϰ⧇āχ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āĻŽā§āĻĒā§‹āύ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰ⧁āύāĨ¤ +- icon: "đŸĒ†" + title: āύ⧇āĻ¸ā§āĻŸā§‡āĻŦāϞ (Nestable) + desc: āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϗ⧁āϞ⧋ āύ⧇āĻ¸ā§āϟ āĻ•āϰāĻž āϝāĻžā§Ÿ – āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ⧇ āχāύāĻžāϰ āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞ⧋ āĻŽā§āϝāĻžāϚ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "📏" + title: āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āϕ⧋āĻĄ + desc: āĻĒāĻžāρāϚ āϞāĻžāχāύ⧇āϰ āϕ⧋āĻĄ āĻĻ⧁āχ āϞāĻžāχāύ⧇ āĻĒāϰāĻŋāĻŖāϤ āĻšā§Ÿ – āĻ•āĻŽ āφāύ⧁āĻˇā§āĻ āĻžāύāĻŋāĻ•āϤāĻž, āĻāĻ•āχ āĻ¸ā§āĻŦāĻšā§āĻ›āϤāĻžāĨ¤ +support: + description: JDK 21 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2023) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/records-for-data-classes.yaml b/translations/content/bn/language/records-for-data-classes.yaml new file mode 100644 index 0000000..1f6ce09 --- /dev/null +++ b/translations/content/bn/language/records-for-data-classes.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĄā§‡āϟāĻž āĻ•ā§āϞāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝ āϰ⧇āĻ•āĻ°ā§āĻĄ (Records for data classes) +oldApproach: āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ POJO +modernApproach: āϰ⧇āĻ•āĻ°ā§āĻĄ +summary: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āϞāĻžāχāύ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻĄā§‡āϟāĻž āĻ•ā§āϝāĻžāϰāĻŋāϝāĻŧāĻžāϰ⧇āϰ (immutable data carriers) āϜāĻ¨ā§āϝ 30+ āϞāĻžāχāύ⧇āϰ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟāϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +explanation: āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞ⧋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ, āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏāϰ (x(), y()), equals(), hashCode(), āĻāĻŦāĻ‚ toString() āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰ⧇āĨ¤ āĻāϗ⧁āϞ⧋ āĻĄāĻŋāϜāĻžāχāύāĻ—āϤāĻ­āĻžāĻŦ⧇ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ āĻāĻŦāĻ‚ DTOs, āĻ­ā§āϝāĻžāϞ⧁ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ (value objects) āĻāĻŦāĻ‚ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āφāĻĻāĻ°ā§āĻļāĨ¤ +whyModernWins: +- icon: "⚡" + title: āĻāĻ•-āϞāĻžāχāύ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύ (One-line Definition) + desc: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āϞāĻžāχāύ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ, āϗ⧇āϟāĻžāĻ°ā§āϏ (getters), equals, hashCode, toString -āϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +- icon: "🔒" + title: āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (Immutable by default) + desc: āϏāĻŦ āĻĢāĻŋāĻ˛ā§āĻĄ āĻĢāĻžāχāύāĻžāϞ (final) – āϕ⧋āύ⧋ āϏ⧇āϟāĻžāϰ āĻĢ⧁āϟāĻ—āĻžāύ (setter footguns) āύ⧇āχāĨ¤ +- icon: "🧩" + title: āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ-āĻĢā§āϰ⧇āĻ¨ā§āĻĄāϞāĻŋ (Pattern-friendly) + desc: āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞ⧋ āϏ⧁āχāϚ (switch) āĻāĻŦāĻ‚ instanceof-āĻ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰāĻŋāĻ‚ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϗ⧁āϞ⧋āϰ (destructuring patterns) āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 16 (āĻŽāĻžāĻ°ā§āϚ 2021) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/sealed-classes.yaml b/translations/content/bn/language/sealed-classes.yaml new file mode 100644 index 0000000..1d9508b --- /dev/null +++ b/translations/content/bn/language/sealed-classes.yaml @@ -0,0 +1,18 @@ +--- +title: āϟāĻžāχāĻĒ āĻšāĻžā§ŸāĻžāϰāĻžāĻ°ā§āĻ•āĻŋāϰ (Type Hierarchies) āϜāĻ¨ā§āϝ āϏāĻŋāϞāĻĄ āĻ•ā§āϞāĻžāϏ (Sealed Classes) +oldApproach: āĻ“āĻĒ⧇āύ āĻšāĻžā§ŸāĻžāϰāĻžāĻ°ā§āĻ•āĻŋ (Open Hierarchy) +modernApproach: sealed permits +summary: āϕ⧋āύ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋ āĻāĻ•āϟāĻŋ āϟāĻžāχāĻĒāϕ⧇ āĻāĻ•ā§āϏāĻŸā§‡āĻ¨ā§āĻĄ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇ āϤāĻž āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧ āĻ•āϰ⧁āύ – āϝāĻž āĻāĻ•ā§āϏāĻšāĻ¸ā§āϟāĻŋāĻ­ āϏ⧁āχāϚāϕ⧇ (exhaustive switches) āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤ +explanation: āϏāĻŋāϞāĻĄ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋ āϏāĻžāĻŦāϟāĻžāχāĻĒāϗ⧁āϞ⧋āϰ (subtypes) āĻāĻ•āϟāĻŋ āĻ•ā§āϞ⧋āϜāĻĄ āϏ⧇āϟ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰ⧇āĨ¤ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āϏāĻŽāĻ¸ā§āϤ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āϕ⧇āχāϏāϗ⧁āϞ⧋ āϜāĻžāύ⧇, āϝāĻž āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻŦā§āϰāĻžāĻžā§āϚ āĻ›āĻžā§œāĻžāχ āĻāĻ•ā§āϏāĻšāĻ¸ā§āϟāĻŋāĻ­ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚āϕ⧇ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤ āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞāĻŋāϤ āĻšā§Ÿā§‡, āĻāϗ⧁āϞ⧋ āĻ…ā§āϝāĻžāϞāĻœā§‡āĻŦā§āϰāĻžāχāĻ• āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ (algebraic data types) āĻŽāĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "🔐" + title: āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŋāϤ āĻšāĻžā§ŸāĻžāϰāĻžāĻ°ā§āĻ•āĻŋ (Controlled Hierarchy) + desc: āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒāĻžāϰāĻŽāĻŋāĻŸā§‡āĻĄ (permitted) āϏāĻžāĻŦāϟāĻžāχāĻĒāϗ⧁āϞ⧋ āĻāĻ•ā§āϏāĻŸā§‡āĻ¨ā§āĻĄ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ – āϕ⧋āύ⧋ āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āϏāĻžāĻŦāĻ•ā§āϞāĻžāϏ (surprise subclasses) āύ⧇āχāĨ¤ +- icon: "✅" + title: āĻāĻ•ā§āϏāĻšāĻ¸ā§āϟāĻŋāĻ­ āĻŽā§āϝāĻžāϚāĻŋāĻ‚ (Exhaustive Matching) + desc: āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āϏ⧁āχāϚ āĻ•āĻ­āĻžāϰ⧇āϰ āϏāĻŽāĻ¸ā§āϤ āϕ⧇āχāϏ āĻ­ā§āϝāĻžāϰāĻŋāĻĢāĻžāχ (verify) āĻ•āϰ⧇, āĻĄāĻŋāĻĢāĻ˛ā§āĻŸā§‡āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "📐" + title: āĻ…ā§āϝāĻžāϞāĻœā§‡āĻŦā§āϰāĻžāχāĻ• āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒāϏ (Algebraic Data Types) + desc: āϏāĻžāĻŽ āϟāĻžāχāĻĒāϏāϕ⧇ (sum types) āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻŽāĻĄā§‡āϞ āĻ•āϰ⧁āύ – sealed + records = āϜāĻžāĻ­āĻžāϤ⧇ ADTsāĨ¤ +support: + description: JDK 17 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2021) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/static-members-in-inner-classes.yaml b/translations/content/bn/language/static-members-in-inner-classes.yaml new file mode 100644 index 0000000..1d54546 --- /dev/null +++ b/translations/content/bn/language/static-members-in-inner-classes.yaml @@ -0,0 +1,18 @@ +--- +title: āχāύāĻžāϰ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϤ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻŽā§āĻŦāĻžāϰ (Static members in inner classes) +oldApproach: āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻ•ā§āϞāĻžāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ +modernApproach: āχāύāĻžāϰ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϤ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻŽā§āĻŦāĻžāϰ +summary: āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻ•ā§āϞāĻžāϏ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻ›āĻžā§œāĻžāχ āχāύāĻžāϰ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϤ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻŽā§āĻŦāĻžāϰ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰ⧁āύāĨ¤ +explanation: Java 16 āĻāϰ āφāϗ⧇, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āχ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻŽā§āĻŦāĻžāϰ āϧāĻžāϰāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāϤāĨ¤ āχāύāĻžāϰ (āύāύ-āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ•) āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϤ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻŽā§āĻŦāĻžāϰ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰāϤ āύāĻž āĻ•āĻžāϰāĻŖ āϏ⧇āϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻāύāĻ•ā§āϞ⧋āϜāĻŋāĻ‚ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϤ⧋āĨ¤ Java 16 āĻāχ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āĻļāĻŋāĻĨāĻŋāϞ āĻ•āϰ⧇āϛ⧇, āϝāĻž āχāύāĻžāϰ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϤ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĢāĻŋāĻ˛ā§āĻĄ, āĻŽā§‡āĻĨāĻĄ āĻāĻŦāĻ‚ āĻāĻŽāύāĻ•āĻŋ āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āϟāĻžāχāĻĒāϗ⧁āϞ⧋āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻā§‡ā§ŸāĨ¤ +whyModernWins: +- icon: "🔓" + title: āφāϰāĻ“ āĻĢā§āϞ⧇āĻ•ā§āϏāĻŋāĻŦāĻŋāϞāĻŋāϟāĻŋ + desc: āχāύāĻžāϰ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϤ⧇ āĻāĻ–āύ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻŽā§āĻŦāĻžāϰ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +- icon: "🧩" + title: āĻļā§‡ā§ŸāĻžāϰāĻĄ āĻ¸ā§āĻŸā§‡āϟ (Shared State) + desc: āĻāĻ•āϟāĻŋ āχāύāĻžāϰ āĻ•ā§āϞāĻžāϏ⧇āϰ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āϜ⧁āĻĄāĻŧ⧇ āĻļā§‡ā§ŸāĻžāϰāĻĄ āĻ¸ā§āĻŸā§‡āϟ āĻŸā§āĻ°ā§āϝāĻžāĻ• āĻ•āϰ⧁āύāĨ¤ +- icon: "📐" + title: āĻĄāĻŋāϜāĻžāχāύ āĻĢā§āϰāĻŋāĻĄāĻŽ (Design Freedom) + desc: āĻļ⧁āϧ⧁ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĢāĻŋāĻ˛ā§āĻĄā§‡āϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻ•ā§āϞāĻžāϏ⧇ āĻĒā§āϰāĻŽā§‹āϟ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +support: + description: JDK 16 (āĻŽāĻžāĻ°ā§āϚ 2021) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/static-methods-in-interfaces.yaml b/translations/content/bn/language/static-methods-in-interfaces.yaml new file mode 100644 index 0000000..204453f --- /dev/null +++ b/translations/content/bn/language/static-methods-in-interfaces.yaml @@ -0,0 +1,18 @@ +--- +title: āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻĨāĻĄ (Static methods in interfaces) +oldApproach: āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻ•ā§āϞāĻžāϏ +modernApproach: āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻĨāĻĄāϏ (Interface static methods) +summary: āĻĒ⧃āĻĨāĻ• āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻ•ā§āϞāĻžāϏ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āϏāϰāĻžāϏāϰāĻŋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻŽā§‡āĻĨāĻĄ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ +explanation: Java 8 āĻāϰ āφāϗ⧇, āĻāĻ•āϟāĻŋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋āϕ⧇ āĻāĻ•āϟāĻŋ āφāϞāĻžāĻĻāĻž āĻ•ā§āϞāĻžāϏ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāϤ⧋ (āϝ⧇āĻŽāύ Collections for Collection)āĨ¤ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϗ⧁āϞ⧋āϤ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻĨāĻĄ āφāĻĒāύāĻžāϕ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āχāωāϟāĻŋāϞāĻŋāϟāĻŋāϗ⧁āϞ⧋ āĻāĻ•āϏāĻžāĻĨ⧇ āϰāĻžāĻ–āϤ⧇ āĻĻā§‡ā§ŸāĨ¤ āĻāϟāĻŋ Comparator.comparing(), Stream.of(), āĻāĻŦāĻ‚ List.of()-āĻāϰ āĻŽāϤ⧋ āφāϧ⧁āύāĻŋāĻ• API-āϗ⧁āϞ⧋āϤ⧇ āϖ⧁āĻŦāχ āĻ•āĻŽāύāĨ¤ +whyModernWins: +- icon: "đŸ“Ļ" + title: āωāĻ¨ā§āύāϤ āĻ…āĻ°ā§āĻ—āĻžāύāĻžāχāĻœā§‡āĻļāύ + desc: āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āχāωāϟāĻŋāϞāĻŋāϟāĻŋāϗ⧁āϞ⧋āϕ⧇ āĻāĻ•āϟāĻŋ āφāϞāĻžāĻĻāĻž āĻ•ā§āϞāĻžāϏ⧇ āύāĻž āϰ⧇āϖ⧇ āĻāĻ•āϏāĻžāĻĨ⧇āχ āϰāĻžāϖ⧁āύāĨ¤ +- icon: "🔍" + title: āĻĄāĻŋāϏāĻ•āĻ­āĻžāϰ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ (Discoverability) + desc: āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻāĻŦāĻ‚ āĻšā§‡āĻ˛ā§āĻĒāĻžāϰ āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋āϕ⧇ āϝ⧇āĻ–āĻžāύ⧇ āφāĻļāĻž āĻ•āϰāĻž āĻšāϝāĻŧ, āϏ⧇āĻ–āĻžāύ⧇āχ āϖ⧁āρāĻœā§‡ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤ +- icon: "🧩" + title: API āϕ⧋āĻšā§‡āĻļāύ (API Cohesion) + desc: āφāϞāĻžāĻĻāĻž *Utils āĻŦāĻž *Helper āĻ•ā§āϞāĻžāϏ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +support: + description: JDK 8 (āĻŽāĻžāĻ°ā§āϚ 2014) āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/switch-expressions.yaml b/translations/content/bn/language/switch-expressions.yaml new file mode 100644 index 0000000..4f780af --- /dev/null +++ b/translations/content/bn/language/switch-expressions.yaml @@ -0,0 +1,18 @@ +--- +title: āϏ⧁āχāϚ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ (Switch Expressions) +oldApproach: āϏ⧁āχāϚ āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ (Switch Statement) +modernApproach: āϏ⧁āχāϚ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ +summary: āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻšāĻŋāϏ⧇āĻŦ⧇ āϏ⧁āχāϚ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ āϝāĻž āĻāĻ•āϟāĻŋ āĻ­ā§āϝāĻžāϞ⧁ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇ – āϕ⧋āύ⧋ break āĻŦāĻž fall-through āĻ›āĻžā§œāĻžāχāĨ¤ +explanation: āϏ⧁āχāϚ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āϏāϰāĻžāϏāϰāĻŋ āĻāĻ•āϟāĻŋ āĻ­ā§āϝāĻžāϞ⧁ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, fall-through āĻŦāĻžāĻ— āĻĒā§āϰāϤāĻŋāϰ⧋āϧ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāϰ⧋ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ (arrow syntax) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āĻāĻŦāĻ‚ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āĻāĻ•ā§āϏāĻšāĻ¸ā§āϟāĻŋāĻ­āύ⧇āϏ (exhaustiveness) āϭ⧇āϰāĻŋāĻĢāĻžāχ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻāϰāϰ-āĻĒā§āϰ⧋āύ (error-prone) āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ āĻĢāĻ°ā§āĻŽāϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "đŸŽ¯" + title: āĻāĻ•āϟāĻŋ āĻ­ā§āϝāĻžāϞ⧁ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇ + desc: āϏ⧁āχāĻšā§‡āϰ āĻĢāϞāĻžāĻĢāϞ āϏāϰāĻžāϏāϰāĻŋ āĻ…ā§āϝāĻžāϏāĻžāχāύ āĻ•āϰ⧁āύ – āϕ⧋āύ⧋ āĻŸā§‡āĻŽā§āĻĒā§‹āϰāĻžāϰāĻŋ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "đŸ›Ąī¸" + title: āϕ⧋āύ⧋ āĻĢāϞ-āĻĨā§āϰ⧁ (fall-through) āύ⧇āχ + desc: āĻ…ā§āϝāĻžāϰ⧋ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ āĻŦā§āϰ⧇āĻ• (break) āύāĻž āĻĨāĻžāĻ•āĻžāϰ āĻ•āĻžāϰāϪ⧇ āϏ⧃āĻˇā§āϟ āĻ…ā§āϝāĻžāĻ•ā§āϏāĻŋāĻĄā§‡āĻ¨ā§āϟāĻžāϞ āĻĢāϞ-āĻĨā§āϰ⧁ āĻŦāĻžāĻ—āϗ⧁āϞ⧋āϕ⧇ āĻĻā§‚āϰ āĻ•āϰ⧇āĨ¤ +- icon: "✅" + title: āĻāĻ•ā§āϏāĻšāĻ¸ā§āϟāĻŋāĻ­āύ⧇āϏ āĻšā§‡āĻ• (Exhaustiveness Check) + desc: āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇ āϝ⧇ āϏāĻŦ āϕ⧇āχāϏ āĻ•āĻ­āĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ +support: + description: JDK 14 (āĻŽāĻžāĻ°ā§āϚ 2020) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/text-blocks-for-multiline-strings.yaml b/translations/content/bn/language/text-blocks-for-multiline-strings.yaml new file mode 100644 index 0000000..d78952f --- /dev/null +++ b/translations/content/bn/language/text-blocks-for-multiline-strings.yaml @@ -0,0 +1,18 @@ +--- +title: āĻŽāĻžāĻ˛ā§āϟāĻŋāϞāĻžāχāύ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āĻŸā§‡āĻ•ā§āϏāϟ āĻŦā§āϞāĻ• (Text blocks for multiline strings) +oldApproach: āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻ•āύāĻ•ā§āϝāĻžāĻŸā§‡āύ⧇āĻļāύ (String Concatenation) +modernApproach: āĻŸā§‡āĻ•ā§āϏāϟ āĻŦā§āϞāĻ•āϏ (Text Blocks) +summary: āĻŸā§āϰāĻŋāĻĒāϞ-āϕ⧋āϟ āĻŸā§‡āĻ•ā§āϏāϟ āĻŦā§āϞāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŽāĻžāĻ˛ā§āϟāĻŋāϞāĻžāχāύ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āϗ⧁āϞ⧋ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϞāĻŋāϖ⧁āύāĨ¤ +explanation: āĻŸā§‡āĻ•ā§āϏāϟ āĻŦā§āϞāĻ•āϗ⧁āϞ⧋ āφāĻĒāύāĻžāϕ⧇ āĻŽāĻžāĻ˛ā§āϟāĻŋāϞāĻžāχāύ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āϗ⧁āϞ⧋ āĻ āĻŋāĻ• āϝ⧇āĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻžāϝāĻŧ āϏ⧇āĻ­āĻžāĻŦ⧇āχ āϞāĻŋāĻ–āϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āϕ⧋āϟ āĻāĻ¸ā§āϕ⧇āĻĒāĻŋāĻ‚ (escaping quotes) āĻŦāĻž \n āϝ⧋āĻ— āĻ•āϰāĻžāϰ āφāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āχāύāϏāĻŋāĻĄā§‡āĻ¨ā§āϟāĻžāϞ āχāĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸā§‡āĻļāύ (incidental indentation) āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧāĨ¤ +whyModernWins: +- icon: "📖" + title: āϝ⧇āĻŽāύ āφāϛ⧇ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ (Readable as-is) + desc: JSON, SQL, āĻāĻŦāĻ‚ HTML āφāĻĒāύāĻžāϰ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄā§‡ āĻŦāĻžāĻ¸ā§āϤāĻŦ JSON, SQL, āĻāĻŦāĻ‚ HTML-āĻāϰ āĻŽāϤ⧋āχ āĻĻ⧇āĻ–āĻžā§ŸāĨ¤ +- icon: "đŸšĢ" + title: āϕ⧋āύ⧋ āĻāĻ¸ā§āϕ⧇āĻĒ āĻšā§‡āϞ (No Escape Hell) āύ⧇āχ + desc: āĻāĻŽāĻŦ⧇āĻĄā§‡āĻĄ āϕ⧋āϟāϗ⧁āϞ⧋āϤ⧇ āĻŦā§āϝāĻžāĻ•āĻ¸ā§āĻ˛ā§āϝāĻžāĻļ āĻāĻ¸ā§āϕ⧇āĻĒāĻŋāĻ‚ā§Ÿā§‡āϰ (backslash escaping) āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ +- icon: " 📐" + title: āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ āχāĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸā§‡āĻļāύ (Smart Indentation) + desc: āĻ•ā§āϞ⧋āϜāĻŋāĻ‚ āĻĄāĻŋāϞāĻŋāĻŽāĻŋāϟāĻžāϰ āĻĒāϜāĻŋāĻļāύ⧇āϰ (closing delimiter position) āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϞāĻŋāĻĄāĻŋāĻ‚ āĻšā§‹āϝāĻŧāĻžāχāϟāĻ¸ā§āĻĒ⧇āϏ (leading whitespace) āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ›āĻžāρāϟāĻž āĻšāϝāĻŧāĨ¤ +support: + description: JDK 15 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2020) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/type-inference-with-var.yaml b/translations/content/bn/language/type-inference-with-var.yaml new file mode 100644 index 0000000..3a369f7 --- /dev/null +++ b/translations/content/bn/language/type-inference-with-var.yaml @@ -0,0 +1,18 @@ +--- +title: var āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϟāĻžāχāĻĒ āχāύāĻĢāĻžāϰ⧇āĻ¨ā§āϏ (Type inference with var) +oldApproach: āĻāĻ•ā§āϏāĻĒā§āϞāĻŋāϏāĻŋāϟ āϟāĻžāχāĻĒāϏ (Explicit Types) +modernApproach: var āϕ⧀āĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ +summary: āϞ⧋āĻ•āĻžāϞ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ⧇āϰ āϟāĻžāχāĻĒ āχāύāĻĢāĻžāϰ⧇āĻ¨ā§āϏ⧇āϰ (type inference) āϜāĻ¨ā§āϝ var āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ – āĻ•āĻŽ āϜāϟāĻŋāϞāϤāĻž, āĻāĻ•āχ āϏ⧇āĻĢāϟāĻŋāĨ¤ +explanation: Java 10 āĻĨ⧇āϕ⧇ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āϰāĻžāχāϟ-āĻšā§āϝāĻžāĻ¨ā§āĻĄ āϏāĻžāχāĻĄ āĻĨ⧇āϕ⧇ āϞ⧋āĻ•āĻžāϞ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞāϗ⧁āϞ⧋āϰ āϟāĻžāχāĻĒ āχāύāĻĢāĻžāϰ (infer) āĻ•āϰ⧇āĨ¤ āĻāϰ āĻĢāϞ⧇ āϟāĻžāχāĻĒ āϏ⧇āĻĢāϟāĻŋ āύāĻž āĻ•āĻŽāĻŋā§Ÿā§‡ āĻ­āĻŋāĻœā§āϝ⧁⧟āĻžāϞ āύāϝāĻŧ⧇āϜ (visual noise) āĻ•āĻŽā§‡āĨ¤ āϝāĻ–āύ āϟāĻžāχāĻĒ āĻĒā§āϰāϏāĻ™ā§āĻ— āĻĨ⧇āϕ⧇ āĻ¸ā§āĻĒāĻˇā§āϟ āĻšā§Ÿ, āϤāĻ–āύ var āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +whyModernWins: +- icon: "⚡" + title: āĻ•āĻŽ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ + desc: āĻ…ā§āϝāĻžāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āωāĻ­āϝāĻŧ āĻĻāĻŋāϕ⧇ āϜāϟāĻŋāϞ āĻœā§‡āύ⧇āϰāĻŋāĻ• āϟāĻžāχāĻĒ āϰāĻŋāĻĒāĻŋāϟ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "👁" + title: āωāĻ¨ā§āύāϤ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝāϤāĻž + desc: āϟāĻžāχāĻĒ āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āĻļāύ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ āύāĻžāĻŽ āĻāĻŦāĻ‚ āĻ­ā§āϝāĻžāϞ⧁āϗ⧁āϞ⧋āϰ āωāĻĒāϰ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰ⧁āύāĨ¤ +- icon: "🔒" + title: āϟāĻžāχāĻĒ-āϏ⧇āĻĢ (Type-safe) + desc: āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āĻ•āĻŽā§āĻĒāĻžāχāϞ āϟāĻžāχāĻŽā§‡ āϏāĻ āĻŋāĻ• āϟāĻžāχāĻĒ āχāύāĻĢāĻžāϰ (infer) āĻāĻŦāĻ‚ āĻāύāĻĢā§‹āĻ°ā§āϏ (enforce) āĻ•āϰ⧇āĨ¤ +support: + description: JDK 10 (āĻŽāĻžāĻ°ā§āϚ 2018) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/language/unnamed-variables.yaml b/translations/content/bn/language/unnamed-variables.yaml new file mode 100644 index 0000000..8e6bbbd --- /dev/null +++ b/translations/content/bn/language/unnamed-variables.yaml @@ -0,0 +1,18 @@ +--- +title: _ (āφāĻ¨ā§āĻĄāĻžāϰāĻ¸ā§āϕ⧋āϰ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāύāύ⧇āĻŽāĻĄ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ (Unnamed variables with _) +oldApproach: āĻ…āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ (Unused Variable) +modernApproach: _ āĻĒā§āϞ⧇āϏāĻšā§‹āĻ˛ā§āĻĄāĻžāϰ (Placeholder) +summary: āϝāĻ–āύ āĻāĻ•āϟāĻŋ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ āχāĻšā§āĻ›āĻžāĻ•ā§ƒāϤāĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž, āϤāĻ–āύ āωāĻĻā§āĻĻ⧇āĻļā§āϝ āĻŦā§‹āĻāĻžāϤ⧇ _ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: āφāύāύ⧇āĻŽāĻĄ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ (Unnamed variables) āĻĒāĻžāĻ āĻ• āĻāĻŦāĻ‚ āϟ⧁āϞāϗ⧁āϞ⧋āϕ⧇ āĻŦā§‹āĻāĻžāϝāĻŧ āϝ⧇, āĻāĻ•āϟāĻŋ āĻ­ā§āϝāĻžāϞ⧁āϕ⧇ āχāĻšā§āĻ›āĻžāĻ•ā§ƒāϤāĻ­āĻžāĻŦ⧇ āχāĻ—āύ⧋āϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāϰ āĻĢāϞ⧇ āφāϰ 'ignored' āĻŦāĻž 'unused' āύāĻžāĻŽāĻ•āϰāϪ⧇āϰ āĻ•āύāϭ⧇āύāĻļāύ (conventions) āĻŦāĻž IDE āĻ“āϝāĻŧāĻžāĻ°ā§āύāĻŋāĻ‚ā§Ÿā§‡āϰ (warnings) āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ +whyModernWins: +- icon: "đŸ“ĸ" + title: āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āωāĻĻā§āĻĻ⧇āĻļā§āϝ + desc: _ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ 'āĻāχ āĻ­ā§āϝāĻžāϞ⧁āϟāĻŋ āĻāĻ–āĻžāύ⧇ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ'āĨ¤ +- icon: "🔇" + title: āϕ⧋āύ⧋ āĻ“āϝāĻŧāĻžāĻ°ā§āύāĻŋāĻ‚ āύ⧇āχ + desc: IDEs āĻāĻŦāĻ‚ āϞāĻŋāĻ¨ā§āϟāĻžāϰāϰāĻž (linters) āχāĻšā§āĻ›āĻžāĻ•ā§ƒāϤāĻ­āĻžāĻŦ⧇ āĻ…āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞāϗ⧁āϞ⧋āϕ⧇ āĻĢā§āĻ˛ā§āϝāĻžāĻ— āĻ•āϰāĻŦ⧇ āύāĻžāĨ¤ +- icon: "🧹" + title: āĻ•ā§āϞāĻŋāύāĻžāϰ āĻ˛ā§āϝāĻžāĻŽā§āĻŦāĻĄāĻžāϏ (Cleaner Lambdas) + desc: āϝāĻ–āύ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ•āĻŋāϛ⧁ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ, āϤāĻ–āύ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻĒā§āϝāĻžāϰāĻžāĻŽ āĻ˛ā§āϝāĻžāĻŽā§āĻŦāĻĄāĻžāϗ⧁āϞ⧋ (multi-param lambdas) āφāϰāĻ“ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻšā§ŸāĨ¤ +support: + description: JDK 22 (JEP 456, āĻŽāĻžāĻ°ā§āϚ 2024) āĻ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ \ No newline at end of file diff --git a/translations/content/bn/security/key-derivation-functions.yaml b/translations/content/bn/security/key-derivation-functions.yaml new file mode 100644 index 0000000..d23493e --- /dev/null +++ b/translations/content/bn/security/key-derivation-functions.yaml @@ -0,0 +1,18 @@ +--- +title: āϕ⧀ āĻĄā§‡āϰāĻŋāϭ⧇āĻļāύ āĻĢāĻžāĻ‚āĻļāύ (Key Derivation Functions) +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ PBKDF2 +modernApproach: KDF API +summary: āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ KDF API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻŋāĻ• āϕ⧀ (cryptographic keys) āĻĄāĻŋāϰāĻžāχāĻ­ āĻ•āϰ⧁āύāĨ¤ +explanation: KDF API, HKDF āϏāĻš āϕ⧀ āĻĄā§‡āϰāĻŋāϭ⧇āĻļāύ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āϜāϟāĻŋāϞ SecretKeyFactory + PBEKeySpec āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϕ⧇ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāϰ API (builder API) āĻĻāĻŋā§Ÿā§‡ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "📐" + title: āĻ•ā§āϞāĻŋāύ API + desc: āϜāϟāĻŋāϞ KeySpec āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•āϟāϰ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāϰ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "🔧" + title: HKDF āϏāĻžāĻĒā§‹āĻ°ā§āϟ + desc: PBKDF2 āĻāϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āφāϧ⧁āύāĻŋāĻ• HKDF āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽāĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ + desc: āϏāĻŽāĻ¸ā§āϤ āϕ⧀ āĻĄā§‡āϰāĻŋāϭ⧇āĻļāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āϜāĻ¨ā§āϝ āχāωāύāĻŋāĻĢāĻžāχāĻĄ APIāĨ¤ +support: + description: JDK 25 LTS (JEP 510, āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2025) āĻ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ \ No newline at end of file diff --git a/translations/content/bn/security/pem-encoding.yaml b/translations/content/bn/security/pem-encoding.yaml new file mode 100644 index 0000000..263d8b2 --- /dev/null +++ b/translations/content/bn/security/pem-encoding.yaml @@ -0,0 +1,18 @@ +--- +title: PEM āĻāύāϕ⧋āĻĄāĻŋāĻ‚/āĻĄāĻŋāϕ⧋āĻĄāĻŋāĻ‚ (PEM encoding/decoding) +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ Base64 + āĻšā§‡āĻĄāĻžāϰāϏ +modernApproach: PEM API +summary: PEM-āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻŋāĻ• āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϗ⧁āϞ⧋āϕ⧇ āύ⧇āϟāĻŋāĻ­āϞāĻŋ āĻāύāϕ⧋āĻĄ (encode) āĻāĻŦāĻ‚ āĻĄāĻŋāϕ⧋āĻĄ (decode) āĻ•āϰ⧁āύāĨ¤ +explanation: PEM API, PEM āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ, āϕ⧀ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻŋāĻ• āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāύāϕ⧋āĻĄāĻŋāĻ‚/āĻĄāĻŋāϕ⧋āĻĄāĻŋāĻ‚ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋāϤ⧇ BEGIN/END āĻšā§‡āĻĄāĻžāϰāϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ Base64 āĻ°â€ā§āϝāĻžāĻĒāĻŋāĻ‚ā§Ÿā§‡āϰ āφāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +whyModernWins: +- icon: "🧹" + title: āϕ⧋āύ⧋ āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ Base64 āύ⧇āχ + desc: PEM āĻšā§‡āĻĄāĻžāϰ, āϞāĻžāχāύ āĻ°â€ā§āϝāĻžāĻĒāĻŋāĻ‚ āĻāĻŦāĻ‚ Base64 āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻž āĻšā§ŸāĨ¤ +- icon: "🔄" + title: āĻĻā§āĻŦāĻŋ-āĻŽā§āĻ–ā§€ (Bidirectional) + desc: āĻāĻ•āϟāĻŋ API āĻĻāĻŋā§Ÿā§‡ PEM-āĻ āĻāύāϕ⧋āĻĄ āĻāĻŦāĻ‚ PEM āĻĨ⧇āϕ⧇ āĻĄāĻŋāϕ⧋āĻĄ āĻ•āϰ⧁āύāĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĢāϰāĻŽā§āϝāĻžāϟ (Standard Format) + desc: RFC 7468-āĻ•āĻŽāĻĒā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ PEM āφāωāϟāĻĒ⧁āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 25 (JEP 470) āĻ āĻĒā§āϰāĻŋāĻ­āĻŋāωāĨ¤ --enable-preview āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ \ No newline at end of file diff --git a/translations/content/bn/security/random-generator.yaml b/translations/content/bn/security/random-generator.yaml new file mode 100644 index 0000000..346e3c6 --- /dev/null +++ b/translations/content/bn/security/random-generator.yaml @@ -0,0 +1,18 @@ +--- +title: RandomGenerator āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ +oldApproach: new Random() / ThreadLocalRandom +modernApproach: RandomGenerator āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ +summary: āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•ā§āϞāĻžāϏ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāĻĒāϞāĻŋāĻ‚ (coupling) āύāĻž āĻ•āϰ⧇, āύāĻžāĻŽ āĻ…āύ⧁āϏāĻžāϰ⧇ āĻ°â€ā§āϝāĻžāĻ¨ā§āĻĄāĻŽ āύāĻžāĻŽā§āĻŦāĻžāϰ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ (random number algorithms) āĻŦ⧇āϛ⧇ āύāĻŋāϤ⧇ RandomGenerator āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: JDK 17 āϏāĻŽāĻ¸ā§āϤ RNG āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ⧇āϰ (implementations) āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ•āĻŽāύ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻšāĻŋāϏāĻžāĻŦ⧇ RandomGenerator āϚāĻžāϞ⧁ āĻ•āϰ⧇āϛ⧇āĨ¤ new Random() āĻŦāĻž ThreadLocalRandom āϕ⧇ āĻšāĻžāĻ°ā§āĻĄ-āϕ⧋āĻĄāĻŋāĻ‚ āύāĻž āĻ•āϰ⧇, āφāĻĒāύāĻŋ āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āύāĻžāĻŽ āĻ…āύ⧁āϏāĻžāϰ⧇ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ, āϝāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āχāωāϜ āϕ⧇āχāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜāĻĄ (āĻ¸ā§āĻĒāĻŋāĻĄ, āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ¸ā§āϟāĻŋāĻ•āĻžāϞ āϕ⧋āϝāĻŧāĻžāϞāĻŋāϟāĻŋ, āĻ¸ā§āĻĒā§āϞāĻŋāϟāĻāĻŦāĻŋāϞāĻŋāϟāĻŋ) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āĻ…āĻĻāϞāĻŦāĻĻāϞ āĻ•āϰāĻž āϏāĻšāϜ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ +whyModernWins: +- icon: "🔧" + title: āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ-āĻ…ā§āϝāĻžāĻ—āύāĻ¸ā§āϟāĻŋāĻ• (Algorithm-agnostic) + desc: āϕ⧋āĻĄ āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āύāĻž āĻ•āϰ⧇āχ āύāĻžāĻŽ āĻ…āύ⧁āϏāĻžāϰ⧇ āϏ⧇āϰāĻž RNG āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻŦ⧇āϛ⧇ āύāĻŋāύāĨ¤ +- icon: "⚡" + title: āωāĻ¨ā§āύāϤ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ + desc: āωāĻšā§āϚāϤāϰ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ¸ā§āϟāĻŋāĻ•āĻžāϞ āĻĒā§āϰ⧋āĻĒāĻžāĻ°ā§āϟāĻŋ (statistical properties) āϏāĻš āφāϧ⧁āύāĻŋāĻ• LXM āĻœā§‡āύāĻžāϰ⧇āϟāϰāϗ⧁āϞāĻŋāϤ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰ⧁āύāĨ¤ +- icon: "🔗" + title: āχāωāύāĻŋāĻĢāĻžāχāĻĄ API + desc: āĻāĻ•āϟāĻŋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ Random, ThreadLocalRandom, SplittableRandom āĻāĻŦāĻ‚ āφāϰāĻ“ āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁ āĻ•āĻ­āĻžāϰ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 17 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2021, JEP 356) āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧāĨ¤ \ No newline at end of file diff --git a/translations/content/bn/security/strong-random.yaml b/translations/content/bn/security/strong-random.yaml new file mode 100644 index 0000000..d07f719 --- /dev/null +++ b/translations/content/bn/security/strong-random.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ¸ā§āĻŸā§āϰāĻ‚ āĻ°â€ā§āϝāĻžāĻ¨ā§āĻĄāĻŽ āĻœā§‡āύāĻžāϰ⧇āĻļāύ (Strong Random Generation) +oldApproach: new SecureRandom() +modernApproach: getInstanceStrong() +summary: āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡āϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻ¸ā§āĻŸā§āϰāĻ‚ SecureRandom āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύāϟāĻŋ āĻĒāĻžāύāĨ¤ +explanation: getInstanceStrong() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž SecureRandom āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύāϟāĻŋ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ securerandom.strongAlgorithms āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻĒā§āϰ⧋āĻĒāĻžāĻ°ā§āϟāĻŋ (security property) āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŋāϤ āĻšāϝāĻŧāĨ¤ +whyModernWins: +- icon: "đŸ›Ąī¸" + title: āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ āωāĻĒāϞāĻŦā§āϧ + desc: āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϏ⧇āϰāĻž āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇āĨ¤ +- icon: "📖" + title: āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āωāĻĻā§āĻĻ⧇āĻļā§āϝ + desc: āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻ•āĻŽāĻŋāωāύāĻŋāϕ⧇āϟ āĻ•āϰ⧇ āϝ⧇ āĻ¸ā§āĻŸā§āϰāĻ‚ āĻ°â€ā§āϝāĻžāĻ¨ā§āĻĄāĻŽāύ⧇āϏ (randomness) āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ +- icon: "🔧" + title: āĻ•āύāĻĢāĻŋāĻ—āĻžāϰāϝ⧋āĻ—ā§āϝ (Configurable) + desc: āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύāĻŋāĻ¸ā§āĻŸā§āϰ⧇āϟāϰāϰāĻž āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻĒā§āϰ⧋āĻĒāĻžāĻ°ā§āϟāĻŋāϗ⧁āϞ⧋āϰ (security properties) āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ¸ā§āĻŸā§āϰāĻ‚ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/security/tls-default.yaml b/translations/content/bn/security/tls-default.yaml new file mode 100644 index 0000000..7172238 --- /dev/null +++ b/translations/content/bn/security/tls-default.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ TLS 1.3 +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ TLS āĻ•āύāĻĢāĻŋāĻ— (Config) +modernApproach: TLS 1.3 āĻĄāĻŋāĻĢāĻ˛ā§āϟ +summary: TLS 1.3 āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āĻāύāĻžāĻŦāϞ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇ – āϕ⧋āύ⧋ āĻāĻ•ā§āϏāĻĒā§āϞāĻŋāϏāĻŋāϟ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +explanation: Java 11 TLS 1.3 āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϝ⧋āĻ— āĻ•āϰ⧇āϛ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋāϕ⧇ āĻĒāĻ›āĻ¨ā§āĻĻ⧇āϰ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻšāĻŋāϏ⧇āĻŦ⧇ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧇āĨ¤ HttpClient āĻāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āϏāĻŋāĻ•āĻŋāωāϰ āĻ•āĻžāύ⧇āĻ•āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻ­āĻžāĻ°ā§āϏāύ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāĻžāϰ āφāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +whyModernWins: +- icon: "đŸ›Ąī¸" + title: āφāϰāĻ“ āϏāĻŋāĻ•āĻŋāωāϰ + desc: TLS 1.3 āĻ…āĻĒā§āϰāϚāϞāĻŋāϤ āϏāĻžāχāĻĢāĻžāϰ āĻ¸ā§āϝ⧁āϟ (cipher suites) āĻāĻŦāĻ‚ āĻšā§āϝāĻžāĻ¨ā§āĻĄāĻļ⧇āĻ• āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϗ⧁āϞ⧋ (handshake patterns) āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧāĨ¤ +- icon: "⚡" + title: āĻĻā§āϰ⧁āϤ āĻšā§āϝāĻžāĻ¨ā§āĻĄāĻļ⧇āĻ• + desc: TLS 1.3 āĻāĻ• āϰāĻžāωāĻ¨ā§āĻĄ āĻŸā§āϰāĻŋāĻĒ⧇ (one round trip) āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻšāϝāĻŧ, āϝ⧇āĻ–āĻžāύ⧇ āφāϗ⧇ āĻĻ⧁āϟāĻŋ āϞāĻžāĻ—āϤāĨ¤ +- icon: "🆓" + title: āϜāĻŋāϰ⧋ āĻ•āύāĻĢāĻŋāĻ— (Zero Config) + desc: āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āϏāĻŋāĻ•āĻŋāωāϰ – āϕ⧋āύ⧋ āĻāĻ•ā§āϏāĻĒā§āϞāĻŋāϏāĻŋāϟ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āϏāĻŋāϞ⧇āĻ•āĻļāύ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +support: + description: JDK 11 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2018) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/streams/collectors-flatmapping.yaml b/translations/content/bn/streams/collectors-flatmapping.yaml new file mode 100644 index 0000000..14f1450 --- /dev/null +++ b/translations/content/bn/streams/collectors-flatmapping.yaml @@ -0,0 +1,18 @@ +--- +title: Collectors.flatMapping() +oldApproach: āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ flatMap +modernApproach: flatMapping() +summary: āĻāĻ•āϟāĻŋ āĻ—ā§āϰ⧁āĻĒāĻŋāĻ‚ āĻ•āĻžāϞ⧇āĻ•ā§āϟāϰ⧇āϰ (grouping collector) āĻ­āĻŋāϤāϰ⧇ āĻĢā§āĻ˛ā§āϝāĻžāĻŸā§‡āύ (flatten) āĻ•āϰāϤ⧇ flatMapping() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: Collectors.flatMapping() āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧāĻžāύ-āϟ⧁-āĻŽā§‡āύāĻŋ (one-to-many) āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚āϕ⧇ āĻĄāĻžāωāύāĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ•āĻžāϞ⧇āĻ•ā§āϟāϰ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ Stream.flatMap()-āĻāϰ āĻ•āĻžāϞ⧇āĻ•ā§āϟāϰ āχāϕ⧁āχāĻ­ā§āϝāĻžāϞ⧇āĻ¨ā§āϟ (equivalent) — groupingBy āĻŦāĻž partitioningBy-āĻāϰ āĻ­āĻŋāϤāϰ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āωāĻĒāϝ⧋āĻ—ā§€āĨ¤ +whyModernWins: +- icon: "🧩" + title: āĻ•āĻŽā§āĻĒā§‹āĻœā§‡āĻŦāϞ (Composable) + desc: groupingBy āĻāϰ āĻ­āĻŋāϤāϰ⧇ āĻāĻ•āϟāĻŋ āĻĄāĻžāωāύāĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ•āĻžāϞ⧇āĻ•ā§āϟāϰ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +- icon: "📐" + title: āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻĒāĻžāϏ (One Pass) + desc: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻŸā§āĻ°ā§āϝāĻžāĻ­āĻžāĻ°ā§āϏāĻžāϞ⧇ āĻĢā§āĻ˛ā§āϝāĻžāĻŸā§‡āύ āĻāĻŦāĻ‚ āĻ—ā§āϰ⧁āĻĒ āĻ•āϰ⧁āύāĨ¤ +- icon: "🔗" + title: āύ⧇āĻ¸ā§āĻŸā§‡āĻŦāϞ (Nestable) + desc: āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĄāĻžāωāύāĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ•āĻžāϞ⧇āĻ•ā§āϟāϰāϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧁āύāĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/streams/optional-ifpresentorelse.yaml b/translations/content/bn/streams/optional-ifpresentorelse.yaml new file mode 100644 index 0000000..a792976 --- /dev/null +++ b/translations/content/bn/streams/optional-ifpresentorelse.yaml @@ -0,0 +1,18 @@ +--- +title: Optional.ifPresentOrElse() +oldApproach: if/else on Optional +modernApproach: ifPresentOrElse() +summary: Optional-āĻāϰ present āĻāĻŦāĻ‚ empty āωāĻ­āϝāĻŧ āϕ⧇āχāϏāϕ⧇ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻ•āϞ-āĻāχ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧁āύāĨ¤ +explanation: ifPresentOrElse() āĻŽā§‡āĻĨāĻĄāϟāĻŋ present āϕ⧇āχāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ Consumer āĻāĻŦāĻ‚ empty āϕ⧇āχāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ Runnable āĻ¨ā§‡ā§ŸāĨ¤ āĻāϟāĻŋ isPresent()/get() āĻ…ā§āϝāĻžāĻ¨ā§āϟāĻŋ-āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤ +whyModernWins: +- icon: "📏" + title: āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ + desc: āωāĻ­āϝāĻŧ āϕ⧇āχāϏ āĻāĻ•āϟāĻŋ āĻŽā§‡āĻĨāĻĄ āĻ•āϞ-āĻāχ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "đŸšĢ" + title: get() āĻāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ + desc: āĻŦāĻŋāĻĒāĻœā§āϜāύāĻ• isPresent() + get() āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŦāĻžāĻĻ āĻĻā§‡ā§ŸāĨ¤ +- icon: "🔗" + title: āĻĢā§āϞ⧁āϝāĻŧ⧇āĻ¨ā§āϟ + desc: findUser() āĻŦāĻž āϝ⧇āϕ⧋āύ⧋ Optional-āϰāĻŋāϟāĻžāĻ°ā§āύāĻŋāĻ‚ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒāϰ⧇ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻšā§‡āχāύ āĻšāϝāĻŧāĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/streams/optional-or.yaml b/translations/content/bn/streams/optional-or.yaml new file mode 100644 index 0000000..db65446 --- /dev/null +++ b/translations/content/bn/streams/optional-or.yaml @@ -0,0 +1,18 @@ +--- +title: Optional.or() āĻĢāϞāĻŦā§āϝāĻžāĻ• +oldApproach: āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻĢāϞāĻŦā§āϝāĻžāĻ• +modernApproach: .or() āĻšā§‡āχāύ +summary: āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻšā§‡āĻ• āĻ›āĻžāĻĄāĻŧāĻžāχ Optional āĻĢāϞāĻŦā§āϝāĻžāĻ• āĻšā§‡āχāύ āĻ•āϰ⧁āύāĨ¤ +explanation: Optional.or() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϝāĻĻāĻŋ āĻ…āϰāĻŋāϜāĻŋāύāĻžāϞ āĻ…āĻĒāĻļāύāĻžāϞ⧇ āĻ­ā§āϝāĻžāϞ⧁ āĻĨāĻžāϕ⧇ āϤāĻžāĻšāϞ⧇ āϏ⧇āϟāĻŋ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ…āĻĒāĻļāύāĻžāϞ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻžāĻĒā§āϞāĻžāϝāĻŧāĻžāϰāϕ⧇ (supplier) āχāĻ­āĻžāĻ˛ā§ā§Ÿā§‡āϟ (evaluate) āĻ•āϰ⧇āĨ¤ āϏāĻžāĻĒā§āϞāĻžāϝāĻŧāĻžāϰāϗ⧁āϞ⧋ āϞ⧇āϜāĻŋ (lazy) – āĻ…āĻ°ā§āĻĨāĻžā§Ž āϕ⧇āĻŦāϞ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϞ⧇āχ āĻ•āϞ āĻ•āϰāĻž āĻšā§ŸāĨ¤ +whyModernWins: +- icon: "🔗" + title: āĻšā§‡āχāύ⧇āĻŦāϞ (Chainable) + desc: āĻāĻ•āϟāĻŋ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ āĻĒāĻžāχāĻĒāϞāĻžāχāύ⧇ āĻĢāϞāĻŦā§āϝāĻžāĻ•āϗ⧁āϞ⧋ āĻ¸ā§āĻŸā§āϝāĻžāĻ• āĻ•āϰ⧁āύāĨ¤ +- icon: "⚡" + title: āϞ⧇āϜāĻŋ āχāĻ­āĻžāϞ⧁āϝāĻŧ⧇āĻļāύ (Lazy Evaluation) + desc: āĻĢāϞāĻŦā§āϝāĻžāĻ• āϏāĻžāĻĒā§āϞāĻžāϝāĻŧāĻžāϰāϗ⧁āϞ⧋ āϕ⧇āĻŦāϞ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϞ⧇āχ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ (execute) āĻšā§ŸāĨ¤ +- icon: "📖" + title: āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āϟāĻŋāĻ­ (Declarative) + desc: āĻāϟāĻŋ 'āĻĒā§āϰāĻžāχāĻŽāĻžāϰāĻŋ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧁āύ, āĻ…āĻĨāĻŦāĻž āϏ⧇āϕ⧇āĻ¨ā§āĻĄāĻžāϰāĻŋ, āĻ…āĻĨāĻŦāĻž āĻĄāĻŋāĻĢāĻ˛ā§āϟ' āĻāϰ āĻŽāϤ⧋ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝāĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/streams/predicate-not.yaml b/translations/content/bn/streams/predicate-not.yaml new file mode 100644 index 0000000..d77daca --- /dev/null +++ b/translations/content/bn/streams/predicate-not.yaml @@ -0,0 +1,18 @@ +--- +title: āύ⧇āϗ⧇āĻļāύ⧇āϰ (negation) āϜāĻ¨ā§āϝ Predicate.not() +oldApproach: āĻ˛ā§āϝāĻžāĻŽā§āĻŦāĻĄāĻž āύ⧇āϗ⧇āĻļāύ +modernApproach: Predicate.not() +summary: āĻ˛ā§āϝāĻžāĻŽā§āĻŦāĻĄāĻž āĻ°â€ā§āϝāĻžāĻĒāĻžāϰ āύāĻž āϞāĻŋāϖ⧇ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰāĻ­āĻžāĻŦ⧇ āĻŽā§‡āĻĨāĻĄ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ (method references) āύ⧇āϗ⧇āϟ āĻ•āϰāϤ⧇ Predicate.not() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: Java 11 āĻāϰ āφāϗ⧇, āĻāĻ•āϟāĻŋ āĻŽā§‡āĻĨāĻĄ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āύ⧇āϗ⧇āϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āĻ˛ā§āϝāĻžāĻŽā§āĻŦāĻĄāĻžāϰ (lambda) āĻŽāĻ§ā§āϝ⧇ āĻ°â€ā§āϝāĻžāĻĒ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϤ⧋āĨ¤ Predicate.not() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āφāĻĒāύāĻžāϕ⧇ āϏāϰāĻžāϏāϰāĻŋ āϝ⧇āϕ⧋āύ⧋ āĻĒā§āϰ⧇āĻĄāĻŋāϕ⧇āϟ (predicate) āύ⧇āϗ⧇āϟ āĻ•āϰāϤ⧇ āĻĻā§‡ā§Ÿ, āϝāĻž āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĒāĻžāχāĻĒāϞāĻžāχāύ āϜ⧁āĻĄāĻŧ⧇ āϕ⧋āĻĄāϕ⧇ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ āĻāĻŦāĻ‚ āĻŽā§‡āĻĨāĻĄ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āĻ¸ā§āϟāĻžāχāϞ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖ āϰāĻžāϖ⧇āĨ¤ +whyModernWins: +- icon: "👁" + title: āĻ•ā§āϞāĻŋāύāĻžāϰ āύ⧇āϗ⧇āĻļāύ + desc: āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āύ⧇āϗ⧇āϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŽā§‡āĻĨāĻĄ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏāϗ⧁āϞ⧋āϕ⧇ āĻ˛ā§āϝāĻžāĻŽā§āĻŦāĻĄāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻ°â€ā§āϝāĻžāĻĒ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "🔗" + title: āĻ•āĻŽā§āĻĒā§‹āĻœā§‡āĻŦāϞ (Composable) + desc: āϝ⧇āϕ⧋āύ⧋ āĻĒā§āϰ⧇āĻĄāĻŋāϕ⧇āϟ (Predicate) āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇, āϝāĻž āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻĒā§āϰ⧇āĻĄāĻŋāϕ⧇āϟ āĻšā§‡āχāύ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽāĨ¤ +- icon: "📖" + title: āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ + desc: Predicate.not(String::isBlank) āχāĻ‚āϰ⧇āϜāĻŋāϤ⧇ āĻĒ⧜āĻžāϰ āĻŽāϤ⧋āχ āϏāĻšāϜāĨ¤ +support: + description: JDK 11 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2018) āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧāĨ¤ \ No newline at end of file diff --git a/translations/content/bn/streams/stream-gatherers.yaml b/translations/content/bn/streams/stream-gatherers.yaml new file mode 100644 index 0000000..9f450a6 --- /dev/null +++ b/translations/content/bn/streams/stream-gatherers.yaml @@ -0,0 +1,18 @@ +--- +title: Stream Gatherers +oldApproach: āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ•āĻžāϞ⧇āĻ•ā§āϟāϰ (Custom Collector) +modernApproach: gather() +summary: āĻ•āĻžāĻ¸ā§āϟāĻŽ āχāĻ¨ā§āϟāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧ⧇āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ (custom intermediate stream operations) āϜāĻ¨ā§āϝ gatherers āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: Gatherers āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āχāĻ¨ā§āϟāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧ⧇āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ…āĻĒāĻžāϰ⧇āĻļāύ, āϝāĻž āĻ¸ā§āϞāĻžāχāĻĄāĻŋāĻ‚ āωāχāĻ¨ā§āĻĄā§‹, āĻĢāĻŋāĻ•ā§āϏāĻĄ-āϏāĻžāχāϜ āĻ—ā§āϰ⧁āĻĒ āĻāĻŦāĻ‚ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āĻŽāϤ⧋ āϜāϟāĻŋāϞ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāϰāĻŽā§‡āĻļāύ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻž āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ…āĻĒāϏ āĻĻāĻŋāϝāĻŧ⧇ āϏāĻŽā§āĻ­āĻŦ āĻ›āĻŋāϞ āύāĻžāĨ¤ +whyModernWins: +- icon: "🧩" + title: āĻ•āĻŽā§āĻĒā§‹āĻœā§‡āĻŦāϞ (Composable) + desc: Gatherers āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ…āĻĒāĻžāϰ⧇āĻļāύāϗ⧁āϞ⧋āϰ (stream operations) āϏāĻžāĻĨ⧇ āĻ•āĻŽā§āĻĒā§‹āϜ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "đŸ“Ļ" + title: āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻ…āĻĒāĻžāϰ⧇āĻļāύ (Built-in Operations) + desc: windowFixed, windowSliding, fold, scan āϏāϰāĻžāϏāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "🔧" + title: āĻāĻ•ā§āϏāĻŸā§‡āύāϏāĻŋāĻŦāϞ (Extensible) + desc: āϝ⧇āϕ⧋āύ⧋ āχāĻ¨ā§āϟāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧ⧇āϟ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāϰāĻŽā§‡āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻžāĻ¸ā§āϟāĻŽ Gatherers āϞāĻŋāϖ⧁āύāĨ¤ +support: + description: JDK 24 (JEP 485, āĻŽāĻžāĻ°ā§āϚ 2025) āĻ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ \ No newline at end of file diff --git a/translations/content/bn/streams/stream-iterate-predicate.yaml b/translations/content/bn/streams/stream-iterate-predicate.yaml new file mode 100644 index 0000000..b56a95f --- /dev/null +++ b/translations/content/bn/streams/stream-iterate-predicate.yaml @@ -0,0 +1,18 @@ +--- +title: Predicate āϏāĻš Stream.iterate() +oldApproach: iterate + limit +modernApproach: iterate(seed, pred, op) +summary: āφāχāϟāĻžāϰ⧇āĻļāύ (iteration) āĻŦāĻ¨ā§āϧ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧇āĻĄāĻŋāϕ⧇āϟ (predicate) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ – āĻāϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĢāĻ°ā§āĻŽā§‡āϰ āĻāĻ•āϟāĻŋ āĻĢāϰ-āϞ⧁āĻĒ⧇āϰ (for-loop) āĻŽāϤ⧋āĨ¤ +explanation: āϤāĻŋāύ-āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ Stream.iterate(seed, hasNext, next) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĢāϰ-āϞ⧁āĻĒ⧇āϰ āĻŽāϤ⧋ āĻ•āĻžāϜ āĻ•āϰ⧇: seed āĻšāϞ⧋ āĻļ⧁āϰ⧁, hasNext āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇ āĻ•āĻ–āύ āĻĨāĻžāĻŽāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ next āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ­ā§āϝāĻžāϞ⧁ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "đŸŽ¯" + title: āĻĒā§āϰāĻžāĻ•ā§ƒāϤāĻŋāĻ• āϟāĻžāĻ°ā§āĻŽāĻŋāύ⧇āĻļāύ (Natural Termination) + desc: āĻāĻ•āϟāĻŋ āĻ•āĻ¨ā§āĻĄāĻŋāĻļāύ⧇āϰ (condition) āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻĨāĻžāĻŽā§āύ, āϕ⧋āύ⧋ āφāĻ°ā§āϟāĻŋāϕ⧁āϞāĻžāϰ āϞāĻŋāĻŽāĻŋāϟ (arbitrary limit) āύ⧟āĨ¤ +- icon: "📐" + title: āĻĢāϰ-āϞ⧁āĻĒ āχāϕ⧁āχāĻ­ā§āϝāĻžāϞ⧇āĻ¨ā§āϟ (For-loop Equivalent) + desc: for(seed; hasNext; next) āĻāϰ āĻŽāϤ⧋ āĻāĻ•āχ āϏ⧇āĻŽāĻžāĻ¨ā§āϟāĻŋāĻ•ā§āϏ (semantics)āĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻ…āϏ⧀āĻŽ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻā§āρāĻ•āĻŋāϰ āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤāĻŋ + desc: āĻĒā§āϰ⧇āĻĄāĻŋāϕ⧇āϟ (predicate) āϟāĻžāĻ°ā§āĻŽāĻŋāύ⧇āĻļāύ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/streams/stream-mapmulti.yaml b/translations/content/bn/streams/stream-mapmulti.yaml new file mode 100644 index 0000000..f075b59 --- /dev/null +++ b/translations/content/bn/streams/stream-mapmulti.yaml @@ -0,0 +1,18 @@ +--- +title: Stream.mapMulti() +oldApproach: flatMap + List +modernApproach: mapMulti() +summary: āχāĻ¨ā§āϟāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧ⧇āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āϤ⧈āϰāĻŋ āύāĻž āĻ•āϰ⧇āχ āĻĒā§āϰāϤāĻŋ āχāύāĻĒ⧁āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻļā§‚āĻ¨ā§āϝ āĻŦāĻž āϤāĻžāϰ āĻŦ⧇āĻļāĻŋ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āύāĻŋāĻ°ā§āĻ—āϤ āĻ•āϰ⧁āύāĨ¤ +explanation: mapMulti() āĻŽā§‡āĻĨāĻĄāϟāĻŋ flatMap-āĻāϰ āĻāĻ•āϟāĻŋ āχāĻŽā§āĻĒāĻžāϰ⧇āϟāĻŋāĻ­ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ, āϝāĻž āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āχāĻ¨ā§āϟāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧ⧇āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤ āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āϝāĻ–āύ āĻ…āĻ˛ā§āĻĒ āϏāĻ‚āĻ–ā§āϝāĻ• āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇, āϤāĻ–āύ āĻāϟāĻŋ āφāϰāĻ“ āχāĻĢāĻŋāĻļāĻŋāϝāĻŧ⧇āĻ¨ā§āϟ (efficient) āĻšāϝāĻŧāĨ¤ +whyModernWins: +- icon: "⚡" + title: āĻ•āĻŽ āĻ…ā§āϝāĻžāϞ⧋āϕ⧇āĻļāύ (Less Allocation) + desc: āĻĒā§āϰāϤāĻŋ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āϕ⧋āύ⧋ āχāĻ¨ā§āϟāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧ⧇āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āϤ⧈āϰāĻŋ āĻšā§Ÿ āύāĻžāĨ¤ +- icon: "đŸŽ¯" + title: āχāĻŽā§āĻĒāĻžāϰ⧇āϟāĻŋāĻ­ āĻ¸ā§āϟāĻžāχāϞ (Imperative Style) + desc: āϏāϰāĻžāϏāϰāĻŋ āϞ⧁āĻĒ āĻāĻŦāĻ‚ āĻ•āĻ¨ā§āĻĄāĻŋāĻļāύāĻžāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "📐" + title: āĻĢā§āϞ⧇āĻ•ā§āϏāĻŋāĻŦāϞ (Flexible) + desc: āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āϏāĻš āĻļā§‚āĻ¨ā§āϝ, āĻāĻ•, āĻŦāĻž āĻāĻ•āĻžāϧāĻŋāĻ• āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āύāĻŋāĻ°ā§āĻ—āϤ āĻ•āϰ⧁āύāĨ¤ +support: + description: JDK 16 (āĻŽāĻžāĻ°ā§āϚ 2021) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/streams/stream-of-nullable.yaml b/translations/content/bn/streams/stream-of-nullable.yaml new file mode 100644 index 0000000..ff6c81c --- /dev/null +++ b/translations/content/bn/streams/stream-of-nullable.yaml @@ -0,0 +1,18 @@ +--- +title: Stream.ofNullable() +oldApproach: Null āĻšā§‡āĻ• +modernApproach: ofNullable() +summary: nullable āĻ­ā§āϝāĻžāϞ⧁ (nullable value) āĻĨ⧇āϕ⧇ āĻļā§‚āĻ¨ā§āϝ-āĻŦāĻž-āĻāĻ• āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤ +explanation: Stream.ofNullable() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻ­ā§āϝāĻžāϞ⧁āϟāĻŋ āύāύ-āύāĻžāϞ (non-null) āĻšāϞ⧇ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ-āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, āĻ…āĻĨāĻŦāĻž null āĻšāϞ⧇ āĻāĻ•āϟāĻŋ āĻāĻŽā§āĻĒāϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ (empty stream) āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āϟāĻžāϰāύāĻžāϰāĻŋ null āĻšā§‡āĻ• āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϕ⧇ (ternary null check pattern) āĻĻā§‚āϰ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "📏" + title: āϏ⧁āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ + desc: āĻāĻ• āĻ•āϞ-āĻāχ āϟāĻžāϰāύāĻžāϰāĻŋ āĻ•āĻ¨ā§āĻĄāĻŋāĻļāύāĻžāϞāϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +- icon: "🔗" + title: flatMap-āĻĢā§āϰ⧇āĻ¨ā§āĻĄāϞāĻŋ + desc: flatMap-āĻāϰ āĻ­āĻŋāϤāϰ⧇ null āĻ­ā§āϝāĻžāϞ⧁ āĻŦāĻžāĻĻ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻĢ⧇āĻ•ā§āϟāĨ¤ +- icon: "đŸ›Ąī¸" + title: Null-āϏ⧇āĻĢ + desc: āϕ⧋āύ⧋ NPE āĻā§āρāĻ•āĻŋ āύ⧇āχ – null āĻšāϞ⧇ āĻāĻŽā§āĻĒāϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/streams/stream-takewhile-dropwhile.yaml b/translations/content/bn/streams/stream-takewhile-dropwhile.yaml new file mode 100644 index 0000000..47ef929 --- /dev/null +++ b/translations/content/bn/streams/stream-takewhile-dropwhile.yaml @@ -0,0 +1,18 @@ +--- +title: Stream takeWhile / dropWhile +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āϞ⧁āĻĒ +modernApproach: takeWhile/dropWhile +summary: āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧇āĻĄāĻŋāϕ⧇āĻŸā§‡āϰ (predicate) āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĨ⧇āϕ⧇ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āύāĻŋāύ āĻŦāĻž āĻŦāĻžāĻĻ āĻĻāĻŋāύāĨ¤ +explanation: takeWhile() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻĒā§āϰ⧇āĻĄāĻŋāϕ⧇āϟ āϏāĻ¤ā§āϝ (true) āĻšāĻ“āϝāĻŧāĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĒā§āϰāĻĨāĻŽ āĻŽāĻŋāĻĨā§āϝāĻž (false) āϤ⧇ āĻĒ⧌āρāĻ›āĻžāϞ⧇ āĻĨāĻžāĻŽāĻžāĨ¤ dropWhile() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻĒā§āϰ⧇āĻĄāĻŋāϕ⧇āϟ āϏāĻ¤ā§āϝ āĻĨāĻžāĻ•āĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ¸ā§āĻ•āĻŋāĻĒ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻŦāĻžāĻ•āĻŋāϗ⧁āϞ⧋ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ āωāĻ­āϝāĻŧ āĻŽā§‡āĻĨāĻĄāχ āĻ…āĻ°ā§āĻĄāĻžāϰāĻĄ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāϗ⧁āϞ⧋āϤ⧇ (ordered streams) āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻ­āĻžāϞ⧋ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "đŸŽ¯" + title: āĻļāĻ°ā§āϟ-āϏāĻžāĻ°ā§āĻ•āĻŋāϟ (Short-circuit) + desc: āĻĒā§āϰ⧇āĻĄāĻŋāϕ⧇āϟ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāĻ“āϝāĻŧāĻžāϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇ āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āĻŦāĻ¨ā§āϧ āĻšā§Ÿā§‡ āϝāĻžā§ŸāĨ¤ +- icon: "🔗" + title: āĻĒāĻžāχāĻĒāϞāĻžāχāύ-āĻĢā§āϰ⧇āĻ¨ā§āĻĄāϞāĻŋ (Pipeline-friendly) + desc: āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ…āĻĒāĻžāϰ⧇āĻļāύāϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻšā§‡āχāύ āĻšāϝāĻŧāĨ¤ +- icon: "📖" + title: āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āϟāĻŋāĻ­ (Declarative) + desc: takeWhile āĻŽā§‡āĻĨāĻĄāϟāĻŋ 'ā§§ā§Ļā§Ļ āĻāϰ āĻ•āĻŽ āĻšāϞ⧇ āύāĻžāĻ“' āĻāϰ āĻŽāϤ⧋ āĻ•āϰ⧇ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝāĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/streams/stream-tolist.yaml b/translations/content/bn/streams/stream-tolist.yaml new file mode 100644 index 0000000..7fb422f --- /dev/null +++ b/translations/content/bn/streams/stream-tolist.yaml @@ -0,0 +1,18 @@ +--- +title: Stream.toList() +oldApproach: collect(Collectors.toList()) +modernApproach: .toList() +summary: āϟāĻžāĻ°ā§āĻŽāĻŋāύāĻžāϞ toList() āĻŽā§‡āĻĨāĻĄāϟāĻŋ verbose collect(Collectors.toList())-āϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +explanation: Stream.toList() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ āφāύāĻŽāĻĄāĻŋāĻĢāĻžāĻ‡ā§Ÿā§‡āĻŦāϞ āϞāĻŋāĻ¸ā§āϟ (unmodifiable list) āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ .collect(Collectors.toUnmodifiableList()) āĻāϰ āϏāĻŽāϤ⧁āĻ˛ā§āϝ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…āύ⧇āĻ• āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāĨ¤ āωāĻ˛ā§āϞ⧇āĻ–ā§āϝ āϝ⧇, āĻāϰ āĻĢāϞāĻžāĻĢāϞ āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (immutable), Collectors.toList()-āĻāϰ āĻŽāϤ⧋ āύ⧟āĨ¤ +whyModernWins: +- icon: "📏" + title: 7 āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰ āĻŦāύāĻžāĻŽ 24 + desc: .toList() āĻŽā§‡āĻĨāĻĄāϟāĻŋ .collect(Collectors.toList())-āϕ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ +- icon: "🔒" + title: āχāĻŽāĻŋāωāĻŸā§‡āĻŦāϞ (Immutable) + desc: āĻĢāϞāĻžāĻĢāϞ āϞāĻŋāĻ¸ā§āϟāϟāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžā§Ÿ āύāĻžāĨ¤ +- icon: "📖" + title: āĻĢā§āĻ˛ā§ā§Ÿā§‡āĻ¨ā§āϟ (Fluent) + desc: āĻāĻ•āϟāĻŋ āĻĒāĻžāχāĻĒāϞāĻžāχāύ⧇āϰ āĻļ⧇āώ⧇ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝāĨ¤ +support: + description: JDK 16 (āĻŽāĻžāĻ°ā§āϚ 2021) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/streams/virtual-thread-executor.yaml b/translations/content/bn/streams/virtual-thread-executor.yaml new file mode 100644 index 0000000..dd5951b --- /dev/null +++ b/translations/content/bn/streams/virtual-thread-executor.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟāϰ (Virtual Thread Executor) +oldApproach: āĻĢāĻŋāĻ•ā§āϏāĻĄ āĻĨā§āϰ⧇āĻĄ āĻĒ⧁āϞ (Fixed Thread Pool) +modernApproach: āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟāϰ +summary: āϏ⧀āĻŽāĻžāĻšā§€āύ āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋāϰ (lightweight concurrency) āϜāĻ¨ā§āϝ āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϟāĻžāĻ¸ā§āϕ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āϕ⧋āύ⧋ āĻĒ⧁āϞ āϏāĻžāχāϜāĻŋāĻ‚ā§Ÿā§‡āϰ (pool sizing) āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ – āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄāϗ⧁āϞ⧋ āĻāϤ āϏāĻ¸ā§āϤāĻž āϝ⧇ āϞāĻ•ā§āώ āϞāĻ•ā§āώ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +whyModernWins: +- icon: "â™žī¸" + title: āϕ⧋āύ⧋ āϏāĻžāχāϜāĻŋāĻ‚ āύ⧇āχ + desc: āϕ⧋āύ⧋ āĻĒ⧁āϞ āϏāĻžāχāϜ āϟāĻŋāωāύ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ – āϝāϤāϗ⧁āϞ⧋ āĻĨā§āϰ⧇āĻĄ āĻĻāϰāĻ•āĻžāϰ āϤāϤāϗ⧁āϞ⧋ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤ +- icon: "⚡" + title: āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ + desc: āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻĨā§āϰ⧇āĻĄāϗ⧁āϞ⧋ āĻ•āĻŋāϞ⧋āĻŦāĻžāχāϟ (KB) āĻŽā§‡āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āĻŽā§‡āĻ—āĻžāĻŦāĻžāχāϟ (MB) āύ⧟āĨ¤ +- icon: "🧹" + title: āĻ…āĻŸā§‹-āĻ•ā§āϞ⧋āĻœā§‡āĻŦāϞ (Auto-closeable) + desc: āĻŸā§āϰāĻžāχ-āωāχāĻĨ-āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϏ (try-with-resources) āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻļāĻžāϟāĻĄāĻžāωāύ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 21 LTS (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2023) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/strings/string-chars-stream.yaml b/translations/content/bn/strings/string-chars-stream.yaml new file mode 100644 index 0000000..b446604 --- /dev/null +++ b/translations/content/bn/strings/string-chars-stream.yaml @@ -0,0 +1,18 @@ +--- +title: Stream āĻšāĻŋāϏāĻžāĻŦ⧇ String chars (String chars as stream) +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āϞ⧁āĻĒ +modernApproach: chars() Stream +summary: āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰāϗ⧁āϞ⧋āϕ⧇ (string characters) āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĒāĻžāχāĻĒāϞāĻžāχāύ (stream pipeline) āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĒā§āϰāϏ⧇āϏ āĻ•āϰ⧁āύāĨ¤ +explanation: String.chars() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰ āĻ­ā§āϝāĻžāϞ⧁āϗ⧁āϞ⧋āϰ āĻāĻ•āϟāĻŋ IntStream āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, āϝāĻž āĻĢāĻžāĻ‚āĻļāύāĻžāϞ āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤ āχāωāύāĻŋāϕ⧋āĻĄ āϏāĻžāĻĒā§‹āĻ°ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ, codePoints() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϏāĻžāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟāĻžāϰāĻŋ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰāϗ⧁āϞ⧋āϕ⧇ (supplementary characters) āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "🔗" + title: āĻšā§‡āχāύ⧇āĻŦāϞ (Chainable) + desc: āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāϗ⧁āϞ⧋āϤ⧇ filter, map, collect āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "📐" + title: āĻĄāĻŋāĻ•ā§āϞāĻžāϰ⧇āϟāĻŋāĻ­ (Declarative) + desc: āϕ⧀ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰ⧁āύ, āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϞ⧁āĻĒ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āύ⧟āĨ¤ +- icon: "🌐" + title: āχāωāύāĻŋāϕ⧋āĻĄ-āϰ⧇āĻĄāĻŋ (Unicode-ready) + desc: codePoints() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āχāĻŽā§‹āϜāĻŋ (emoji) āĻāĻŦāĻ‚ āϏāĻžāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟāĻžāϰāĻŋ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰāϗ⧁āϞ⧋ (supplementary chars) āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 8+ āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ (9+ āĻ āωāĻ¨ā§āύāϤ) \ No newline at end of file diff --git a/translations/content/bn/strings/string-formatted.yaml b/translations/content/bn/strings/string-formatted.yaml new file mode 100644 index 0000000..6954504 --- /dev/null +++ b/translations/content/bn/strings/string-formatted.yaml @@ -0,0 +1,18 @@ +--- +title: String.formatted() +oldApproach: String.format() +modernApproach: formatted() +summary: āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚-āĻāϰ āωāĻĒāϰ āϏāϰāĻžāϏāϰāĻŋ formatted() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻ•āϞ āĻ•āϰ⧁āύāĨ¤ +explanation: String.formatted() āĻŽā§‡āĻĨāĻĄāϟāĻŋ String.format()-āĻāϰ āĻāĻ•āϟāĻŋ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āĻŽā§‡āĻĨāĻĄ āχāϕ⧁āχāĻ­ā§āϝāĻžāϞ⧇āĻ¨ā§āϟ, āϝāĻž āĻĢāϰāĻŽā§āϝāĻžāϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻāϰ āωāĻĒāϰ āĻ•āϞ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻāϟāĻŋ āĻŦāĻžāĻŽ āĻĨ⧇āϕ⧇ āĻĄāĻžāύ⧇ (left-to-right) āφāϰāĻ“ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝāĨ¤ +whyModernWins: +- icon: "📖" + title: āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ + desc: Template.formatted(args) āĻŽā§‡āĻĨāĻĄāϟāĻŋ String.format(template, args)-āĻāϰ āĻšā§‡ā§Ÿā§‡ āĻŦ⧇āĻļāĻŋ āĻĢā§āϞ⧁āϝāĻŧ⧇āĻ¨ā§āϟāĨ¤ +- icon: "🔗" + title: āĻšā§‡āχāύ⧇āĻŦāϞ (Chainable) + desc: āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻšā§‡āχāύ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "📏" + title: āĻ•āĻŽ āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ (Less Verbose) + desc: āĻ…āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ String.format() āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻ•āϞāϕ⧇ āĻŦāĻžāĻĻ āĻĻā§‡ā§ŸāĨ¤ +support: + description: JDK 15 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2020) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/strings/string-indent-transform.yaml b/translations/content/bn/strings/string-indent-transform.yaml new file mode 100644 index 0000000..f172b1c --- /dev/null +++ b/translations/content/bn/strings/string-indent-transform.yaml @@ -0,0 +1,18 @@ +--- +title: String.indent() āĻāĻŦāĻ‚ transform() +oldApproach: āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āχāĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸā§‡āĻļāύ +modernApproach: indent() / transform() +summary: āĻŸā§‡āĻ•ā§āϏāϟ āχāĻ¨ā§āĻĄā§‡āĻ¨ā§āϟ (indent) āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāϰāĻŽā§‡āĻļāύ (string transformations) āĻĢā§āĻ˛ā§ā§Ÿā§‡āĻ¨ā§āϟāϞāĻŋ āĻšā§‡āχāύ (chain) āĻ•āϰ⧁āύāĨ¤ +explanation: indent(n) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϞāĻžāχāύ⧇ n āϏāĻ‚āĻ–ā§āϝāĻ• āĻ¸ā§āĻĒ⧇āϏ āϝ⧋āĻ— āĻ•āϰ⧇āĨ¤ transform(fn) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϝ⧇āϕ⧋āύ⧋ āĻĢāĻžāĻ‚āĻļāύ āĻĒā§āĻ°ā§Ÿā§‹āĻ— āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĢāϞāĻžāĻĢāϞ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, āϝāĻž āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻ…āĻĒāĻžāϰ⧇āĻļāύāϗ⧁āϞ⧋āϰ āĻĢā§āĻ˛ā§ā§Ÿā§‡āĻ¨ā§āϟ āĻšā§‡āχāύāĻŋāĻ‚ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "📏" + title: āĻŦāĻŋāĻ˛ā§āϟ-āχāύ + desc: āχāĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻāĻ•āϟāĻŋ āĻ•āĻŽāύ āĻ…āĻĒāĻžāϰ⧇āĻļāύ – āĻāĻ–āύ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻ•āϞ-āĻāχ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ +- icon: "🔗" + title: āĻšā§‡āχāύ⧇āĻŦāϞ (Chainable) + desc: transform() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āϗ⧁āϞ⧋āϤ⧇ āĻĢā§āϞ⧁āϝāĻŧ⧇āĻ¨ā§āϟ āĻĒāĻžāχāĻĒāϞāĻžāχāύ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤ +- icon: "🧹" + title: āĻ•ā§āϞāĻŋāύ āϕ⧋āĻĄ + desc: āϕ⧋āύ⧋ āĻŽā§āϝāĻžāύ⧁⧟āĻžāϞ āϞāĻžāχāύ āĻ¸ā§āĻĒā§āϞāĻŋāϟāĻŋāĻ‚ āĻāĻŦāĻ‚ StringBuilder āϞ⧁āĻĒ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +support: + description: JDK 12 (āĻŽāĻžāĻ°ā§āϚ 2019) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/strings/string-isblank.yaml b/translations/content/bn/strings/string-isblank.yaml new file mode 100644 index 0000000..78f0775 --- /dev/null +++ b/translations/content/bn/strings/string-isblank.yaml @@ -0,0 +1,18 @@ +--- +title: String.isBlank() +oldApproach: trim().isEmpty() +modernApproach: isBlank() +summary: āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻĻāĻŋā§Ÿā§‡ āĻŦā§āĻ˛ā§āϝāĻžāĻ™ā§āĻ• (blank) āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻšā§‡āĻ• āĻ•āϰ⧁āύāĨ¤ +explanation: isBlank() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇ true āϝāĻĻāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āϟāĻŋ āĻāĻŽā§āĻĒāϟāĻŋ āĻšā§Ÿ āĻŦāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻšā§‹āϝāĻŧāĻžāχāϟāĻ¸ā§āĻĒ⧇āϏ (whitespace) āϧāĻžāϰāĻŖ āĻ•āϰ⧇, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ trim() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻŽāĻŋāϏ āĻ•āϰ⧇ āĻāĻŽāύ āχāωāύāĻŋāϕ⧋āĻĄ āĻšā§‹āϝāĻŧāĻžāχāϟāĻ¸ā§āĻĒ⧇āϏ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰāĻ“ (Unicode whitespace characters) āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤāĨ¤ +whyModernWins: +- icon: "📖" + title: āĻ¸ā§āĻŦ-āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟāĻŋāĻ‚ (Self-documenting) + desc: isBlank() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻ āĻŋāĻ• āϕ⧀ āĻšā§‡āĻ• āĻ•āϰ⧇ āϤāĻž āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻŦāϞ⧇āĨ¤ +- icon: "🌐" + title: āχāωāύāĻŋāϕ⧋āĻĄ-āĻ…ā§āϝāĻžāĻ“ā§ŸāĻžāϰ (Unicode-aware) + desc: āĻāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ ASCII āύ⧟, āϏāĻŽāĻ¸ā§āϤ āχāωāύāĻŋāϕ⧋āĻĄ āĻšā§‹āϝāĻŧāĻžāχāϟāĻ¸ā§āĻĒ⧇āϏ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +- icon: "⚡" + title: āϕ⧋āύ⧋ āĻ…ā§āϝāĻžāϞ⧋āϕ⧇āĻļāύ (Allocation) āύ⧇āχ + desc: āϕ⧋āύ⧋ āχāĻ¨ā§āϟāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧ⧇āϟ āĻŸā§āϰāĻŋāĻŽāĻĄ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ (intermediate trimmed string) āϤ⧈āϰāĻŋ āĻšā§Ÿ āύāĻžāĨ¤ +support: + description: JDK 11 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2018) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/strings/string-lines.yaml b/translations/content/bn/strings/string-lines.yaml new file mode 100644 index 0000000..413a441 --- /dev/null +++ b/translations/content/bn/strings/string-lines.yaml @@ -0,0 +1,18 @@ +--- +title: āϞāĻžāχāύ āĻ¸ā§āĻĒā§āϞāĻŋāϟāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ String.lines() +oldApproach: split("\n") +modernApproach: lines() +summary: regex āĻ“āĻ­āĻžāϰāĻšā§‡āĻĄ (overhead) āĻ›āĻžā§œāĻžāχ āĻŸā§‡āĻ•ā§āϏāϟāϕ⧇ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ…āĻŦ āϞāĻžāχāύāϏ⧇ (stream of lines) āĻŦāĻŋāĻ­āĻ•ā§āϤ āĻ•āϰāϤ⧇ String.lines() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +explanation: String.lines() āĻŽā§‡āĻĨāĻĄāϟāĻŋ \n, \r, āĻŦāĻž \r\n āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻŋāĻ­āĻ•ā§āϤ āϞāĻžāχāύāϗ⧁āϞ⧋āϰ Stream āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ split() āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻšā§‡āϝāĻŧ⧇ āĻŦ⧇āĻļāĻŋ āϞ⧇āϜāĻŋ (lazy) āĻāĻŦāĻ‚ āχāĻĢāĻŋāĻļāĻŋāϝāĻŧ⧇āĻ¨ā§āϟ, regex āĻ•āĻŽā§āĻĒāĻžāχāϞ⧇āĻļāύ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧ āĻāĻŦāĻ‚ āφāϰāĻ“ āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ Stream API āĻāϰ āϏāĻžāĻĨ⧇ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āϟ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "⚡" + title: āϞ⧇āϜāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ (Lazy Streaming) + desc: āϞāĻžāχāύāϗ⧁āϞ⧋ āĻĄāĻŋāĻŽāĻžāĻ¨ā§āĻĄ āĻ…āύ⧁āϝāĻžā§Ÿā§€ āϤ⧈āϰāĻŋ āĻšā§Ÿ, split() āĻāϰ āĻŽāϤ⧋ āϏāĻŦ āĻāĻ•āϏāĻžāĻĨ⧇ āύ⧟āĨ¤ +- icon: "🔧" + title: āχāωāύāĻŋāĻ­āĻžāĻ°ā§āϏāĻžāϞ āϞāĻžāχāύ āĻāĻ¨ā§āĻĄāĻŋāĻ‚ (Universal Line Endings) + desc: regex āĻ›āĻžā§œāĻžāχ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ \n, \r, āĻāĻŦāĻ‚ \r\n āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +- icon: "🔗" + title: āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ (Stream Integration) + desc: filter, map, collect-āĻāϰ āϏāĻžāĻĨ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ Stream āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 11 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2018) āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧāĨ¤ \ No newline at end of file diff --git a/translations/content/bn/strings/string-repeat.yaml b/translations/content/bn/strings/string-repeat.yaml new file mode 100644 index 0000000..58d41ff --- /dev/null +++ b/translations/content/bn/strings/string-repeat.yaml @@ -0,0 +1,18 @@ +--- +title: String.repeat() +oldApproach: StringBuilder āϞ⧁āĻĒ +modernApproach: repeat() +summary: āϕ⧋āύ⧋ āϞ⧁āĻĒ āĻ›āĻžāĻĄāĻŧāĻžāχ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āϕ⧇ n āĻŦāĻžāϰ āϰāĻŋāĻĒāĻŋāϟ āĻ•āϰ⧁āύāĨ¤ +explanation: String.repeat(int) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āϟāĻŋāϕ⧇ n āĻŦāĻžāϰ āύāĻŋāĻœā§‡āϰ āϏāĻžāĻĨ⧇ āĻ•āύāĻ•ā§āϝāĻžāĻŸā§‡āύ⧇āϟ (concatenated) āĻ•āϰ⧇ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻāϜ āϕ⧇āχāϏāϗ⧁āϞ⧋ (edge cases) āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇: repeat(0) āĻāĻŽā§āĻĒāϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, repeat(1) āĻāĻ•āχ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "📏" + title: āĻ“āϝāĻŧāĻžāύ-āϞāĻžāχāύāĻžāϰ (One-liner) + desc: StringBuilder āϕ⧋āĻĄā§‡āϰ ā§Ģ āϞāĻžāχāύāϕ⧇ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āĻ•āϞ āĻĻāĻŋā§Ÿā§‡ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤ +- icon: "⚡" + title: āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜāĻĄ (Optimized) + desc: āχāĻ¨ā§āϟāĻžāϰāύāĻžāϞ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ (internal implementation) āĻŦ⧜ āϰāĻŋāĻĒāĻŋāĻŸā§‡āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ +- icon: "📖" + title: āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝ + desc: repeat(3) āĻĻā§āĻŦāĻžāϰāĻž āĻāϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝ āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻŦā§‹āĻāĻž āϝāĻžā§ŸāĨ¤ +support: + description: JDK 11 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2018) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/strings/string-strip.yaml b/translations/content/bn/strings/string-strip.yaml new file mode 100644 index 0000000..449f979 --- /dev/null +++ b/translations/content/bn/strings/string-strip.yaml @@ -0,0 +1,18 @@ +--- +title: String.strip() āĻŦāύāĻžāĻŽ trim() +oldApproach: trim() +modernApproach: strip() +summary: strip(), stripLeading(), stripTrailing() āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāωāύāĻŋāϕ⧋āĻĄ-āĻ…ā§āϝāĻžāĻ“ā§ŸāĻžāϰ āĻ¸ā§āĻŸā§āϰāĻŋāĻĒāĻŋāĻ‚ (Unicode-aware stripping) āĻ•āϰ⧁āύāĨ¤ +explanation: trim() āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ ≤ U+0020 (ASCII āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰ āĻāĻŦāĻ‚ āĻ¸ā§āĻĒ⧇āϏ) āĻāϰ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰāϗ⧁āϞ⧋ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧāĨ¤ strip() āĻŽā§‡āĻĨāĻĄāϟāĻŋ Character.isWhitespace() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āϝāĻž āχāωāύāĻŋāϕ⧋āĻĄ āĻ¸ā§āĻĒ⧇āϏ (Unicode spaces) āϝ⧇āĻŽāύ āύāύ-āĻŦā§āϰ⧇āĻ•āĻŋāĻ‚ āĻ¸ā§āĻĒ⧇āϏ (non-breaking space), āφāχāĻĄāĻŋāĻ“āĻ—ā§āϰāĻžāĻĢāĻŋāĻ• āĻ¸ā§āĻĒ⧇āϏ (ideographic space) āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +whyModernWins: +- icon: "🌐" + title: āχāωāύāĻŋāϕ⧋āĻĄ-āĻ•āĻžāϰ⧇āĻ•ā§āϟ + desc: āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻĨ⧇āϕ⧇ āϏāĻŽāĻ¸ā§āϤ āĻšā§‹āϝāĻŧāĻžāχāϟāĻ¸ā§āĻĒ⧇āϏ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰ⧇āĨ¤ +- icon: "đŸŽ¯" + title: āĻĄāĻŋāϰ⧇āĻ•āĻļāύāĻžāϞ (Directional) + desc: āĻāĻ•-āĻĒāĻžāĻ°ā§āĻļā§āĻŦāϝ⧁āĻ•ā§āϤ āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ stripLeading() āĻāĻŦāĻ‚ stripTrailing() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻ•āĻŽ āĻŦāĻžāĻ— + desc: āφāĻ¨ā§āϤāĻ°ā§āϜāĻžāϤāĻŋāĻ• āĻŸā§‡āĻ•ā§āϏāĻŸā§‡ āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āĻšā§‹āϝāĻŧāĻžāχāϟāĻ¸ā§āĻĒ⧇āϏ āĻĨāĻžāĻ•āĻžāϰ āĻā§āρāĻ•āĻŋ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ +support: + description: JDK 11 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2018) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/tooling/aot-class-preloading.yaml b/translations/content/bn/tooling/aot-class-preloading.yaml new file mode 100644 index 0000000..8ce3a16 --- /dev/null +++ b/translations/content/bn/tooling/aot-class-preloading.yaml @@ -0,0 +1,18 @@ +--- +title: AOT āĻ•ā§āϞāĻžāϏ āĻĒā§āϰāĻŋāϞ⧋āĻĄāĻŋāĻ‚ (AOT class preloading) +oldApproach: āϕ⧋āĻ˛ā§āĻĄ āĻ¸ā§āϟāĻžāĻ°ā§āϟ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ +modernApproach: AOT āĻ•ā§āϝāĻžāĻļ⧇ +summary: āϤāĻžāĻ¤ā§āĻ•ā§āώāĻŖāĻŋāĻ• āĻ¸ā§āϟāĻžāĻ°ā§āϟāφāĻĒ⧇āϰ āϜāĻ¨ā§āϝ āĻ•ā§āϞāĻžāϏ āϞ⧋āĻĄāĻŋāĻ‚ (class loading) āĻāĻŦāĻ‚ āĻ•āĻŽā§āĻĒāĻžāχāϞ⧇āĻļāύ (compilation) āĻ•ā§āϝāĻžāĻļ āĻ•āϰ⧁āύāĨ¤ +explanation: AOT āĻ•ā§āϞāĻžāϏ āĻĒā§āϰāĻŋāϞ⧋āĻĄāĻŋāĻ‚ āĻāĻ•āϟāĻŋ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āϰāĻžāύ āĻĨ⧇āϕ⧇ āϞ⧋āĻĄ āĻ•āϰāĻž āĻāĻŦāĻ‚ āϞāĻŋāĻ™ā§āĻ• āĻ•āϰāĻž āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋āϕ⧇ āĻ•ā§āϝāĻžāĻļ āĻ•āϰ⧇āĨ¤ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ¸ā§āϟāĻžāĻ°ā§āϟāφāĻĒ⧇, āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋ āĻ•ā§āϝāĻžāĻļ āĻĨ⧇āϕ⧇ āϞ⧋āĻĄ āĻšāϝāĻŧ, āϝāĻž āĻ­ā§āϝāĻžāϰāĻŋāĻĢāĻŋāϕ⧇āĻļāύ (verification) āĻāĻŦāĻ‚ āϞāĻŋāĻ™ā§āĻ•āĻŋāĻ‚ (linking) āϧāĻžāĻĒāϗ⧁āϞ⧋ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤ AOT āĻ•āĻŽā§āĻĒāĻžāχāϞ⧇āĻļāύ⧇āϰ (compilation) āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞāĻŋāϤ āĻšāϞ⧇, āĻāϟāĻŋ āĻ¸ā§āϟāĻžāĻ°ā§āϟāφāĻĒ āϟāĻžāχāĻŽāϕ⧇ āύāĻžāϟāϕ⧀āϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ•āĻŽāĻŋā§Ÿā§‡ āĻĻā§‡ā§ŸāĨ¤ +whyModernWins: +- icon: "⚡" + title: āĻĻā§āϰ⧁āϤ āĻ¸ā§āϟāĻžāĻ°ā§āϟāφāĻĒ + desc: āĻ•ā§āϞāĻžāϏ āϞ⧋āĻĄāĻŋāĻ‚, āĻ­ā§āϝāĻžāϰāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āĻāĻŦāĻ‚ āϞāĻŋāĻ™ā§āĻ•āĻŋāĻ‚ āϧāĻžāĻĒāϗ⧁āϞ⧋ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϝāĻžāύāĨ¤ +- icon: "đŸ“Ļ" + title: āĻ•ā§āϝāĻžāĻļāĻĄ āĻ¸ā§āĻŸā§‡āϟ (Cached State) + desc: āĻŸā§āϰ⧇āύāĻŋāĻ‚ āϰāĻžāύāϟāĻŋ āφāĻĻāĻ°ā§āĻļ āĻ•ā§āϞāĻžāϏ āĻ¸ā§āĻŸā§‡āϟ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰ⧇āĨ¤ +- icon: "🔧" + title: āϕ⧋āύ⧋ āϕ⧋āĻĄ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āύ⧇āχ + desc: āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ – āĻļ⧁āϧ⧁ JVM āĻĢā§āĻ˛ā§āϝāĻžāĻ— āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ +support: + description: JDK 25 LTS (JEPs 514/515, āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2025) āĻ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĢāĻŋāϚāĻžāϰ āĻšāĻŋāϏāĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧāĨ¤ \ No newline at end of file diff --git a/translations/content/bn/tooling/built-in-http-server.yaml b/translations/content/bn/tooling/built-in-http-server.yaml new file mode 100644 index 0000000..6d56cc0 --- /dev/null +++ b/translations/content/bn/tooling/built-in-http-server.yaml @@ -0,0 +1,18 @@ +--- +title: āĻŦāĻŋāĻ˛ā§āϟ-āχāύ HTTP āϏāĻžāĻ°ā§āĻ­āĻžāϰ (Built-in HTTP server) +oldApproach: āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ / āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• +modernApproach: jwebserver CLI +summary: Java 18 āĻĒā§āϰ⧋āĻŸā§‹āϟāĻžāχāĻĒāĻŋāĻ‚ (prototyping) āĻāĻŦāĻ‚ āĻĢāĻžāχāϞ āϏāĻžāĻ°ā§āĻ­āĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻŽāĻŋāύāĻŋāĻŽāĻžāϞ HTTP āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤ +explanation: JDK 18 āĻāĻ•āϟāĻŋ āϏāĻŋāĻŽā§āĻĒāϞ, āϜāĻŋāϰ⧋-āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋ HTTP āĻĢāĻžāχāϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϝ⧋āĻ— āĻ•āϰ⧇āϛ⧇, āϝāĻž jwebserver āĻ•āĻŽāĻžāĻ¨ā§āĻĄ-āϞāĻžāχāύ āϟ⧁āϞ āĻŦāĻž SimpleFileServer API-āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏāϝ⧋āĻ—ā§āϝāĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĨ⧇āϕ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĢāĻžāχāϞ āϏāĻžāĻ°ā§āĻ­ āĻ•āϰ⧇, āϕ⧋āύ⧋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ CLI āϟ⧁āϞāϟāĻŋ āĻĻā§āϰ⧁āϤ āĻĒā§āϰ⧋āĻŸā§‹āϟāĻžāχāĻĒāĻŋāĻ‚, āĻŸā§‡āĻ¸ā§āϟāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻĄ-āĻšāĻ• (ad-hoc) āĻĢāĻžāχāϞ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻĻāĻ°ā§āĻļ – āϕ⧋āύ⧋ āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞ āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋ āĻŦāĻž āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ API āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāχāĻœā§‡āĻŦāϞ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻžāϰ (customizable handlers) āĻāĻŦāĻ‚ āφāωāϟāĻĒ⧁āϟ āϞ⧇āϭ⧇āϞ āϏāĻš āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϟāĻŋāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻā§‡ā§ŸāĨ¤ +whyModernWins: +- icon: "🚀" + title: āϜāĻŋāϰ⧋ āϏ⧇āϟāφāĻĒ + desc: āϝ⧇āϕ⧋āύ⧋ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ jwebserver āϚāĻžāϞāĻžāύ – āϕ⧋āύ⧋ āχāĻ¨ā§āϏāϟāϞ⧇āĻļāύ, āĻ•āύāĻĢāĻŋāĻ— āĻŦāĻž āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋ (dependencies) āĻāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "đŸ“Ļ" + title: JDK āϤ⧇ āĻŦāĻŋāĻ˛ā§āϟ-āχāύ + desc: āĻĒā§āϰāϤāĻŋāϟāĻŋ JDK 18+ āχāĻ¨ā§āϏāϟāϞ⧇āĻļāύ⧇āϰ āϏāĻžāĻĨ⧇ āφāϏ⧇, āϜāĻžāĻ­āĻž āϏāĻš āϝ⧇āϕ⧋āύ⧋ āĻŽā§‡āĻļāĻŋāύ⧇ āϏāĻ°ā§āĻŦāĻĻāĻž āωāĻĒāϞāĻŦā§āϧāĨ¤ +- icon: "đŸ§Ē" + title: āĻĒā§āϰ⧋āĻŸā§‹āϟāĻžāχāĻĒāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āĻĻāĻžāϰ⧁āĻŖ + desc: HTML, APIs, āĻŦāĻž āĻĢā§āϰāĻ¨ā§āϟ-āĻāĻ¨ā§āĻĄ āĻĄā§‡āϭ⧇āϞāĻĒāĻŽā§‡āĻ¨ā§āϟ āĻŸā§‡āĻ¸ā§āϟāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĢāĻžāχāϞ āϏāĻžāĻ°ā§āĻ­ āĻ•āϰ⧁āύāĨ¤ +support: + description: JDK 18 (āĻŽāĻžāĻ°ā§āϚ 2022) āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/tooling/compact-object-headers.yaml b/translations/content/bn/tooling/compact-object-headers.yaml new file mode 100644 index 0000000..92f42d9 --- /dev/null +++ b/translations/content/bn/tooling/compact-object-headers.yaml @@ -0,0 +1,18 @@ +--- +title: āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻšā§‡āĻĄāĻžāϰāϏ (Compact Object Headers) +oldApproach: 128-āĻŦāĻŋāϟ āĻšā§‡āĻĄāĻžāϰ +modernApproach: 64-āĻŦāĻŋāϟ āĻšā§‡āĻĄāĻžāϰ +summary: āωāĻ¨ā§āύāϤ āĻŽā§‡āĻŽāϰāĻŋ āĻĄā§‡āύāϏāĻŋāϟāĻŋ (memory density) āĻāĻŦāĻ‚ āĻ•ā§āϝāĻžāĻļ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ (cache usage) āϜāĻ¨ā§āϝ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻšā§‡āĻĄāĻžāϰ⧇āϰ āφāĻ•āĻžāϰ āĻ…āĻ°ā§āϧ⧇āĻ• āĻ•āĻŽāĻŋā§Ÿā§‡ āĻĻāĻŋāύāĨ¤ +explanation: āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻšā§‡āĻĄāĻžāϰ 64-āĻŦāĻŋāϟ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡ āĻĒā§āϰāϤāĻŋ-āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻ“āĻ­āĻžāϰāĻšā§‡āĻĄ (per-object overhead) 128 āĻŦāĻŋāϟ āĻĨ⧇āϕ⧇ 64 āĻŦāĻŋāĻŸā§‡ āĻ•āĻŽāĻŋā§Ÿā§‡ āĻĻā§‡ā§ŸāĨ¤ āĻāϟāĻŋ āĻŽā§‡āĻŽāϰāĻŋ āϏ⧇āĻ­ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻ•ā§āϝāĻžāĻļ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āωāĻ¨ā§āύāϤ āĻ•āϰ⧇, āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ āϛ⧋āϟ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝāĨ¤ +whyModernWins: +- icon: "đŸ“Ļ" + title: 50% āϛ⧋āϟ āĻšā§‡āĻĄāĻžāϰ + desc: āĻĒā§āϰāϤāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡ 16 āĻŦāĻžāχāĻŸā§‡āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ 8 āĻŦāĻžāχāϟāĨ¤ +- icon: "⚡" + title: āωāĻ¨ā§āύāϤ āĻ•ā§āϝāĻžāĻļ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ + desc: CPU āĻ•ā§āϝāĻžāĻļ⧇ āϞāĻžāχāύ⧇ āφāϰāĻ“ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻĢāĻŋāϟ āĻšā§ŸāĨ¤ +- icon: "📊" + title: āωāĻšā§āϚ āϘāύāĻ¤ā§āĻŦ + desc: āĻāĻ•āχ āĻšāĻŋāĻĒ āϏāĻžāχāĻœā§‡ (heap size) āφāϰāĻ“ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻĢāĻŋāϟ āĻ•āϰ⧁āύāĨ¤ +support: + description: JDK 25 LTS (JEP 519, āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2025) āĻ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ \ No newline at end of file diff --git a/translations/content/bn/tooling/jfr-profiling.yaml b/translations/content/bn/tooling/jfr-profiling.yaml new file mode 100644 index 0000000..f708ef2 --- /dev/null +++ b/translations/content/bn/tooling/jfr-profiling.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĒā§āϰ⧋āĻĢāĻžāχāϞāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ JFR +oldApproach: āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞ āĻĒā§āϰ⧋āĻĢāĻžāχāϞāĻžāϰ +modernApproach: Java Flight Recorder +summary: āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻĢā§āϞāĻžāχāϟ āϰ⧇āĻ•āĻ°ā§āĻĄāĻžāϰ (Flight Recorder) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝ⧇āϕ⧋āύ⧋ āϜāĻžāĻ­āĻž āĻ…ā§āϝāĻžāĻĒ (Java app) āĻĒā§āϰ⧋āĻĢāĻžāχāϞ āĻ•āϰ⧁āύ – āϕ⧋āύ⧋ āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞ āϟ⧁āϞ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +explanation: Java Flight Recorder (JFR) āĻšāϞ⧋ JVM-āĻāϰ (Java Virtual Machine) āĻŽāĻ§ā§āϝ⧇ āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻāĻ•āϟāĻŋ āϞ⧋-āĻ“āĻ­āĻžāϰāĻšā§‡āĻĄ āĻĒā§āϰ⧋āĻĢāĻžāχāϞāĻŋāĻ‚ āϟ⧁āϞāĨ¤ āĻāϟāĻŋ CPU, āĻŽā§‡āĻŽāϰāĻŋ, GC, I/O, āĻĨā§āϰ⧇āĻĄ āĻāĻŦāĻ‚ āĻ•āĻžāĻ¸ā§āϟāĻŽ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āχāϭ⧇āĻ¨ā§āϟ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰ⧇, āϝāĻžāϰ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ⧇āϰ āωāĻĒāϰ āĻ¨ā§āϝ⧂āύāϤāĻŽ āĻĒā§āϰāĻ­āĻžāĻŦ (~1%) āĻĨāĻžāϕ⧇āĨ¤ +whyModernWins: +- icon: "🆓" + title: āĻŦāĻŋāĻ˛ā§āϟ-āχāύ + desc: āϕ⧋āύ⧋ āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞ āĻĒā§āϰ⧋āĻĢāĻžāχāϞāĻžāϰ āχāύāĻ¸ā§āϟāϞ āĻŦāĻž āϞāĻžāχāϏ⧇āĻ¨ā§āϏ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "⚡" + title: āĻ•āĻŽ āĻ“āĻ­āĻžāϰāĻšā§‡āĻĄ + desc: āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ⧇ ~1% āĻĒā§āϰāĻ­āĻžāĻŦ – āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ⧇āϰ (production) āϜāĻ¨ā§āϝ āύāĻŋāϰāĻžāĻĒāĻĻāĨ¤ +- icon: "📊" + title: āϏāĻŽā§ƒāĻĻā§āϧ āχāϭ⧇āĻ¨ā§āϟ + desc: CPU, āĻŽā§‡āĻŽāϰāĻŋ, GC, āĻĨā§āϰ⧇āĻĄ, I/O, āϞāĻ• āĻāĻŦāĻ‚ āĻ•āĻžāĻ¸ā§āϟāĻŽ āχāϭ⧇āĻ¨ā§āϟāĨ¤ +support: + description: JDK 9/11 āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ (11-āĻ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ) \ No newline at end of file diff --git a/translations/content/bn/tooling/jshell-prototyping.yaml b/translations/content/bn/tooling/jshell-prototyping.yaml new file mode 100644 index 0000000..1a8271e --- /dev/null +++ b/translations/content/bn/tooling/jshell-prototyping.yaml @@ -0,0 +1,18 @@ +--- +title: āĻĒā§āϰ⧋āĻŸā§‹āϟāĻžāχāĻĒāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ JShell +oldApproach: āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ + āĻ•āĻŽā§āĻĒāĻžāχāϞ + āϰāĻžāύ āĻ•āϰ⧁āύ +modernApproach: jshell REPL +summary: āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āύāĻž āĻ•āϰ⧇āχ āχāĻ¨ā§āϟāĻžāϰāĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­āĻ­āĻžāĻŦ⧇ (interactively) āϜāĻžāĻ­āĻž āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύāϗ⧁āϞ⧋ (expressions) āĻŸā§āϰāĻžāχ āĻ•āϰ⧁āύāĨ¤ +explanation: JShell āĻšāϞ⧋ āϜāĻžāĻ­āĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϰāĻŋāĻĄ-āχāĻ­āĻžāϞ-āĻĒā§āϰāĻŋāĻ¨ā§āϟ āϞ⧁āĻĒ (Read-Eval-Print Loop)āĨ¤ āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻž, āĻ•āĻŽā§āĻĒāĻžāχāϞ āĻ•āϰāĻž āĻŦāĻž āĻŽā§‡āχāύ āĻŽā§‡āĻĨāĻĄ āύāĻž āϞāĻŋāϖ⧇ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰ⧁āύ, API-āĻāϰ āϏāĻžāĻĨ⧇ āĻāĻ•ā§āϏāĻĒ⧇āϰāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āϕ⧋āĻĄ āĻĒā§āϰ⧋āĻŸā§‹āϟāĻžāχāĻĒ āĻ•āϰ⧁āύāĨ¤ āĻāϤ⧇ āĻŸā§āϝāĻžāĻŦ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ (tab completion) āĻāĻŦāĻ‚ āχāύāϞāĻžāχāύ āĻĄāĻ•ā§āϏ (inline docs) āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤāĨ¤ +whyModernWins: +- icon: "⚡" + title: āϤāĻžāĻ¤ā§āĻ•ā§āώāĻŖāĻŋāĻ• āĻĢāĻŋāĻĄāĻŦā§āϝāĻžāĻ• (Instant Feedback) + desc: āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āϟāĻžāχāĻĒ āĻ•āϰ⧁āύ, āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇ āĻĢāϞāĻžāĻĢāϞ āĻĻ⧇āϖ⧁āύāĨ¤ +- icon: "📝" + title: āϕ⧋āύ⧋ āĻĢāĻžāχāϞ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ + desc: āϕ⧋āύ⧋ .java āĻĢāĻžāχāϞ āύ⧇āχ, āϕ⧋āύ⧋ āĻ•āĻŽā§āĻĒāĻžāχāϞ⧇āĻļāύ āĻ¸ā§āĻŸā§‡āĻĒ āύ⧇āχāĨ¤ +- icon: "🔍" + title: API āĻāĻ•ā§āϏāĻĒā§āϞ⧋āϰ⧇āĻļāύ + desc: āĻŸā§āϝāĻžāĻŦ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻŽā§‡āĻĨāĻĄ āĻāĻŦāĻ‚ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞ⧋ āĻĄāĻŋāϏāĻ•āĻ­āĻžāϰ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ +support: + description: JDK 9 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2017) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/tooling/junit6-with-jspecify.yaml b/translations/content/bn/tooling/junit6-with-jspecify.yaml new file mode 100644 index 0000000..cf51f03 --- /dev/null +++ b/translations/content/bn/tooling/junit6-with-jspecify.yaml @@ -0,0 +1,18 @@ +--- +title: JSpecify null āϏ⧇āĻĢāϟāĻŋ āϏāĻš JUnit 6 +oldApproach: āφāύāĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻŸā§‡āĻĄ API +modernApproach: @NullMarked API +summary: JUnit 6 JSpecify @NullMarked āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āϛ⧇, āϝāĻž JUnit-āĻāϰ āĻ…ā§āϝāĻžāϏāĻžāϰāĻļāύ API (assertion API) āϜ⧁āĻĄāĻŧ⧇ null āĻ•āĻ¨ā§āϟāĻžāĻ•ā§āϟāϗ⧁āϞ⧋āϕ⧇ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ +explanation: JUnit 5 āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄāĻžāχāϜāĻĄ āύāĻžāĻ˛ā§āϝāĻžāĻŦāĻŋāϞāĻŋāϟāĻŋ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύ (nullability annotations) āĻ›āĻžā§œāĻžāχ āϰāĻŋāϞāĻŋāϜ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āϝāĻž āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āĻ…ā§āϝāĻžāϏāĻžāϰāĻļāύ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻŦāĻž āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ­ā§āϝāĻžāϞ⧁āϗ⧁āϞ⧋ null āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āĻ•āĻŋāύāĻž āϤāĻž āύāĻŋāϝāĻŧ⧇ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāϤ⧇ āĻŦāĻžāĻ§ā§āϝ āĻ•āϰāϤāĨ¤ JUnit 6 āϤāĻžāϰ āĻĒ⧁āϰ⧋ āĻŽāĻĄāĻŋāωāϞ āϜ⧁āĻĄāĻŧ⧇ JSpecify āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āϛ⧇: @NullMarked āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύāϟāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āϏāĻŽāĻ¸ā§āϤ āφāύāĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻŸā§‡āĻĄ āϟāĻžāχāĻĒāϕ⧇ āύāύ-āύāĻžāϞ āĻ•āϰ⧇ āϤ⧋āϞ⧇ āĻāĻŦāĻ‚ @Nullable āĻŦā§āϝāϤāĻŋāĻ•ā§āϰāĻŽāϗ⧁āϞ⧋āϕ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰ⧇āĨ¤ Assertions āĻ•ā§āϞāĻžāϏ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ assertNull(@Nullable Object actual) āĻāĻŦāĻ‚ fail(@Nullable String message)-āĻāϰ āĻŽāϤ⧋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞ⧋āϕ⧇ āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āϟ āĻ•āϰ⧇, āϤāĻžāχ IDEs āĻāĻŦāĻ‚ NullAway āĻ“ Error Prone-āĻāϰ āĻŽāϤ⧋ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻ…ā§āϝāĻžāύāĻžāϞāĻžāχāϜāĻžāϰāϗ⧁āϞ⧋ āϰāĻžāύāϟāĻžāχāĻŽā§‡āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻ•āĻŽā§āĻĒāĻžāχāϞ āϟāĻžāχāĻŽā§‡ null-āĻāϰ āϭ⧁āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϧāϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +whyModernWins: +- icon: "📜" + title: āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āύāĻŸā§āĻ°ā§āϝāĻžāĻ•ā§āϟ (Explicit Contracts) + desc: JUnit 6 āĻŽāĻĄāĻŋāωāϞ⧇ @NullMarked āĻ…ā§āϝāĻžāύ⧋āĻŸā§‡āĻļāύāϟāĻŋ API-āϤ⧇ āϏāϰāĻžāϏāϰāĻŋ null āϏ⧇āĻŽāĻžāĻ¨ā§āϟāĻŋāĻ•ā§āϏ (semantics) āύāĻĨāĻŋāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇ – āϏ⧋āĻ°ā§āϏ-āϰāĻŋāĻĄāĻŋāĻ‚ā§Ÿā§‡āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "đŸ›Ąī¸" + title: āĻ•āĻŽā§āĻĒāĻžāχāϞ-āϟāĻžāχāĻŽ āϏ⧇āĻĢāϟāĻŋ + desc: IDEs āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāύāĻžāϞāĻžāχāϜāĻžāϰāϗ⧁āϞ⧋ null āĻĒāĻžāϏ āĻ•āϰāĻž āĻšāϞ⧇ āĻ“āϝāĻŧāĻžāĻ°ā§āύāĻŋāĻ‚ āĻĻā§‡ā§Ÿ āϝ⧇āĻ–āĻžāύ⧇ āύāύ-āύāĻžāϞ āφāĻļāĻž āĻ•āϰāĻž āĻšāϝāĻŧ, āϝāĻž āĻŸā§‡āĻ¸ā§āϟ āϰāĻžāύ āĻ•āϰāĻžāϰ āφāϗ⧇āχ āĻŦāĻžāĻ— āϧāϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ +- icon: "🌐" + title: āχāϕ⧋āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ + desc: JSpecify Spring, Guava āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĻā§āĻŦāĻžāϰāĻž āĻ—ā§ƒāĻšā§€āϤ āĻšāϝāĻŧ⧇āϛ⧇ – āφāĻĒāύāĻžāϰ āĻĒ⧁āϰ⧋ āĻ¸ā§āĻŸā§āϝāĻžāĻ• āϜ⧁āĻĄāĻŧ⧇ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖ null āϏ⧇āĻŽāĻžāĻ¨ā§āϟāĻŋāĻ•ā§āϏāĨ¤ +support: + description: JUnit 6.0 āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ (āĻ…āĻ•ā§āĻŸā§‹āĻŦāϰ 2025, Java 17+ āĻĒā§āϰāϝāĻŧā§‹āϜāύ) \ No newline at end of file diff --git a/translations/content/bn/tooling/multi-file-source.yaml b/translations/content/bn/tooling/multi-file-source.yaml new file mode 100644 index 0000000..8b9df27 --- /dev/null +++ b/translations/content/bn/tooling/multi-file-source.yaml @@ -0,0 +1,18 @@ +--- +title: āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻĢāĻžāχāϞ āϏ⧋āĻ°ā§āϏ āϞāĻžā§āϚāĻžāϰ (Multi-file source launcher) +oldApproach: āĻĒā§āϰāĻĨāĻŽā§‡ āϏāĻŦ āĻ•āĻŽā§āĻĒāĻžāχāϞ āĻ•āϰ⧁āύ +modernApproach: āϏ⧋āĻ°ā§āϏ āϞāĻžā§āϚāĻžāϰ +summary: āĻāĻ•ā§āϏāĻĒā§āϞāĻŋāϏāĻŋāϟ āĻ•āĻŽā§āĻĒāĻžāχāϞ āĻ¸ā§āĻŸā§‡āĻĒ (explicit compile step) āĻ›āĻžā§œāĻžāχ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻĢāĻžāχāϞ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϞāĻžā§āϚ āĻ•āϰ⧁āύāĨ¤ +explanation: Java 22+ āĻāĻ•āϟāĻŋ .java āĻĢāĻžāχāϞ āĻĨ⧇āϕ⧇ āϞāĻžā§āϚ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏāĻĄ āϏ⧋āĻ°ā§āϏ āĻĢāĻžāχāϞāϗ⧁āϞ⧋āϕ⧇ (referenced source files) āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ•āĻŽā§āĻĒāĻžāχāϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϟāĻŋ Maven āĻŦāĻž Gradle āĻāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻ›āĻžāĻĄāĻŧāĻžāχ āϛ⧋āϟ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻĢāĻžāχāϞ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāϗ⧁āϞ⧋āϕ⧇ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āĻŽāϤ⧋ āϚāĻžāϞāĻžāύ⧋ āϏāĻšāϜ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ +whyModernWins: +- icon: "🚀" + title: āϜāĻŋāϰ⧋ āϏ⧇āϟāφāĻĒ + desc: āϛ⧋āϟ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻĢāĻžāχāϞ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āϕ⧋āύ⧋ āĻŦāĻŋāĻ˛ā§āĻĄ āϟ⧁āϞ⧇āϰ (build tool) āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +- icon: "🔗" + title: āĻ…āĻŸā§‹-āϰāĻŋāϜāϞāĻ­ (Auto-resolve) + desc: āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏāĻĄ āĻ•ā§āϞāĻžāϏāϗ⧁āϞ⧋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϖ⧁āρāĻœā§‡ āĻŦ⧇āϰ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻ•āĻŽā§āĻĒāĻžāχāϞ āĻ•āϰ⧇āĨ¤ +- icon: "📝" + title: āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ-āĻāϰ āĻŽāϤ⧋ + desc: āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻĢāĻžāχāϞ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāϗ⧁āϞ⧋āϕ⧇ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āĻŽāϤ⧋ āϚāĻžāϞāĻžāύāĨ¤ +support: + description: JDK 22 (āĻŽāĻžāĻ°ā§āϚ 2024) āĻĨ⧇āϕ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/content/bn/tooling/single-file-execution.yaml b/translations/content/bn/tooling/single-file-execution.yaml new file mode 100644 index 0000000..bf4108f --- /dev/null +++ b/translations/content/bn/tooling/single-file-execution.yaml @@ -0,0 +1,18 @@ +--- +title: āϏāĻŋāĻ™ā§āϗ⧇āϞ-āĻĢāĻžāχāϞ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻļāύ (Single-file execution) +oldApproach: āϟ⧁-āĻ¸ā§āĻŸā§‡āĻĒ āĻ•āĻŽā§āĻĒāĻžāχāϞ (Two-Step Compile) +modernApproach: āĻĄāĻŋāϰ⧇āĻ•ā§āϟ āϞāĻžā§āϚ +summary: javac āĻ›āĻžā§œāĻžāχ āϏāĻŋāĻ™ā§āϗ⧇āϞ-āĻĢāĻžāχāϞ āϜāĻžāĻ­āĻž āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϏāϰāĻžāϏāϰāĻŋ āϰāĻžāύ āĻ•āϰ⧁āύāĨ¤ +explanation: āϜāĻžāĻ­āĻž āϞāĻžā§āϚāĻžāϰ āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āϏ⧋āĻ°ā§āϏ āĻĢāĻžāχāϞāϕ⧇ āĻ•āĻŽā§āĻĒāĻžāχāϞ āĻāĻŦāĻ‚ āϰāĻžāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āχāωāύāĻŋāĻ•ā§āϏ⧇ āĻļ⧇āĻŦāĻžāĻ‚ (shebang) āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϏāĻš, āϜāĻžāĻ­āĻž āĻĢāĻžāχāϞāϗ⧁āϞ⧋ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϕ⧋āύ⧋ āφāϞāĻžāĻĻāĻž āĻ•āĻŽā§āĻĒāĻžāχāϞ⧇āĻļāύ āĻ¸ā§āĻŸā§‡āĻĒ⧇āϰ (compilation step) āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχāĨ¤ +whyModernWins: +- icon: "⚡" + title: āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ + desc: `java File.java` āĻāĻ• āĻ¸ā§āĻŸā§‡āĻĒ⧇āχ āĻ•āĻŽā§āĻĒāĻžāχāϞ āĻāĻŦāĻ‚ āϰāĻžāύ āĻ•āϰ⧇āĨ¤ +- icon: "📝" + title: āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ-āĻāϰ āĻŽāϤ⧋ + desc: `.java` āĻĢāĻžāχāϞāϗ⧁āϞ⧋āϕ⧇ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ (executable scripts) āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻāĻ•āϟāĻŋ āĻļ⧇āĻŦāĻžāĻ‚ āϞāĻžāχāύ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ +- icon: "🎓" + title: āĻļ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ āϏāĻšāϜ + desc: āύāϤ⧁āύāϰāĻž āĻŦāĻŋāĻ˛ā§āĻĄ āϟ⧁āϞ āύāĻž āĻļāĻŋāϖ⧇ āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āϕ⧋āĻĄ āϰāĻžāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ +support: + description: JDK 11 (āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ 2018) āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ \ No newline at end of file diff --git a/translations/strings/bn.yaml b/translations/strings/bn.yaml new file mode 100644 index 0000000..9e01756 --- /dev/null +++ b/translations/strings/bn.yaml @@ -0,0 +1,88 @@ +site: + title: java.evolved + tagline: āϜāĻžāĻ­āĻž āĻŦāĻŋāĻ•āĻļāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ“ āĻĒāĻžāϰ⧇āĨ¤ + tagline_line1: āϜāĻžāĻ­āĻž āĻŦāĻŋāĻ•āĻļāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ + tagline_line2: āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ“ āĻĒāĻžāϰ⧇āĨ¤ + description: āφāϧ⧁āύāĻŋāĻ• Java āϕ⧋āĻĄ āĻ¸ā§āύāĻŋāĻĒ⧇āĻŸā§‡āϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ—ā§āϰāĻšāĨ¤ āĻĒ⧁āϰāύ⧋ Java āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ⧇āϰ āĻĒāĻžāĻļ⧇ āϤāĻžāϰ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ, āφāϧ⧁āύāĻŋāĻ• āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĨ¤ + heroSnippetCount: âœĻ {{snippetCount}} āφāϧ⧁āύāĻŋāĻ• āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ ¡ Java 8 → Java 25 + heroOld: āĻĒ⧁āϰāύ⧋ + heroModern: āφāϧ⧁āύāĻŋāĻ• + allComparisons: āϏāĻŦ āϤ⧁āϞāύāĻž + snippetsBadge: '{{snippetCount}} āĻ¸ā§āύāĻŋāĻĒ⧇āϟ' +nav: + allPatterns: ← āϏāĻŦ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ + toggleTheme: āĻĨāĻŋāĻŽ āĻŦāĻĻāϞāĻžāύ + viewOnGitHub: GitHub-āĻ āĻĻ⧇āϖ⧁āύ + selectLanguage: āĻ­āĻžāώāĻž āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧁āύ +breadcrumb: + home: āĻšā§‹āĻŽ +sections: + codeComparison: āϕ⧋āĻĄ āϤ⧁āϞāύāĻž + whyModernWins: āϕ⧇āύ āφāϧ⧁āύāĻŋāĻ• āĻĒāĻĻā§āϧāϤāĻŋ āĻ­āĻžāϞ⧋ + oldApproach: āĻĒ⧁āϰāύ⧋ āĻĒāĻĻā§āϧāϤāĻŋ + modernApproach: āφāϧ⧁āύāĻŋāĻ• āĻĒāĻĻā§āϧāϤāĻŋ + sinceJdk: JDK āĻĨ⧇āϕ⧇ + difficulty: āĻ•āĻ āĻŋāύāϤāĻž + jdkSupport: JDK āϏāĻŽāĻ°ā§āĻĨāύ + howItWorks: āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ + relatedDocs: āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ + relatedPatterns: āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ +filters: + show: 'āĻĻ⧇āĻ–āĻžāύ:' + all: āϏāĻŦ +difficulty: + beginner: āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• + intermediate: āĻŽāĻ§ā§āϝāĻŽ + advanced: āωāĻ¨ā§āύāϤ +search: + placeholder: āĻ¸ā§āύāĻŋāĻĒ⧇āϟ āϖ⧁āρāϜ⧁āύâ€Ļ + noResults: āϕ⧋āύ⧋ āĻĢāϞāĻžāĻĢāϞ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧāύāĻŋāĨ¤ + esc: ESC + searchTrigger: āϖ⧁āρāϜ⧁āύâ€Ļ + navigate: āύ⧇āĻ­āĻŋāϗ⧇āϟ + open: āϖ⧁āϞ⧁āύ + close: āĻŦāĻ¨ā§āϧ āĻ•āϰ⧁āύ +cards: + old: āĻĒ⧁āϰāύ⧋ + modern: āφāϧ⧁āύāĻŋāĻ• + hoverHint: āφāϧ⧁āύāĻŋāĻ• āĻĻ⧇āĻ–āϤ⧇ āĻšā§‹āĻ­āĻžāϰ āĻ•āϰ⧁āύ → + hoverHintRelated: āφāϧ⧁āύāĻŋāĻ• āĻĻ⧇āĻ–āϤ⧇ āĻšā§‹āĻ­āĻžāϰ āĻ•āϰ⧁āύ ➜ + touchHint: 👆 āĻŸā§āϝāĻžāĻĒ āĻŦāĻž āϏ⧋āϝāĻŧāĻžāχāĻĒ āĻ•āϰ⧁āύ → +copy: + copy: āĻ•āĻĒāĻŋ + copied: āĻ•āĻĒāĻŋ āĻšāϝāĻŧ⧇āϛ⧇! +share: + label: āĻļ⧇āϝāĻŧāĻžāϰ +view: + expandAll: āϏāĻŦ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻ•āϰ⧁āύ + collapseAll: āϏāĻŦ āϏāĻ‚āϕ⧁āϚāĻŋāϤ āĻ•āϰ⧁āύ +stats: + modernPatterns: āφāϧ⧁āύāĻŋāĻ• āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ + jdkVersions: āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ JDK āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ + categories: āĻŦāĻŋāĻ­āĻžāĻ— + linesOfPython: āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ Python āϞāĻžāχāύ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻž +footer: + tagline: āϜāĻžāĻ­āĻž āĻŦāĻŋāĻ•āĻļāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ“ āĻĒāĻžāϰ⧇āĨ¤ + madeWith: āĻ­āĻžāϞ⧋āĻŦāĻžāϏāĻž āĻĻāĻŋāϝāĻŧ⧇ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧇āύ + and: āĻāĻŦāĻ‚ + inspiredBy: āĻ…āύ⧁āĻĒā§āϰāĻžāĻŖāĻŋāϤ + viewOnGitHub: GitHub-āĻ āĻĻ⧇āϖ⧁āύ +copilot: + headline: GitHub Copilot āĻĻāĻŋāϝāĻŧ⧇ āφāĻĒāύāĻžāϰ Java āϕ⧋āĻĄāĻŦ⧇āϏ āφāϧ⧁āύāĻŋāĻ• āĻ•āϰ⧁āύāĨ¤ + description: Copilot-āϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϞ⧇āĻ—ā§āϝāĻžāϏāĻŋ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϗ⧁āϞ⧋āϕ⧇ āφāϧ⧁āύāĻŋāĻ• Java-āϤ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻŽāĻžāχāĻ—ā§āϰ⧇āϟ āĻ•āϰ⧁āύāĨ¤ + appModernization: āĻ…ā§āϝāĻžāĻĒ āφāϧ⧁āύāĻŋāϕ⧀āĻ•āϰāĻŖ → + javaGuide: Java āĻ—āĻžāχāĻĄ → +support: + available: āωāĻĒāϞāĻŦā§āϧ + preview: āĻĒā§āϰāĻŋāĻ­āĻŋāω + experimental: āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• +contribute: + button: āĻ…āĻŦāĻĻāĻžāύ āϰāĻžāϖ⧁āύ + codeIssue: āϕ⧋āĻĄ āϏāĻŽāĻ¸ā§āϝāĻž āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧁āύ + translationIssue: āĻ…āύ⧁āĻŦāĻžāĻĻ āϏāĻŽāĻ¸ā§āϝāĻž āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧁āύ + suggestPattern: āύāϤ⧁āύ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦ āĻ•āϰ⧁āύ + seeIssue: āĻāχ āϕ⧋āĻĄā§‡ āϏāĻŽāĻ¸ā§āϝāĻž āĻĻ⧇āĻ–āϛ⧇āύ? + reportIt: āφāĻŽāĻžāĻĻ⧇āϰ āϜāĻžāύāĻžāύāĨ¤ +untranslated: + notice: āĻāχ āĻĒ⧃āĻˇā§āĻ āĻžāϟāĻŋ āĻāĻ–āύ⧋ {{localeName}}-āĻ āĻ…āύ⧁āĻŦāĻžāĻĻ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋāĨ¤ + viewInEnglish: āχāĻ‚āϰ⧇āϜāĻŋāϤ⧇ āĻĻ⧇āϖ⧁āύ From 4917cd7d519461653b0f1ebdd2b158a038a5b049 Mon Sep 17 00:00:00 2001 From: Bazlur Rahman Date: Mon, 2 Mar 2026 06:09:55 -0500 Subject: [PATCH 2/4] fix: add missing Bengali translations and fix icon format --- .../bn/language/text-blocks-for-multiline-strings.yaml | 2 +- translations/strings/bn.yaml | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/translations/content/bn/language/text-blocks-for-multiline-strings.yaml b/translations/content/bn/language/text-blocks-for-multiline-strings.yaml index d78952f..7799135 100644 --- a/translations/content/bn/language/text-blocks-for-multiline-strings.yaml +++ b/translations/content/bn/language/text-blocks-for-multiline-strings.yaml @@ -11,7 +11,7 @@ whyModernWins: - icon: "đŸšĢ" title: āϕ⧋āύ⧋ āĻāĻ¸ā§āϕ⧇āĻĒ āĻšā§‡āϞ (No Escape Hell) āύ⧇āχ desc: āĻāĻŽāĻŦ⧇āĻĄā§‡āĻĄ āϕ⧋āϟāϗ⧁āϞ⧋āϤ⧇ āĻŦā§āϝāĻžāĻ•āĻ¸ā§āĻ˛ā§āϝāĻžāĻļ āĻāĻ¸ā§āϕ⧇āĻĒāĻŋāĻ‚ā§Ÿā§‡āϰ (backslash escaping) āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āύāĻžāĨ¤ -- icon: " 📐" +- icon: "📐" title: āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ āχāĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸā§‡āĻļāύ (Smart Indentation) desc: āĻ•ā§āϞ⧋āϜāĻŋāĻ‚ āĻĄāĻŋāϞāĻŋāĻŽāĻŋāϟāĻžāϰ āĻĒāϜāĻŋāĻļāύ⧇āϰ (closing delimiter position) āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϞāĻŋāĻĄāĻŋāĻ‚ āĻšā§‹āϝāĻŧāĻžāχāϟāĻ¸ā§āĻĒ⧇āϏ (leading whitespace) āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ›āĻžāρāϟāĻž āĻšāϝāĻŧāĨ¤ support: diff --git a/translations/strings/bn.yaml b/translations/strings/bn.yaml index 9e01756..27b03d8 100644 --- a/translations/strings/bn.yaml +++ b/translations/strings/bn.yaml @@ -26,10 +26,14 @@ sections: jdkSupport: JDK āϏāĻŽāĻ°ā§āĻĨāύ howItWorks: āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ relatedDocs: āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ + proof: āĻĒā§āϰāĻŽāĻžāĻŖ + proofLink: āĻĒā§āϰāĻŽāĻžāĻŖ āϏ⧋āĻ°ā§āϏ āĻĻ⧇āϖ⧁āύ relatedPatterns: āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ filters: show: 'āĻĻ⧇āĻ–āĻžāύ:' all: āϏāĻŦ + jdk: 'JDK:' + category: 'āĻŦāĻŋāĻ­āĻžāĻ—:' difficulty: beginner: āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• intermediate: āĻŽāĻ§ā§āϝāĻŽ @@ -48,6 +52,7 @@ cards: hoverHint: āφāϧ⧁āύāĻŋāĻ• āĻĻ⧇āĻ–āϤ⧇ āĻšā§‹āĻ­āĻžāϰ āĻ•āϰ⧁āύ → hoverHintRelated: āφāϧ⧁āύāĻŋāĻ• āĻĻ⧇āĻ–āϤ⧇ āĻšā§‹āĻ­āĻžāϰ āĻ•āϰ⧁āύ ➜ touchHint: 👆 āĻŸā§āϝāĻžāĻĒ āĻŦāĻž āϏ⧋āϝāĻŧāĻžāχāĻĒ āĻ•āϰ⧁āύ → + learnMore: āφāϰāĻ“ āϜāĻžāύ⧁āύ copy: copy: āĻ•āĻĒāĻŋ copied: āĻ•āĻĒāĻŋ āĻšāϝāĻŧ⧇āϛ⧇! From 7ac295b722f79cbf7c2426df14c42be1d6a06571 Mon Sep 17 00:00:00 2001 From: Bazlur Rahman Date: Mon, 2 Mar 2026 06:21:27 -0500 Subject: [PATCH 3/4] feat: Update tagline to new Bengali phrase --- translations/strings/bn.yaml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/translations/strings/bn.yaml b/translations/strings/bn.yaml index 27b03d8..af26ffe 100644 --- a/translations/strings/bn.yaml +++ b/translations/strings/bn.yaml @@ -1,8 +1,6 @@ -site: - title: java.evolved - tagline: āϜāĻžāĻ­āĻž āĻŦāĻŋāĻ•āĻļāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ“ āĻĒāĻžāϰ⧇āĨ¤ - tagline_line1: āϜāĻžāĻ­āĻž āĻŦāĻŋāĻ•āĻļāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ - tagline_line2: āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ“ āĻĒāĻžāϰ⧇āĨ¤ + tagline: āϜāĻžāĻ­āĻžāϤ⧇ āĻāϏ⧇āϛ⧇ āύāϤ⧁āύ āĻĻāĻŋāĻ—āĻ¨ā§āϤ, āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ“ āĻšā§‹āĻ• āĻĒā§āϰāĻžāĻŖāĻŦāĻ¨ā§āϤ + tagline_line1: āϜāĻžāĻ­āĻžāϤ⧇ āĻāϏ⧇āϛ⧇ āύāϤ⧁āύ āĻĻāĻŋāĻ—āĻ¨ā§āϤ, + tagline_line2: āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ“ āĻšā§‹āĻ• āĻĒā§āϰāĻžāĻŖāĻŦāĻ¨ā§āϤāĨ¤ description: āφāϧ⧁āύāĻŋāĻ• Java āϕ⧋āĻĄ āĻ¸ā§āύāĻŋāĻĒ⧇āĻŸā§‡āϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ—ā§āϰāĻšāĨ¤ āĻĒ⧁āϰāύ⧋ Java āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ⧇āϰ āĻĒāĻžāĻļ⧇ āϤāĻžāϰ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ, āφāϧ⧁āύāĻŋāĻ• āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĨ¤ heroSnippetCount: âœĻ {{snippetCount}} āφāϧ⧁āύāĻŋāĻ• āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ ¡ Java 8 → Java 25 heroOld: āĻĒ⧁āϰāύ⧋ @@ -67,7 +65,7 @@ stats: categories: āĻŦāĻŋāĻ­āĻžāĻ— linesOfPython: āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ Python āϞāĻžāχāύ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻž footer: - tagline: āϜāĻžāĻ­āĻž āĻŦāĻŋāĻ•āĻļāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ“ āĻĒāĻžāϰ⧇āĨ¤ + tagline: āϜāĻžāĻ­āĻžāϤ⧇ āĻāϏ⧇āϛ⧇ āύāϤ⧁āύ āĻĻāĻŋāĻ—āĻ¨ā§āϤ, āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ“ āĻšā§‹āĻ• āĻĒā§āϰāĻžāĻŖāĻŦāĻ¨ā§āϤ madeWith: āĻ­āĻžāϞ⧋āĻŦāĻžāϏāĻž āĻĻāĻŋāϝāĻŧ⧇ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧇āύ and: āĻāĻŦāĻ‚ inspiredBy: āĻ…āύ⧁āĻĒā§āϰāĻžāĻŖāĻŋāϤ From 99005bbd62e8e922ac0dc3209d3e10bfbcc56191 Mon Sep 17 00:00:00 2001 From: Bazlur Rahman Date: Mon, 2 Mar 2026 13:06:18 -0500 Subject: [PATCH 4/4] fix: add missing site: mapping to Bengali translations Add top-level site: key to match the structure of other locale files, ensuring template lookups like site.tagline resolve correctly. --- translations/strings/bn.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/translations/strings/bn.yaml b/translations/strings/bn.yaml index af26ffe..76025e3 100644 --- a/translations/strings/bn.yaml +++ b/translations/strings/bn.yaml @@ -1,7 +1,9 @@ +site: + title: java.evolved tagline: āϜāĻžāĻ­āĻžāϤ⧇ āĻāϏ⧇āϛ⧇ āύāϤ⧁āύ āĻĻāĻŋāĻ—āĻ¨ā§āϤ, āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ“ āĻšā§‹āĻ• āĻĒā§āϰāĻžāĻŖāĻŦāĻ¨ā§āϤ tagline_line1: āϜāĻžāĻ­āĻžāϤ⧇ āĻāϏ⧇āϛ⧇ āύāϤ⧁āύ āĻĻāĻŋāĻ—āĻ¨ā§āϤ, tagline_line2: āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ“ āĻšā§‹āĻ• āĻĒā§āϰāĻžāĻŖāĻŦāĻ¨ā§āϤāĨ¤ - description: āφāϧ⧁āύāĻŋāĻ• Java āϕ⧋āĻĄ āĻ¸ā§āύāĻŋāĻĒ⧇āĻŸā§‡āϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ—ā§āϰāĻšāĨ¤ āĻĒ⧁āϰāύ⧋ Java āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ⧇āϰ āĻĒāĻžāĻļ⧇ āϤāĻžāϰ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ, āφāϧ⧁āύāĻŋāĻ• āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĨ¤ + description: āφāϧ⧁āύāĻŋāĻ• āϜāĻžāĻ­āĻž āϕ⧋āĻĄ āϏāĻ‚āĻ•āϞāύāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒ⧁āϰāύ⧋ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻ“ āϤāĻžāϰ āĻĒāϰāĻŋāĻšā§āĻ›āĻ¨ā§āύ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āϤ⧁āϞāύāĻžāĨ¤āĨ¤ heroSnippetCount: âœĻ {{snippetCount}} āφāϧ⧁āύāĻŋāĻ• āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ ¡ Java 8 → Java 25 heroOld: āĻĒ⧁āϰāύ⧋ heroModern: āφāϧ⧁āύāĻŋāĻ•