タグ

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

  • 結局useMemoはいつ使えばいいの? 僕の決定版 - Qiita

    皆さんこんにちは。筆者の以前の記事では、ReactのuseMemoを無駄に使うことによるレンダリング速度のオーバーヘッドがどれくらいかをベンチマークによって示しました。 それによれば、スマートフォンを想定したとしても、useMemoだけで描画に目に見える影響を与える(16msくらいの遅延を発生させる)には万のオーダーのuseMemoが必要なことが分かります。 速度ではなくuseMemoを使うことによるメモリ消費量の増加を気にする声も聞かれましたが、すみませんが筆者はそこまでメモリクリティカルなアプリをReactで書いたことがなく知見に乏しいため、今回はこの記事の対象外となります。 この結果が出たことでuseMemoをいつ使うのかなどという議論には終止符が打たれたかと思いきや、上記の記事の感想などを見ているとまだ喧々囂々です。 そこで、この記事では筆者の考えを皆さんに共有し、いよいよもってこ

    結局useMemoはいつ使えばいいの? 僕の決定版 - Qiita
    karur4n
    karur4n 2022/01/25
  • Rust初心者殺しの文法10選 - Qiita

    概要 この記事ではRust初心者が驚いたり混乱させられたりするようなRustの文法を10項目集めてみました。 これらの項目は知らないと理解できなかったりコンパイルエラーに悩まされたりする一見厄介なものたちなのですが、そのような直感的でない挙動を敢えてさせているところには重要な意味が込められていることが多いです。 そのため、これらの項目を通してRustが目指しているものや実現したい機能の一部を垣間見ることができると思います。 1. デフォルトの代入がムーブ Rustの最大の特徴が所有権の概念であることは有名ですが、それでもなお初心者殺しになるのがムーブです。 以下のコードがコンパイルエラーになるメジャーな言語は現状Rustくらいしか無いでしょう。 let mut a = vec![1, 2, 3]; let mut b = a; // ここでaの持つベクタの所有権がbにムーブされ、aは無効に

    Rust初心者殺しの文法10選 - Qiita
    karur4n
    karur4n 2021/11/04
  • 【firestoreアンチパターン】RDB思考でfirestoreを使うと危険な4つのケースと対策 - Qiita

    こんにちは。virapture株式会社のもぐめっとです。 最近ユニクロで友達とオソロのメタモンTシャツ買いました。カワイイです。 日はfirestore使ってて辛いよーという声をよく聞いたので、そのままfirestore使っていると危険な理由と対策など4つのアンチパターンとして紹介しようと思います。 1. Join Lover: データをjoinする 目的 RDBではよくあるテーブル同士を結合してデータを取り出すJoinfirestorejoinを用いたいケースというのは特定のドキュメントのデータだけでは表示する要素が足りないので別のドキュメントから取得してなんとかするみたいな感じになると思います。 しかし、firestoreのプロもおっしゃってますが、firestoreへのjoin追加は望みが薄いと思われます。 RDBで重くなってる要因も外部結合や副問い合わせとかガンガン使って重

    【firestoreアンチパターン】RDB思考でfirestoreを使うと危険な4つのケースと対策 - Qiita
    karur4n
    karur4n 2021/10/02
  • B-Treeインデックスの話 - Qiita

    はじめに この記事は株式会社アイスタイルアドベントカレンダーの16日目の記事です。 DBAの@toshifusaがお送りする今日のお話は、RDBMSのインデックスのお話。 今までとは打って変わって地味で基的な話ですがお付き合い下さい。 アイスタイルのデータベース環境 SQL Server、MySQL、PostgreSQLが使われていますが、メインのデータベースはSQL Serverです。 SQL Serverが使われているのって、Web業界では珍しいと思うのですが、創業当時に採用されたデータベースがSQL Serverでした。性能面での問題がほとんど発生しないので、そのまま使い続けています。 こんな疑問がわいた経験ないですか? LIKE検索で先頭に%を指定して後方一致検索をした時や、検索対象カラムに関数を使ったときに、インデックスを使ってくれないのはなぜなのか疑問に思った事無いでしょうか

    B-Treeインデックスの話 - Qiita
    karur4n
    karur4n 2021/09/16
  • 【追記あり】ES2022 Array#at がちょっとおかしい #fix_ecmascript_at - Qiita

    既に Stage 4 になっているので諦めていたんですが、流石に見逃せないかなと思ったので TC39 の Discourse にトピックをたててみました。意見がある方はこちらにお願いします。 https://es.discourse.group/t/fix-at/983 議論に伴って私が実際に欲しかったものをモジュールにして公開してみました。 https://github.com/petamoriken/safe-at それといまいちユーザーからの声が伝わっていない感じがしたのでハッシュタグ #fix_ecmascript_at を用意してみました。協力をよろしくおねがいします。 String#char{At, CodeAt} という存在を忘れてたんですが、この似た名前のメソッドたちが引数を整数に丸めるのに String#at が丸めないのはたしかに変だということに気づいてしまったので、自

    【追記あり】ES2022 Array#at がちょっとおかしい #fix_ecmascript_at - Qiita
    karur4n
    karur4n 2021/09/13
  • SwiftUIの魔法を実現する仕組み (Custom Attributes, Function Builder) - Qiita

    SwiftUIの魔法を実現する仕組み (Custom Attributes, Function Builder)SwiftSwiftUI Introduction WWDC19でSwiftUIが発表されてiOS開発者界隈は騒然となりました。11年あるiOSの歴史のなかでSwiftの発表に次ぐ大きなインパクトのあるリリースだと言っても過言ではないでしょう。内容としては、Flutter, Kotlin Jetpack Composeに次ぐReact-likeなView構成フレームワークなのですが、iOS開発が大幅に効率化することは間違いありません。Flutterの導入なども格的に検討していたので、格投入する前に発表があって正直ほっとしています。 不思議構文 さて、発表を見て、よく訓練されたiOSエンジニアの方はひと目で気がついたかも知れませんが、スライドに写ったVStackを作るところで不

    SwiftUIの魔法を実現する仕組み (Custom Attributes, Function Builder) - Qiita
    karur4n
    karur4n 2021/09/03
  • frontendに「nuxtjs/apollo」、backendに「go+gqlgen」の組み合わせでGraphQLサービスを作る - Qiita

    frontendに「nuxtjs/apollo」、backendに「go+gqlgen」の組み合わせでGraphQLサービスを作るGoGraphQLapolloNuxtgqlgen お題 簡易ToDoアプリ(と言っても、この記事上では単に「ToDoの新規登録」と「登録済みの全ToDoの表示」しか出来ない)を題材として、表題の組み合わせでGraphQL通信ロジックを書くとどんな感じになるかを確認してみる。 ※今回はRDBを使った永続化などはしないで、バックエンドからは固定値を返す。 前提 Nuxt.jsやGoについては、個人ないし会社での開発経験があり、フロント->サーバの接続は(例えば)Axiosなど使ってRESTでやってたけど、GraphQLに変えてみたいという人が対象。 ただ、「そもそもGraphQLとは?」とか「RESTと比べたメリット・デメリットは?」みたいなことは書かない。(既に

    frontendに「nuxtjs/apollo」、backendに「go+gqlgen」の組み合わせでGraphQLサービスを作る - Qiita
    karur4n
    karur4n 2021/09/03
  • 最初から強いやつの特徴 - Qiita

    はじめに どんな仕事でも強い人は存在する。 でも最初から強い人は珍しい。 これは、web 業界に身を置いてみて、信じられないくらいムキムキになっていった人たちを見てきた私が送る こうしたら強くなれるかもしれない?指南書である。もしエンジニア職に興味があるのであれば、一考になるかもしれない。 最初から強いやつの特徴 平日の稼働時間以外も勉強 or 開発する 土日も勉強 or 開発する 公式ドキュメントをちゃんと読む 以上のような当たり前のことは、最初から強い人じゃなくてもやるので特徴に入れません。 1. 読解能力が異常に高い 国語の力です。 これは、ちゃんとドキュメントに書いてあることが理解できると同義です。 そしてこれが当に大事です。 強い人に質問すると必ず「ん? Docs 読んだ?」って聞いてきます。私は (...読んだわ!) って内心思ってますが、それは読んだだけです。内容をちゃんと

    最初から強いやつの特徴 - Qiita
    karur4n
    karur4n 2021/08/31
  • 「.」で起動するgithub.devとGithub Codespacesの違い - Qiita

    昨日、Github Codespacesの使い方記事を書いたのですが、日同じくオープンしたgithub.dev(どうやら VS Code Webと呼ぶらしい)について混同しやすいので、記事にまとめてみました。 結論:実行環境込みか、エディタのみかの違い 最初に結論を書くと、Github CodespacesはVS Code Serverを搭載した仮想マシンがついてくる完全な開発環境です。 github.devは、Codespaceのうちエディタ部分だけを切り出した、ブラウザのみで動くVSCodeエディタです。そのためいくつかの制限があります。 そうそう、github.devは無料、Codespacesはインスタンスのスペックに応じて時間課金される点も違いですね。 制限:devではターミナルが使えない github.devでは、マシンインスタンスがついてこないので、当然ながらターミナルは使

    「.」で起動するgithub.devとGithub Codespacesの違い - Qiita
    karur4n
    karur4n 2021/08/18
  • Vimのレジスタを使う - Qiita

    Vimのレジスタを5秒後に使えるように最小限だけ書く。 レジスタへ登録 ノーマルモード(ESCを連打して戻ったモード)で操作する。

    Vimのレジスタを使う - Qiita
    karur4n
    karur4n 2021/08/17
  • 他言語から来た人がGoを使い始めてすぐハマったこととその答え - Qiita

    環境構築するまでに知りたかったこと Golangの最新バージョンは? 1.16.6 (2020/07/12リリース) Goのインストール方法は? macOS の場合は brew で OK この場合、goのsdkは /usr/local/Cellar/go/<バージョン>/libexec にインストールされます。 IntelliJ IDEA や GoLand にような IDE に「GOROOT」というものの指定を求められたら、このパスを使います。 brew で入らないバージョンの go が必要だったり、いくつかのバージョンを併用したい場合は $ go get golang.org/dl/go1.14.4 $ go1.14.4 download # 1.xx.0 の場合 $ go get golang.org/dl/go1.15 $ go1.15 download # 上記でgo getしたg

    他言語から来た人がGoを使い始めてすぐハマったこととその答え - Qiita
    karur4n
    karur4n 2021/08/10
  • Golandでコード保存時に自動でgo fmtやgometalinterを効かせる様に設定する際のメモ - Qiita

    自動化できることはバンバン自動化してしまおう(参考)ということで、Golandで「command + s」すると、自動で go fmt とかをしてくれる様にする。 以下の流れで設定できる。 Goland > Preferences > Tools > File Watchers > 「+」ボタン > go fmt や gometalinter などを追加(参考画像1を参照) > Apply(参考画像2を参照) > OK 参考画像1 参考画像2 これで、「command + s」すると、自動で go fmt とかをしてくれる様になる。

    Golandでコード保存時に自動でgo fmtやgometalinterを効かせる様に設定する際のメモ - Qiita
    karur4n
    karur4n 2021/08/03
  • 3週間でAWS認定ソリューションアーキテクト-アソシエイト-とったので、勉強法などまとめてみる - Qiita

    はじめに こんにちは。nari(fukubaka0825)と申します。 今回は、およそ3週間くらいで掲題の資格を取得しましたので、その経緯と勉強法などをまとめてみたいと思います。(勉強時間でいうと40時間くらい) 3週間でAWS認定ソリューションアーキテクト-アソシエイト-とったので、勉強法などまとめてみる|Wano Group Developers Blog (こちらであげたものと同じ内容です) ※こちらは2019年3月13日受験時点での内容となります。ご了承ください。 前提 AWS業務未経験 自学でもほぼ未着手(EC2たてたことあるくらい) きっかけ そもそも業務で使いまくっている用語が分からなすぎる 私は、もともとSIの人間で、メインフレームの保守をしているレガシーな部署から、 転職してGoAWSでの開発をするチームに2月からjoinしたところなんですが(寒暖差で風邪ひきそう) 「

    3週間でAWS認定ソリューションアーキテクト-アソシエイト-とったので、勉強法などまとめてみる - Qiita
    karur4n
    karur4n 2021/07/22
  • Next.js v10でTypeScriptを使いつつEmotion v11を使おうとしたら5時間も解決しなかった話 - Qiita

    JSX Pragmaが動かない 事象 インストールの記事などには/** @jsx jsx */という記述が紹介されている しかしそのままだとコンソールエラーが出た 解決策 /** @jsxImportSource @emotion/react */という記述にする CSS Propの詳細な説明のページに記載されている Reactのバージョンが新しくて(v17)JSXのランタイムの方式が違っていたため、従来の記述からは変える必要があった Babelの設定が上手く働かない 前提 新しいJSX Pragmaが動くようにはなったものの、毎回書くのは面倒 Babelの設定をしてJSX Pragmaの記載無しで動くようにしたい 事象 @emotion/babel-preset-css-propを使ってもJSX Pragma無しだと動かなかった 解決策 @emotion/babel-preset-css

    Next.js v10でTypeScriptを使いつつEmotion v11を使おうとしたら5時間も解決しなかった話 - Qiita
    karur4n
    karur4n 2021/03/19
  • 【React】学習コストゼロのステート管理は unreduxed で。 - Qiita

    redux を代表するステート管理ライブラリは学習コストが高めですよね。ライブラリ独自の記法を覚えなくちゃいけないしライブラリ同士の組み合わせ方も考えなければならない。 React hooks の useState や useReducer で宣言するステートがそのまま他のコンポーネントと共有できたら楽だと思いませんか? 普段からコンポーネント単位では使い慣れているであろうフック関数でグローバルステートも管理できれば、ステート管理ライブラリについて学習する必要はないはずです。 そんなライブラリがあるのでしょうか? あります。私が作りました。 unreduxed の紹介 リポジトリ 特徴 軽量 unreduxed は非常に軽量であなたのアプリケーションの負担になりません。ライブラリをビルドした後のjsファイルはたった88行で、 React にのみ依存しているため気兼ねなくインストールできます

    【React】学習コストゼロのステート管理は unreduxed で。 - Qiita
    karur4n
    karur4n 2021/02/05
  • use-context-selectorの紹介 - Qiita

    はじめに 過去の話になりますが、React Redux v6というものがありました。v5ではlegacy contextを使っていたのですが、React v16.3でContext APIが登場したため、それに追従したものです。その頃にはConcurrent Modeの計画もあり(当初はAsync Reactと呼ばれていました)、Context APIをうまく使うことで、Concurrent Modeにおけるある潜在的な問題(Tearingと呼ばれます)を解決できるはずとなりました。それは、Contextにstateを入れて、Reactに更新の伝搬を任せるという方法でした。 しかし、この方法はReact Hooksが登場して困ったことになりました。 Hooksで更新の伝搬を止める方法がなかったのです。React Reduxは止むなくcontextにstoreを入れる方法に戻してv7をリリー

    use-context-selectorの紹介 - Qiita
    karur4n
    karur4n 2021/02/05
  • サーバレスで扱うデータストアとしてS3という選択肢があるらしい - Qiita

    この記事は、ニフティグループ Advent Calendar 2020 最終日の記事です🎄 昨日は、@RPcat さんの 即フォーマットチェックにincronを使う でした。 ファイルの変更や操作を監視してくれるコマンドが用意されていることを知らなかったので、非常に勉強になりました。 はじめに 皆さん、サーバレスアプリケーションを作ろうと考えたときに選択するデータストアとして何を思い浮かべますか? 多くの人が思い浮かべるのは、 Amazon DynamoDB Amazon RDS + Amazon RDS Proxy だと思います。 ただ、DynamoDBを使っているときに「使い慣れているSQLを使いたいなあ」と感じたり、個人でRDSを使うには「金額が高すぎるなあ」と感じることがあると思います。自分がそう感じていました。 そこで、これらの問題を解決する一つの選択肢として Amazon S

    サーバレスで扱うデータストアとしてS3という選択肢があるらしい - Qiita
    karur4n
    karur4n 2020/12/28
  • 結局、Go言語をやめる理由はなかった件 - Qiita

    この記事は Go 2 Advent Calendar 14日目の穴埋め記事です。 はじめに @okdyy75 さんによる Go 5 Advent Calendar 14日目の の記事「だから僕はGo言語を辞めた」 が「ベンチマークっていうのはこうやるんだよ」というのを説明するために反面教師的な意味で良い教材だと思ったので、反証記事を書きたいと思います。 ベンチマークを取りながらコードを改善して、最終的にGoは遅くないからやめる必要はないということ、そして、なぜ遅いという結論になってしまったのかを掘り下げていきたいと思います。 下準備 幸いなことに、ベンチマークのソースコードがGitHubにある ので、こちらを実行しながら問題点を改善していきましょう。 ちゃんとコードが上がっているのは素晴らしいですね! 一方で、元記事には測定環境が明記されていませんでしたので、同じ環境で測定することはできま

    結局、Go言語をやめる理由はなかった件 - Qiita
    karur4n
    karur4n 2020/12/16
  • ライブラリの紹介文でよく見かけるけどいまいち意味が分からない英単語 - Qiita

    ライブラリの紹介ページや GitHub のリポジトリで登場する「割と見るけど意味はよくわからない単語」をまとめてみました 誤りがあればガンガン指摘してもらえると助かります opinionated 意味をググると「[形容詞] 自説を固執する」という謎の和訳が出てきて理解を諦める方もいるんじゃないでしょうか opinionated については色々な記事で紹介されています https://qiita.com/baby-degu/items/7dc4548bf7befc2671f4#opinionated%E3%81%A8un-opinionated https://stackoverflow.com/questions/802050/what-is-opinionated-software プログラミングの文脈に落とし込むと「ライブラリやフレームワークが定義したやり方に利用者(プログラマ)を従わ

    ライブラリの紹介文でよく見かけるけどいまいち意味が分からない英単語 - Qiita
    karur4n
    karur4n 2020/12/13
  • Next.js 4年目の知見:SSRはもう古い、VercelにAPIサーバを置くな - Qiita

    Next.js by Vercel - The React Framework 画像は Next.js サイコー!っていう顔です。 Webフロントエンドエンジニアであれば、「Reactのフレームワーク」と聞いて真っ先に思いつくであろうNext.js。僕は小規模の趣味開発から中規模の業務まで、4年程度Next.jsを使い続けてきました。触りはじめの当時はバージョン4で、”SSR(Server-side Rendering)を提供するReact製フレームワーク”だったものが、執筆時時点の最新バージョン(10.0.1)ではガラッと異なるフレームワークへと進化しています。 この4年間は実務で利用するだけでなく、新しいものや廃止された機能、RFC止まりになった機能など、Next.jsに関する情報を追いかけており、ある程度の知見をためつつも、Next.js並びに開発元のVercelが目指す方向性を何と

    Next.js 4年目の知見:SSRはもう古い、VercelにAPIサーバを置くな - Qiita
    karur4n
    karur4n 2020/11/07