並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 733件

新着順 人気順

型の検索結果241 - 280 件 / 733件

  • Domain Modeling Made Functional を読んだ - 詩と創作・思索のひろば

    最近フロントエンドに限らず TypeScript を書くことが多くなって、これでそれなりの規模のサーバサイドアプリケーションを書くときどうなるんだろう、と気になって読んでみた。いわゆる普通のオブジェクト指向ではなく関数指向な書き方でいきたいとき、どうするのが好ましいのか、というような観点。 名前的にそのものずばり、という本があったので購入した。日本のウェブを検索してみてもいくらか言及があるので価値はありそうだという判断で、大人なので円安でも強行する。 Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# (English Edition) 作者:Wlaschin, ScottPragmatic BookshelfAmazon 自分は PDF で読みたかったので

      Domain Modeling Made Functional を読んだ - 詩と創作・思索のひろば
    • よわよわエンジニアがTAPL(型システム入門)を読んだら

      こんにちは,sititou70です.私は社会人2年目のよわよわWebフロントエンドエンジニアであり,「数学」とか「証明」とは無縁の人生を送っています. そんな私ですが,がんばって型システム入門(通称:TAPL)という本を読み終えました.全32章,503ページ,牛乳パック1本分の重さがあり, 自立します. 自立する本は大抵やばいです. TAPLの序文を見ると,想定読者は プログラミング言語と型理論を専門とする大学院生および研究者 プログラミング言語の鍵となる概念に触れたい,計算機科学の全分野の大学院生および習熟度の高い学部生1 となっています.本記事では 「そんな本を,学生や専門家でない人間(私)が読んだらどうなるのか」 について書きます.専門的な用語は避けますので,TAPLの雰囲気だけでも感じ取ってもらえたら嬉しいです. どうなったのか 宇宙語が読めるようになった 「型安全」を説明できるよ

        よわよわエンジニアがTAPL(型システム入門)を読んだら
      • TypeScript で string 型の値に自動補完を効かせる: Days on the Moon

        結論 type X = 'foo' | 'bar' | (string & {}); のように、文字列リテラル型の共用体型に | (string & {}) を付け足した型 X を定義します。X 型は任意の文字列を受け付けますが、IDE (Visual Studio Code など) で X 型の値を入力するときには 'foo' と 'bar' が自動補完の候補として提示されます。 解説 単純に type X = 'foo' | 'bar' | string; と書いてしまうと、共用体型の各要素がまとめられて、X は単なる string 型になってしまいます。{} 型は null と undefined を除く任意の値を受け付けるので、string & {} 型は実質的に string 型と同一なのですが、TypeScript 4.4 の時点では同一扱いされず、共用体型の各要素がまとめられ

        • Node.jsのTypeScriptサポートについて

          README.md Node.jsのTypeScriptサポートについて Created: 2024-07-28 Updated: https://gist.github.com/azu/ac5dafbf211ef8b5ecf386930ac75250/revisions Node.jsのTypeScriptサポートに関する議論を時系列でまとめたものです。 Start Issue: Support typescript with --experimental-strip-types · Issue #208 · nodejs/loaders SWCを使ってTypeScriptの型を削除することで、Node.jsのTypeScriptサポートを実現するという提案からスタートした。 最初の懸念としては、Node.jsのLTSは3年保守する必要があるので、依存によってNode.jsのLTSサポー

            Node.jsのTypeScriptサポートについて
          • GraphQL Code Generator で TypeScript の型を自動生成する - クックパッド開発者ブログ

            技術部の外村(@hokaccha)です。 レシピサービスのフロントエンドを Next.js と GraphQL のシステムに置き換えている話 - クックパッド開発者ブログ という記事を書きましたが、この中で詳しく説明しなかった GraphQL のスキーマやクエリから TypeScript の型定義を自動生成する仕組みについて紹介します。 なお、今回紹介したコードは以下で試せます。 https://github.com/hokaccha/graphql-codegen-example-for-techlife GraphQL Code Generator を使った型生成 GraphQL のスキーマから TypeScript の型を生成するためのライブラリはいくつかあります。 Apollo GraphQL Code Generator などが有名どころです。今回はシンプルさや拡張性を考えて G

              GraphQL Code Generator で TypeScript の型を自動生成する - クックパッド開発者ブログ
            • Go プログラミング言語仕様

              Go プログラミング言語仕様 本文書は,The Go Programming Language Specification version 2021/02/10 のなんちゃって日本語訳である. 原文ソース:https://github.com/golang/go/blob/master/doc/go_spec.html 訳文ソース:https://github.com/hiwane/gospec-ja.誤訳・誤字脱字などは issue かプルリクで https://hiwane.github.io/gospec-ja/ 訳注 valid/invalid は有効/無効, legal/illegal は正当/不当と訳す. letter と character を区別するため,letter は英字,character は文字と訳す. signed/unsigned 符号付き,符号なし sourc

              • TypeScriptでコードを書く時に意識していること

                なんだかんだでTypeScriptを業務でも個人開発でも使うようになって3年くらいが経過しました。 TypeScriptは便利ですよね☕️ 世の中的にも、もはやTypeScript以外でフロントエンドの開発を行うことが珍しいくらいの雰囲気になってきたのではないかという感じがします。 最近というかTypeScriptを書き始めてしばらくした今、書き始めた当初とは意識することが変わってきたように感じています。 そういうわけで、今、どんなことを意識しているのかを自分の整理をこめて記載しておこうと思います。 🔥🔥🔥 型を先に定義する ここがかなり気持ちの上で変わった部分です。 TypeScriptで型を書くということは、つまるところ自分が今から記述するコードの設計図を書くということだという意識が強くなりました。 TypeScriptの型推論は非常に強力で、自分でほとんど型を定義しなくても、多

                  TypeScriptでコードを書く時に意識していること
                • TypeScript 4.8で入る型の絞り込みの改善とは

                  皆さんこんにちは。今回はTypeScriptの更新先取りシリーズです。TypeScriptの次のバージョンでは、以下のPRの更新が入ると思われます。もちろんPRの著者はAndersさんです。このPRではTypeScriptの根幹を成す機能の一つである「型の絞り込み」が改善されます。特に、unknown型と{}型の取り扱いが修正されている点が注目に値します。 型引数に対する推論が抱えていた既存の問題 {}型は、「nullとundefined以外の任意の値」という意味を持つ型です。この型は形としては空のオブジェクト型ですが、JavaScriptではnullとundefined以外のプリミティブ(文字列や数値など)に対してもプロパティアクセスをしてもエラーにならないという仕様を考慮して、{}型には文字列や数値などのプリミティブも含まれています。 従来型引数に対する推論が抱えていた問題とは、任意の

                    TypeScript 4.8で入る型の絞り込みの改善とは
                  • TypeScriptプロジェクトにスキーマ駆動開発を持ち込み、より型安全な世界へ - Sansan Tech Blog

                    Bill One Entry*1グループの秋山です。 本題に入る前にお知らせです。9/12 (火) にTypeScriptを活用した型安全なチーム開発をテーマとしたイベントを開催します。 ぜひ、お気軽にご参加ください! sansan.connpass.com 1. はじめに 1-1. スキーマ駆動開発とは 1-2. Testing Trophyとの関係性 2. 構成 2-1. 最初の構成と課題 2-2. 最終的な構成 3. バックエンド 3-1. スキーマから型ファイルを作る 3-2. APIハンドラに型を与える 3-3. バリデーターを追加する 3-4. huskyでスキーマ変更を検知する 4. フロントエンド 4-1. スキーマからAPIクライアントを作る 5. パターンマッチングを持ち込む 6. まとめ 1. はじめに 1-1. スキーマ駆動開発とは 詳しい解説は他の記事に譲り、一言

                      TypeScriptプロジェクトにスキーマ駆動開発を持ち込み、より型安全な世界へ - Sansan Tech Blog
                    • 【TypeScript】超実践的テクニック集【Reactなし】 - Qiita

                      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                        【TypeScript】超実践的テクニック集【Reactなし】 - Qiita
                      • Optics: 「パス」に型を付ければ、データ全体に型を付ける必要はない - Lambdaカクテル

                        あまり知られていない関数型言語のおもしろ概念として、Opticsというものがある。 Opticsとは、オブジェクト指向言語で言うところのSetter/Getterを一種の関数として捉え、いくつかの便利な特性を付与したものの総称だ。この便利な特性によって、Setter/Getter以上のことをパワフルにこなせる。 最も有名なOpticsはLensであり、色々な解説資料が(主にHaskell向けに)出ている。 blog.recruit.co.jp さて、これまでのOpticsを紹介する資料はSetterとGetterとしての側面に注目しがちだったので、じゃあOpticsの何が良いのか、Scalaでやる意義は何か、という側面をこの記事で紹介しようと思う。 Optics -- vs. copyメソッド地獄 Opticsは合成可能である Opticsはボトムアップのアプローチである Opticsがう

                          Optics: 「パス」に型を付ければ、データ全体に型を付ける必要はない - Lambdaカクテル
                        • Goコンパイラのお勉強(1) ~ゼロ幅の型によるメモリ利用の最適化と未定義動作 ~ - Techtouch Developers Blog

                          はじめに メモリアロケーションの回避 ゼロ幅の型(=ゼロサイズの型)とは アドレスの同一性に関する未定義動作 この最適化が有効な場面 1. map 2. chan 3. interface の実装 おわりに 参考文献 はじめに こんにちは。SRE の izzii です。 最近は某フィットネスゲームが習慣だったり、ボルダリングを再開したり、登山シーズンが到来したりと心身ともに調子が良いです。 さてつい先日、Go のコンパイラによる最適化について勉強したまとめを社内で共有したところ、メンバーが面白がってくれたため、細かいところを自分の手で触ってみたり、Go Forum で質問を投稿したりした上で記事にしてみました。Go コンパイラの最適化について知りたいという方だけでなく、Go に慣れた方でも意外と知らない挙動を垣間見ることのできる内容かと思います。 github.com を元にしているのです

                            Goコンパイラのお勉強(1) ~ゼロ幅の型によるメモリ利用の最適化と未定義動作 ~ - Techtouch Developers Blog
                          • マネジメントは経験でもセンスでもない。「型」を学んで実行するのみ。|長村禎庸@EVeM

                            はじめにベンチャー企業でのマネージャー歴約10年ですが、10年経ってベンチャー企業に必要なマネジメントノウハウを体系化して、その体系化したものを人に教える仕事をしてます。 体系的にマネジメントを教わることなく、何かが起こるたびに都度経験から学んだり、上司から薫陶を得たり、書籍で学んだりしながら10年掛けて学びました。そして、それら断片的な学びをつなげて体系化しました。 体系化してみたら何のことはない、これが実行できれば必ず成果は出ます。 そして、経験が浅い新米マネージャーであっても、本マニュアルを元に徹底的にトレーニングされれば実行できるようになります。 マネジメントは経験でもセンスでもなく、業務マニュアルとして「型」化し実行可能です。 (本マニュアルはベンチャーに特化しています。ベンチャーという特殊なシチュエーションにフォーカスしなければ業務マニュアルのような各論ではなく一般論に終始して

                              マネジメントは経験でもセンスでもない。「型」を学んで実行するのみ。|長村禎庸@EVeM
                            • GraphQL Gatewayはフロントエンド開発を幸せにする

                              はじめに マイクロサービスの開発では、サービスが増え続けるバックエンドに対して、フロントエンドは接続先が増えるため、開発効率を下げてしまいます。その対策として、さまざまな設計パターンが存在します。 弊社の開発ではGraphQL Gatewayを用いていますが、そこに至るまでや周辺の技術/アーキテクチャを解説します。 マイクロサービスとフロントエンド マイクロサービスを採用する場合、フロントエンド(ウェブアプリケーション、モバイルアプリケーションなど)は複数のサービスとの連携が必要になることが多いです。各マイクロサービスは通常、API(REST、gRPCなど)を提供し、フロントエンドはこれらのAPIを通じてデータの取得や操作を行います。 API Gateway API Gatewayは、フロントエンドとマイクロサービス間の中間に位置するコンポーネントとして機能し、マイクロサービスアーキテクチ

                                GraphQL Gatewayはフロントエンド開発を幸せにする
                              • JavaScriptに「型」を ~Microsoftが新構文を提案へ/TypeScriptの知見をもとにした「コメントとしての型」

                                  JavaScriptに「型」を ~Microsoftが新構文を提案へ/TypeScriptの知見をもとにした「コメントとしての型」
                                • 「型システムのしくみ」発売のお知らせ - まめめも

                                  「型システムの仕組み - TypeScriptで実装しながら学ぶ型とプログラミング言語」という本を書きました。 「型システムの仕組み - TypeScriptで実装しながら学ぶ型とプログラミング言語」 どんな本? 簡単な型チェッカを自作してみることで、型システムの仕組みを概観する本です。 型チェックする対象の言語はTypeScript(のサブセット言語)、型チェッカを実装するための言語もTypeScriptです。 たとえば、次のようなプログラムが型チェックできるようになります。 const add = (x: number, y: number) => { return x + y; } const a = add(1, 2); const b = a + true; 型チェッカは、それぞれの変数がどういう型を持つか管理しつつ、プログラムの各パートがどういう型になるかを判定していきます。

                                    「型システムのしくみ」発売のお知らせ - まめめも
                                  • フルスクラッチでQEMU型自作エミュレータはどう作る? Rustを使った自作バイナリ変換型シミュレータ

                                    Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。msyksphinz氏は、自作エミュレータで得た学びについて発表しました。全2回。前半は、自作エミュレータの実装とその結果について。 実機が存在しなくてもエミュレータを使えば動きの中身が見える msyksphinz氏(以下、msyksphinz):「Rustで作るフルスクラッチQEMU型エミュレータ」と題して、発表をします。 簡単に自己紹介をさせてください。Twitterだとこういうアカウントでいろいろと活動しています。趣味で「FPGA開発日記」というブログを書いていて、RISC-V、FPGA、CPU、低レイヤプログラミングなど、興味のあるものの記事を書いています。本業はハードウェア開発エンジニアをしていて、汎用CPUの設計などの仕事をしています。 今回はRustとい

                                      フルスクラッチでQEMU型自作エミュレータはどう作る? Rustを使った自作バイナリ変換型シミュレータ
                                    • Goの構造体の使われ方の設計 | フューチャー技術ブログ

                                      Goで構造体を設計する場合、オブジェクト指向的な「型ごとの責務の分担」以外に、「どのように使われるものか」を考える必要があります。 ポインタで扱うのか? 値として扱うのか? 両方許可するのか? 値として扱える場合にimmutable(変更不可能)なオブジェクトとするのか、mutable(変更可能)なオブジェクトとするのか 値として扱える場合にゼロ値での動作を補償するかどうか 他の言語で言うと、C#の構造体とクラスの違い、C++のデフォルトコンストラクタあたりに頭を悩ませたことがある人にはおなじみかもしれませんが、Goでもいくつか考慮が必要になります。 ポインタ型として扱う必要があるケースまず最初に決断できる方針としては、ポインタ型でのみ扱うかどうかです。 内部にスライスやmap、ポインタなどの参照型な要素を持っていれば、基本的にポインタ型でのみ扱う構造体になります。これらの要素を持っていた

                                        Goの構造体の使われ方の設計 | フューチャー技術ブログ
                                      • 自分で型を書く力をつけるTypeScript実践ガイド

                                        そろそろTypeScriptの型をまじめに勉強しなきゃな...ということで、自分の勉強も兼ねて「一歩先の型活用」をまとめてみました。そのためユニオン[1]、インターセクション[2]、ユーティリティ型[3]といった基本的な部分は触れていません。 この投稿では: できる限りTypeScript特有の用語には脚注でハンドブックのリンクを示しています 実際のコードを示すことで「実際に動かして学べるように」しています 可能な限り極端な例を出して分かりやすくなるようにしています ここで示すコードが実務には適さない場合もあります 順序立ててなるべく分かりやすいように説明しています(自分も忘れてしまうので) この投稿を通じてワンランク上の型スキル獲得に結びつけば幸いです。 分岐の網羅性を保証する 値のパターンによって処理を分岐したいとき、そのパターンがユニオン(Union Types)[1:1]によって全

                                          自分で型を書く力をつけるTypeScript実践ガイド
                                        • 関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう

                                          ドメイン駆動設計と関数型プログラミングを組み合わせることで、顧客満足度の向上、開発サイクルの短縮、無駄な作業の削減を実現できます。本書では、ビジネスドメインの例とF#のコードで、ビジネスに焦点を当てた、柔軟で高品質なソフトウェアを構築する方法を紹介します。たとえば、F#の型システムを使って複雑なドメインをモデル化し、読みやすいドキュメントにもなるコードを作成します。また、ビジネスルールをエンコードして「コンパイル時ユニットテスト」を作成することで、不正な状態を表現できないようにして潜在的なバグを排除します。関数型プログラミングの核となる原則を適用することで、実世界の要求をエレガントかつ簡潔にモデル化したソフトウェア設計を実現できます。 ドメイン駆動設計と関数型プログラミングを組み合わせることで、顧客満足度の向上、開発サイクルの短縮、無駄な作業の削減を実現できます。本書では、ビジネスドメイン

                                            関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう
                                          • さようならLodash、TypeScript時代の新星ユーティリティ【Radash】 - コハム

                                            Lodash is dead. Long live Radash. 記事は上記記事を意訳したものです。 ※当ブログでの翻訳記事は元サイト様に許可を得て掲載しています。 Lodashの何が問題なのか? 関数の詳細分析 Lodashの_.get関数 Lodashの_.filter関数 Lodashの_.map関数 コード品質 でも、そのコミュニティは... では、どうするか? try関数 parallel関数 retry関数 counting関数 range関数 list関数 Lodashの何が問題なのか? JavaScriptの動的な能力が欠点ではなく特徴として捉えられていた時代に、Lodashは異なる入力に対して異なる振る舞いをする関数を提供することで、できる限り役立つように作られました。現在では、私たちはより良い方法を知っています。純粋関数、決定論的な振る舞い、関数合成といった関数型のコ

                                              さようならLodash、TypeScript時代の新星ユーティリティ【Radash】 - コハム
                                            • TypeScriptで『関数型ドメインモデリング』をやってみよう - Qiita

                                              この記事は、LIFULL Advent Calendar 2024 21日目の記事になります。 はじめに LIFULLでは、技術負債解消のためにレガシーなコンポーネントをいわゆるCleanArchitecture(以降CA)に置き換えるという取り組みをやっています。 内製ソフトウェアアーキテクチャでレガシーシステムを刷新し技術的負債を削減するまでにやったこと クリーンアーキテクチャで構築したプロダクトが2年経過してみて現状どうなっているかを紹介 新卒エンジニアがリファクタを突貫したClean Architectureプロジェクトの舞台裏 CAはいくつかのレイヤに別れていますが、LIFULLではCAのEnitityをドメイン駆動設計(DDD)で言うところのドメインモデルで実装しています。 この記事は、前に読んでいた関数型ドメインモデリングの「型によるドメインモデリング」がこの実装に応用できる

                                              • Pythonの型を完全に理解するためのtypingモジュール全解説(3.10対応) - Qiita

                                                はじめに Pythonでキチンと型アノテーションを書くのであれば一度は読んでおきたいのがtypingライブラリの公式ドキュメントです。 前回の記事でも読んでくださいと(偉そうに)書いたわけですが、実のところこれは型アノテーションを解釈する側1に向けたドキュメントだったりもするのでアノテを書く側にとっては情報がごちゃごちゃしてるんですよね。加えて未翻訳の箇所もそれなりにあってま~~~~読みにくい。実際に読んでいただいた方々からの評判もすこぶる悪かったです。また 機能は分かったけど結局どんな時に使えばいいのか分からない という致命的なコメントも聞きました。 そこで今回はこれらの不満を解消すべく、公式ドキュメントを一般ユーザー向けに再編し具体的なユースケースを盛り込んだ非公式ドキュメントをご用意しました。 なおPython 3.10は2021年10月04日リリース予定ですが、先駆けてドキュメント

                                                  Pythonの型を完全に理解するためのtypingモジュール全解説(3.10対応) - Qiita
                                                • 誤解されがちなnever型の危険性: 「存在しない」について - Qiita

                                                  never型はTypeScriptに存在する型のひとつで、「存在しない値の型」として説明されることが多いものです。 この説明は正しいのですが、誤解されることがあると感じました。そこで、今回はnever型に関する誤解を解くための記事を用意しました。ぜひこの記事を読んで、never型について正しく理解しているかチェックしてみてください。 never型とは never型は、上述の通り、「存在しない値の型」です。言い換えれば「never型の値は存在しない」ということです。こんな簡潔な説明ですが、never型は奥深い性質を持っています。 まず、「never型の値は存在しない」というのがどういうことか理解しましょう。これは、どんな値もnever型には代入できない(never型の値ではない)ということです。このように、never型の変数には、何を代入しようとしても全てエラーになります。

                                                    誤解されがちなnever型の危険性: 「存在しない」について - Qiita
                                                  • ElasticsearchでLIKE検索のような部分一致検索を高速に実現する方法 - Taste of Tech Topics

                                                    この記事は Elastic Stack (Elasticsearch) - Qiita Advent Calendar 2024 - Qiitaの11日目の記事です。 はじめまして。テクニカルコンサルタントの江見と申します。 普段はElasticsearchに関するコンサルティング業務に携わっております。 業務の中で、RDB(MySQLやPostgreSQLなど)の検索機能に関する課題として、「LIKE検索の速度が遅い」という声を多くいただきます。 特に、大量のデータを扱うシステムでは、LIKE検索が原因でパフォーマンスが低下し、検索レスポンスの遅延が問題となることが少なくありません。その解決策として、RDBからElasticsearchへの移行を検討されるケースが増えています。 Elasticsearchは、高速で柔軟な全文検索が可能な強力な検索エンジンです。ただし、その性能を十分に引き

                                                      ElasticsearchでLIKE検索のような部分一致検索を高速に実現する方法 - Taste of Tech Topics
                                                    • 型を少し工夫して、より安全なコードへ - エムスリーテックブログ

                                                      こんにちは、デジスマチームでエンジニアをやっている堀田です。 これまで、TypeScriptの型で色々試したことがあります。 2年前: TSの型で麻雀の点数計算 最近: 型で足し算 遊ぶことの方が多かったですが、先日M3 TechTalkで実用的かも?と思える話をしました。 そこでは、3つの場面を想定して、それぞれの場面でより安全なコードを書くための型定義を提案しました。 この記事では、その時の話をまとめて紹介します。 1. key? 2. ログ送信 Rest parameters with tuple types Function Overloadsでも実現可能 3. 画面遷移パス生成 まとめ We are hiring!! 1. key? 早速、1つ目の場面です。 ここでは、「パラメータを受け取って、その値によって生成か更新か挙動が変わる」以下のような関数を扱うことを考えます。 fun

                                                        型を少し工夫して、より安全なコードへ - エムスリーテックブログ
                                                      • TypeScriptは10年でこんなに進化しました

                                                        本記事は、TechFeed Experts Night#11 〜 JavaScript/TypeScript最前線のセッション書き起こし記事になります。 イベントページのタイムテーブルから、その他のセッションに関する記事もお読み頂けますので、一度アクセスしてみてください。 本セッションの登壇者 セッション動画 クレスウェア株式会社の奥野賢太郎です。私はTypeScriptが登場してすぐの2013年初頭から使っていますので、TypeScript歴はちょうど10年になります。今回はこの10年間のTypeScriptの進化について各バージョンで追加された機能や進化の傾向を振り返りつつ、今後のTypeScriptの学習/キャッチアップ方法についてもご紹介します。 TypeScriptは10歳 - 過去を振り返る まずはTypeScriptの誕生から現在まで、過去10年間の各バージョンで追加された機

                                                          TypeScriptは10年でこんなに進化しました
                                                        • 「パパ、どうして技術記事を書くの?」無職やめ太郎が関西型言語でアウトプットを続ける理由 - Findy Engineer Lab

                                                          無職やめ太郎(@Yametaro1983) さんは、株式会社ゆめみに所属するエンジニアです。エンジニアコミュニティサービス「Qiita」にて、関西型言語(関西弁)を駆使した文体で記事を執筆・投稿しており、多くの読者からの人気を集めています。 Findy Engineer Lab編集部はそんなやめ太郎さんに「普段どおりのポップな文体で、ご自身のキャリアを振り返る記事を書いてください」とリクエストしてみました。知られざる「やめ太郎さんが技術記事を書き続ける理由」とは? とある休日 娘「ねぇ、パパ?」 ワイ「なんや?娘ちゃん」 娘「パパはどうして、関西弁のコントみたいな記事をQiitaに書くの?」 ワイ「コント・・・?」 ワイ「ああ、関西型言語による技術記事のことやな」 娘「なんでもいいけど、あの関西弁の会話調の記事を書き始めたきっかけを知りたいな〜と思って」 ワイ「うーん、それはなぁ」 きっか

                                                            「パパ、どうして技術記事を書くの?」無職やめ太郎が関西型言語でアウトプットを続ける理由 - Findy Engineer Lab
                                                          • ウェブエンジニアでもWasmを使いたい! アフタートーク

                                                            フロントエンドカンファレンス北海道 2024にて「ウェブエンジニアでもWasmを使いたい!」というタイトルで20分のトークを行いました. 当日のトークでは,WebAssemblyの特徴に触れつつ,特殊な用途[1]以外でWebAssemblyをどのように活用できそうか,実際にAssemblyScriptのコードを例に紹介しました. AssemblyScriptはTypeScriptをWebAssemblyにコンパイルできる言語として紹介しましたが,より正確にはTypeScriptと同じ構文を持つ言語をWebAssemblyにコンパイルする言語という方が正しいかもしれません. これはTypeScriptにはない構文などをAssemblyScriptでサポートしているという話ではなく,TypeScriptの型推論などの言語機能を活用してAssemblyScriptのコードを書くことができるように

                                                              ウェブエンジニアでもWasmを使いたい! アフタートーク
                                                            • SQLite のおもしろ仕様 (1) : データ型 - kawasin73のブログ

                                                              型は型、どうもかわしんです。SQLite では型は絶対ではなく、あくまでも尊重です。信用しすぎると裏切られます。 最近 Rust で SQLite をフルスクラッチで再実装しています。 github.com なるべく本家の SQLite と compatible にするために SQLite のドキュメントやコードを読んで挙動を理解しながら作っています。これを作ることになった経緯はこの記事で紹介していますが、その過程でいろいろ知らなかった面白い仕様や実装があったので紹介していきたいと思います。今回はその第一弾です。 kawasin73.hatenablog.com データ型と Type Affinity SQLite のドキュメントの中で、今の所一番面白いのがこれです。 www.sqlite.org まず、SQLite の内部的には 5 つのデータ型しかありません。 NULL INTEGER

                                                                SQLite のおもしろ仕様 (1) : データ型 - kawasin73のブログ
                                                              • "型"のあるRailsアプリケーション開発 / Typed Rails application development

                                                                Rubyセミナー 東京 https://www.ruby.or.jp/ja/news/20240702

                                                                  "型"のあるRailsアプリケーション開発 / Typed Rails application development
                                                                • 巨大なタスクに圧倒されそうな時は“分割統治”で征服せよ ゴールまで走り続けるために有効な考え方 | ログミーBusiness

                                                                  技育祭は「技術者を育てる」ことを目的としたエンジニアを目指す学生のための日本最大のオンラインカンファレンスです。「技育祭2023【春】」に登壇したのは、Ruby開発者のまつもとゆきひろ氏。プログラミングの体験の中で実感した、ことわざや格言について話しました。全4回。3回目は、「分割統治」について。前回はこちら。 大きな問題も分割すればなんとかなるまつもとゆきひろ氏:次のことわざにいきましょうね。4番目は、これもことわざじゃないと言われちゃうんですが、「分割統治」という言葉です。英語だと「Divide and Conquer」。「分割して征服せよ」という感じです。大きな問題もね、分割すればなんとかなるというやつですね。 (スライドを示して)これは最近見た漫画です。巨大なタスクが存在して、圧倒されそうな気持ちになった時には、タスクを取り上げて細かく分解すると、細かく分解されたタスクは無視しやす

                                                                    巨大なタスクに圧倒されそうな時は“分割統治”で征服せよ ゴールまで走り続けるために有効な考え方 | ログミーBusiness
                                                                  • フロントエンドメンバーのTS型力向上を狙ったtype-challenges活用術 - HRBrain Blog

                                                                    どうも、こんにちは。HRBrain でフロントエンドエンジニアをやってます。ちゃんかつです。 この前初めて代々木公園に行ったのですが、めちゃくちゃ広いですね。自然がいっぱいで気持ちが良かったです。 さて、HRBrain では今年の 6 月から、毎週月曜日に「type-challenges」を用いて社員の TypeScript (以下 TS) の型表現の向上を図っています。 この記事では、HRBrain ではなぜ type-challenges を解く時間を設けているのか、また、type-challenges への取り組み方を紹介します。 なぜ type-challenges を利用するのか いろいろ理由があるのですが、「解答がなるべく簡単にできる」が一番大きな理由です。 Typescript Playgroundで解答することが出来て環境構築の手間は不要、そして、type-challeng

                                                                      フロントエンドメンバーのTS型力向上を狙ったtype-challenges活用術 - HRBrain Blog
                                                                    • OpenAPI + Zod で型安全な API クライアント出力

                                                                      import { asApi, Zodios } from '@zodios/core' import { z } from 'zod' const vR1x0k5qaLk = z.object({ id: z.number(), name: z.string() }).partial() const v8JbFEq2fUl = z.object({ id: z.number().optional(), name: z.string(), category: vR1x0k5qaLk.optional(), photoUrls: z.array(z.string()), tags: z.array(vR1x0k5qaLk).optional(), status: z.enum(['available', 'pending', 'sold']).optional(), }) const vlh

                                                                        OpenAPI + Zod で型安全な API クライアント出力
                                                                      • インターフェースと型クラスの違いを考える

                                                                        この記事では、JavaライクなインターフェースとHaskellライクな型クラスを比較します。どちらも、複数の異なる型を統一的に扱うための仕組みです。 インターフェース インターフェースはご存知の方も多いと思いますが、コード例を載せておきます。 // インターフェースの定義 interface Greetable { String greet(); } // 実装の例1 class Hello implements Greetable { String message; Hello(String m) { this.message = m; } public String greet() { return "Hello " + message + "!"; } } // 実装の例2 class Goodbye implements Greetable { public String gree

                                                                          インターフェースと型クラスの違いを考える
                                                                        • 祝・正式リリース!5つのテーマで理解する Nuxt3 の魅力

                                                                          11月16日、Nuxt 3 の初のstable版となる 3.0 がついに正式リリースされました! Public Beta版が公開されてから約1年、RC版で様々な改善と機能追加が行われてきましたが、待望の安定版の登場です。 個人的にこの1年いろいろな機能を試してみた感覚として、Nuxt 3 はあらゆるフロントエンド開発者にオススメできる、非常に使いやすくて優れたフレームワークだと思っています。 Nuxt 3 は非常に多機能かつ巨大なフレームワークであり、「何が優れているのか」を一言で説明するのはなかなか難しいのですが、大きく5つのテーマに分けてその魅力を整理してみました。 まず冒頭に、テーマごとの「最低限これだけ知ってもらいたい!」という要約を載せてから、細かいポイントを解説していきます。 まずは忙しい人向けの要約だけでも読んでもらって、興味が出てきた方は続きを読んで頂ければ嬉しいです! N

                                                                            祝・正式リリース!5つのテーマで理解する Nuxt3 の魅力
                                                                          • TypeScript のエラーハンドリングを考える - Qiita

                                                                            何番煎じかわかりませんが TypeScript でのエラーハンドリングについて考えてみたいと思います。 この記事で扱う TypeScript のバージョンは 4.3 です。 エラーを型安全に扱いたい TypeScript を書いていれば誰もが一度はぶつかる問題ではないでしょうか。 TypeScript では catch した例外は any として扱われます。 これは JavaScript の仕様上どんな値でも throw できてしまうため仕方のないことなのですが、せっかく型安全性を手に入れるために TypeScript を使っているのに any をハンドリングしなければならないのは苦痛です。 次のように例外を throw し得る関数 foo() のエラーハンドリングを考えてみます。 e は any なので、プロパティにアクセスしようにも危険性が伴います。 そこで型アノテーションを使用して

                                                                              TypeScript のエラーハンドリングを考える - Qiita
                                                                            • ユーザー定義型ガード、asで書くかanyで書くか - uhyo/blog

                                                                              TypeScriptでユーザー定義型ガードを定義する場合、引数をany型にして中を自由に書く方法と引数をunknown型にして中でasを駆使して書く方法があります。この記事では両者を比較考察します。結論としては、unknownとasを使うのが型安全性の面からおすすめです。また、うまく関数を分割することでasを消すことも可能で、これも有効です。 ユーザー定義型ガードとはTypeScriptのユーザー定義型ガードとは、型の絞り込み (type narrowing) に使うことができる関数です。ユーザー定義型ガードは返り値が引数名 is 型のような形の型述語 (type predicate) になっています1。このような関数は真偽値を返り値として返し、trueを返すならば引数名が型であることを表します。 例えば、与えられた値がstring | number型かどうか調べるユーザー定義型ガードは次

                                                                                ユーザー定義型ガード、asで書くかanyで書くか - uhyo/blog
                                                                              • 「プロを目指す人のためのTypeScript入門」読書感想

                                                                                @uhyo さんのTS本ということで読んでいます。 一応入門書という位置づけなので、社内での育成に活用したい目線。 とはいえ自分でも学べるところ多そう、特にTSのd.tsみたいなモジュールまわり理解弱いので… 全体的な感想 4章(関数)、6章(高度な型)が特によかった。 (5章が入ってないのは自分がクラス使わないからなので、使う人だったら5章も入ってると思う) 自分も何年かフロントエンドエンジニアとしてやっているのでさすがにだいたいは知っている内容のおさらいになったけど、それでもふわっとした理解が適切に言語化だったり、コーナーケースの知らない挙動など発見は沢山あった。 特に育成には有用だなと思った。6章の内容は理論と実践の話のバランスが良く、レベル的にもそれなりにTS書いてる人でも知らないこと全然ありそうな内容だったので、自分のチームのメンバーにも少なくとも6章は読んでもらいたい。勧めます

                                                                                  「プロを目指す人のためのTypeScript入門」読書感想
                                                                                • 一休.com 宿泊管理システムのフロントエンド設計と改善の変遷 - Developers Blog - 一休.com Developers Blog

                                                                                  宿泊の管理システムについて 新しい管理システムについて 開発初期のフロントエンド設計 コンポーネントは4レイヤー方式を採用 UIのコンポーネントライブラリを採用 これ以上の設計、方針は決めなかった 初期ローンチ後の課題 改善した内容 1. コンポーネント設計の見直し ディレクトリ構成の変更 大きくなったコンポーネントの分割 Fragment Colocationを導入してコンポーネントのインターフェースとFragmentを整理 2. 業務処理(composables)の分割 3. 型安全に開発できるように厳しいlint設定に変更 4. 秩序を保てる開発体制、ドキュメントの整備 現在と今後 今後やりたいこと 改善を継続するためのポイント まとめ おわりに 宿泊プロダクト開発部の田中(id:kentana20)です。 このエントリーは一休.com Advent Calendar 2023の14

                                                                                    一休.com 宿泊管理システムのフロントエンド設計と改善の変遷 - Developers Blog - 一休.com Developers Blog

                                                                                  新着記事