carolina04のブックマーク (933)

  • 【Ruby on Rails】ストロングパラメータとは何か? また記載方法は? - Qiita

    *プログラミング超初学者のため、間違いは指摘頂けると大変ありがたいです。 記事の目的 Ruby on Railsでアプリケーション開発を行う際、何かと出てくるこいつ。 調べてわかった気になっては毎回わかってなくて悩まさせれたので、備忘のためにまとめておくものです 1.ストロングパラメータとは 「パラメータを受け取る際に、指定したキーを持つパラメータしか受けとれない様に制限できるもの」 端的にいうと上記の通りです。目的としてはセキュリティ向上のため、といった所でしょうか。 2.もうちょっと具体的に 「指定したキーを持つ」という制限がないとどうなるのでしょうか。 例えばユーザー登録機能を実装していて、登録時に名前、とメールアドレスを求められたとします。 この場合、こちら側が保存したいのは「userテーブルのnameカラム、emailカラムの情報」なのでしょう。 なのでフォームから送られてきたパ

    【Ruby on Rails】ストロングパラメータとは何か? また記載方法は? - Qiita
    carolina04
    carolina04 2022/12/12
    ストロングパラメータは、セキュリティ向上の観点から受け取るパラメータの種別を指定 require → どのテーブルに関する情報? permit → 受け取りたい値の指定は?何を? merge → 他から追加しときたい値は?どこに何を?
  • Railsを使って、S3にファイルをアップロードする。 - t-sanoブログ

    Railsを使って、S3へのファイル直接アップロードを試している。 最終ゴールはAPIとして、クライアントから画像データを受け取って、S3にアップロードすることである。 今回は、第一ステップとして、RailsからS3へのアップロード実現を目指す。 試している工程をメモしておく。 やりたいこと Railsから画像データをS3にアップロードする。 環境 Rails 5.0.0(APIモード) 早速やってみる やりたいことを満たせそうなgemがいくつかありそうだったが、 今回はcarrierwaveを利用する。 ということで、まずは、Gemfileに下記を追加した。 gem 'carrierwave' gem 'fog-aws' gem 'rmagick' carrierwaveは画像ファイルをアップロードに利用するため。 fog-awsはS3に画像ファイルをアップロードするため。 rmagic

    Railsを使って、S3にファイルをアップロードする。 - t-sanoブログ
    carolina04
    carolina04 2022/12/07
    “fog_publicを利用することで、URLへの直アクセスを制御できる。 デフォルトはtrueらしい。 これがtrueの場合は、アップロードしたオブジェクトのアクセス許可に、 全員ダウンロードができる権限が付与される。 falu”
  • 【初学者向け】Rails mergeメソッド - Qiita

    記事の目的 初学者の為、間違っているところはご指摘頂けると幸いです。 備忘録・アウトプット目的で投稿です。 2021/1/10:追記 Qiita初投稿でチェリーの伊藤さんから記事の間違いを指摘頂きました🙇‍♂️ mergeメソッドとは? ストロングパラメータの設定の最後にでてくるmerge。 def review_params params.require(:review).permit( :memo, :image) .merge(user_id:current_user.id) ←これです end mergeメソッドについて(チェリーより引用) なんだこのメソッドは?とRailsの参考書等(Railsチュートリアル、現場Rails)等で調べるもない。 チェリーをみてみると、メソッドについて説明がなされていた。以下、例文と説明。 mergeメソッドを使うことによって、ハッシュリテ

    【初学者向け】Rails mergeメソッド - Qiita
    carolina04
    carolina04 2022/12/06
    “ユーザから受け取ったparamsにはないけれども、レコード作成時に追加したい値がある場合はmergeメソッドで含めることができる”
  • NestJS を使ってジョブメドレーアカデミーのバックエンド開発をどのように行なっているのか | MEDLEY Developer Portal

    2022-11-30NestJS を使ってジョブメドレーアカデミーのバックエンド開発をどのように行なっているのかはじめにみなさん、こんにちは。エンジニアの山田です。今回はジョブメドレーアカデミー(以下、アカデミー)の開発の皆さんに集まってもらい、TypeScript と NestJS を使ったバックエンド開発をどのように行なっているのかをインタビューしました。 以前、アカデミーがリニューアルした際にチームメンバーにインタビューした note もあるので、未読の方はぜひそちらもご覧いただければと思います。 インタビュイー紹介岸田さんSES 会社で業務システム開発、バングラデシュに支社があるオフショア開発をしている会社でブリッジエンジニアという経験を経て、2019 年メドレー入社。 その後ジョブメドレーで開発をリード。現在はアカデミーのプロダクト責任者を務める。 熊さん2019 年メドレーに

    NestJS を使ってジョブメドレーアカデミーのバックエンド開発をどのように行なっているのか | MEDLEY Developer Portal
  • 型変数 (type variables) | TypeScript入門『サバイバルTypeScript』

    コピー一度変数を定義すれば、あちこちに値を書き写す必要がなくなり、その変数を使ってさまざまな処理をすることができます。 変数という便利な入れ物があるおかげで、繰り返し同じコードを書く必要がなくなったり、より抽象的なコードを書けるようになったりと、さまざまな恩恵を享受できるわけです。 型変数(type variables)は、もうひとつの便利な入れ物です。ただし、入れられるのは「値」ではなく「型」という違いがあります。

    型変数 (type variables) | TypeScript入門『サバイバルTypeScript』
    carolina04
    carolina04 2022/11/29
    “型引数(type arguments)とは、型変数に代入した型のことを言います。次のコードではnumberが型引数です。”
  • JSConf JP 2022 公開資料・Twitterリンクまとめ

    2022/11/26(土)で開催された JSConf JP 2022に関する、現時点での公開資料と Twitter アカウントリンクをまとめました。 よろしければご活用ください。 ※2022/11/28追記 ねぎしさんからいただいたコメントを元に、各講演に時間指定をした YouTube リンクを追記しました。 (時間指定をすると流石に動画埋め込みはできないようだったので、リンクでご容赦ください🙏) はじめに 登壇者名は敬称略させていただいています。 Twitter アカウントについては、ご人が当イベントで登壇されることに言及されている、スライドに記載など、確認できたものを記載しております。 リンクの間違い等ありましたらコメントいただけると助かります🙏 アーカイブ動画 当イベントは、3つのトラックに分かれて講演が行われました。 その3つともアーカイブ動画が残っているので、後から見直すこ

    JSConf JP 2022 公開資料・Twitterリンクまとめ
    carolina04
    carolina04 2022/11/28
    “C 13:30-14:00 React Query 導入と実装ルールについて考える by 株式会社カオナビ”
  • なんとなくでやらないReact.memo戦略

    Reactを使っていると、ふと再レンダリングが気になることがあります。 そこでReactの公式サイトやインターネットを見るわけですが、多く場合useCallbackとReact.memoを使えという旨の記事が確認できると思います👀 それはわかったとして、どういう戦略でこれらを使い不要な再レンダリングを防ぐべきかという考え方についてはあまり載っていなかった気がするので、せっかくなのでまとめておきます。 ところでどうすると再レンダリングを抑止できるか Reactはstateが変わった時、その状態によって必要な箇所を再レンダリングします。 export default function App() { console.log('App'); const [count, updateCount] = useState(0); const handleUpdateCount = () => { u

    なんとなくでやらないReact.memo戦略
    carolina04
    carolina04 2022/11/28
    “memoを後々利用することになった場合propsの比較は普通shallow compareで行われます。つまりオブジェクトで渡ってきても中身まで見ないということです”
  • トップ | Track Training - テクノロジー人材を育成するLMS(学習管理システム)

    LMS(学習管理システム)としての高い機能性や、高品質な教材・テストを備えています。 業界唯一のスキルチェック機能で、パーソナライズドな学習パスを設計できる IT・プログラミング領域に特化した教材で、テクノロジー人材の育成ができる

    トップ | Track Training - テクノロジー人材を育成するLMS(学習管理システム)
  • JavaScript: オブジェクトのプロパティを削除する方法(イミュータブル) - Qiita

    JavaScriptでオブジェクトのプロパティをイミュータブルなやりかたで削除する方法です。 イミュータブルな削除というのは、あるオブジェクトのプロパティを削除するとき、そのオブジェクトを変更するのではなく、削除対象のプロパティが取り除かれたオブジェクトを新たに作ることです。 やりかた destructuring assignment構文を使います。 例えば、a,b,cの3つのプロパティを持ったオブジェクトから、aを削除したい場合、

    JavaScript: オブジェクトのプロパティを削除する方法(イミュータブル) - Qiita
    carolina04
    carolina04 2022/11/26
    “const obj1 = { a: 1, b: 2, c: 3 } destructuring assignment構文に、取り除くaプロパティと、残すそれ以外のプロパティを入れる変数obj2を...を伴って書きます: const {a, ...obj2} = obj1 console.log(obj1, obj2) //=> { a: 1, b: 2, c: 3 } { b: 2, c: 3 } ”
  • commerce/context.tsx at main · vercel/commerce

    carolina04
    carolina04 2022/11/20
    “export const ManagedUIContext: FC<{ children?: ReactNode }> = ({ children, }) => ( <UIProvider> <ThemeProvider>{children}</ThemeProvider> </UIProvider> )”
  • サイドレイズのフォーム | DESIRE TO EVOLUTION「DNS」

    ビッグ3と呼ばれるスクワット、ベンチプレス、デッドリフトの3種目。この3種目を行うだけで、全身のほとんどの筋肉を鍛えることが可能となります。 今回からはビッグ3に追加して行うべき種目について解説していきます。 ■サイドレイズで肩幅を広げよう! ~サイドレイズの正しいフォーム ビッグ3ではあまり強い刺激を受けない場所の一つが、肩の筋肉です。肩の筋肉(三角筋)は大雑把に前部と中部、後部の3つに分けることができます。ベンチプレスでは肩の前部、デッドリフトでは肩の後部がそれなりに刺激されるのですが、肩の中部の筋肉はそれほど負荷がかかりません。 しかし肩の中部の筋肉が発達すれば、肩幅を広くすることができます。 もともと鎖骨が短く、肩幅が狭い人でも、この筋肉を鍛えることで見違えるような肩幅を作ることができるのです。 肩の中部を刺激するためのエクササイズとして代表的なものが、「サイドレイズ」です。まずは

    サイドレイズのフォーム | DESIRE TO EVOLUTION「DNS」
    carolina04
    carolina04 2022/11/20
    “サイドレイズにおいて僧帽筋が働くと、肩そのものが上がってしまいます。ですから鏡をしっかり見ながら、肩が上がっていないことを確認しつつ、サイドレイズを行う”
  • props のバケツリレーって何が悪いんだっけ - fsubal

    #React やってて、props のバケツリレーを何か嫌がる人たまにいるんだけど、自分は props のバケツリレーそのものをそんなに悪いと思ったことがない。 「バケツリレーがつらい」ように見えるコンポーネントの大半はそもそも props の設計がおかしい場合が多く、当の問題はそっちにあると思っている。 たとえば、次のようなバケツリレーはつらいかもしれない。ここでいう Body はサイドバーとしてフォロワーの一覧を表示し、メインコンテンツとしてフィード一覧を表示するみたいなものを想像して欲しい。フォロワー一覧の中で使う props とフィード一覧で使う props を混ぜて1つの親に渡している状況だ。

    props のバケツリレーって何が悪いんだっけ - fsubal
    carolina04
    carolina04 2022/11/20
    Context は横断的な関心事(めっちゃいろんなコンポーネントで使うとか)をメインの動機にすべきで、「階層が深いから」は本質的ではないと思う。
  • useContext + useReducer の使いどころ - パンダのプログラミングブログ

    TR;DR useContext は、階層の深いコンポーネントに state を渡す場面で使うと良い useReducer は、state の変更パターンが多い場面で使うと良い useContext + useReducer は、state を使うコンポーネントの階層が深い上に、前回の state を元に新しい状態を作る場面で使うと良い useContextだけを使うケース useContext は React の組み込みの Hooks の1つです。Provider でラップしたコンポーネントのツリーのどこからでも、同一の Context Object を参照できるようにする Hook です。 useContext は Context を通じて子や孫以下のコンポーネントで同一の JS オブジェクトを呼び出せる Hook です。これにより props のバケツリレー (Props Drill

    useContext + useReducer の使いどころ - パンダのプログラミングブログ
    carolina04
    carolina04 2022/11/20
    前回の状態に依存した更新処理をする場合には useState の代わりに useReducer を利用することで、より簡潔に記述することができる export const SearchConditionContext = createContext<State | Action>(initialState)
  • React の props.children の型定義には ReactNode を使う

    children の型定義TypeScriptReact の関数コンポーネントを定義するときには、下記のような React.FC (React.FunctionComponent) を使用します。 type FC<P = {}> = FunctionComponent<P>; interface FunctionComponent<P = {}> { (props: PropsWithChildren<P>, context?: any): ReactElement<any, any> | null; propTypes?: WeakValidationMap<P> | undefined; contextTypes?: ValidationMap<any> | undefined; defaultProps?: Partial<P> | undefined; displayName

    React の props.children の型定義には ReactNode を使う
    carolina04
    carolina04 2022/11/19
    “props の型定義で、明示的に children の型情報を指定するには、次のように React.ReactNode を使います”
  • React.ComponentProps 型を積極的に使おう

    Atomic Design でいう Atoms に相当する、汎用コンポーネントについての小話です。次の様に Props 型定義を用意し、解説している記事をよく見かけます。<input />タグを使わずコンポーネント化している理由は style を施すためかと思いますが、このコンポーネントが受け取れる Props は限定的で、メンテナンスコストが高いためお勧めできません。 type Props = { value: string; onChange?: React.ChangeEventHandler<HTMLInputElement> onBlur?: React.FocusEventHandler<HTMLInputElement> } export const Input = ({ value, onChange, onBlur }: Props) => ( <input value=

    React.ComponentProps 型を積極的に使おう
    carolina04
    carolina04 2022/11/19
    “type Props = React.ComponentProps<'input'> // <- here export const Input = ({ value, onChange, onBlur, onFocus }: Props) => ( <input”
  • 【Ruby】mapの途中でnextを使用するとnilが入ってしまう罠 - Qiita

    map(またはcollect)はブロックの戻り値を集めた配列を生成してくれる便利なメソッドです。 しかし、ブロックの途中でnextを使用すると意図せずnilが入ってしまう場合があるため、気をつける必要があります。 例えば以下のような数字の配列から偶数を取り出すメソッドを作成したとします。

    【Ruby】mapの途中でnextを使用するとnilが入ってしまう罠 - Qiita
    carolina04
    carolina04 2022/11/16
    “もしnilを配列に入れたくないのであれば、以下のようにmapした後にcompactを行うことで回避することができます。”
  • 【Rails】N+1問題はincludesで万事OKと思っていた。 �

    こんにちは。Webエンジニアとなって2週間経ったオクトと申します。 記事では、N+1問題をincludesさえ付けておけば完璧じゃない?と思っている方を対象に他にもやり方はあるんだよ、もっと良い方法があるよ、ということをシャアしていきます。 かくいう私も上記の対象に先ほどまで入ってました。 これはそんな私向けの記事でもあるんですね。 バリバリにRailsを書いてきた人には、当たり前に感じると思いますが、 ご指摘箇所がありましたらご教授いただけますと幸いです。 前提 Ruby 3.1.1 Rails 6.1.4.6 テーブル構造は以下の通りです。 includesの他に何があるの? 「ねぇねぇ、先に何があるか教えてよ」という声が聞こえてきたので、先に伝えます。 includesの他に主に2つの方法で解消することができます。 クエリ数 関連先での絞り込み 関連先の情報

    【Rails】N+1問題はincludesで万事OKと思っていた。 �
    carolina04
    carolina04 2022/11/09
    “has_many-belongs to の関係であれば、preloadを使用してクエリ発行の負担を減らす。 has_one-belongs to の関係であれば、eager_loadを使用して1クエリでまとめて取得する。 関連先で条件を絞り込みたいときはeager_loadを使用する”
  • React.memo を使ったパフォーマンス最適化について - 30歳からのプログラミング

    パフォーマンス・チューニングには、「こうすれば必ず上手くいく」という方法論や銀の弾丸はなく、地道に試行と計測を繰り返すしかない。 しかしだからこそ、基的な考え方や仕組みを理解することが大切であり、それがなければ、どのように対処していけばいいのか見当をつけることすら出来ず、的外れな対応をすることにもなりかねない。 React.memoを使った処理の最適化は、React アプリのパフォーマンス改善のための、基となるテクニックのひとつである。 この記事のコードは React のv16.10.2で動作確認している。 メモ化という概念 React アプリのパフォーマンス最適化を理解するためにはまず、メモ化(Memoization)という概念を把握しておく必要がある。 大雑把に言ってしまうとメモ化とは、何らかの計算によって得られた値を記録しておき、その値が再度必要になったときに、再計算することなく

    React.memo を使ったパフォーマンス最適化について - 30歳からのプログラミング
    carolina04
    carolina04 2022/11/02
    “パフォーマンスの問題以前にコンポーネントの設計として、不必要なpropsを渡すべきではない”
  • なぜReactは標準でComponentをmemo化しないのか?

    はじめに 普段はスタートアップでBtoB SaaSの開発をしているtaroと申します。 今回は、Reactのmemo化について考えている中で抱いた 「なんでReactは標準でComponentをmemo化していないんだろう?」 という疑問を解消するために、色々と調べたり考えたりした内容をまとめました! 途中でrenderのタイミングや、memo化で再renderが抑えられる理由などの前提知識の復習も含めていて、memo化について詳しくない方もmemo化の勉強にもなると思うので、ぜひぜひ読んでみてくださいー! なぜこんな疑問を抱いたのか? まずはそもそも僕がタイトルにあるような疑問を抱いた背景です。 疑問を抱くまでの思考プロセスはこんな感じです。 「再renderが余分に走ってて画面が重いから最適化したいなー」 →「React.memo()を使ってComponentをmemo化しよう!」 →

    なぜReactは標準でComponentをmemo化しないのか?
    carolina04
    carolina04 2022/11/02
    “パフォーマンスを抑えるためのmemo化によってパフォーマンスが悪化してしまう可能性があるため、memo化するかどうかは任意で開発者に委ねられている”
  • 【TypeScript】useContextとuseStateを組み合わせて、子孫コンポーネントから直接先祖コンポーネントのstateを編集する - Qiita

    TypeScript】useContextとuseStateを組み合わせて、子孫コンポーネントから直接先祖コンポーネントのstateを編集するTypeScriptReactreacthooks 実務でReactをいろいろ経験させてもらってから、ようやくReact Hooksの便利さに気づき始めたラスカルです。こんにちは。 今回は、タイトルの通りではあるのですが、useContextとuseStateを組み合わせることで、子孫コンポーネントから、propsのバケツリレーをせずに先祖コンポーネントのstateを更新する実装をTypeScriptで実装したいと思います。 (強調したのは、jsでの実装はあるもののtsでの実装がすぐに見つからなかったからです😩) 前提条件 import React, { useState } from 'react' //親コンポーネント const Paren

    【TypeScript】useContextとuseStateを組み合わせて、子孫コンポーネントから直接先祖コンポーネントのstateを編集する - Qiita
    carolina04
    carolina04 2022/10/30
    “jsでは const CountContext = React.createContext() と、初期値を特に設定しなくてもいいようですが、(いい意味で)型に厳しいTypeScriptでは初期値を必ず設定してあげる必要があるようです。”