「なるほどデザイン」を読んで

書籍

この本を選んだ理由

  • 資料で良し悪しを感じることはあるが、デザインについて学んだことがないのでその理由を言語化できないなぁと感じていた。
  • たまにはテックじゃない本を読もう。

所感

良かった点

  • デザイナーの7つ道具としてキャッチーに説明されている。
    • 一方で「おおまかな空間と細かな空間に反応する細胞が異なる」、「まっすぐと斜めに反応する細胞が異なる」といった脳の神経細胞の特性を利用したという説明もあり、ユルさとシッカリさをバランス良く使っている。
    • また図と地という心理学の面もデザインには使われている。
  • なじみの良い配色は色相、明度、トーンの何か一つを揃えると良い。というデザインを学んだ事がある人であれば初歩的な内容も書いてある。
    • ドミナント・カラー(色相を同一、もしくは少し変える)といったワードがあることは知らなかった。雰囲気で揃えたほうが良いかも…くらいだったので配色の説明はしやすくなる。
  • 写真の構図についても書いてある。
    • 焦点の当て方、構図の分割、放射線、感じる写真/読む写真かなど、意識する点を学べた。
    • 妻から絶望的に写真のセンスがないと言われていた理由が分かった気がした。

その他

  • 読んだだけではデザイン力は身につかないなぁ…と思った。
    • 日頃からデザインについて意識し、気になった所があれば振り返って調べれるようにはしたい。
  • 表紙はNoritakeというイラストレータの方が書かれていることを知った。
    • 非常に興味深い…

「達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ」を読んで

書籍

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

f:id:fatherofikura0107:20190212074342j:plain

URL

この本を選んだ理由

  • 業務でDB設計をする機会が回ってくることが少なく勘所を抑えられない。
  • 個人開発をする上でもDB設計は必須なので「どういった点を意識すべきか?」を知りたいと思い、この本を選んだ。

所感

良かった点

  • DB設計の基本がしっかり抑えられていてる。
    • 正規化やER図の書き方など、基本が書かれている。
  • 所々にSQLで著名な方の格言が載っており、胸に刺さる。
    • 「非正規化は最後の手段、最初は必ず正規化する」By クリス・デイト
    • 「オートナンバー(サロゲートキー)を主キーに使うことはデータモデルを欠いている証拠だ」By ジョー・セルコー
  • 実務における勘所(インデックスを用いるか否かのライン、バッドノウハウ、グレーノウハウ)がしっかりと書かれている。
    • B-treeインデックスを作るときカーディナリティを意識する。目安としては5%以下。
    • DBMSにはインデックスの構造が崩れている場合の指標(断片化率や木の高さ)を調査する方法があるので利用すべき。
    • 採番テーブル的な機能をDBMSとして提供する「シーケンスオブジェクト」がある。車輪の再発明になるのでアプリ側で実装すべきではない。

悪かった点

  • RDBMSについては内容的には文句なし。
    • ただRDBMSに特化しているので、NoSQLについての設計については触れられていない。

その他

  • 実務のシステムではバッドノウハウ、グレーノウハウに引っかかる設計がある。DB設計をした方は他の企業での職歴もあり、何らかの意図があって設計していると思われるので、その設計の意図を効いてみたいと感じた。

Laravelで作ったアプリをHerokuにデプロイする(実施期間:14日)

内容

はまったところ

  • ENOENT: spawn git ENOENTというエラーが出た。
    • Git入れたところエラーはなくなった。管理者権限で実行したことも効いていたのかも…。
  • 「composer require ext-intl:*」を実行したらCould not find a matching version of package ext-intl. のエラーが出た。
    • こちらと全く同じ症状だった。先にCheckInする必要があった。
  • Laravel5.7: HerokuにデプロイするではLaravelだけなので、Vue側が自動ビルドされない。
    • サイトを参考に、scriptsにheroku-postbuildを追加した
      • 当初はLocal環境でyarnで動かしていてい、Herokuではnpmにしようとしたら上手くいかずハマり続けた(結局Localもnpm installからやり直したら上手くいった。)
      • laravel-mixでnpmは上手くいくがyarnでは上手くいかなかったとのコメントもあり、今回はこれ以上の深追いは諦める。

所感

  • HerokuへのDeployなんてスグできるでしょ。と思っていたがそうは問屋が卸さない状況だった。
    • 時間はかかったが、githubでPushしたら自動デプロイまでできるようになって感動した。
  • 「品質が高い=MTTR(平均復旧時間)が短い」というのが世の中求められている状況なので、こういったエコシステムの利用は必須だと感じている。
    • 今の会社はInstallメディアで製品をリリースするのでUserに製品が届くまでは時間がかかってしまうが、社内のテスト環境構築などには有効だと感じる。
    • 設計やプログラミングばかりフォーカスせず、トータルのリリース速度を改善できるようなエコシステムの知識やスキルの学習を進めたい。

「JAMstack 完全入門 ハイパフォーマンス Web サイト構築」を読んで

書籍

f:id:fatherofikura0107:20190128074251j:plain

URL

この本を選んだ理由

  • いつも楽しく聴かせていただいているPodcast(=soussune)のホストの方が技術書典5にて本を出されていた。
  • Web系の仕事をしていないものの、最新のWeb系技術スタックについて少しでもキャッチアップできるのでは?と思い、この本を選んだ。

所感

良かった点

  • JAMstackの概要を知るにはとても良くまとまっていると感じた。
    • JAMstackに至る経緯(SPA(Single Page Application)⇒SSR(Server Side Rendering)⇒JAMstack)が書かれており、どこに旨味があるかの説明がスッキリする記載となっていた。
  • (初めて技術書典の本を読んだが、)凄く読みやすかった。
    • 学術書のように書式もしっかりしており普通に売っている本のようで、他の技術書典の本も読んでみたいと思わせてくれる出来栄えだった。
  • 挿絵が可愛い。

悪かった点

  • 内容的には特になし。
    • ただ、ボリュームに比べお値段は高い。Podcastを応援しているので個人的には問題ないが…

「エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド」を読んで

書籍

f:id:fatherofikura0107:20190125080716j:plain

この本を選んだ理由

  • 会社にてマネジメントをしていたが、自分には向いていないと悩む日々を過ごしていた。ただ、マネジメントの業務を楽しむ方々のPodcast(=EM.FM)を聞き、まだ自分にはマネジメントの楽しみ方を理解しきれていないと感じた。
  • 上述のPodcastにて話題にあがっていたのがこの本であり、今後のキャリアを再度考える上で得られるモノがあるのでは?と思いこの本を選んだ。

所感

良かった点

  • 「3.5 決断の時-技術職を貫くか、管理職への道を選ぶか」の内容は心に刺さった。
    • 理想/現実、シニアエンジニア/管理者の組み合わせ4パターンで書かれている内容。
    • 「管理者の現実」は自分が辛かったマネジメントの日々と同じだったが、「理想のシニアエンジニア」としてまた私が憧れるエンジニア像が記載されていた。
    • つまり、現在の自分は隣の芝生は青く見える状態であり、マネジメントを上手く出来ないのは初めてだから仕方がなかったのかも…と思えた。
  • 構造/プロセスというと重苦しくなるが、構造=学習、プロセス=透明性とし、「構造/工程そのものに価値があるのではなく、成功/失敗含めた経験を色眼鏡なく共有するため」という説明はとても素晴らしいと感じた。
    • 社内には構造/プロセスを軽んじる人達がいる現状もあり、どうして構造/プロセスが必要なのか?議論する際には有用だと感じた。
  • 自分の立場(視座)が変化するたびに新たな気付きが得られる内容であり、立場が変わるたびに読むべき本だと感じた

悪かった点

  • 著者の自慢が所々出てくる。これ必要?と感じた。
  • 文書として読みにくさを感じるところがあった。
  • (仕方がないことだが、)キャリアラダーが自社とマッチしないため置き換えて読む必要がある。同じ会社にいる人と読み終えた後話ができると良いと感じた。

Laravel+Vue.js+JWTAuth 5週目(実施期間:21日)

進捗

Laravel+Vue.js+JWTAuth

所感

  • Tinker便利。対話的にプログラムを動かしたいときに利用するコマンド。(参照)
  • Bcryptを用いた暗号化の意味を少し理解できた。同じPwdでもソルトが入ることで値が変わるということか。(参照)"
  • Token認証時に「Authorization: Bearer (Token)」と書くが、これはお作法なのか??そもそもBearerって何??
    • この文脈ではBearerとは「持参人払い」を意味する。Bearer Tokenの流れでこちらに良い説明があった。
    • Authorization ヘッダや認証スキーム(auth-scheme)についてはRFCで定義されている一般的に使われている。(参照)"
  • Laravelだと標準でaxiosまで入るのか…。どのコンポーネントからもリクエスト出せるので見通しの悪さを懸念して「services/http.js」に一任させるような設計にしているらしい。
    • 元となるkoelを参考にしているとのことだが、こちらのコードを読んでみたい。"
  • 参考にしていた記事ではHerokuにて動くデモが乗っていたが、Herokuへのデプロイまでは記載がなかった。
    • Herokuへのデプロイを次の学習の題材としたい。

その他

  • 昨年途中やりだった内容はこれで一段落。次の記事からは昨年の振り返りを活かし成果レベルで一纏めにしていく。

2019年目標

2019年目標

2018年の振り返りから下記を今年の目標として設定。

目標①:ブログ更新の単位を週ではなく成果レベルに切り替える。

数値目標:8記事

目標②:朝活のように手を動かす必要がない本を読んだ場合でもアウトプットする。

数値目標:5記事

目標③:土日も自己研鑽の時間を少しでも取る。

数値目標:5時間/月