[勉強ノート] 8月学んだこと

最近は案件を複数回すようになってきてコンテキストの切り替えが難しくなってきた。

vueを久々に書いたが、忘れすぎていてびっくりした。詰め込みすぎてやったことどんどん忘れていきそうだから勉強になったことをまとめていこうかな!と思った。

僕自身ゴリゴリ書けるエンジニアじゃないのでゆるふわな感想が多いです。

javascriptのホイスティング

今まで意識して書くことがなかったのでとても勉強になりました。

goのrevelとgormについて

一通りrevelを使ってみたと思う。

個人的にはMVCっぽい考え方がgoに合わなさそう・・・という感想。そこまでgoは書いていないが、ginとかechoの方が使いやすそうな印象。テストをしっかり書きたいと思いinterfaceに依存させるように全部書いていくと、結局リッチなフレームワークってあんまりgoではいらなさそうと個人的には思ってしまった。

https://revel.github.io/

gormに関してはとても使いやすかった印象。validationをみんなどう書いているのかはわからないが、パッケージを使ったら個人的にはそれっぽくて良い感じでは?と思った。

https://github.com/qor/validations

react

ちょこちょこhooks触って実戦投入し始めた。すごく快適になった気がする。

https://qiita.com/erukiti/items/fb7bcbd9d79696579d06

自分がreactいいなって思ってるのを足りない知識なく言語化されている気がしてとても良い記事でした。有難や。

https://github.com/numa999/react-redux-example

これは導入前に適当に作ったサンプル。reduxのmiddlewareについても色々使ってみた。結論redux-thunkがちょうど良くてよかったなと思っている。redux-sagaは重たすぎるが、複雑なUIが多いサービスには良い気がしている。今回導入しようとしたサービスの感じだと、redux-thunkが良さそうだった。TSでもしっかり書ける。

書き味だけでいうと、vuexよりずっと好きだった。やっぱりTSにしっかり対応しているのも好きだし、書き手が気を使って頑張らないとTSでかけない状態というのがとても好きじゃなかった。reactが好きなのも同じような理由。

あとは全然別の話だけど、atomicデザインについて、デザイナーとエンジニアの共通認識を作るのはとても難しいんだなと思った。

ruby

オブジェクト指向とは?みたいなたいそうなことは語れないが、初学者に教える機会が多くなり、何を教えたらいいのか正直よくわからんかった。

局所的な可読性は「まあこっちの方が良くない?」くらいで教えられるが、今まで浅くやってたあるいはやってすらいないかもしれない、設計について話そうとした時にあまりうまく言語化できない気がした。

不必要な継承や抽象化が多いのでは?ってなっていて、もはや追えない人の方が多いような状態。調べていたらここら辺の記事が参考になった気がする。これの善し悪しは作りながら決めるとしても、参考にして人に話す時に考えを言語化できていたら良いなと思いました。

https://qiita.com/tutinoco/items/6952b01e5fc38914ec4e
https://qiita.com/tutinoco/items/7f7568cc7dbf7e2276c8
https://www.javaworld.com/article/2073649/why-extends-is-evil.html

ただ実際にメインで作っている方達がもう困っている。すでに状況は遅かった気もした。このパターンは何が正解!っていうのはあまりない気がしていてチームのみんなで話し合ってみんなが分かりやすければそれでいいと思ってもいる。誰かが黄色信号を出した時にうまい感じに落とし所を見つけられるのが良さそう。

チーム的には全員が初学者のチームなので、個人的には継承や抽象化は一旦避けて、railsのクラスのみを継承して全てを作り、同じような関数が増えてきたらデザインパターンの中から適していそうなものを見つけてうまく抽象化していくのが良いと思い提案した。

デザインパターンについてはここら辺を参考にしてその時には適切だと思える形で実装するように心がけたい。

https://morizyun.github.io/ruby/design-pattern-index.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です