週報 2021/5/17(月)〜2021/5/23(日)
📚 1週間の感想
こんにちは。もうだいぶ暑いっすね!自分は暑いのが苦手なのでこれからしばらく憂鬱です〜😭 今週は後半になってSinatraメモアプリのコードをやっと書き始められました。まだ動作版の完成には至ってないですが、やるべきことが分かってきたのでコードを書くのが楽しいです。
あとは、Twitterでこんなことを呟いてみました。
チェリー本読み直したいな。2〜3人で輪読会できたらよさそう。
— トミー (@eatplaynap329) May 19, 2021
何の気なしに呟いただけなんですが、思ったよりたくさんの方にご興味を持っていただき、最終的にブートキャンプ生5人でチェリー本輪読会をスタートすることになり、今日(5/25)初回を行いました😆 すっごい楽しかった!皆で読むと色んな意見が出て、理解も深まるしかなり面白いです。
イベントを主催するとか全く想像してなくて何も分からん…状態だったんですが、色んな方に助けてもらいながらなんとかできたので、なんかやりたいことがあると気軽に呟いてみるといいかもしれないですね。Twitterってそういう場所だと思ってます!!(クリフハンガー)
📚 もくじ
📚 今週やったフィヨルドブートキャンプのプラクティス
- Sinatra を使ってWebアプリケーションの基本を理解する
📚 目標と成果
目標 | 成果 | 来週の課題 |
---|---|---|
Sinatraメモアプリ動作版を完成させる | 完成してないけど終わりは見えてきた | がんばれ〜 |
1回質問する(形式問わず) | した! | 週1回は質問タイム参加しよう |
📚 学習時間
日付 | 時間 |
---|---|
5/17(月) | 00:15 |
5/18(火) | 03:30 |
5/19(水) | 07:00 |
5/20(木) | 05:30 |
5/21(金) | 02:30 |
5/22(土) | 02:30 |
5/23(日) | 00:15 |
合計 | 21:30 |
📚 週報
📅 5/17(月)
💪 やったこと
- Sinatra: README (Japanese)をちょっと読んだ。
- マイナビプログラミングコンテスト2021(AtCoder Beginner Contest 201) - YouTubeをちょっと見た。
🍕 感想
- 兄の結婚式で遠出していたんだけど、やっと家に帰ってこられた!
- 学習は、やらないよりましと思って15分だけやった。全然頭に入ってないけどまあいいや。
📅 5/18(火)
💪 やったこと
- メモ詳細ページを作ろうとがんばるが、各メモを識別するIDの振り方が分からず悩む。
- paizaの通りtxt形式で保存させていたが、日報を見ると、ほとんどの人がJSON形式で保存しているようなので、JSONについて調べた。
JSONについて
- JSONは構造化したデータを表すためのデータ記述言語のひとつ。
- データを階層的に並べることで構造を表現する。
- 文字列以外に、数値や空を表すデータも扱うことができる。
- データファイルは小さめなので、ネットワーク転送速度は速くなる。
- XMLと比べ、人間には読みにくい。
- JavaScriptで書かれたプログラムではJSONをそのまま(XMLのようにDOMを利用せず)JavaScriptとして読み込むことができる。
- Rubyではライブラリのひとつとして用意されている。 library json (Ruby 3.0.0 リファレンスマニュアル)
# requireでJSONモジュールが使えるようになる require 'json' # to_jsonメソッドで、ハッシュをJSON形式に変換 p ({name: eatplaynap}.to_json) #=> "{\"name\":eatplaynap}" # JSON.parseメソッドで、引数で渡したJSON形式の文字列をハッシュへ変換 result = "{\"name\":eatplaynap}" hash = JSON.parse(result) p hash #=> {"name"=>eatplaynap}
🍕 感想
📅 5/19(水)
💪 やったこと
- 日報を頼りにフォームからJSON形式で受け取ったメモタイトルと内容にIDを付けることに成功した!
- みんなJSONのファイルを複数にするか1つに書き足していくか迷っているようで、1つだとうまく行かなくて複数にした、という記述をたくさん見かけたのでそこは頑張らず複数ファイルで行くことにした。
- あとlayout.erbも実装した。やること多くて難しいと思っていたけど、慣れてくると何がそんなに難しかったんだっけ?という気分に…
- 参考になったURL
🍕 感想
- Sinatraやっと何すればいいかが分かってきて嬉。getメソッドでブラウザで'Hello World!'を表示させるハードルは確かに低いけど、その後はめちゃくちゃ難しい気がする…。あと資料が少ない…😭
- ポモドーロをまた再開させた!今使ってるアプリは自分で25分→5分→25分→…のタイマーを押す必要があり、休みを伸ばしたりしがちだから何か別のアプリを試してもいいかも。
📅 5/20(木)
💪 やったこと
- JSON形式で保存したファイルを開き、タイトルを一覧ページに表示させることに成功した。
- その際、いっしー (id:isshi-hasegawa)さんがDiscordで呟いていたCode Runnerがすっごく便利だった。この拡張機能がないとSinatraのコード書くの無理でした。感謝!!!
- 自分の書いたlsコマンドのコードも参考になった。でも久々に見たらめっちゃリファクタリングしたい!!というお気持ちになった。
- 一覧ページから各行のリンクを作ろうとして、IDとマッチするURIをリンクするコードを書いてて、そもそも各メモ詳細ができてないことに気づく。
- 久々に参加した質問タイムで、 File.openを
get /memos/:id do
の中でやるというヒントをもらったので、明日実装していきたい。 - ファイルを開く処理は、一覧ページを取得するメソッドの中ですでに書いていたので、切り出して再利用すべきか?と思って難しくて分からなくなっていたので、一旦重複する処理を書いて動くものを作るという当たり前の視点が欠けていた。
- 久々に参加した質問タイムで、 File.openを
🍕 感想
- 質問・雑談タイムへの参加時間を学習時間に含めることにした。というのも、16時から1時間学習を中断することになり、ただでさえ少ない学習時間が更に減ってしまう!というのが参加のハードルになっていたため。1時間質問したり、他の人と交流したり、質問を聞いたりするのも立派な学習だもんね。
- チェリー本輪読会、Discordで募集してみた。数年前の自分だったら自意識過剰で誰も参加しないんじゃないかと思ってこういうこと出来なかったな。YouTubeも無理だっただろうし。成長してるな。
📅 5/21(金)
💪 やったこと
- ほぼずっとためてしまった日報を書いてたみたい。
- チェリー本の輪読会のオリエンテーションの日程を決めた。
🍕 感想
- Rubyを始めたばかりというフィヨルド外の方にYouTubeを見てもらった感想をいただいた!めちゃくちゃ嬉しい…🥺(フィヨルド内の方の感想もめちゃくちゃ嬉しいです!!)
- チェリー本の輪読会楽しみだ〜!でも自分が主催することになると思わなかったので、大丈夫か?という気持ちでいっぱい。
📅 5/22(土)
💪 やったこと
- Sinatraメモアプリ、一覧からメモ詳細に飛べるようにできた! get '/memos/:id' で詰まったのは、このメソッドの中で、ファイルの中身のID情報からURIを指定する処理をしようとしていたから。考え方が逆だった。URIのID情報が先にあって、開くファイル名をあとから指定するという考え方でうまく行った💪
- チェリー本輪読会の打ち合わせDONE💪 平日毎日やってるはずなので、興味がある方はぜひ覗いてみてください😆
- エイシングプログラミングコンテスト2021(AtCoder Beginner Contest 202) - AtCoderに参加。C問題歯が立たなくてかなし〜😭
🍕 感想
- チェリー本輪読会の方向性決めの話し合いを行った。参加してくれる皆さんが良い意見をたくさん出してくださり、主催者として本当にありがたかった。とりあえずワイワイ楽しくRubyを学んでいければいいな〜(自分はあわよくばAtCoderで書いてるコードも洗練させたい)。
- Sinatraは分かった!→分からん!→分かった!→…を繰り返してる。『Webを支える技術』のHTTPのところまた読み直してみるか。
📅 5/23(日)
💪 やったこと
🍕 感想
- マサカリというものについて、投げる自由もあるのと同時に無視する自由もあるので、その上で正しければ取り入れることもあるんでは?という認識。なんでも技術的に正しければ素直に聞き入れるべきだとは私は思わない。
- しかし、全角と半角を混同させて使う昔の職場の先輩に対して抱いていた憎しみを思い起こすと、自分はマサカリについて何を言える立場でもないかもしれない。
📚 来週の目標
- Sinatraメモアプリ動作版完成
- 疑問を1つ解決する
- 輪読会全出席