return 1;

Webエンジニア、RailsとJSをメインに仕事しています。チーム開発が得意で、0-1や1-100のどちらも行う

Webエンジニアです、少し時間が空くので相談乗ります

こんにちは、ライオンです

フリーランスで専属契約していたところを満了を迎えることにしました

理由はリリースを迎えたので、一旦区切りにしたいなーというところです

やったこと

明確な肩書きは持ってなかったですが、フロントエンドのリーダ職のように振舞ってきました(現場の人からは邪魔だったかもしれないですが)

タスク的にはフロント側のアーキテクトの選定、フロント設計、ユーザ側/管理側のデザインのテイストの微調整や仕様決め、他業務委託メンバーのリソースの再分配やタスク割り振りやアド側の方と連携してタグマネージャ管理やアナリティクス計測などなど...

過去から遡れば当時部長だった人と評価制度を作ったり、面談フローを整えたり、人事周りなどに手を入れたりなどもしました

いろいろと経験させてもらったのがホント良かったなーと思いつつ、まだまだスキル不足や体系的な説明がうまくないので、人の説得ということに本当にぶち当たることが多かったように思います

経験

管理画面はVue.js、ユーザサイトはVanilla.js

Vue.jsはハマる時はハマりますが、すんなりといけることの方が多いので学習コストの低さとプロダクトへの取り込みやすさとデザイナーさんとの連携もすごくしやすいので好きです

ただコンポーネント粒度を考えるのには本当に何度もハマりました

いまだに適切な答えが見つかりませんし、アトミックデザインが最適だとも最初は思っていたのですが結局デザイナー作業をする人に浸透していないと意味がないものですし、自分からしてもコンポーネントが増えすぎて管理コストが増えてこれはどこから流し込むんだっけと考えることが多くなり、アトミックデザインの採用は見送り、ブロック単位でのそのプロジェクトでしか活用できない粒度で切ったりしました

しかしそれも捨てられることを優先した結果です

ここで見えてきた結論は捨てやすいこと、そして親と子と孫ぐらいまでのコンポーネントの合成粒度にしておかないと自分では把握できないなーということです(どこかで見たのですが、人間が把握できるクラスは2先祖ぐらいまでだ、っていうのを頑なに信じています)

ただ、自分はその結論にしか至れませんでしたが、他のメンバからはDIコンテナにして流し込む形にした方が良いのでは、とも頂いてまた違ったVueの設計が見れそうでとっても面白そうです

それの完成形を見れないのが残念ですが...

その他にもGoでサーバサイドを書いているのでview helperとかぐらいなら書けるようになったのは楽しいです

癖があって、Timeを弄る時には「え」ってなったりしたのも良い思い出です

あとはElixirも少しだけ書けるようにもなりましたし、Rustも少しだけ書けるようになりました

Rustはもっと使いこなしたいですし、フロントエンドでもEmscriptenを使わずにコンパイルできるようになったらしいので、画像系の計算処理はどんどんとそっちに移行するかもしれませんね

ですが、この間Qiitaで見たのではまだまだwasmが早い、とはならないっぽいのが辛いところですね

qiita.com

個人的にはwasmからdocument.createElementとかdocument.querySelectorができたらもう何も言うことはないんですがね

今回GCPを触れたのも楽しかった一つです

GCP自体全く触ったことがなかったのでgsutilやgcloudが少しでも触れたのは楽しかったなーと

それと社内で業務委託の子がgoland使っていたので、自分も使い始めました

効果としては自分はvimでgoを書いていて こちら を使っていたのですが、定義元の定義元にジャンプができず、困っていました

golandだと定義元の定義元もそうですが、インスタンスからでも元ファイルを辿っていけるので、単純にすごいなと思っていました

それとpostgresqlのslackで質問した時にそーだいさんが「datagrip(有償)便利ですよ。」って言っていたので使い始めましたがこちらはまだまだ道具に使われている感じが否めません

早く使いこなしたい

あと情報系の院に行っているような若い子たちと仕事すると新しい世界が見えるので単純に面白いし、技術の伸び幅が全然違うので本当に理解力が違うし、すごい刺激になる

頭が下がるし、レビューしてボコってくれたのも良い経験だし、そっと出してくれたコードの方が遥かに分かりやすかったりで、目から鱗でした

どうしても書いていると視野が狭くなる、というかなるべくスコープが小さく終わらせようとするか、大体的に変えてあんまり良くない方法で実装しようとしてしまうのでもうちょっと考え方を柔軟に持たないとこの先厳しいなと自分自身感じたのでこの辺は宿題ですね

次したいこと(もともと考えてたこと)

次はいろいろとやりたいことがあって、いくつか書いてみると...(ずっと昔から考えてたこともあります)

  • またサーバサイドの方も、というか一貫して作るフローに戻りたいですね
    • それなりに高いユーザ体験、みたいなのを考えるとフロントエンド側から作ることをしないとダメかなーと思っています
    • もちろんここら辺はプロジェクトによってはサーバサイドとの連携が密なところは全然問題ないと思います
  • プロダクトオーナーもやりたいですね
    • ビジネスセンス無いんですけど、必死に考えられるのもこの歳ぐらいまでだと思っててもう3年もすると多分「ご飯、うんこ、ちんぽ、おっぱい、にゃーん、くぅーん、がおー」とか単純な言葉しか発せられるなくなるような気がするので経験しておきたい
  • フリーランス同士でタッグ組んで、プロダクト作ってみたい
    • これはもう少数精鋭に憧れがある状態なんですよね
    • esaとかすごい「あれあれ!あれなんですよ!」みたいな自分の理想形
    • とにかくもう「8h/1day 週5」みたいな感じの日本奥ゆかしい働き方をやめたい
      • 1日は24時間でその1/3を捧げたくないし、みんなにも捧げて欲しくない
      • 8hもあるけどその内集中してできる時間なんて2, 3hが限界なのはもう分かり切ってるから働く時間を4hにしたい。もちろんフローの状態が長く続くのであればそれは時間を使っても構わない(毎日8時間は全然割に合わないけど、ノッてる時は逆に時間に邪魔して欲しくない)
    • 1社と専属契約する世界観を終わりにしたい
      • 1社勤めが長いとやはりその世界観でずっと続く
      • その会社だと強いかもしれないけど、世界に出ると全然強くないことなんてザラだし、ガラパゴス化が確実に進行する。それは病のように
  • Webに向いていない人と働くのはしんどいのでなるべく波長の合う人と働きたい
    • 自分の作業を標準化する、という事に関心を持ち、品質担保に他の人の作業内容にまで責任を持ち、前行程と後行程の人のことを考え、些細なことでも情報を共有し、物を売り切り型で売らない、というような気概溢れるチームで働きたいと考えています
  • 倫理観を持っている人と働きたい
    • 自分も高いわけじゃないけど、民度が低すぎた(共有ごみ箱に直接唾を吐くのや、椅子の座る部分に載せてある自分のコートを踏んづけて座る、などなど)
  • 意識高い系でいくわけじゃないけど、ユーザファーストであるような現場で働きたい
    • 勘違いして欲しくないが全てをユーザに捧げるわけではない
    • ユーザは神様ではない、ユーザである

まとめ

ここに書いたことが全てではないですが、もっと次は人生が楽しくなるようにお金を稼いでいきたいと思っています

ちなみにしばらくはお休みしようかと思っていて、その間にいろいろな相談事を受けようかと思っています

お仕事のお話は自分を知っている人だったら知っている方法で、それか lion44man at gmail.com まで

大量のメールが毎日来るため、見落とす可能性もありますが、ご返信が無かった場合はご縁がなかったということでお願いします