dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

Salesforce: LWCのローカル開発機能(ベータ)を試す

先日、LWCのローカル開発機能のベータ版がリリースされました。 ブログ記事を読みつつ、手元で動かしてみたメモです。 LWC ローカル開発機能の特徴(ねらい) ブログ記事では、以下の3点に言及しています。 可能な限り本番環境に近い環境で、コンポーネントを…

複数のモジュール形式(CommonJS, ES Modules, UMD)をサポートしたnpmパッケージの作り方 in TypeScript

はじめに npmパッケージを開発するとき、パッケージ利用者の実行環境に合わせて適切なモジュール形式のファイルをパッケージに含め、提供する必要があります。 具体的には、たとえば以下のようなバリエーションが考えられます。 Node.js環境であれば CommonJ…

TypeScript: 配列の値をString Literal Typesとして使う

メモ。 こんな感じで、ある配列として定義されている値に対し、「その値のいずれか」を意図した String Literal Types を作りたい。 const size = ['small', 'medium', 'large']; type Size = 'small' | 'medium' | 'large'; でも、配列と型定義とで値を二度…

TypeScript: ReactNode型とReactElement型とReactChild型

メモ。 ReactNode ReactElement ReactChild の関係性、何回か調べている気がするので整理しておく。 @types/react の型定義 https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts を参照した。 図で、ReactNodeArray → A…

npm installしたパッケージをVSCodeでデバッグする

npmでインストールしたパッケージが期待通りに動かず内部の動作を確認したい、となったときの話。 これまでは該当のスクリプトに console.log() とか直接書いてデバッグしてたんですが、あまりにも効率が悪いのでもうちょっと良いやり方を見つけたい。 VSCod…

Google I/O'19の「Speed at Scale: Web Performance Tips and Tricks from the Trenches」を観たメモ

途中飛ばしてしまった箇所もありますが、一通り観たのでメモを。 長いので最初にまとめ 動画の最後のスライドにキーワードがまとまってます。 速くする(Get fast)ための13個のTips 速さを維持する(Stay Fast)ためのTipsとしてPerformance BudgetsおよびLight…

Lightning Web Componentsの一部がオープンソース化された

現在開催中の TrailheaDX'19 で発表があったようですね。 The 3️⃣ Biggest Product Announcements From #TDX19:⚪ @Trailhead published the new Responsible Creation of AI module⚪ Lightning Web Components is now open sourced⚪ And...click here to dis…

TypeScript: ReactのContextに型をつける(useContextと16.3以前のLegacy Contextも含む)

TypeScript + Reactでコンポーネントを書くとき、Context を使っているコンポーネントに対してどう型を書くのが正解か迷ったので、調べたことをメモしておきます。 調べるきっかけとなったコンポーネントは React 16.3 以前の Legacy Context を使った書き方…

Amazonの商品ページの情報をkintoneに登録するChrome拡張

を作りました。 https://chrome.google.com/webstore/detail/amazon-to-kintone/leipfhjipgnfbdjkbinlmlmfdhgcakki からインストールできます。 アイコン未登録だったりコードがぐちゃぐちゃだったりしますが、とりあえず自分が使うための要件は満たせたので…

TypeScriptでJestを使うときの設定(ts-jest, @types/jestなど)

メモ。 TypeScript を使ったプロジェクトに Jest を導入する時に必要なパッケージや設定、とくに ts-jest と @types/jest が必ず必要なのかどうかがよくわかってなかったので調べた。 先にまとめ TypeScript -> JavaScript のコンパイルを TypeScript 自身で…

認定スクラムマスター研修(CSM)で学んだこと

だいぶ前ですが、2/13-15 に認定スクラムマスター研修を受けて、無事認定スクラムマスターになりました。 こないだ社内でも報告会をやったんですが、ここにも学んだこととか思ったことをメモしておきます。 研修の内容についての詳細はあまり書かれてません…

VSCodeVimでxやsでコピー(ヤンク)しないようにする

メモ。 素の Vim ではこちらの記事を参考に x や s で1文字削除したときにクリップボードにコピーされないようにしていて、 VSCodeVim でも同様の設定をしたい。 方法 settings.json (コマンドパレットの Preferences: Open Settings (JSON)) を開き、以下を…

ESLintとPrettierを併用するときの設定(eslint-plugin-prettier, eslint-config-prettier)

今さらだけどメモ。 ESLint を使っているプロジェクトに Prettier を導入するときの設定方法。 結論としては、公式のこのページに全部まとまってた。 なお、 prettier-eslint というのもあるようだが調べていない。 先にまとめ eslint-plugin-prettier: ESLi…

「よくわかるWeb Components」を読んだ

Web Components を学ぶべく、昨年の 技術書典5 で販売されていた 1000ch さんの本を買って読んでみました。 2時間程度で読み切れるので、Web Components 全く知らない状態から概要を理解するのにはとても良い本だと思います。 自分は Web Components がどう…

「モブプログラミング体験会 with Chris Lucian」に行ってきた

今日はこちらのイベントに参加してきました。 きっかけはこちらのツイートが TL に流れてきたのがたまたま目に留まって。 やるよー!!Chrisの話を聞ける貴重な機会です。#モブプログラミング#モブプロhttps://t.co/KXeUS7MrrB— TAKAKING22@FA宣言 (@TAKAKIN…

読書記録アプリを作ってkintoneの基本的な使い方を学ぶ

kintoneの使い方を勉強するのにちょうどいい題材はないかと考えたところ 自分が読んだ/読みたい本を管理するアプリが欲しいなと思っていたので、それを作りながら基本操作を学ぶことにした。 アプリのイメージ 読みたいと思った本や web 上のちょっと長い記…

「Google API Expertが解説するClosure Libraryプログラミングガイド」を読んだ

業務で Closure Library を使うので読んだ。 正確には、最後まで写経しながら読み進めようと思ったけど第5章あたりで挫折して、第6章以降はさっと目を通す程度になってしまった。 Google API Expertが解説する Closure Libraryプログラミングガイド作者: 伊…

Google Closure CompilerとかGoogle Closure LibraryなどのClosure Tools概要まとめ

Google Closure ○○ シリーズが多くてわからん、となったのでメモ。 主に Closure Compiler と Closure Library を中心に。 総称として Closure Tools と呼ぶらしいです。ここにまとまってます。 またソースコードはすべて GitHub で公開されている模様。 htt…

WEB+DB PRESS Vol.106の「速習 Spring Boot」を読んだ

Spring Framework に入門2日め、という位置づけ。 前回 の最後にもあった通り、最近の WEB+DB PRESS でちょうど Spring Boot 特集があったようなので読んだ。 WEB+DB PRESS Vol.106作者: 成田元輝,杉浦颯太,小和瀬塁,山中大輔,末田正樹,藤野真聡,竹馬光太郎,…

[VSCode]htmlファイル編集中のみタグ移動ショートカットキーを有効にする(主にVSCodeVimユーザ向け)

メモ。 Vim には対応する括弧にカーソルを移動する % キーがあるが、 matchit.vim というプラグインを使うと、html の場合に < から > までではなく 対応するタグ ( <body> ~ </body> ) にジャンプできる。 VSCode にも Vim エクステンション を入れて使っているが、これ…

Spring Frameworkに入門した

諸事情で Spring Framework を学ぼうと思い始めてみた。1日目。 これまでのプログラミング経験が Python, Django: 2年ぐらい Salesforce: トータルで5年ぐらい JavaScript, React, Redux: 直近1年半ほど みたいな感じだったので、Java については基本的な構…

[Salesforce]Winter'19: Apex Replay Debuggerの使い方

昨日の Meetup の内容をブログにもまとめておきます。本当はこっちを事前に公開したかった。 なお Meetup で話したときの LT 資料はこちら。 Apex Replay Debugger とは Winter'19 リリースノート:Apex Replay Debugger を使用してすべての組織を無料でデバ…

[Salesforce]UserRecordAccessでレコードの参照・編集権限をチェックする

こんなことやりたい Apex で SOQL を実行してレコードを取得するとき、実行ユーザが編集権限のあるレコードだけ返したい。 このとき、レコードに対し参照権限だけあると SOQL では取得できてしまうため適宜フィルターする必要がある。 先にまとめ UserRecord…

[Salesforce]ワークフローの時間ベースのアクションについて

今さらながら時間ベースのワークフローを使うことがあったのでメモ。 時間ベースのワークフローとは ここのこと。 時間ベースのワークフローで何ができる? 時間ベースじゃない方のワークフローアクションだと、ルール条件に一致した場合レコードの作成また…

Pipenvで仮想環境をプロジェクトディレクトリの下に作る(PIPENV_VENV_IN_PROJECT)

ちょいメモ。 久しぶりに Python を書くにあたって環境構築する際、 2018年のPythonプロジェクトのはじめかた - Qiita を見て Pipenv を使ってみた。 普通に pipenv shell で仮想環境を作成すると ~/workspace/Python/pipenv-sandbox $ pipenv shell Creatin…

React 16.3.0で追加されたStrictModeコンポーネントについて

2018-04-01のJS: TypeScript 2.8、React 16.3.0、TensorFlow.js - JSer.info を読んで。 React 16.3.0 から StrictMode コンポーネントというものが追加されたらしい。 公式ドキュメントを読んでみます。 StrictMode とは StrictMode はアプリの潜在的な問題…

Node.js製CLIフレームワークoclifを試す

はじめに Heroku が oclif という CLI フレームワークをオープンソースとして公開したという記事を読みました。 Heroku CLI や Salesforce DX のベースにもなっているらしい。 どんなもんか触ってみます。 (oclif は (The) Open CLI Framework の略のようで…

Vim+ALEでファイル保存時にPrettierを実行する

メモ。 Prettier という JavaScript のフォーマッターをファイル保存時に自動的に実行する、というのを Vim でやりたい。 特に自分は ESLint や Flow のチェックに ALE というプラグインを使っているため (参考:VimでESLintとFlowを使うためにNeomakeからA…

[Salesforce]ApexでPermissionSetの"PermissionsXXX"項目の一覧を取得

ちょいメモ。 参考:PermissionSet | SOAP API 開発者ガイド | Salesforce Developers Permissions... から始まる項目がいくつかあるらしいので、Apex で項目一覧を取得してみる。 調べ方 以下を開発者コンソールの Execute Anonymous で実行。ログをダウン…

[Salesforce]代理承認者機能の使い方

まとまってるドキュメントが見つからなかったのでメモ。 代理承認者とは Salesforce の承認プロセス機能において、承認者の代わりに申請を承認/却下できる人を設定できる機能 ユーザに対して一人だけ代理承認者を設定しておくことができる また承認プロセス…