並び順

ブックマーク数

期間指定

  • から
  • まで

361 - 400 件 / 710件

新着順 人気順

型の検索結果361 - 400 件 / 710件

  • interfaceとtypeの違い、そして何を使うべきかについて

    始め TSを初めて勉強したときに「typeよりinterfaceを使うように!」というブログをよく見ましたが、業務の時は全部typeで型を定義してました。あれ?と疑念に思ってましたので、記事でお話させていただきます。 1. 型の定義 TSで一番手っ取り早く型を定義できる方法は多分これだと思います。 let level: number = 15; level = 15 level = "十五" //Type 'string' is not assignable to type 'number' このように宣言時の変数に方の注釈をつけることを型アノテーション(Type Annotation)と言います。上の例だけ見たら特に問題なさそうに見えますが、コードが少しでも複雑になったら問題があります。

      interfaceとtypeの違い、そして何を使うべきかについて
    • 「TypeScript の型定義に凝りすぎじゃね?」の反応を眺める - Neo's World

      昨日書いた「TypeScript の型定義に凝りすぎじゃね?」という記事に対して、はてブコメや Twitter でのコメントがいくつかあったので、勝手に取り上げて補足する。勢いで書いた雑文が思いの外見られていて驚いた。みんなどうやってこんな辺鄙なサイト見つけたの?まずは読んでくれてありがとね。 ahuさんはTwitterを使っています 「自分は個人用のでも書き捨てのコードじゃないならTSを使うけど、TSはlintの延長でしかなくて型定義頑張りすぎてコストに見合ってなさそうというのはわかる https://t.co/7OhyTimsdU」 / Twitter TSはlintの延長でしかなくて型定義頑張りすぎてコストに見合ってなさそうというのはわかる TOEIC3点さんはTwitterを使っています 「TypeScript の型定義に凝りすぎじゃね? https://t.co/WuUKv9AJ

      • 『Rust Design Patterns』を翻訳してみました(Idiom 編) - Qiita

        はじめに rust-unofficialというところの出しているRust Design Patternsの日本語訳が見つからなかったため、理解のために翻訳してみました(分からないところは DeepL に頼りました)。 今回は Introduction と Idioms の部分です(デザインパターン・アンチパターン編の翻訳はこちらにあります)。 FFI の部分はよく分からなかったためスキップしています。 不慣れなため翻訳間違いなどある可能性が高いです(教えていただきたいです)。 以下から本文です。 Introduction デザインパターン プログラムを開発するとき、私たちは多くの問題を解決しなければなりません。プログラムは問題の解決方法と見ることができます。また、プログラムは多くの異なった問題の解決方法の集まりと見ることもできます。これらの解決方法の全てが一緒に大きな問題の解決へと働きかけ

          『Rust Design Patterns』を翻訳してみました(Idiom 編) - Qiita
        • オブジェクト指向プログラミング入門 -- Java object-oriented programming primer

          Javaで学ぶ、オブジェクト指向プログラミングの基礎知識。型とカプセル化が腹落ちすると、びっくりするくらいオブジェクト指向プログラミングがわかようになる/できるようになるRead less

            オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
          • TypeScript の型検査にかかる時間を短縮した話

            こんにちは。ナレッジワークの torii です。 最近、プロジェクトで使用している TypeScript の型検査にかかる時間を 3 割ほど短縮することに成功しました。 参考までにどのようにボトルネックを調査して改善に繋げたのかを書いてみます! きっかけ 改善のきっかけは、たまたまネットを徘徊していて見つけた Zenn 記事でした。 (素晴らしい記事をありがとうございます!) これを読んで「自社のプロダクトでも型検査にかかる時間を短縮できるのでは?」と思い立ち、試してみたところ実際に改善に役立てることができた、というのがこの記事の概要になります。 改善対象 改善対象は、弊社のメインプロダクトであるナレッジワークのフロントエンドです。現在マルチプロダクト化に向けたコード分割に取り組んでいる最中ですが、執筆時点はモノリシックな構成となっています。 改善前の TypeScript ファイルは自動

              TypeScript の型検査にかかる時間を短縮した話
            • 多言語化対応における TypeScript の型定義を通して開発のしやすさについて考えた - SmartHR Tech Blog

              こんにちは、SmartHR でプロダクトエンジニアをしている @nabeliwo です。 今年の9月に SmartHR のログイン後のホーム画面がリニューアルされました。 【9/21更新】新しいホーム画面を公開しました | SmartHR|シェアNo.1のクラウド人事労務ソフト この記事では、新しいホーム画面の実装の中で、開発者体験を損なうことなく多言語化対応を進められるよう、TypeScript の型定義を工夫した話をします。 まだまだ改善の余地がある状態ではあるのですが、私達のチームでの試行錯誤が読んでくれた方の参考になれば幸いです。 SmartHR の多言語化対応 SmartHR の既存のページではすでに WOVN.io というツールを使った多言語化対応が行われていました。 ただ諸々の理由があり1、新しいプロダクトでは自前で翻訳の仕組みを用意していこうとしています。 実際に、Smar

                多言語化対応における TypeScript の型定義を通して開発のしやすさについて考えた - SmartHR Tech Blog
              • Denoのフロントエンド開発の動向【2022年秋】

                半年程前に以下のような記事を書きました。 この半年の間に、Deno本体でnpmパッケージサポートが入るなどいくつか大きな動きがあったため、この記事ではそれらの動向について紹介いたします。 Deno本体でnpmパッケージの読み込みがサポート Deno v1.25でDeno本体にnpmパッケージのサポートが入りました。 以下のように、npm:<パッケージ名>[@<バージョン>]形式のURLを指定することで、Denoからnpmパッケージを直接importすることができます。 deno.land/xなどで公開されているパッケージと同様に、npm:で指定されたnpmパッケージについては、deno runなどのコマンドを実行する際に、npmレジストリから自動的にダウンロードされ、グローバルキャッシュ(DENO_DIR)に保存されます。 TypeScriptサポートについて TypeScriptの型定義

                  Denoのフロントエンド開発の動向【2022年秋】
                • JSDocで型を定義してTypeScriptの恩恵を受ける

                  普段から TypeScript で開発されているほうならば、TypeScript の恩恵を十分に堪能されていることと思います。 特に私は VS Code のインテリセンスには頼りっぱなしでこれがなければまともにコーディングができない体になってしまいました。 しかし時には、TypeScript という概念が存在しない退屈な世界で開発を行わなけらばならない状況はあるでしょう。私はもはやキーボードでタイピングすることすらままなりません。 そんな JavaScript しか利用できない状況で代替手段となるのが、JSDoc です。JSDoc のアノテーションによって型を付与することによって最低限の支援を受けることができます。 @Type @Type タグを使用すると、TypeScript で型をつけるときと同じように型を宣言できます。

                    JSDocで型を定義してTypeScriptの恩恵を受ける
                  • なんで JavaScript ではなく TypeScript を使うのか?

                    この記事の目標 「最終的に JavaScript になるのに、なんでわざわざ TypeScript を使うべきなのか? JavaScript で良くない?」 という質問に答えられるようになる なぜ TypeScript を使うべきなのか? いきなり結論を書きます。 A. 実行時エラーの少ない JavaScript を使いたいから TypeScript で書かれたコードはコンパイルが通らないと JavaScript に変換できません。そのため、生成される JavaScript コードは必ずコンパイルに成功したものです。コレが TypeScript を使っていて一番嬉しいポイントです。 まあ、いきなり結論を書いてもよく分からないと思います。順に話していきます。 型エラーとはなにか TypeScript でコンパイルを通すには、コード上の型エラーを無くす必要があります。 型エラーとは、型システム

                      なんで JavaScript ではなく TypeScript を使うのか?
                    • もうTypeScriptの補助輪を外そう 明日は//@ts-checkを使う

                      ※近所(同じ港区内)のあのIT企業さんからお声をかけていただきました。登壇予定です。 ※某商業誌さんから執筆依頼がありましたが、有料ですと気が引けるのでお断りしました。 Vimで書いている人はもういないから、そろそろTypeScript(自転車の補助輪)を外していこうという話。 Visual Studio Code は下のリンクからインストールできる。これが前提。 VS Code で // @ts-check が利用できる。 ※Denoの話を知らない人は、これを読むと良い。 DenoがTypeScriptの使用をやめる5つの理由 (Denoは、Node.jsの作者であるライアン・ダールによって作成され、V8 JavaScriptエンジン及びRustプログラミング言語に基づいた、JavaScript及びTypeScriptのランタイム環境である。セキュリティと生産性に焦点を当てている) ※T

                        もうTypeScriptの補助輪を外そう 明日は//@ts-checkを使う
                      • typescript-eslint v6 アップデートガイド

                        typescript-eslint v6 リリース! 2023/07/10 に typescript-eslint の v6 がリリースされました。 メジャーバージョンアップということで多くの BreakingChange があるのですが、その中でもReworked Configuration Namesと呼ばれる変更は利用者に大きな影響を与えそうです。 Reworked Configuration Namesはざっくり言うと「config に書くrecommendedのようなルールセットの名前や枠組みが変わるよ」という変更です。 ルールセットの名前だけでなく、含まれるルールや分類自体に変更があるので、設定ファイルを v5 のままアップデートしてしまうと意図したルールセットと異なる設定になってしまいます。 ここでは上記の記事にある変更点を紹介しつつ、なるべく既存の設定のままアップデートする

                          typescript-eslint v6 アップデートガイド
                        • さらなる型安全性を求めて ~ Refinement TypeをScalaで実現する ~

                          SoRの性質が強いBtoBアプリケーションでは、「堅く」作ることを求められる箇所がしばしばあります。 Scalaの型安全性が頼もしく感じられるのは、まさにこのような箇所においてです。 「堅く」作るために、私たちがいま注目しているのが refined と newtype というライブラリです。 この記事では、refinedとnewtypeを使ってScalaの型安全性をさらに引き出すテクニックを紹介します。 Value Class / Tagged Type refined + newtypeの話題に入る前に、これまでにどのようなテクニックが使われてきたかを簡単に振り返りましょう。 ここに、SNSのユーザーアカウントを表現するクラスがあります。 case class User(id: String, email: String, age: Int) val user1 = User("@tod

                            さらなる型安全性を求めて ~ Refinement TypeをScalaで実現する ~
                          • Rubyの静的型検査を利用した開発手法の現状まとめ

                            Leaner 開発チームの黒曜(@kokuyouwind)です。 先週はBurikaigi2022で登壇させていただきました! 今回はリモート開催でしたが、来年は現地でブリしゃぶを食べられると良いですね! Burikaigi ではRBSから始める静的型付け生活と題して、 Ruby の静的型検査の概要や開発手順などについて登壇しました。 入門的な内容ではありますが、今回は発表内容を大まかにまとめた記事をお届けします。 なお記事の構成上、発表内容から一部割愛している話がありますがご容赦ください。[1] Ruby 静的型検査の概要 TypeScript の台頭や Python 3.5 での型注釈記法の導入など、動的型付けの言語においても静的型検査の仕組みを導入する動きが近年活発です。 Ruby においても 2020 年 12 月にリリースされた Ruby 3.0.0 において RBS と Typ

                              Rubyの静的型検査を利用した開発手法の現状まとめ
                            • Ruby の型チェッカーの比較 | Wantedly Engineer Blog

                              はじめにこんにちは、Wantedly の 2021 年サマーインターンに参加した宮下と申します。今回のインターンでは三週間の間 DX (Developer Experience) チームに所属し、Wantedly のコードベースに Ruby の型チェッカーの導入を試みることをテーマにしていました。 インターンの前半では、様々な型チェッカーの性能を調べたり、それぞれの型チェッカーを実際に使ってみることで、開発効率を基準とした比較を行いました。インターンの後半では、現段階では一番実務に適しているだろうと判断した Sorbet に焦点を当て、Wantedly のいくつかのコードベースに実験的に Sorbet を導入した環境を作った型情報をつけていく作業をしていました。 本記事は、主にインターンの前半で調査した、型チェッカーの比較という部分に焦点を当て、文章の形にまとめたものになります。 Ruby

                                Ruby の型チェッカーの比較 | Wantedly Engineer Blog
                              • たった1枚の画像から高品質なアニメーションを作成できる技術が登場、人型のイラストや写真が1枚あれば自由自在に振付を付与できる

                                元となる画像データと「動作」のデータを入力することで元の画像を動作データの通りにアニメーションさせる技術の論文がAlibabaの研究チームから発表されました。「Animate Anyone」と名付けられたこの技術を使用することで、ちらつきの少ない高品質なアニメーションが生成可能です。 Animate Anyone https://humanaigc.github.io/animate-anyone/ 下記のムービーで生成されるアニメーションの品質を確認可能です。 Animate Anyone: Consistent and Controllable Image-to-Video Synthesis for Character Animation - YouTube 今回登場した「Animate Anyone」は、下図左端のような1枚の「元画像」を元に、中央の「動作」データを入力することで右

                                  たった1枚の画像から高品質なアニメーションを作成できる技術が登場、人型のイラストや写真が1枚あれば自由自在に振付を付与できる
                                • OpenAPI のスキーマが変わった時に通知して型など諸々を自動で生成する GitHub Actions

                                  昨今では API のスキーマから型を生成することはフロントエンド界での基本的エンジニア権とされていますが、これはバックエンドとフロントエンドでレポジトリが分かれている場合にややワークフローが煩雑になります。 これを楽にするための GitHub Actions の設定を書いてみたのでご紹介します。 何もない時のワークフロー OpenAPI スキーマを生成する 中身をコピって別レポジトリにはっつける npm run generate:all を実行して諸々を生成する PR 作ってマージ というのをアップデートする度にやる必要があり地味に面倒です。 ので GitHub Actions で 2〜4 を自動化しちゃいましょう。 スキーマから生成して PR を作る Actions を作成 まずはフロント側のレポジトリで実行する Action を作ります。 やっていることは npm run genera

                                    OpenAPI のスキーマが変わった時に通知して型など諸々を自動で生成する GitHub Actions
                                  • Lensを始めとするOpticsがプログラミングをどう変えるか / 複雑なデータのモデリングをサボるには - Lambdaカクテル

                                    仕事でLensを使う機会があった。Lensは複雑で入り組んだデータ構造の読み書きに非常に効果的な手法であるにもかかわらず、関数型プログラマ以外にはあまり知られていないように思える。 そこでこの記事では、Lensとは何なのか、なにが良いのか、具体的にどのようなケースでLensが役立ったか、そしてLensの亜種について紹介する。業務でも使ってます! AIくんが考えるLens 前提条件 Lensとは Lensの使いどころ データをモデリングする場合 (とても つらい) Lensを使う場合: Lensはアクセスパスである Lensと愉快な仲間たち Lensの合成 -- andThenでひっつけよう Lens Law Monocleの便利機能 Lensの自動生成でサボる Focusでもっとサボる Lensがもたらしたもの まとめ あわせて読みたい 前提条件 この記事ではLensを紹介する言語としてS

                                      Lensを始めとするOpticsがプログラミングをどう変えるか / 複雑なデータのモデリングをサボるには - Lambdaカクテル
                                    • いろいろな .config.js で型の補完を効かせる方法まとめ

                                      いろいろな JavaScript 系ライブラリの設定ファイルで型の補完が効くようにするための JSDoc アノテーションまとめです。VSCode で確認しています。 リンクのついていないものは自分で型定義を探したものなので間違っている場合はコメントいただけると助かります。 他のライブラリの情報もコメント大歓迎です!

                                        いろいろな .config.js で型の補完を効かせる方法まとめ
                                      • TypeScript 5.0 で追加された verbatimModuleSyntax とは何か?

                                        // A: そのまま残る import { Foo } from "./foo"; // B: 識別子 `Foo` が削除される import {} from "./foo"; // C: import 文ごと完全に削除される どれになるかは、以下の状態の組み合わせ依存する(他にも条件あるかも)。 そのファイルでFooが値として参照されるか、型として参照されるか、参照されないか Fooがfoo.tsで値として定義されているか、型として定義されているか tsconfig のオプション設定 importsNotUsedAsValues: 値として参照されない import 文を残すかどうか preserveValueImports: 参照されない import 識別子が値なら残す isolatedModules: ファイル単位でトランスパイルする 上記は出力するモジュール形式が ESM の場合

                                          TypeScript 5.0 で追加された verbatimModuleSyntax とは何か?
                                        • WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった

                                          WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった きっかけ(となったtweetの訂正) もう1ヶ月以上も経ってしまったが、こちらのtweetの公約どおり、WebAssembly (Wasm)におけるDOMの操作について知っている限りのことを書こう。 まずこの節の見出しのとおり、上記の発言は大きく間違えている。私はReference Typesがもたらすパフォーマンス的なメリットや、JavaScriptのオブジェクトを直接Wasmで渡すことが(一応)可能になったということを根拠に上記のtweetをした。しかし下記のtweetでも否定されているとおり、この観点は穴だらけなので、実際のところ多くの人が「直接操作できる」と実感できる状態ではないだろう。 詳細は後述するとして、我ながらひどい凡ミスを犯してしまった。JavaScriptのことを十

                                            WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった
                                          • Rust製TypeScriptコンパイラstcの現状と今後 | メルカリエンジニアリング

                                            この記事は、Merpay Tech Openness Month 2023 の2日目の記事です。 メルペイFrontendエンジニアの@togami2864です。普段はPartner Platformというチームで加盟店申込みフォームや審査・管理を行うためのMerchant Supportツールの開発・運用を担当しています。 本記事ではRust製TypeScriptコンパイラであるstcについて筆者の観測範囲での概要、開発状況、課題等を紹介します。なお、内容は全て2023年5月時点のものです。また、本記事の一部は Node学園 41時限目 書籍について で発表したものと重複していることをご了承ください。 概要 stcは2022年10月にオープンソース化されたRust製のTypeScriptコンパイラです。 https://github.com/dudykr/stc 製作者はRust製のトラ

                                              Rust製TypeScriptコンパイラstcの現状と今後 | メルカリエンジニアリング
                                            • 0からScalaを本番導入して感じたこと・考えたこと - k.dev

                                              はじめに 弊社ではScalaを本番環境に導入して大体1年になる。 導入以前に社内的にScalaに関する知識はゼロだった。 Scalaという言語は巷では色々言われているが愛好者とそれ以外の壁が非常に大きな言語のように思える。 ここはコミュニティの努力によって埋められようとしているが、他の言語に比べてまだまだなのが現状である。 弊社でのScala導入経験に関する情報がその壁を取り払う一助になることを祈る。 導入経緯 Railsの運用コスト もともとはプロダクトのバックエンドはRailsで書いていた。 Railsは非常に高速にプロダクトを開発できるのだが、長期的に見るとその高速性よりも運用困難性、堅牢性の欠如が目立つようになってきた。 MVCアーキテクチャは複雑なプロダクトを構成するのにはシンプルすぎた。 特にRailsの中核をなすアクティブレコードモデルのせいで問題の分割が難しかった。 じゃあ

                                                0からScalaを本番導入して感じたこと・考えたこと - k.dev
                                              • PrismaPromise とは何か

                                                はじめに Node.js の TypeScript-friendly な ORM である Prisma についての記事です。Prisma では PrismaPromise 型の値がよく使われており、それについて調べたことと、その設計が素晴らしい点をまとめています。 クエリの実行タイミング 次のような User モデルが定義されているとき、

                                                  PrismaPromise とは何か
                                                • Go言語で最速のJSONデコーダーを作った話

                                                  はじめに こんにちは。Sugawara Yuutaです。今回は高校の休み時間に考え、空いた時間で作ったJSONデコーダーについて紹介したいと思います。 知ってる限りでは、汎用型受け入れ型をとっているデコーダー(つまり、標準パッケージと同じスタイルという意味です)の中では最速です。 モチベーション Go言語で開発を始めて、(Go言語のコミュニティーのスタイルがJavaScriptなどと比べるとなんでも標準ライブラリでやってしまうようなのにも関わらず)サードパーティー製のJSONデコーダーが多く作られていることに驚きました。 しかし、大規模なものから小規模なものまで試してみて、それぞれが必ずしも共通しているとは限らない、たくさんの問題を持っていることに気づきました。それについては下のセクションで詳しく取り上げます。 今までのJSONデコーダーが持つ問題 具体的なライブラリの名前は出さないでおき

                                                    Go言語で最速のJSONデコーダーを作った話
                                                  • 設定0行でNext.jsとNuxt.jsの内部リンクを型安全に取得できる最強ライブラリ「pathpida」

                                                    Qiita TypeScript Advent Calendar 2020 最終日の記事です。 TypeScript製の内部リンク取得ライブラリ「pathpida」 最近ちょっと話題になった frourio と aspida を開発したSolufaです。 Zenn初投稿を記念して、新作ライブラリ「pathpida」を紹介します。 と言っても完全な新作ではなく、初回リリースからもうすぐ1年が経ち月間DL数は1,000を超えています。自分が関わる案件だけで静かに検証を続け、ようやっと今週全面リニューアルして一般告知が出来るようになりました! pathpidaはNext.jsとNuxt.jsそれぞれのルーティング規約に最適化しているので設定不要で型安全に使うことが出来ます。 どんな問題を解決するのか 以下のように/post/1 に遷移するLinkがあるとします。 import Link from

                                                      設定0行でNext.jsとNuxt.jsの内部リンクを型安全に取得できる最強ライブラリ「pathpida」
                                                    • 【TypeScript】配列の型を絞り込むときはflatMapがおすすめ

                                                      こんにちは。 スペースマーケットでフロントエンドエンジニアをしているmizukiです! 今回はタイトルの通り、配列で型を絞る際にflatMapを使うのがおすすめだよ!といった話をします。 配列から特定のデータを排除する 例えば、配列からnullableな値を消したいとします。 その場合は以下のようなコードになります。 const nullableArray: Array<string | null> = ['hoge', null, 'fuga'] const array = nullableArray.filter((data) => { return !!data }) ただ、この場合だと型定義としてはnullが排除されたことを認知できず、変数arrayの型は引き続きArray<string | null>と認識されてしまいます。 isを使って型を絞り込む 先ほどの場合、期待値としては

                                                        【TypeScript】配列の型を絞り込むときはflatMapがおすすめ
                                                      • Rubyの型チェッカーのSorbetを導入しました - freee Developers Hub

                                                        申告チームでテックリードをやらせてもらっている id:nanjakkun です。 freeeではfreee会計をはじめ多くのプロダクトがRuby on Rails(以下Rails)のアプリケーションとして実装されています。 日々の開発の中で、Rubyでも静的な型の解決ができればなあと思うことがあります。 ということで、Rubyの型チェッカーのSorbetをfreee申告に導入してみました。 Sorbet(ソルベ)とは sorbet.org 決済代行サービスのStripeを運営しているStripe社が公開している漸進的型チェッカーです。 ※余談ですがfreeeアプリストアではStripeを決済手段としたアプリの有料販売ができます。 developers.freee.co.jp 有料アプリ販売の準備をする | freee Developers Community 漸進的型付けとは 漸進的型付け

                                                          Rubyの型チェッカーのSorbetを導入しました - freee Developers Hub
                                                        • TypeScriptではNumber.isNaN()よりもisNaN()の方が安全かもしれない

                                                          これまで「グローバルのisNaN()ではなくNumber.isNaN()を使え!」を教義に生きてきたのですが、揺らいできました。 JavaScriptのisNaN()は引数を数値に変換した結果がNaNであるかを判定します。 一方のNumber.isNaN()はES6で提供された関数で、引数がNaN以外の時はtrueを返しません。 console.log(isNaN('hello')); // true console.log(Number.isNaN('hello')); // false Number.isNaN()はより厳密な比較であり、キャストを行わないため余計な混乱を避けられるものとして提供されました。 文字列などを渡した場合はtrueを返さないため、Number.isNaN()に渡す時点であらかじめ数値に変換しておくなど型を意識した操作がアプリケーション側の責務として求められるよ

                                                            TypeScriptではNumber.isNaN()よりもisNaN()の方が安全かもしれない
                                                          • RailsアプリをRBS + Steepで型チェックするまでの手順 - アジャイルSEの憂鬱

                                                            rails new してから steep check が通るまでにやってみた作業をまとめておく。 GitHub コードはGitHubで公開しているので、詳細な手順を知りたい方は参照してください。 github.com 手順 gemを入れる steepとrbs_railsをGemfileに追加する。 # Gemfile group :development do gem 'rbs_rails', require: false gem 'steep', require: false end bundle install を実行する。 $ bundle install rbs_rails のREADMEの手順に従って lib/tasks/rbs.rake を作成する。 # lib/tasks/rbs.rake require 'rbs_rails/rake_task' RbsRails::Rak

                                                              RailsアプリをRBS + Steepで型チェックするまでの手順 - アジャイルSEの憂鬱
                                                            • オブジェクト指向プログラミングと関数型プログラミングの違い

                                                              オブジェクト指向プログラミングと関数型プログラミングの違い:手法、コード例、ユースケースごとに解説 関数型プログラミングモデルの採用を考える開発者は多い。だが、採用するなら、関数型プログラミングモデルとオブジェクト指向のアプローチがどのように異なるかを正確に理解することが重要だ。 プログラミングのパラダイムを決めることは、どのようなアプリケーション開発作業にとっても重要なステップの1つだ。関数型プログラミングとオブジェクト指向プログラミングのどちらを選ぶかは、この2つしか選択肢がないわけではないとしても、今日の多くの開発者が直面する課題の1つになっている。 本稿では、関数型プログラミングとオブジェクト指向プログラミングの主な違いを復習し、両コーディングパラダイムが機能する仕組みを幾つか示し、いずれかを選択する際に最も重要な考慮点を確認する。 オブジェクト指向プログラミングと関数型プログラミ

                                                                オブジェクト指向プログラミングと関数型プログラミングの違い
                                                              • 新米Rustaceanの🌾🦀による🌾🦀のためのRust入門「C++/C#プログラマーでも読めるようになる」

                                                                Rustで簡単なツールを作ってみました。はじめてのTUI(モドキ)のツールです。 このバージョン0.1.0を作ったことで得られた知見をまとめてみます。 長文になってしまったので目次をうまく使ってください。(スマホ画面だと上部の目次をタップしないと表示されないので少し見づらいです。) 「いいね」、「ツイート」、「バッジを贈る」、「コメント」大歓迎です! 作成ツール紹介 みなさん、timeコマンドでコマンドの実行時間を計測しますよね?Rust製のhyperfineというツールがあり、複数回実行して平均を出したり、複数コマンドを比較できたり便利です。 これを見て私はメモリ使用量も計測できたらうれしいなと思ったんです。 そう、このmntimeコマンドを使えば、実行時間とメモリ使用量の平均値が分かるんです! そんなツールですがRustで作った経緯は、最近ターミナル環境を整えました。そのとき、モダンで

                                                                  新米Rustaceanの🌾🦀による🌾🦀のためのRust入門「C++/C#プログラマーでも読めるようになる」
                                                                • YappliがGoでノーコード基盤刷新、創業時のPHPコードが「技術的負債」になった訳

                                                                  プログラミング不要、すなわちノーコードでアプリを開発・運用・分析できるプラットフォームが「Yappli」だ。最近はテレビCMの積極的な出稿で一般への認知度を高めている。導入企業は600社を超え、2022年5月時点でのアプリ数は730弱、アプリの総ダウンロード数は同年1月に1億を超えた。 Yappliを提供するヤプリが創業したのは2013年(当時の社名はファストメディア、現社名は2017年から)。創業時のYappliのサービスは、同社の共同創業者である佐野将史氏(現取締役)がプログラミング言語「PHP」を使ってほぼ独力でつくり上げた。 Yappliのシステムは、大きく「コンテンツ管理システム(CMS)」と「アプリ用API(アプリケーション・プログラミング・インターフェース)サーバー」から構成される。ユーザー企業のアプリ運用担当者は、CMSを使ってアプリのデザインや機能を設定し、この情報がデー

                                                                    YappliがGoでノーコード基盤刷新、創業時のPHPコードが「技術的負債」になった訳
                                                                  • 「アジャイル型価値開発」という言葉をはじめよう

                                                                    この数年は、「探索」と「適応」の必要性をひたすらに訴え、その実践に向けて組織に動いてもらう、そのためのあらゆる支援を行う、ということに取り組んできた。「探索」と「適応」という言葉が決して、伝統的な組織に馴染むわけではないが、他に言いようもなく、この言葉を押し通してきた。 正直なところ、探索適応という概念の普及は端緒についたばかりである(ついていると思いたい)。「探索適応がいかに伝統的な組織の現有ケイパビリティや指向性と合わないか」ということを数々の機会で語ってきたが、その必要性についてはもはや確信の域を超えている。「効率への最適化」に最適化していた組織が、かえって目の前のことに、顧客の声に対応できなくなっている、「非効率での安定化」に至っているこの現状を突破するには? 「探索適応」という手がりは小さな、小さな「希望」になりうる。 探索適応を組織に宿すためには何かしら拠り所が必要だ。そこで、

                                                                      「アジャイル型価値開発」という言葉をはじめよう
                                                                    • GoでDBを使ったアプリを書くときみんなどうしてる? Tonamelはどうしているか晒してみます - KAYAC Engineers' Blog

                                                                      こんにちは。ゲームコミュニティ事業部サーバサイドエンジニアの谷脇です。 この記事はTech KAYAC Advent Calendar 2022の2日目です。 私はTonamelというWebサービスを運営しています。Tonamelでは、GoとPerlを用いてサーバサイドアプリケーションを構築しています。 この記事ではTonamelでのパッケージ構成や、DBを使う際に用いているライブラリについて紹介します。 そもそもTonamelって何 パッケージ構成やは、アプリケーションの特性や、実装の複雑さなども考慮するため、前提として作っているものを説明します。 tonamel.com Tonamelとはeスポーツを始めとした競技の大会を開催するときに用いるプラットフォームです。大会主催者と参加者双方が利用します。 Tonamelの機能説明 この図に挙げているように、『参加者管理』と『トーナメント表』

                                                                        GoでDBを使ったアプリを書くときみんなどうしてる? Tonamelはどうしているか晒してみます - KAYAC Engineers' Blog
                                                                      • デザインからTypeScriptと仲良くなってみる。 - estie inside blog

                                                                        自己紹介 業務委託でestieに参画している@HirokiOmoteです。 estieでは主にデザインとFrontendを担当しています。 過去には、スタートアップの創業フェーズでプロダクトの立ち上げなども行なっていました。 そこでは、Nuxt + Firebaseを採用し、Webアプリの制作に着手。 しかし、プロダクトが成長するにつれ、コードの安全性や可読性の観点からJavaScript…動的型付け言語の限界を感じていました。 そして、静的型付け言語であるTypeScriptを採用することに。 また、Firebase Cloud Functionsを使った機能開発も行うようになり、次第にBackendもTypeScriptを使って書くようになりました。 それが、TypeScriptとの出会いです。 気づけば、すっかりその魅力に取りつかれていました。TypeScriptは楽しい。 そもそも

                                                                          デザインからTypeScriptと仲良くなってみる。 - estie inside blog
                                                                        • スタートアップは静的型付言語しか勝たん

                                                                          序章 静的型付け言語がスタートアップにおける成長戦略にどのように貢献するかを解説する記事です。 静的型付け言語とは 静的型付け言語とは、プログラムの実行前に変数の型が決定され、コンパイル時に型チェックが行われる言語のことです。Java、C#、Rust、TypeScript、Goなどが代表的です。実行前にエラーを発見しやすく、大規模なプロジェクトや長期的なメンテナンスに適しています。 静的型付け言語のメリット エラーの早期発見 静的型付け言語は、コンパイル時に型の不一致や変数の誤用を検出します。これにより、ランタイムエラーが減少し、開発初期段階で問題を発見できるため、時間とコストの節約につながります。 コードの可読性と保守性 型情報がコードに明示されているため、他の開発者がコードを理解しやすくなります。チームが拡大する際に、コードの保守性を高める重要な要素です。 パフォーマンスの最適化 静的

                                                                            スタートアップは静的型付言語しか勝たん
                                                                          • 100%型安全なgolangORM「ent」を使ってみた | フューチャー技術ブログ

                                                                            はじめにgolang ORM連載の2記事目となります。TIGの宮崎将太です。 突然ですがみなさん、O/Rマッパは何を使用していますか? golangだとGORMがデファクトスタンダードの位置を勝ち取りつつあり、当社でも特に理由がない限りはGORMを使用するケースが多い印象です。 今回は新たな可能性としてFacebook社謹製のent/entを検証します。個人的なO/Rマッパ経験としてはRuby on RailsのActiveRecordから始まり、当社謹製のUroboroSQLというO/RマッパからGORMまで割と多めに触れているので、大体どのO/Rマッパでも気になる機能を中心に作りながら検証します。 entとは 公式から引用してくると以下の通りとのこと。 データベーススキーマをグラフ構造として簡単にモデル化 スキーマをプログラムのGoコードとして定義 コード生成に基づく静的型付け データ

                                                                              100%型安全なgolangORM「ent」を使ってみた | フューチャー技術ブログ
                                                                            • 【Python 3.12】型ヒント機能がいつの間にか進化していたので、慌ててキャッチアップする - ABEJA Tech Blog

                                                                              ABEJA でプロダクト開発を行っている平原です。 先日、バックエンドで使っているGo言語のお勉強しようと「go言語 100Tips ありがちなミスを把握し、実装を最適化する」を読んでいました。その中でinterfaceは(パッケージを公開する側ではなく)受け側で定義するべきという記述を見つけてPythonでも同じことできないかと調べていると(PythonではProtocolを使うとうまくいきそうです。)、どうやら型ヒント機能がかなりアップデートされていることに気づき慌てて再入門しました。(3.7, 3.8あたりで止まってました。。) この記事では、公式ドキュメントを見ながら適当にコードを書き散らし、どの機能はどこまで使えるのか試してみたことをまとめてみました。 docs.python.org 環境 Python: 3.12.1 エディタ: Visual Studio Code Pylan

                                                                                【Python 3.12】型ヒント機能がいつの間にか進化していたので、慌ててキャッチアップする - ABEJA Tech Blog
                                                                              • Vitestを使った型テストの始め方

                                                                                WeJS @ 42nd https://wajs.connpass.com/event/293440/

                                                                                  Vitestを使った型テストの始め方
                                                                                • TechFeed Conference 2022 LT「最近の C++ (2022 年)」

                                                                                  TechFeed Conference 2022「最近の C++ (2022 年)」 発表者: https://twitter.com/Reputeless

                                                                                    TechFeed Conference 2022 LT「最近の C++ (2022 年)」

                                                                                  新着記事