週報 2021/6/21(月)〜2021/6/27(日)
📚 1週間の感想
こんにちは〜。今って梅雨…なんですよね?暑くて謎の季節ですね。 Sinatraのプラクティスは月曜に合格し、本格的にRailsに入ることになったんですが、生理前で全くやる気が出ず、だらだら過ごして学習時間も短めです〜。よってテンションも低めです。こういう週もありますね〜!
一応YouTubeの毎日更新を再開したので良かったと思います。
📚 もくじ
📚 今週やったフィヨルドブートキャンプのプラクティス
📚 目標と成果
目標 | 成果 | 来週の課題 |
---|---|---|
Railsの教科書読了 | OK | 現場Rails一度読み終えたい |
YouTubeを再開する | OK | ひきつづき |
📚 学習時間
日付 | 時間 |
---|---|
6/21(月) | 05:00 |
6/22(火) | 04:15 |
6/23(水) | 02:45 |
6/24(木) | 04:15 |
6/25(金) | 01:00 |
6/26(土) | 00:45 |
6/27(日) | 03:00 |
合計 | 21:00 |
📚 週報
📅 6/21(月)
💪 やったこと
- 課題の再提出を行った。詳しくは下記。
- erbの中身がごちゃごちゃしていたので、新たにfindメソッドを定義して各メモのデータをメソッドから取得する形に変更。
- formの閉じタグの位置がおかしいと指摘を受け、閉じタグの位置を調整してみたところ、思ったようにCSSが効かなくなる。→質問タイムで秒で解決。閉じタグではなく開始タグの位置がおかしかった。
- あと細かい箇所色々。
- 修正して出したらすぐに合格が出て嬉しかった〜!
- 週報書いた!
- 輪読会仲間のHosso さんがA問題を解く思考過程をまとめたブログを読んだ!同じ問題を解いていても自分と書き方が全然違うので面白い。自分の場合、動画だと焦っているのもあり、どうしても簡単な書き方ばかりになってしまうが、じっくり考えて思考過程をまとめると成長しそうだな〜と思った。
🍕 感想
- SinatraメモアプリDB利用版、合格出来てよかった〜〜!大変な課題だったんだけど、この課題を通じて出来るようになったことがたくさんある気がする。
📅 6/22(火)
💪 やったこと
- Railsの教科書を最後まで読み終えた!YouTubeのサムネを使ったら画像でかすぎた!
- i18n化の参考資料をちょっと読んだ。全然何すればいいかわからないから、とりあえず現場Railsを読んでみようかな〜。
🍕 感想
- Sinatraで参考にした資料を人に渡そうと思って自分の日報を探したが、全然見つけられず過去の自分にムカついた!ので、今後はちゃんとした日報のタイトルをつけるようにしようと思った。
- 輪読会でも質問タイムでも、みんなどうしてすぐにURLを渡せられるのか分からない。いつももたもた探している間に誰かが探し出してくれる気がする。
📅 6/23(水)
💪 やったこと
- チェリー本輪読会後用事を済ませたらやる気が出なくて、他の人の日報を読んで今後のRailsプラクティスの進め方を考えた。
- あとは『達人プログラマー』のオーディオブックを聞いた。「コードを書き終わったあとに最後にテストを書くのは、テストを書かないのと同じ」とのこと!
🍕 感想
- やる気が出ないので色々インプットする日にした。
- 受講生の方が「すでに同じような技術ブログがたくさんあるのに、自分がアウトプットする意味はあるのか?」という疑問をブートキャンプのQ&Aに投げていて、とてもいい意見が集まっているので刺激になった!私自身は「何が誰の役に立つか分からないから書きたかったら書いたらいい」という考え。
- アドバイザーのうづら (id:udzura)さんは、noteでQ&Aに書かれた内容を外部公開されている。
- ↑のnoteでも公開されている何故アウトプットが大事なのか - ペパボテックブログを読み、こちらも非常に共感したのでYouTubeの毎日録画をやっぱり再開することにした。
- いろいろやってると人の役に立ちたいという欲が出てきてアウトプットのハードルを上げるので、たくさんやったうちの1つが誰かの役に立つかもしれないし立たなくても自分のためになるという気持ちでゆるく続けよう。
📅 6/24(木)
💪 やったこと
- チェリー本輪読会参加。
- 分報を見ると、ドットインストールを見てオーディオブックを聞いていたと書いてあるので、『達人プログラマー』の続きを聞いていたんだと思う。
🍕 感想
- 生理前でやる気が全くでないので昼寝したり美味しんぼを見たりしていた。
- twitterでバズっていたyharaさんのブログを読んだ。関連してWaffleのあすみさんが登壇したイベントを思い出したので、動画を見たりした。パネルディスカッションがとくに新しい発見があって面白かった。AI倫理について英語で学べるリソースも紹介されていた。
📅 6/25(金)
💪 やったこと
- チェリー本輪読会参加。
- 輪読会5週目終了!普段他の人がどう考えてコードを書いているかを知る機会がないので、輪読会中に話しながら知れて面白い。自分は今までコードの中にコメントを書いたことがなく、もしかしたら書いたほうがいいのかな〜と思っていたけど、書いてから提出前に消しているという方が数人いて、自分と逆でびっくりした〜。
🍕 感想
- 体調不良なので輪読会のあとは寝て過ごした。
- 輪読会さえ出ていれば1時間は学習が確保できるから心に余裕が持てる気がする。
📅 6/26(土)
💪 やったこと
- オーディオブックで聞いていた『達人プログラマー』を聞き終えた。
- 今は角谷トークで紹介されていた『イノベーターズ』を聞いている!エイダ・ラブレスはバイロンがお父さんだけど数学の才能はお母さん譲りだったらしい〜
🍕 感想
- 体調不良でもオーディオブックは聞けるからいいな〜
- 輪読会について私もなんかブログ書こうかな〜
📅 6/27(日)
💪 やったこと
- ドットインストールのRails講座を全て見た。ファイルが多岐に渡っていて、書いている内容も「ヘルパー」や「ヘルパーのオプション」などが何なのか分からず眺めているだけになってしまった。
- よく分からないので現場Railsを並行して読んだら、若干理解できそうかも?
- 現場Rails、めちゃくちゃに難しいのでは?と身構えて読むのがダルかったが、読み進めてみるとそうでもなかったので、i18nのプラクティスを進めつつ読みたい。
🍕 感想
- やつはしさんといっしーさんが9時〜12時で休日ももくもく会を開催してくださり、今日参加してみた。自習室で一緒に勉強しているみたいですごく楽しかったし、土日ダラダラしがちなので今後も参加しようと思った!
📚 来週の目標
週報 2021/6/14(月)〜2021/6/20(日)
📚 1週間の感想
こんにちは〜。やっと関東も月曜日に梅雨入りしたらしいですね。エアコンの効率を上げるために部屋の扉を閉めるようになったんですが、なぜか閉めるようになった途端、普段私の部屋に寄り付かない猫が「開けろ」と文句を言いに来るのが謎です。
今週は1月以上格闘していたSinatraメモアプリをやっと提出できて、フィヨルドブートキャンプを始めて8ヶ月でやっとRailsのプラクティスまで到達することができました!長かったな〜!
Sinatraでアプリを作ってからRailsに入るというのは、Webアプリケーションの基本の仕組みを勉強するにはとてもありがたい流れだったのは確かなんですが、Sinatraと比べてRailsが何もしなくても何でもできる(あと学習資料がめちゃくちゃたくさんある)のでちょっと怖い…という気持ちにもなっています。
でもまあ引き続き楽しくやっていけたらいいな〜と思っています!ワイワイ!
📚 もくじ
📚 今週やったフィヨルドブートキャンプのプラクティス
- WebアプリからのDB利用
- Rails の基本を理解する
📚 目標と成果
目標 | 成果 | 来週の課題 |
---|---|---|
SinatraメモアプリDB利用提出 | OK | 合格! |
質問・雑談タイム1回は参加 | OK | ひきつづき |
Discordでわからないとき助けを求めるムーブを1度は取る | CSSの件拾っていただいた! | 分からなければwakaran |
📚 学習時間
日付 | 時間 |
---|---|
6/14(月) | 07:30 |
6/15(火) | 04:45 |
6/16(水) | 03:30 |
6/17(木) | 03:30 |
6/18(金) | 05:00 |
6/19(土) | 01:30 |
6/20(日) | 01:00 |
合計 | 26:45 |
📚 週報
📅 6/14(月)
💪 やったこと
- 午前中CSSをつけようとして格闘するも、思ったようにつけられない(
index.erb
だけに反応して、他のページに反応しない)ので、CSSは諦めて提出することにした。- 分報にその旨を書いていたら、メンターさんからアドバイスをいただき、改めて確認したところHTML内で
<link rel="stylesheet" href="/style.css">
をbody
の中に書いていたせいで一部しか反応しなかったようだ。head
内に書き直したらちゃんと反応した。 - CSSはどこに書く?外部CSSファイルの読み込み方&インラインでの書き方に書いてあるし、ちゃんと読んだつもりだったのに勘違いしていた😅
- 分報にその旨を書いていたら、メンターさんからアドバイスをいただき、改めて確認したところHTML内で
# 🗂 views/layout.erb # 👎 駄目だった記述 <!DOCTYPE html> <html lang="ja"> <head> <mata charset="utf-8"> <title><%= @title %></title> </head> <body> <link rel="stylesheet" href="/style.css"> <h1>メモアプリ</h1> <%= yield %> </body> </html> # 👍 OKだった記述 <!DOCTYPE html> <html lang="ja"> <head> <link rel="stylesheet" href="/style.css"> <mata charset="utf-8"> <title><%= @title %></title> </head> <body> <h1>メモアプリ</h1> <%= yield %> </body> </html>
- DBとテーブルを作るSQLを実行するコードを書くにはどうすればいいのか分からなかったが、READMEに直接書けばいいとのこと。なのでREADMEに、事前にpostgresqlでユーザーとデータベースとテーブルを作成する方法を追記した。それに伴って
memo_app.rb
でDB接続する際のコードも変更。- せっかくなので自分の書いたREADMEに則ってテーブル作成してみた。記述漏れが見つかった(DBを作るコマンドを記述していなかった)のでよかった。
🍕 感想
- CSSに関してはかなり苦手意識があったが、せっかくアドバイスをいただいたので、いい機会だと思ってちゃんと書いてみることにした。
- CSSもSQLも思い込みで進もうとして空回りしてしまったので、上手に人に聞きながら進めていきたいな。
📅 6/15(火)
💪 やったこと
- CSS書いて、READMEを編集して、PRを作ってSinatraメモアプリDB利用版をやっと提出した!
- CSSのデザインは基本的にCSS初級のプラクティスで過去の自分が書いたコードから使わせてもらった。過去の自分偉い!
- HTMLのクラスを書くのが億劫で億劫で後回しにしていたが、命名規則をちゃんと読めばそこまで複雑ではなかった。ちゃんと命名できているのかは分からないが…
🍕 感想
#プロを目指す人のためのRuby入門の正誤表、ちょくちょくアップデートされています。最近はフィヨルドブートキャンプの生徒さんから「ここ、なんか変じゃないですか?」って指摘をもらうことがしばしば。積極的なフィードバック、ありがたや〜🙏 #fjordbootcamphttps://t.co/Tpz9kGhxPd
— Junichi Ito (伊藤淳一) (@jnchito) June 16, 2021
- Sinatraメモアプリなんとか提出DONE!今の所1番大変だったプラクティスかもしれない。あとでプラクティスの感想や役に立ったリソースをブログにまとめよう。
- 8ヶ月半かけてとうとうRailsに入れる〜!楽しみ!
📅 6/16(水)
💪 やったこと
- Railsのプラクティスに入れたものの、何をしていいか分からず、大名の動画をちょっとだけ見た。最初何をやっているんだろう…と思っていたけど、Railsの教科書を輪読スタイルで読み進めていたのか〜。
- 週報を書いた。
🍕 感想
- 週報は毎週日報のコピペを再構成する形でかなり気楽に好きなことを書いているだけなんだけど、こうやってアウトプットをしていたのが輪読会メンバーを集めるときに役に立っていたというのを初めて知った!
- どういう人か事前に知っていたから参加しやすかったらしい!ワイワイ!
📅 6/17(木)
💪 やったこと
🍕 感想
- 今日はなんか全然やる気が出なくて駄目だった〜。
📅 6/18(金)
💪 やったこと
- Railsの教科書の第2、3章を読んで手元で動かしてみた。初
rails new
をキメた。 - Yay!
- ↑まではターミナル上でやってたんだけど、ファイルを編集しようとエディタを開いたら、Gitの管理下のファイルが100件近く出来ていてギョッとした。まさか自動的にGitの管理下に置かれると思わなかったので、間違って変なところにインストールしてしまったのかと。
- たった1行の↓のコマンドで自分が何週間も書いたSinatraメモアプリよりもしっかりしたアプリが出来てびっくりした。Railsすごい。
$ rails g scaffold book title:string memo:text
🍕 感想
- Sinatraから来るとRailsの便利さに目眩がしそう…。なんでも揃ってる!
- 数日前から輪読会後にいっしー (id:isshi-hasegawa)さん主催でもくもく会が始まり、今日初めて参加してみた。やつはしさんがポモドーロで時間を測ってくださっていて、一人でポモドーロやるときより時間に厳格にできたしとても集中できた。輪読会後ダラダラしがちという共通課題に解決策を打ち出してくれたいっしーさんに感謝。
- こういう感じで輪読会メンバー全員が主体的に会を良くしようと工夫してくれるから、満足度が高いのかな〜と思っている。
📅 6/19(土)
💪 やったこと
- SinatraメモアプリDB利用版のレビューをいただいたので、ざっと見た。対応は週明けにしようかな〜。
- Railsの教科書4章を手を動かしながら読んでみた。
- AtCoder Beginner Contest 206(Sponsored by Panasonic) - AtCoder参加。
- B問題でまさかTLEになって、別の計算方法を考えて書けたので満足した。でもね〜答えは合ってるものの、思ったような出力にならなくて力技でやったからなんかモヤモヤ。
🍕 感想
タマキ (id:shirotamaki)さんが、チェリー本輪読会1週目の学習内容をまとめたブログを読んだ。輪読会内で盛り上がった話題がコード例とともに解説されてあってとても面白く、何度も読んでしまった…! shirotamaki.hatenablog.com
aliasという英単語、プログラミング学習を始めてから初めて知った言葉のひとつだけど、「偽名」という意味で使うことを今日犯罪ドキュメンタリーを見ていて知った。
📅 6/20(日)
💪 やったこと
- 一昨日の日報で、railsで自動生成されるファイルの中には不必要なものもあるからgitignoreを作る必要があると教えていただき、何も考えずに全てpushしてしまったのでかなり焦ったが、最低限のgitignoreは自動生成されていたので驚いた。Rails便利すぎて怖い…!!
- Dont Be Afraid Railsを読んで、ピヨルドの横顔を初めて見た!かわい〜
🍕 感想
- 最近輪読会メンバーが皆ブログを書いててすごい!自分もSinatraのまとめでも書こうかと思ってたけど、書くことの多さに対し、有益さと面白さが疑わしかったので保留中…。
- プラクティス土日は進めないにせよ、ダラダラしすぎかもな〜バランス難しっ!
📚 来週の目標
週報 2021/6/7(月)〜2021/6/13(日)
📚 1週間の感想
こんにちは〜!また書くのを後回しにしちゃって水曜になってしまいました。 今週(というか先週)は毎日アニメの美味しんぼを見て過ごし、推しキャラの富井副部長のモノマネをして猫をビビらせたりしていました。
自分と美味しんぼの関係を話すと結構長くなります。 私は小学3年から中学1年までドイツで日本人学校に通っていたんですが、当時はKindleもYouTubeもなく、かつ、我が家ではインターネットは1日30分という謎ルールを課せられていたため、娯楽といえばJSTVか、友達のうちにある漫画だけだったんです。 友達自身の持っている漫画をあらかた読んでしまった後、友達のお父さんの蔵書から貸してもらったのが自分と美味しんぼの出会いでした。特に小6〜中1のときに仲良くなった(今でも親友の)Sちゃんちのお父さんは、ほぼ全巻の美味しんぼを持っていたので、毎日1冊ずつ借りて舐めるように読んでいました。日本の食事にも飢えていたので、どの料理も羨ましかった…😭
色んなWebサービスの発展のおかげで、いま外国に住んでいる子供にはたくさん母語で楽しめる娯楽があるから、友達のお父さんの漫画は読まないかもな。 そもそも紙の漫画を外国に持ってきている家族がいないかも。それでもNetflixやYouTubeで美味しんぼを発掘して見ている子もいるかもしれないですね。
それでは、上の話とはあまり関連もないですが今週の振り返りをしてみます!! Sinatraのプラクティスも、DBを利用しないバージョンを提出&合格し、DB利用版を動く状態まで書けたので、佳境に入ってきたという感じですね〜💪分からなくてもいつかは終わるんですね!
📚 もくじ
📚 今週やったフィヨルドブートキャンプのプラクティス
- Sinatra を使ってWebアプリケーションの基本を理解する
- WebアプリからのDB利用
📚 目標と成果
目標 | 成果 | 来週の課題 |
---|---|---|
SinatraメモアプリJSON版合格 | OK | - |
SinatraメモアプリDB利用版提出 | NG | 来週は! |
YouTubeでテスト書きまくる | OK | 自分のエディタから使えるようになりたい |
📚 学習時間
日付 | 時間 |
---|---|
6/7(月) | 06:00 |
6/8(火) | 05:45 |
6/9(水) | 05:00 |
6/10(木) | 05:00 |
6/11(金) | 03:30 |
6/12(土) | 03:00 |
6/13(日) | 02:30 |
合計 | 30:45 |
📚 週報
📅 6/7(月)
💪 やったこと
Sinatraメモアプリ修正
- いただいたSinatraメモアプリのレビューを再確認。下記は修正できた。
- ディレクトリトラバーサル脆弱性対策はこの日中に終了できなかった。
- 安全なウェブサイトの作り方 - 1.3 パス名パラメータの未チェック/ディレクトリ・トラバーサル:IPA 独立行政法人 情報処理推進機構を読んで何をすればいいかは分かった。
datastrage
ディレクトリを新たに作って、新規作成したJSONファイルをここに保存することはできたが、params
から受け取った値からbasename(filename)
で指定してファイルを開く処理がうまくできなかった。params
が何かの理解が曖昧かもしれない。basename
を↓のように使おうとするとNoMethodErrorが出る。
# ディレクトリトラバーサル未対策のコード def convert_json_into_hash(params) @memo_info = File.open(params) do |file| JSON.parse(file.read) end end # ディレクトリトラバーサル対策をしたつもりで書き換えたコード def convert_json_into_hash(params) @memo_info = File.open("datastrage/#{basename(params)}") do |file| JSON.parse(file.read) end end
Gitで起きた問題
- インスタンス変数名を変えたため、コミットメッセージに
@
を入れたら、誰かのアカウント名に紐付いてリンクされてしまった。 - 質問タイムで聞いたところ、バックスラッシュで回避すればよいとのこと。
- Pushするまで気づかなかったのでコミットメッセージを書き換える処理を初めて行うことになった。公式資料を見ながらやったらスムーズにできた。
🍕 感想
- Sinatraメモアプリ、レビューに従って書くうちに自分が何をやってるのかが分かってきた。また進捗が遅くなってしまうけど、新しいことをやる前に落ち着いて修正をしていきたい。
- 色々やることがたまっているので少しずつ消化していきたい。
📅 6/8(火)
💪 やったこと
Sinatraメモアプリ修正
- 昨日の日報でディレクトリトラバーサル対策をしたつもりでNoMethodErrorが出ていたコード、
File.basename
のるりまをちゃんと読めば何が間違ってるか一目瞭然だった。 - 空のディレクトリはPushできないと耳にしていたので、作ったJSONファイルを入れておくディレクトリに
.gitkeep
というファイルを置いて提出した。 - もっと追加の修正が入るかと思ったけど、2回めの提出で合格がいただけた😭
- 提出時は全く心のゆとりがなくて、最低限の機能のものしか作れなかったが、余裕が出来たらCSSなどの歓迎要件も追加してみようかな。
🍕 感想
- ブログを書いていた日。タマキ (id:shirotamaki)さんに↓のような感想をいただいて感無量😭
npmとnpb(NipponProfessionalBaseball)の違いがわからない僕でもできました😆
— shirotamaki (@shirocks) June 8, 2021
わかりやすさホームラン級!!#fjordbootcamp https://t.co/GbkoEj53vZ pic.twitter.com/HWL4JO1dpM
- 先週の週報から目標の達成度を見てみると、ざっくりした目標だと達成できていない(というか、目標自体を振り返ってみるまで忘れている)気がする。例えば「質問タイムで質問1回する」とかだと、頭の片隅に残っているので達成できている。上手な目標の立て方を今一度考えてみたい。
📅 6/9(水)
💪 やったこと
SinatraメモアプリDB利用
- SQLの概要を知るために以前使っていた教材がMySQLのものだったため、postgreSQLのコマンドを覚えるのに苦戦した。
SHOW DATABASES
は\l
で、USE DATABASE
は\c
。 - postgreSQLではワイの大好きな
AUTO_INCREMENT
も使えない😭代わりにSERIAL
で似たような機能が実現できる。 - とりあえずフォームから受け取った値をDBに保存→保存したメモのタイトルを一覧に表示まではできた。
- 一覧は最初↓のようになってしまったが、
puts
で値を表示させようとしていたため、puts
メソッドの戻り値nil
が入ってしまったのかと予想(チェリー本輪読会で得た知識)。
puts
を消したら各メモのタイトル情報がハッシュになったものが取得できた。
- ここから先は
erb
をいじれば実装できる(後から考えると変数名をJSON版と同じにしていればerb
は変更の必要なかった)。
- ↓でメモをDBに新規保存できるようになった。
VALUES('#{memo_title}', '#{article}')")
の#{memo_title}
と#{article}
をクオートで囲まずに実行したらエラーが出て困った。
post '/memos' do memo_title = params[:memo_title] article = params[:article] conn.exec("INSERT INTO memo(memo_title, article) VALUES('#{memo_title}', '#{article}')") redirect to('/memos') end
🍕 感想
📅 6/10(木)
💪 やったこと
SinatraメモアプリDB利用
- SinatraメモアプリDB版の動作verができた〜!これから地獄のようなリファクタリングが待っている。
- 現状自分のローカルのDBに接続するようなコードになっているので、どうやってメンターさんのローカルで実行できるようになるのか考えないと。
- あとSQLインジェクション対策と、クラスに切り分けと、できればCSSもあてたい。心に余裕が生まれてきたので。
🍕 知識
- 🇸🇱 はファミマではなくシエラレオネの旗。
nil.to_i
は0。nil.to_i.next
は…?
📅 6/11(金)
SinatraメモアプリDB利用
- 昨日動いたコードはSQLインジェクション対策をしていないので、調べて対策を講じる。pgのREADMEに書いてあるかな〜と思って見たけど全然見つからないので、皆さんの日報を頼りにリンクを辿って下記を参照しつつプレースホルダーを実装させるコードを書く。
# プレースホルダー未実装 get '/memos' do @title = '一覧' @memos = conn.exec("SELECT * FROM memo ORDER BY id") erb :index end # プレースホルダー実装 get '/memos' do @title = '一覧' conn.prepare("show","SELECT * FROM memo ORDER BY $1") @memos = conn.exec_prepared("show", ['id']) erb :index end
- ↑で動くものの、ただ正直コードが果たしていることの詳細はあまり理解できていない。
prepare
メソッドの第1引数であとで呼び出すためSQLの命令名を定義して、第2引数にSQLの命令を入れて、その後のexec_prepared
メソッドでさっき定義した命令を第1引数で呼び出して、変数に第2引数を入れて実行しているという理解で進めたけどあってんのかな。prepare
で、命令につける変数名に何か決まりがあるのか気になる。何でもいけそうだから適当につけてしまった。
🍒 チェリー本輪読会
- るりまに出てくる
int
やstr
やchr
みたいな略語が何か分からないという話が出た。言われてみると確かにどこ由来かわからないまま何となく類推して使っていた。 - 今日自分もSinatraの課題で、pgのドキュメントに
stmt
という略語が出てきてstatement
のことだと分かるまで結構時間がかかったので、↓に自分がよくみる省略形と理解してる意味を書いてみた(間違ってるかも)。
省略形 | 正式な形 | 意味 |
---|---|---|
int | integer | 整数 |
chr | character | 文字 |
str | string | 文字列 |
arry | array | 配列 |
opt | option | 省略可能なもの |
ans | answer | 回答 |
stmt | statement | 命令 |
🍕 感想
- 輪読会3週目終わった!まだ1ヶ月経ってないとか信じられない。めちゃくちゃRubyの理解度が上がったし、メンバー同士仲良くなれた。
- テストの書き方・読み方が分かったのと、色んな便利なメソッドや洗練された書き方にふれることができたのは大きな収穫。
- Sinatra、DB利用版の方が遥かに楽…と思ったけどどうでしょう。Railsの前にSinatraのプラクティスが2種用意されているのって、段階を踏んだステップを準備しているという点で親切なんだろうけどすごくスパルタな気がする。
📅 6/12(土)
💪 やったこと
SinatraメモアプリDB利用
- 一昨日の時点のコードで、過去に割り当てられたSQLが呼び出されてしまって「Prepared Statementが既に存在している」というエラーが出てしまったので、ブートキャンプ内のQ&Aを参考に
DEALLOCATE
を試してみる。
# 過去のSQL文が割り当てられちゃうコード get '/memos' do @title = '一覧' conn.prepare('show', 'SELECT * FROM memo ORDER BY $1') @memos = conn.exec_prepared('show', ['id']) erb :index end # 過去のSQL文割り当て対策したコード get '/memos' do @title = '一覧' conn.prepare('show', 'SELECT * FROM memo ORDER BY $1') @memos = conn.exec_prepared('show', ['id']) conn.exec('DEALLOCATE show') erb :index end
- これでrubocopも通ったので、提出してもいいかと思ったが、後回しにしていた1番重要な問題を思い出す。自分が自分のMacにインストールしたpostgresqlのDBのテーブルにアクセスしている分には問題ないけど、メンターさんがGitHubからフォークするときはどうすればいいのか!
- CSSをちょっと書いてみた。凝ったことをするつもりはないけど、サルワカと自分の過去の提出物を見ながらフォームの部分くらいは整えたい。
🍕 感想
- 土日はプラクティスは休むつもりだったんだけど気になって進めてしまった。楽しいのでヨシッ!
- 久々に散歩に行きつつオーディオブックを聞いた。普段寝転んで聞いてるときの5割増しくらいで理解できてちょっと驚いた。散歩すごい。色んな理由で夏が苦手なので早く秋になってほしい🙏
📅 6/13(日)
💪 やったこと
SinatraメモアプリDB利用
- 昨日できたからCSSをつけて今日提出するかな〜と思ってたらまた同じPG::DuplicatePstatementのエラーが出てしまった。
- う〜〜〜ん、何で昨日はうまく行った感じがしたのか。(昨日のコードは参考にならないので無視してください)
- また先輩の日報を読み漁り、
prepare
を外に出してDEALLOCATE
を削除したらうまくいったっぽい? - 結局何がうまくいってるのか(いってないのか)分からないから、テストをすべきなんだろうな。
🍕 感想
📚 来週の目標
- SinatraメモアプリDB利用提出
- 質問・雑談タイム1回は参加
- Discordでわからないとき助けを求めるムーブを1度は取る
週報 2021/5/31(月)〜2021/6/6(日)
📚 1週間の感想
こんにちは〜!毎週適当な日に週報を書くようになってしまってよくない!
今週の個人的大ニュースは「水曜日に階段から転がり落ちてアザだらけになった」ですかね。 このせいで(?)色々計画が狂っちゃったんですが、結果JavaScriptの環境構築ができちゃったりとラッキーなこともありました。あと、痛くても輪読会は楽しいので参加できました。輪読会のおかげで最低1時間の学習が平日毎日確保できるので、良い仕組みを作ったな〜💪という気持ちです。
今は痛みもなくなり、アザも消えかけているので、元気に頑張ろうと思います!
📚 もくじ
📚 今週やったフィヨルドブートキャンプのプラクティス
- Sinatra を使ってWebアプリケーションの基本を理解する
- WebアプリからのDB利用
📚 目標と成果
目標 | 成果 | 来週の課題 |
---|---|---|
メモアプリ(JSON版)合格 | まだ | 来週 |
メモアプリ(DB版)動作版完成 | まだ | 来週 |
YouTubeをサボらずアップする | サボりまくった | 来週期待! |
📚 学習時間
日付 | 時間 |
---|---|
5/31(月) | 04:30 |
6/1(火) | 06:30 |
6/2(水) | 03:00 |
6/3(木) | 03:00 |
6/4(金) | 05:15 |
6/5(土) | 00:45 |
6/6(日) | 04:45 |
合計 | 27:45 |
📚 週報
📅 5/31(月)
💪 やったこと
- チェリー本輪読会参加。
- SinatraメモアプリREADMEを編集して提出。
- 質問・雑談タイムでREADMEの参考になる資料を教えていただいた。
🍕 感想
- Sinatra、全く自信がないけど早くレビューをもらって分かってないところを指摘されたい。なんとか動く形にはなったけど、どういうコードがベターなのかは分かってないのでリファクタリングのしようがなかった。
- 本屋をぶらぶらしていて面白そうな本を見つけたので買った。わかりやすいイラスト図鑑でコンピュータ科学の基礎やプログラミング言語について解説されている。子供向けの本だけど、「平等性とコンピュータ科学」という章で、IT分野での性別・人種の不均衡の原因や問題について解説されているのもいいと思った!
📅 6/1(火)
💪 やったこと
- Sinatraの課題なんとか提出したはいいものの、全てにおいて自信がなさすぎる(特にいまSinatraやってる方が多くて、日報を拝読するとレベルが高くて落ち込んでしまう)ので、レビューをもらって早く修正したい。
- WebアプリからのDB利用の課題に入り、postgresqlのことを忘れ果てていたけど過去の自分の日報を見て再ログインできた。ちゃんとまとめるのは大変だけど、気が向いたらちゃんと書こう。
- DB利用してないほうのレビューがまだなので、新しくブランチを切るべきなのかな?ちょっと怖くて別のファイルを作ってpgを試したりした。
- 🍒 チェリー本輪読会参加。
- 疑似変数が何か、どうやって使うのかが分かった。
- 参照の概念、ムズいけど破壊的メソッドを使った場合を例に取ると分かりやすい。
🍕 感想
- 輪読会のあと、参照の概念についてJavaScriptのオブジェクト(って言っていいのかな?)の場合と比較してワイワイ話しながら学んでめちゃ楽しかった&&勉強になった。
- チェリー本輪読会のHackMD、(チェリー本の副本としてめちゃくちゃ役に立ちそうだし)メンバーの合意が取れたら外部公開してもいい気もしたけど、公開するとなると自由な議論ができなくなりそうなのでしないことにした。自分の発言分で人に迷惑がかからなそうな部分だけScrapboxにまとめるとかにしようかな。
📅 6/2(水)
💪 やったこと
- 🍒 チェリー本輪読会参加。
- 輪読会仲間のyana-giさんのブログを読んだ。 コマンドライン上でGitHubの草を生やすnpmを作った - やなぎにっき
- 以前分報で経過報告を見かけたときもめちゃくちゃかわいくて素敵だ〜!と思っていたので、早速使ってみたくてnpmがなにかも分かってないけど試行錯誤する。
- 結果は↓のブログにまとめた。
🍕 感想
- 朝階段から転げ落ちてしまい、椅子に座ると痛いので寝ながらできることだけした。結果、JSのプラクティスが2つ終わらせられてラッキーだった。これが遅延評価勉強法なのかな。
- 明日はちゃんとメモアプリのプラクティスに戻ろう〜!
📅 6/3(木)
💪 やったこと
- DB利用したメモアプリの課題に着手するため、pg の使い方の簡単な説明 - 君の瞳はまるでルビー - Ruby 関連まとめサイトを見ながらPostgreSQLに接続しようと思ったけど、パスワードが分からない…設定したっけ?
- 🍒 チェリー本輪読会参加。
- テストの章に入った!最初に読んだときはRubyの知識がほとんどなかったので、読んでコードを試してへ〜と思うだけだったが、2回め読むといかにテスト結果を理解してなかったかがよく分かった。
- 「テストメソッド」という言葉がとくに勘違いポイント。私はテスト対象のコードのメソッドのことかと思っていたけど、
test_hoge
という名前で定義しているテストする方のメソッドのこと。そして更に紛らわしいけど、テストメソッドの中にassert_equal
やassert
やrefute
などの検証メソッドがある。 - テスト、色々ルールがあって書き方が難しいのと、今まで書いてきたような簡単なコードだとテストが必要だと思ったことがなくて書いたことがなかったけど、慣れるためにAtCoderで練習のために書いてみようかな〜。
🍕 感想
- 昨日の打ち身がまだ痛くてあんまり集中できなかった😭
- ブートキャンプのテストのプラクティスは楽しいという話を聞いて、楽しみになった!
📅 6/4(金)
💪 やったこと
- 昨日のパスワードがわからない問題は、ブートキャンプの先輩の日報を読んで、そもそも設定してないし書かなくてもいけると分かって解決。
- しかし新しいデータベースが作れないという新たな問題に直面。以前
eatplaynap
と言う名前でスーパーユーザーを作ったはずなんだけど、このユーザーにDBを作る権限がないっぽいから変えないと。 - 🍒 チェリー本輪読会参加。
- 輪読会に主催のきっかけを作ってくださったタマキ (id:shirotamaki)さんにドライバーになってもらい、テストのプラクティスのコードをみんなでモブプロした。きっと大変だったと思うけどありがとうございます〜〜!
- 実際にコードを書いたところを見て、エラーを皆で読むすごく理解が進んだ。今のメンバーはチェリー本1度通読したことがあるから、ざっくりとは分かっているが細かい分かってない点を改めて理解するための議論になりがちだけど、初めて読むときも誰かと一緒に読んだら効率的だったと思う。
- なかなかメンバーを見つけるのが大変だと思うので、輪読マッチングアプリの誕生が待たれるな…
🍕 感想
- チェリー本輪読会2週目も無事に終わった!モブプロが加わって楽しさが増した気がする。
- 輪読会仲間の いっしー (id:isshi-hasegawa)さんのブログを読んだ。 私もYouTubeやったり輪読会したりみたいな寄り道が多くてプラクティスが全然進んでないので、「自分らしく、楽しみながら続けることがもっとも重要」という言葉にとても救われた気持ちになった〜😭
- 私の日報を見て、emoji-grassをインストールしたとお声がけいただいた。私みたいにJSのことがわからない外部の人向けにブログでインストール手順をまとめてみようと思った!
📅 6/5(土)
💪 やったこと
- SinatraのJSON版のレビューをいただいた内容をチェックした。
- Webのこと分からなくて暗中模索してる感じがどうにもつらいので、本を3冊買ってみた。いますぐ読むかは分からないけど手元にあると安心なのでパラパラ眺めた。
🍕 感想
- 関東はまだ梅雨入りしてないらしいけど普通に天気が悪くて頭痛がつらかった。
- 技術書が本棚に増えてくるとなんとなく嬉しい。
📅 6/6(日)
💪 やったこと
- ビット演算について本を読んだりした。
- チェリー本で学んだので、YouTubeのAtCoderのA問題でもテストを書いてみることにした。初日なので大苦戦し、結局通らなかった😭
- AtCoder Beginner Contest 204 - AtCoder参加。C問題分かんない。問題の意味すら分からん。
🍕 感想
- ちょっとスランプ気味かもしれない。新しくこれが分かった〜!できるようになった〜!という満足感が感じられなくなってきた。
- 最近フィヨルドブートキャンプの日報が学習ゼロ時間で登録できるようになった。そのため、土日はプラクティスから離れてもいいかなと思えるようになった(今日は勉強したけど)。本読んだり競プロして知識の引っかかりを作ろう。