「現場で役立つシステム設計の原則」読んだ

読んだ。内容としてはDDD本の実践編という感じで非常に勉強になった。

自分は仕事でも趣味でも MVC + Service でレイヤを組んでwebアプリを作ることが多いんだけど、雰囲気でServiceをやってるように感じていつもモヤモヤしてた。
特にRailsだとどうしてもActiveRecordを中心とした作りになるから、業務ロジックがテーブル設計に引っ張られて疎結合にならない。
それに画面の設計にも引っ張られるとデータの加工なんかもServiceでゴリゴリやっちゃってコードの見通しが悪くなる。
そもそも自分が理解してたモデルの上位層としてのService、という位置付けがよくないのかもしれない。

オブジェクト指向設計の他には、プロジェクトにおける上流工程、テーブル設計、Web Api、マイクロサービスなどweb開発において抑えておくべきトピックをオブジェクト指向の観点から網羅的に書かれていて勉強になった。

ファイルの内容をgrepして行を絞り込む

Apacheのログを調べる必要があったのでメモ。
賢い人はFluentdやElasticsearchやKibanaを使ってます。使いたい。

$ grep -i <検索文字> <ファイル名> | cat
$ grep -i "get /***" /var/log/httpd/access_log | cat

-iオプションがあると大文字小文字を区別しない。

catする前に絞り込んだ行数を確認すると良いかも。

$ grep -i <検索文字> <ファイル名> | wc -l
$ grep -i "get /***" /var/log/httpd/access_log | wc -l
10

Ubuntuでシステム日時を変更する

webサービスをテストするときに行ったオペレーション覚え書き

現在日時確認

$ date
Wed Sep 13 05:03:32 UTC 2017

変更

$ date -s "09/30 18:00 2017"
Sat Sep 30 18:00:02 UTC 2017
# 2017年9月30日18:00 にセット

変更確認

$ date
Sat Sep 30 18:00:02 UTC 2017

Ubuntuでインストール済みのパッケージを確認する

ぜんぶ出す

$ dpkg -l

特定のパッケージだけ確認

$ dpkg -l | grep mysql

iTerm2起動時に複数窓を開く

1. 複数窓を開く

f:id:t_saeki:20170403112905p:plain

2. Window -> Save Window Arrangement

f:id:t_saeki:20170403113259p:plain

名前入力ボックスが出るので適当に設定。

3. Preferences -> General

Startup欄の「Open Default Window Arrangement」 を選択
Open profiles window を選択

f:id:t_saeki:20170403113545p:plain

4. Preferences -> Arrangements

f:id:t_saeki:20170403113906p:plain

先ほど設定した Window Arrangement を選択、Set Default で設定完了。

雑記

勉強会に行く回数を減らした

以前は多い時で週2くらいのペースで勉強会に行っていた。
それはそれで良くて、社外のエンジニアが考えてることを知れたり、ざっくりとした界隈の技術的な温度感みたいなものが把握できた。 定期的に遊びに行くエンジニアの友達もできた。
でも今は、月2ペースくらいまで参加する勉強会を減らしている。
特にそうする強い理由があるわけじゃないけど、しいて言えば、何となく勉強会に行くよりも家で技術書を読んだりコード書いてる方が充実感がある、というくらい。
週2で言ってた頃はアンテナに引っかかったイベントがあれば何も考えずに参加してたけど、今はまあどうしても行きたいイベントだけでいいかーという感じ。
あとちょこちょこLTする機会はもらえていて、それはどんどんやっていきたいという気持ち。

コードレビュー

コードレビューするためには色んな角度からコードを読む必要があって、命名の適切さとか言語的に効率の良い書き方ができてるかとか、パフォーマンスとかセキュリティが考慮できてるかとか、そもそも設計に問題がないかとか。
だから同僚からもらうレビューのコメントはすごい勉強になるし、自分が同僚のコードをレビューしてても勉強になる。
これを社内の人しか見れないプライベートなリポジトリだけにとどめておくのはもったいないなと思う。
とはいえレビューのコメントには往々にして社外に公開できないような事業的な内容も含まれているので難しい。
できることなら他社サービスのプルリクとか見てみたい。OSSのプルリク読めよって話だけど。

危機感

何か行動を起こすためのモチベーションとして自分の現状に対して危機感を持つ、ということに正しさがあるにしても、危機感を感じているという状態も長く続くと慣れるよなーと思う。
慣れは行動を阻害する要因になるので、危機感を感じてる状態が続くことに対しても危機感を感じれるようになると良いという感じ。メタな危機感。