始め TSを初めて勉強したときに「typeよりinterfaceを使うように!」というブログをよく見ましたが、業務の時は全部typeで型を定義してました。あれ?と疑念に思ってましたので、記事でお話させていただきます。 1. 型の定義 TSで一番手っ取り早く型を定義できる方法は多分これだと思います。 let level: number = 15; level = 15 level = "十五" //Type 'string' is not assignable to type 'number' このように宣言時の変数に方の注釈をつけることを型アノテーション(Type Annotation)と言います。上の例だけ見たら特に問題なさそうに見えますが、コードが少しでも複雑になったら問題があります。
I've created a new Rails 6.1 application from scratch with Ruby 3.0.0. I've run db:create and generated a single model with some string columns, followed by rails db:migrate. I ran rails test but got this require rexml error: /Users/froop/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:34:in `require': cannot load such file -- rexml/document (LoadEr
Ruby Standard Gems About Ruby's Gemified Standard Library Large portions of Ruby's standard library come in the form of RubyGems, which can be updated independently from Ruby. There are two different kinds of standard gems: Default gems: These gems are part of Ruby and you can always require them directly. You cannot remove them. They are maintained by Ruby core. Bundled gems: The behavior of bund
Redux Style GuideIntroductionThis is the official style guide for writing Redux code. It lists our recommended patterns, best practices, and suggested approaches for writing Redux applications. Both the Redux core library and most of the Redux documentation are unopinionated. There are many ways to use Redux, and much of the time there is no single "right" way to do things. However, time and expe
I use AMD modules and I want to hide a complex interface behind one file that loads several other files and chooses what to expose and how. It works, I use this solution but it feels kinda ugly, mostly with the interfaces. import Types = require('./message-types'); import MessageBaseImport = require('./message-base'); export interface IMessage extends Types.IMessage {} // This is an interface expo
フロントエンドエンジニアの今村です。TypeScriptではenumを使わずunion型を使いましょう、という話を書きます。 モチベーション 何を今さら、と思う方もいるかもしれません。 TypeScriptのunion型はenum的なものを表現可能であり、基本的にenumよりもunion型を使うべき、という意識を持っているTypeScriptプログラマーはすでに少なからずいるのではないかと思います。しかし、ではenumの使用はいかなる場合も避けるべきなのか、そうでないとしたらどのような基準でenumとunion型を使い分けるべきなのか、といった点について、広く合意の取れたガイドラインはなさそうです(少なくとも私は知りません)。この結果、コードレビューなどで少しやりづらさを感じることがあったので、白黒つけてしまいたいという気持ちからこのブログを書いています。 結論としては、enumは全面的に
2021年02月04日 次世代認証基盤サービス『Auth0』ウェビナーへご参加頂いた方から頂戴した質問とその回答を公開します。 ユーザーがログインするメールアドレスを変更することは可能でしょうか? メールアドレスを変更することは可能です。ユーザーが利用するWEBアプリやAuth0の管理画面からメールアドレスを変更するケースが考えられます。 WEBアプリにユーザーのメールアドレスを変更する機能を追加する場合には、サーバーサイドでAuth0 Management APIへのリクエストを実装します。 どのリージョン(拠点)を利用すればよいか判断基準はありますか? 現状では安定性が高いUSリージョンを利用されているお客様が多いです。JPリージョンは料金が30%高くなりますが、レスポンスのレイテンシが低いため、ページやAPIの応答速度を重視する場合に選択されます。また、外部のサーバーにユーザーの個人
はじめに こんばんは。 現在あるプロジェクトで github actionを使って サーバへのデプロイなどを行っています。 そこで起きた簡単なエラー対応の備忘録です。 参考サイト github.blog 本題 いつものように github-actionのログを見ていると以下みたいなエラーが出ていました。 調べてみると非推奨になるものを使っていたらしく、かつ、自分が使っていた action-aws-cliはアーカイブされているようなので、この際別のものに乗り換えてみようと思い対応しました。 乗り換えたのはこちらになります。 github.com 作業は簡単で workflowに書かれていたコードを以下のように修正しました。 before - uses: chrislennon/action-aws-cli@v1.1 env: AWS_ACCESS_KEY_ID: ${{ secrets.AW
どーもsutoです。 SlackのスラッシュコマンドからLambdaをスパッと実行させるためのAPI GatewayとSlack APIを設定する手順を備忘録として記事に残しておこうと思います。 Lambda作成について 本記事では検証用として使用するLambdaは、以前の記事で作成したものを流用させていただきます。 Lambdaの作成とコードは以下から。 API Gatewayの作成 APIの画面から「REST API」を選択します。 「新しいAPIの作成」を選択し、任意のAPI名を入力しAPIを作成します。 次に「アクション」から「メソッドの作成」→「POST」を選択します。 統合タイプに「Lambda関数」を選択、実行対象のLambda関数名を入力し保存します。 次に、「統合リクエスト」から「マッピングテンプレート」を設定します。Slack apiから送られてくるリクエストのCont
OKRとは OKRとは、「 Objectives and Key Results 」の略称で、 組織が掲げる目標(ゴール)を目指すために、達成目標(Objectives)と主要な成果(Key Results)をリンクさせ、組織・個人の方向性とタスクを明確にする目標管理方法 の一つです。 Google・Facebookをはじめ、多くのグローバル企業が導入していることから注目を集めており、日本でも採用する企業が増えています。 OKRにおける個人の目標設定は、企業の目標から事業部の目標、そしてチームの目標まで細分化された上で決定されます。 プロダクトライフサイクルの短期化やダイバーシティの浸透による多様な価値観が生まれてくる中、企業は現状を打破し、目標達成(ゴール達成)に向けて、無駄のない経済活動を行なわなければいけません。 企業と従業員の方向性を統一し、取り組むべき具体的事項を明確にするOKR
【学習内容】 ・階層型DBとは ・ancestryを使う ・seeds.rbの編集 【階層型DBとは】DBは大きく3種類に分類されます。 ①階層型データベース ②ネットワーク型データベース ③リレーショナル型データベース 今回は①について学習します。 ①階層型データベース 名前の通りデータを階層型に格納する仕組みをもったDBです。 データはツリー構造で表し、ある1つのデータが他の複数のデータに対して、「親子の関係」を持っています。 末端にあるデータにアクセスするためのルートは1通りだけですが、例外的にデータは絶対に親子関係になるとは限らず、「多対1」の場合や「多対多」の場合もありえるので、同じデータがあちこちの親データに所属する形になります。 例として会社の組織図を想像するとイメージしやすいのですが、ある1人の社員が複数の部門の仕事を兼任していた場合、組織図上は複数の部門に所属することにな
こんにちは ebi です。 先日、Hotwire のリリースがありましたが、 Hotwire 以前から存在する Rails ベースで SPA 風のサイトを実現するのに適した StimulusReflex について、公式サイトの導入などの触りをやってみたので記録として残しておきます。 まだ全容が分かってないなりにメモがてら色々書いているため、誤った表現、コメントが含まれるであろう旨は予めご容赦ください。 はじめに Stimulus は Ruby on Rails の生みの親である DHH 氏でお馴染みの Basecamp 社製の JavaScript フレームワークで、後述する StimulusReflex のベースになっていることもあって Rails ウォッチなどでも度々取り上げられています。 Stimulus は React などのように、ページやパーツ全体の DOM 構造を JS 内で
最近以下のような記事や本を読み読書法を変えてみたところ、知識の吸収速度・引き出し速度が上がったと感じるので紹介。 kentarokuribayashi.com 知的戦闘力を高める 独学の技法 作者:山口周ダイヤモンド社Amazon やり方 以下のような流れで読書している。 学びたいと思った知識が書いてありそうな本を2~5冊選ぶ 1冊ずつざっくり読みながら、面白かった部分・気になった部分はKindleで黄色にハイライトしておく 全冊読み終わったら、ハイライトした部分だけ眺めて、やっぱり面白いと思ったところは赤のハイライトを付け直す 赤のハイライトを眺めて、読書ノートに転記する 特に面白い部分については、自分の知見まとめノートにカテゴリごとに整理する 学びたいと思った知識が書いてありそうな本を2~5冊選ぶ 自分の中で学びたいテーマがあって本を読むはずなので、そのテーマについて書いてありそうな本
Rubyでテストがこれほど盛んな理由のひとつはRailsの存在にあると私は信じています。Railsフレームワークはテストをできる限り楽しく書けるようにしてくれます。ほとんどの場合、網羅的なRailsテスティングガイドを参照すれば事足ります(少なくとも最初のうちは)。しかし物事に例外はつきものです。私たちの場合「システムテスト」がそれでした。 テストをページのマークアップから切り離す方法については、「Railsシステムテスト」シリーズの次の記事『System of a test II: Robust Rails browser testing with SitePrism』をご覧ください。 Railsアプリケーションでシステムテストを書いたりメンテしたりするのは、正直「楽しい」からほど遠い作業です。この問題に対処するために用いた私のアプローチは、今を去ること2013年に初めてCucumber
News Check out my new Patron community, The Hotwire Club Better StimulusJS An Opinionated Collection of StimulusJS Best Practices StimulusJS, the modest JavaScript framework by Basecamp is gaining widespread traction. It powers Basecamp and HEY, among others, and is a natural choice for Rails developers. That said, it fits any codebase that embraces server-side generated HTML and lightweight JS sp
Introduction Turbo bundles several techniques for creating fast, modern, progressively enhanced web applications without using much JavaScript. It offers a simpler alternative to the prevailing client-side frameworks which put all the logic in the front-end and confine the server side of your app to being little more than a JSON API. With Turbo, you let the server deliver HTML directly, which mean
mongoid で MongoDB を利用した Rails アプリケーションを作っているのだが、RSpec のバージョンを 2.0.0.beta.19 に上げたら、specs 実行時に次のようなエラーが出て止まる現象に遭遇。 /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.0.rc /lib/active_support/whiny_nil.rb:48:in `method_missing': undefined method `set_exception' for nil:NilClass (NoMethodError) 調べると、Rspec.configure を使って定義した before(:each) エグザンプル等の中で例外が発生すると、うまく補足できなくて、こんなエラーになるようだ。 そこで、即席の例外処理を書いて何が起きているかを調
目次 プログラミングの変数・メソッドの命名でよく使う英単語 ログイン・認証 許可・権限 ネットワーク ファイル操作 外部入出力 データ入出力 データベース操作 オブジェクト操作 生成・構築 削除・破棄 変更 変換・結合・排除 分割・切り出す(スライス) 登録・設定 検索・置き換え 状態・状態変更 計算 プロセス操作 処理サイクル 確認(1) 確認(2) 比較 その他対で使う単語 コード・ID・引数(変数) 機械学習関連 その他(未分類) データベーステーブルのカラム名の工夫(変数) 変数の頭につける接頭語 プログラミングの変数・メソッドの命名でよく使う英単語 プログラミング時の「メソッド名」「変数名」の命名で使いそうな英単語を「同じ意味でもニュアンスによって使い分けされるもの」あたりを注意してまとめます。 ログイン・認証 単語 意味 log_in/log_out ログインする/ログオフする
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く