この記事ってなに?
エンジニアとしてもう少しで1年となる私がQiitaデビューをしてみたい!から書いてます。
TypeScript
JavaScript
を触ってきた私が、表現力を身に着けるためにも関数型言語を学んでいく備忘録がわり。
でモチベーションって?
表現力向上。
表現力とは?
何を
どのファイルに
どう書くか
あたりをエンジニアの表現力と考えています。
私がエンジニアになって一番苦労しているのは 何を
どのファイルに
書くのかです。
良く遭遇して悩むのが、
- 共通化できる処理はひとまとめにして、適切な場所に置く -> 適切な場所ってどこ???
- 再利用しないような処理もファイルが大きくなってきたら可読性を担保するためにファイルを分ける -> どのくらいのサイズで大きいと認識する???
- 関数や変数、ファイル名の命名がイケてない -> イケてないってなに???
といった抽象的な概念です。
アーキテクチャの勉強をしようにも、DDDも相当抽象的で私には全く理解できませんでした。
エンジニアリングの最適解は移り変わりの早いこの業界的には抽象的な概念として扱うほうが理にかなっているのかもしれません。
私の大好きな漫画 王様達のヴァイキング
から引用すると ハッカーはアーティストですよ
とのこと。
では初級エンジニアがどのように 何を
どのファイルに
といった表現力を伸ばせるのか?
考えてもわからないので、まずは色々な言語、アーキテクチャに触れてみるべきかなと思いました。 don't think, feel
です。
そこでHaskell
Haskellのドキュメントをみてもわけがわからない。
モナド?カリー化?なにそれ
これだけわからないものに体当たりすれば何か得られるかも!
そんなモチベーションでやっていきます
やっていこうと思っていること
個人プロジェクトで作成しているAPIをHaskellでかけたらと思っています。
そこでのchipsをちょこちょこ掲載していきたいと思います。