ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

続 フロント書いてた

今日やった事

続 フロント書いてた

今週行く勉強会でおしゃべりする題材に、2ちゃんねるクローンみたいなのをFirebaseを使って作っていました。

f:id:uutarou:20181021230742p:plain

ひとまずちゃんと動くようになったので、資料作成の方を進めていきたい所存。(結局時間食われて今日1日潰れた)

これくらいのちっちゃなアプリを作るだけで土日潰してしまった。自分の実力的にはそんなもんなんだと言うことを学んだ。

正しく作業時間見積もれるようになりたいものですね。

明日の予定 / やること

  • SA x 2
  • 研究
    • マジでやらんとヤバイ
  • 資料作り
    • 空き時間に進めたい

雑談

前回喋った時より自分の理解が薄い気がしてちょいヤバ。

巻き返せるか…?

出かけてました

出かけていました。何にもできてません。

これだけ少し読み進めた。2章まで読み終えたが、なかなか難しく僕の頭では一発で理解するのは困難だと感じているので、とりあえず通しで読んでまた読み直そうと思う。

Webアプリ開発 / Flutter

今日やった事

Webアプリ開発

ゴリゴリ書きました。

github.com

とりあえず主要な機能はできたかなーって感じです。

バグが取りきれてないところとか絶対ある気がするのと、Firebaseのセキュリティルール書いてないので、広く公開できるようなもんではないけど…。

いろいろと悩みながら作ったので、stateの名前と役割が不一致な部分があったりして、メンテナビリティー超低いコードになってしまったという反省。この辺は場数踏むしかないなぁという気がした。

今回のコードが、全部で1万5千行くらい(まじか?ちょっと怪しい)で設計が崩壊しかけているので世の中のプロダクションの規模のものを開発したら確実死すると思った。

それくらいの規模のものを触れるようになるにはどうしたらいいのだろうか。

思いつくところとしては、基礎的な知識は完璧に近い状態にしておくくらいだが、果たして。

Flutter

なんか違うことしたいなぁと思って、Flutterを触った。

とりあえず導入。導入自体は、サイトに書いてる通りにやればよくて、一個だけ詰まったのは、flutter doctorというコマンドを使うと、何を入れればいいか教えてくれるが、その案内だとiOSAndroidの環境両方入れないといけないように見えるが、Androidだけで動かせれば良いということであればAndroidStudioだけ突っ込めば動く。まぁよく考えればそうだよなぁと思うけど。

んで、公式チュートリアル

flutter.io

f:id:uutarou:20181017233145p:plain

こんなアプリができた。

↑のスクショはエミュレータで動いているが、実機もUSBデバッグオンにして繋いだら特に何もせずに使えるようになった。接続中のデバイスflutter devicesでみられる。

開発環境としては、VSCodeを使った。拡張がいい感じなので、IDEじゃなくてもいい感じに開発できる。

ただAndroidStudio使うこともできて、iOSのRunもそこからできるらしい。AndroidStudioでiOSアプリの開発。ちょっとシュールでいいなぁと思ったのでいずれ試したい。

Flutterは趣味程度でちょくちょく触っていきたいと思う。

C言語

明日SAやらないといけないので予習をしていた。

構造体の勉強をした。JSでいうとObjectやな、と思った瞬間に「あ、JSって全部Objectやん」と思って終了した。

案外簡単だった。構造体ってどうやってメモリ確保されるんだろうか、それだけよくわからなかった。

明日の予定 / やること

  • 研究
    • 流石にそろそろやらないとマズイのでなんとかする
  • SA

雑談

長いブログ書いてしまった。

React + Reduxでゴリゴリ書いてました

今日やった事

React + Reduxでゴリゴリ書いていました

数日に渡って書いているメモアプリ的なやつを一気に進めました。

github.com

今日は16commitsくらい、多分。

一時期悩んでいたReduxのステート設計は、1画面1Reducerとするようにして、複数の画面をまたがるStateはReducerを別で作って切り出すのがうまいことハマって、割とメンテナンスしやすいコードが書けている気がします。(当社比)

ただ、どうしてもReactのlifecycle methodに頼らないとダメな箇所があったりとその辺は悩みどころ。

github.com

こんなのを使ってやればいいのだろうか。逆にここまでして、Reactのコンポーネントをステートレスに保つ必要があるのかとかはよくわからないです。よく考えよう。

あとは、メモの編集画面と新規作成画面は、見た目はほぼ同じなので、その辺を共通コンポーネントに切り出そうとしているのですが、その辺がうまいことできないなぁとか。

明日の予定 / やること

  • 今日の作業の続き
  • 研究
    • そんなものはなかった()

雑談

今日は途中からノッてきていい感じに書けたのでよかったかなと思います。

研究Day

今日やった事

研究

流石に研究を進めないと卒業できなくなってしまいそう(笑)なので、丸一日全部研究を1日やると決め込んで大学に行きました。

その一環というか、実験のために、Webサーバーの動きをコントロールしたかった。

自分で書くことも考えたが、H2OというWebサーバーRuby(正確にはmrubyという軽量なRubyの実装)で拡張を書けるので、それを試したり、実験したりしていた。

公式のドキュメントが、使用例豊富でいい感じ。

Using Mruby - Configure - H2O - the optimized HTTP/2 server

ドキュメントにも書いているが、ステータスコードとして399を指定すると次のハンドラに処理を流すことができる。これを利用して認証モジュールを書いたりできる。研究とは関係ないが楽しい。

明日の予定 / やること

  • SAやってる科目のお勉強(C言語)
  • あとは研究半分フロントエンドの勉強半分

雑談

学校に21時前くらいまで残って作業するのが一番効率的な気がする。

コードを書いて本を読んでましたあとCircleCI

今日やった事

コードを書いた

引き続き、メモアプリを作っていた。

medium.com

この記事を読んで、やはりFormの入力値などもすべてReduxのStoreにぶち込んだ方が、複雑にならなくて良いのかもしれないと思って、リファクタリングしたり、見た目に少しだけ手を入れたりしてみた。

あとCircleCIでFirebase Hostingにデプロイしようと思っていろいろ試したが、うまく動かず。こちらは原因不明。

f:id:uutarou:20181014230030p:plain

本を読んだ

やる気を生み出す方法が書いていると聞いて…

明日の予定 / やること

  • SA3コマ
    • 1日で3コマも入っている
  • 研究
    • Webサーバーのmruby拡張を動かす

雑談

いい加減研究やらないとやばくね

今日やった事

Reduxアプリを黙々と書いた

昨日の続き。

黙々とアプリを書いていた。やっぱり、なんか釈然としない感じ、もやもやとした感じを抱きながら書く羽目になる。

多分原因は、「このコード、拡張しろって言われたらどうする?」とか考えると、無理としか言えないようなその場しのぎのコードだからなんだと思う。

拡張性のある、きれいなコードどうやったらかけるんだ。

ソースコードリーディング

github.com

ある程度の規模のReactのソースコードの例をこれしか知らないのでとりあえず黙ってこれを読んでる。

数日前にも気づきをいろいろ書いたが、やっぱり過度にReducerを分割しすぎずに、1画面1Reducerにとどめておく事で、ある程度わかりやすいコードかつ、拡張できるコードがかけるのかなと思った。

明日の予定 / やること

  • ソースコード読む
  • Reduxの公式ドキュメントを読む
    • そういえば読んだ事なかったなぁと思って。何かヒントがあると嬉しいのだが…。
  • コード書く

雑談

どうやったら最強になれるんだ…。マジで厳しい。もっとストイックにやっていかないとダメだなぁいう感じ。まだ作業するけどとりあえずブログ忘れそうだし更新しておく。