2020.03.23 ~2020.03.29の週報
今週のハイライト
- 基本情報技術者試験を受けようと思ったけど、コロナの影響で中止。勉強に当ててた時間を別のことに使おうと思う。何勉強しようかな〜
フロントエンド
- モックサーバー
- フロントエンドの画面を作りたいだけならモックサーバー使えばいいやんって調べてた。
- ターミナル 開くとか、npm installするとかめんどくさいから、この機能をWebサービス化したらおもろいかもとか考えてた。
汎用的なコンポーネント の作り方
- React: 保守しやすいハイパフォーマンスの UI コンポーネントを作成する
- コンポーネントとロジックの分離を意識することはできてきたけど、分離を徹底することで複雑になる部分も発生するんだなと。この二つをいい塩梅に設計するのがちょっと楽しくなってきたかも。絶対的な設計はなくて、その時の状況に応じた「最適解」を探すことを大切にしたい。
- この設計の話をベテランのエンジニアさんと話したときに、「あ、自分の考え(スタンス)を持ってないや」と痛感した。「自分より経験のある人の意見 = 正解」って捉えているところがある。間違ってもいいから、自分のスタンスを明確にしたい。
Object.key().map(~)でレンダリングしようと思ったらされなかった話
- これなんだっけかな。オブジェクトのが配列をmapでループさせたいだけだったのに、描画されなくて、「なんだこれ?」って思ったらKeyをしてなかったみたいな感じだったような。Vueでも同じようなことをした気がする。
useState
React router のHistory
- routerに型をつけたくて、どうしたらいいのかと調べた。型っていいよね、安心する。特に、抽象的な処理を行っているライブラリを利用するときには、次に何をすべきか、何ができるのか推測できるのはストレスが少ない。
React Context
- 『コンテクストは、ある React コンポーネントのツリーに対して「グローバル」とみなすことができる、現在の認証済みユーザ・テーマ・優先言語といったデータを共有するために設計されています。』
React ref
- テーブルなどの複数の項目を描画させて、クリックした行のみclassを適用させたくて調べた気がする。結局、うまく使いこなせなくて断念してしまった。
Formik
TypeScript
- Object literal may only specify known properties,
型をつけたobjectを配列に入れる時
- const [xxx,yyyy] = useState<Array
>([])
- const [xxx,yyyy] = useState<Array
React Router
- オブジェクトを返せないので、async/awaitは返せない
- routerで非同期処理を行うことを想定していないのかも。ルーティングはできる限りシンプルすることが正義と感じた。
- ルーティングはユーザーに影響が大きいところなので、エンジニアが想像しづらいものになることは避けた方が良い。
import
Vue
- Vue.jsに書いてある「アロー関数は、this が期待する Vue インスタンスではなく・・・」とは?
- Vue.nextTickのコードリーディング
- 画面更新した後に関数を実行したいときなど
- Modal開いて、document.querySelectorするとか
nullアクセス
バックエンド
- docker exec -it
- Mongoの接続
- MongoDBコマンド一覧(自分用メモ) - Qiita
- dbのなかにcollectionがある
- MongoDB コマンドメモとか書き - Qiita
その他
- LRU(Least Recently Used)は、ページアウト要求があった場合に管理している中で「最後に参照された時刻が最も昔であるページ」を置換え対象とするアルゴリズムです。このアルゴリズムにより最近参照されたページが主記憶に残り、使用頻度の低いページは新しいページと入れ替わることになります
- PMBOKによればプロジェクトにマイナスの影響を与えるリスク(脅威)への対応戦略には「回避」「転嫁」「軽減」「受容」の4種類があります。
- 回避
リスクそのものの除去や、プロジェクトのスコープや目標を縮小・変更するなどしてリスクの影響をゼロにする戦略。
- 転嫁
リスクのある業務・作業のアウトソーシングや、損害保険の契約によってリスクによるマイナスの影響を第三者へ移転する戦略。
- 軽減
リスクの影響範囲を狭くしたり、発生確率を低減したりする戦略。
- 受容
リスクが現実化した時の影響が許容可能範囲内である場合やリスクの除去が困難であるときに、特に対策をせずにそのままにしておく戦略。対策費用が予想される損失金額を上回っているときなどに採られる。
スラグ
JWT
- JWTとCookieがごっちゃになってたけど、これを機会に勉強できたのはよかった。
- JWTを認証用トークンに使う時に調べたこと - Carpe Diem
- 【JWT】 入門 - Qiita
- JWT・Cookieそれぞれの認証方式のメリデメ比較 - Qiita
- 『最も大きな違いはCookieがstateful・TokenがStatelessという点』
- JWTとCookieがごっちゃになってたけど、これを機会に勉強できたのはよかった。
技術力とは
- いつも「自分には技術力がない」と思っていて、しんどいな〜と思う日々が続いていたんですけど、そもそも技術力の定義とは?と疑問に思って、いろいろ調べてみたら、下記の記事が今のところしっくりきた。自分の場合で言うならば、圧倒的に実装のスピードが遅い。けど、クオリティとかは、さほど自己嫌悪に陥ったことはないな〜とか考えてた。心配性な性格のせいか、慎重に実装している気がする。これはスピードとトレードオフなので、今後の課題でもあるけど。できないこともあるけど、できている部分も少しはあるはず。