Eat, Play, Nap and Code

食とあそびと昼寝とプログラミング学習

週報 2021/6/21(月)〜2021/6/27(日)

f:id:eatplaynap329:20210628111336p:plain

📚 1週間の感想

こんにちは〜。今って梅雨…なんですよね?暑くて謎の季節ですね。 Sinatraのプラクティスは月曜に合格し、本格的にRailsに入ることになったんですが、生理前で全くやる気が出ず、だらだら過ごして学習時間も短めです〜。よってテンションも低めです。こういう週もありますね〜!

一応YouTubeの毎日更新を再開したので良かったと思います。

📚 もくじ

📚 今週やったフィヨルドブートキャンプのプラクティス

  • WebアプリからのDB利用
  • Rails の基本を理解する
  • Railsi18n を理解する

📚 目標と成果

目標 成果 来週の課題
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問題を解く思考過程をまとめたブログを読んだ!同じ問題を解いていても自分と書き方が全然違うので面白い。自分の場合、動画だと焦っているのもあり、どうしても簡単な書き方ばかりになってしまうが、じっくり考えて思考過程をまとめると成長しそうだな〜と思った。

hosso-blog.jp

🍕 感想

  • SinatraメモアプリDB利用版、合格出来てよかった〜〜!大変な課題だったんだけど、この課題を通じて出来るようになったことがたくさんある気がする。
    1. HTML、CSSの復習が出来た!どちらも0から書いた経験がほぼないので、めちゃくちゃ勉強になった。
    2. gitを怖がらずに使えるようになってきた。バージョン管理されているから大胆に色々修正できる。
    3. Rubyでのハッシュが扱えるようになってきた。少なくとも配列と同じく選択肢のひとつとしてハッシュを考えられるようになってきた。
    4. Webアプリケーションの仕組みが理解できて、何度読んでもさっぱり分からなかった『Webを支える技術』の内容が頭に入ってくるようになった。RESTの考え方も初めて理解できた。

📅 6/22(火)

💪 やったこと

  • Railsの教科書を最後まで読み終えた!YouTubeのサムネを使ったら画像でかすぎた!
  • i18n化の参考資料をちょっと読んだ。全然何すればいいかわからないから、とりあえず現場Railsを読んでみようかな〜。

image.png

🍕 感想

  • Sinatraで参考にした資料を人に渡そうと思って自分の日報を探したが、全然見つけられず過去の自分にムカついた!ので、今後はちゃんとした日報のタイトルをつけるようにしようと思った。
  • 輪読会でも質問タイムでも、みんなどうしてすぐにURLを渡せられるのか分からない。いつももたもた探している間に誰かが探し出してくれる気がする。

📅 6/23(水)

💪 やったこと

  • チェリー本輪読会後用事を済ませたらやる気が出なくて、他の人の日報を読んで今後のRailsラクティスの進め方を考えた。
    • ドットインストールの動画をざっと見て、現場Railsをやろうかな。調べだすとRailsの学習リソース多すぎて気が散るので、本で集中してやろう。
  • あとは『達人プログラマー』のオーディオブックを聞いた。「コードを書き終わったあとに最後にテストを書くのは、テストを書かないのと同じ」とのこと!

🍕 感想

  • やる気が出ないので色々インプットする日にした。
  • 受講生の方が「すでに同じような技術ブログがたくさんあるのに、自分がアウトプットする意味はあるのか?」という疑問をブートキャンプのQ&Aに投げていて、とてもいい意見が集まっているので刺激になった!私自身は「何が誰の役に立つか分からないから書きたかったら書いたらいい」という考え。
    • アドバイザーのうづら (id:udzura)さんは、noteでQ&Aに書かれた内容を外部公開されている。

note.com

  • ↑のnoteでも公開されている何故アウトプットが大事なのか - ペパボテックブログを読み、こちらも非常に共感したのでYouTubeの毎日録画をやっぱり再開することにした。
    • いろいろやってると人の役に立ちたいという欲が出てきてアウトプットのハードルを上げるので、たくさんやったうちの1つが誰かの役に立つかもしれないし立たなくても自分のためになるという気持ちでゆるく続けよう。

📅 6/24(木)

💪 やったこと

  • チェリー本輪読会参加。
  • 分報を見ると、ドットインストールを見てオーディオブックを聞いていたと書いてあるので、『達人プログラマー』の続きを聞いていたんだと思う。

🍕 感想

📅 6/25(金)

💪 やったこと

  • チェリー本輪読会参加。
  • 輪読会5週目終了!普段他の人がどう考えてコードを書いているかを知る機会がないので、輪読会中に話しながら知れて面白い。自分は今までコードの中にコメントを書いたことがなく、もしかしたら書いたほうがいいのかな〜と思っていたけど、書いてから提出前に消しているという方が数人いて、自分と逆でびっくりした〜。

🍕 感想

  • 体調不良なので輪読会のあとは寝て過ごした。
  • 輪読会さえ出ていれば1時間は学習が確保できるから心に余裕が持てる気がする。

📅 6/26(土)

💪 やったこと

🍕 感想

  • 体調不良でもオーディオブックは聞けるからいいな〜
    • 輪読会について私もなんかブログ書こうかな〜
  • 📅 6/27(日)

    💪 やったこと

  • ドットインストールのRails講座を全て見た。ファイルが多岐に渡っていて、書いている内容も「ヘルパー」や「ヘルパーのオプション」などが何なのか分からず眺めているだけになってしまった。
  • よく分からないので現場Railsを並行して読んだら、若干理解できそうかも?
  • 現場Rails、めちゃくちゃに難しいのでは?と身構えて読むのがダルかったが、読み進めてみるとそうでもなかったので、i18nのプラクティスを進めつつ読みたい。

🍕 感想

  • やつはしさんといっしーさんが9時〜12時で休日ももくもく会を開催してくださり、今日参加してみた。自習室で一緒に勉強しているみたいですごく楽しかったし、土日ダラダラしがちなので今後も参加しようと思った!

📚 来週の目標

  • 現場Railsざっくり読み終える
  • i18nの課題提出

週報 2021/6/14(月)〜2021/6/20(日)

f:id:eatplaynap329:20210621104817p:plain

📚 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は諦めて提出することにした。
# 🗂 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に関してはかなり苦手意識があったが、せっかくアドバイスをいただいたので、いい機会だと思ってちゃんと書いてみることにした。
    • なんと、Sinatraを逃すと自作サービスまでCSSを書くプラクティスがないらしい…!
  • CSSSQLも思い込みで進もうとして空回りしてしまったので、上手に人に聞きながら進めていきたいな。

📅 6/15(火)

💪 やったこと

  • CSS書いて、READMEを編集して、PRを作ってSinatraメモアプリDB利用版をやっと提出した!
  • CSSのデザインは基本的にCSS初級のプラクティスで過去の自分が書いたコードから使わせてもらった。過去の自分偉い!
  • HTMLのクラスを書くのが億劫で億劫で後回しにしていたが、命名規則をちゃんと読めばそこまで複雑ではなかった。ちゃんと命名できているのかは分からないが…

🍕 感想

  • なんとチェリー本輪読会にて、yana_gi (id:yana_g)さんが初めて誤表記を見つけた!著者の伊藤さんにその場で報告して、もうすでにサポートページに反映されている。

  • Sinatraメモアプリなんとか提出DONE!今の所1番大変だったプラクティスかもしれない。あとでプラクティスの感想や役に立ったリソースをブログにまとめよう。
  • 8ヶ月半かけてとうとうRailsに入れる〜!楽しみ!

📅 6/16(水)

💪 やったこと

  • Railsのプラクティスに入れたものの、何をしていいか分からず、大名の動画をちょっとだけ見た。最初何をやっているんだろう…と思っていたけど、Railsの教科書を輪読スタイルで読み進めていたのか〜。
  • 週報を書いた。

🍕 感想

  • 週報は毎週日報のコピペを再構成する形でかなり気楽に好きなことを書いているだけなんだけど、こうやってアウトプットをしていたのが輪読会メンバーを集めるときに役に立っていたというのを初めて知った!
    • どういう人か事前に知っていたから参加しやすかったらしい!ワイワイ!

📅 6/17(木)

💪 やったこと

  • Railsの教科書を流し読み。
  • Sinatraと違いRailsは学習教材が膨大にあるため、何から手を付けていいのか分からなくなってきたので、質問タイムでアドバイスを求めてみた。
    • Railsの教科書をやったら、プラクティスすすめつつ参考書籍を読むのがよさそう。パRails、現場Rails、独習Rails人それぞれ合う合わないがあるので、中身を軽く見て合いそうなのを読んでみる。現場Railsは開発の流れを知るのにちょうどよくて、独習Railsは辞書的に詳しく書いてある。自分は最初は概要を知りたいから現場Railsが合っているかも。

🍕 感想

  • 今日はなんか全然やる気が出なくて駄目だった〜。

📅 6/18(金)

💪 やったこと

  • Railsの教科書の第2、3章を読んで手元で動かしてみた。初rails newをキメた。
  • Yay!

image.png

  • ↑まではターミナル上でやってたんだけど、ファイルを編集しようとエディタを開いたら、Gitの管理下のファイルが100件近く出来ていてギョッとした。まさか自動的にGitの管理下に置かれると思わなかったので、間違って変なところにインストールしてしまったのかと。
  • たった1行の↓のコマンドで自分が何週間も書いたSinatraメモアプリよりもしっかりしたアプリが出来てびっくりした。Railsすごい。
$ rails g scaffold book title:string memo:text

image.png

🍕 感想

  • Sinatraから来るとRailsの便利さに目眩がしそう…。なんでも揃ってる!
  • 数日前から輪読会後にいっしー (id:isshi-hasegawa)さん主催でもくもく会が始まり、今日初めて参加してみた。やつはしさんがポモドーロで時間を測ってくださっていて、一人でポモドーロやるときより時間に厳格にできたしとても集中できた。輪読会後ダラダラしがちという共通課題に解決策を打ち出してくれたいっしーさんに感謝。
  • こういう感じで輪読会メンバー全員が主体的に会を良くしようと工夫してくれるから、満足度が高いのかな〜と思っている。

📅 6/19(土)

💪 やったこと

  • SinatraメモアプリDB利用版のレビューをいただいたので、ざっと見た。対応は週明けにしようかな〜。
  • Railsの教科書4章を手を動かしながら読んでみた。
    • デベロッパーツールの見方、正直Sinatraのときはあまり良く分かっていなかったが、Railsの教科書ではとても丁寧に解説してあってやっと分かった。
    • ふと思ったけど、Sinatraの前にRailsの教科書を読んでもよかったかもしれない。
  • 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(日)

f:id:eatplaynap329:20210616211148p:plain

📚 1週間の感想

こんにちは〜!また書くのを後回しにしちゃって水曜になってしまいました。 今週(というか先週)は毎日アニメの美味しんぼを見て過ごし、推しキャラの富井副部長のモノマネをして猫をビビらせたりしていました。

自分と美味しんぼの関係を話すと結構長くなります。 私は小学3年から中学1年までドイツで日本人学校に通っていたんですが、当時はKindleYouTubeもなく、かつ、我が家ではインターネットは1日30分という謎ルールを課せられていたため、娯楽といえばJSTVか、友達のうちにある漫画だけだったんです。 友達自身の持っている漫画をあらかた読んでしまった後、友達のお父さんの蔵書から貸してもらったのが自分と美味しんぼの出会いでした。特に小6〜中1のときに仲良くなった(今でも親友の)Sちゃんちのお父さんは、ほぼ全巻の美味しんぼを持っていたので、毎日1冊ずつ借りて舐めるように読んでいました。日本の食事にも飢えていたので、どの料理も羨ましかった…😭

色んなWebサービスの発展のおかげで、いま外国に住んでいる子供にはたくさん母語で楽しめる娯楽があるから、友達のお父さんの漫画は読まないかもな。 そもそも紙の漫画を外国に持ってきている家族がいないかも。それでもNetflixYouTube美味しんぼを発掘して見ている子もいるかもしれないですね。

それでは、上の話とはあまり関連もないですが今週の振り返りをしてみます!! 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メモアプリ修正

# ディレクトリトラバーサル未対策のコード
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)さんに↓のような感想をいただいて感無量😭

- 先週の週報から目標の達成度を見てみると、ざっくりした目標だと達成できていない(というか、目標自体を振り返ってみるまで忘れている)気がする。例えば「質問タイムで質問1回する」とかだと、頭の片隅に残っているので達成できている。上手な目標の立て方を今一度考えてみたい。

📅 6/9(水)

💪 やったこと

SinatraメモアプリDB利用

  • SQLの概要を知るために以前使っていた教材がMySQLのものだったため、postgreSQLのコマンドを覚えるのに苦戦した。 SHOW DATABASES\lで、USE DATABASE\c
  • postgreSQLではワイの大好きなAUTO_INCREMENTも使えない😭代わりにSERIALで似たような機能が実現できる。
  • とりあえずフォームから受け取った値をDBに保存→保存したメモのタイトルを一覧に表示まではできた。
  • 一覧は最初↓のようになってしまったが、putsで値を表示させようとしていたため、putsメソッドの戻り値nilが入ってしまったのかと予想(チェリー本輪読会で得た知識)。

image.png

  • putsを消したら各メモのタイトル情報がハッシュになったものが取得できた。

image.png

  • ここから先はerbをいじれば実装できる(後から考えると変数名をJSON版と同じにしていればerbは変更の必要なかった)。

image.png

  • ↓でメモを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

🍕 感想

  • DB利用SinatraSQLで考えればいいと思うと書くことがシンプルでとても楽だな〜。
  • 最近昼食後に1時間くらいnapしてしまう…Zzzz

📅 6/10(木)

💪 やったこと

SinatraメモアプリDB利用

  • SinatraメモアプリDB版の動作verができた〜!これから地獄のようなリファクタリングが待っている。
  • 現状自分のローカルのDBに接続するようなコードになっているので、どうやってメンターさんのローカルで実行できるようになるのか考えないと。
  • あとSQLインジェクション対策と、クラスに切り分けと、できればCSSもあてたい。心に余裕が生まれてきたので。

🍕 知識

  • 🇸🇱 はファミマではなくシエラレオネの旗。
  • nil.to_iは0。
    • nil.to_i.nextは…?

📅 6/11(金)

SinatraメモアプリDB利用

# プレースホルダー未実装
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で、命令につける変数名に何か決まりがあるのか気になる。何でもいけそうだから適当につけてしまった。

🍒 チェリー本輪読会

  • るりまに出てくるintstrchrみたいな略語が何か分からないという話が出た。言われてみると確かにどこ由来かわからないまま何となく類推して使っていた。
  • 今日自分も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からフォークするときはどうすればいいのか!
    • Sinatraの操作を書いているファイルにSQLを実行して実行側のローカル環境に自分の指定したいDBとテーブルを作成するコードを書く必要がありそう。
    • しかし具体的にどう書けばいいのか分からないので、paizaのSinatra講座を見直してどうやってるのか参考にする。
  • CSSをちょっと書いてみた。凝ったことをするつもりはないけど、サルワカと自分の過去の提出物を見ながらフォームの部分くらいは整えたい。

🍕 感想

  • 土日はプラクティスは休むつもりだったんだけど気になって進めてしまった。楽しいのでヨシッ!
  • 久々に散歩に行きつつオーディオブックを聞いた。普段寝転んで聞いてるときの5割増しくらいで理解できてちょっと驚いた。散歩すごい。色んな理由で夏が苦手なので早く秋になってほしい🙏

📅 6/13(日)

💪 やったこと

SinatraメモアプリDB利用

  • 昨日できたからCSSをつけて今日提出するかな〜と思ってたらまた同じPG::DuplicatePstatementのエラーが出てしまった。
  • う〜〜〜ん、何で昨日はうまく行った感じがしたのか。(昨日のコードは参考にならないので無視してください)
  • また先輩の日報を読み漁り、prepareを外に出してDEALLOCATEを削除したらうまくいったっぽい?
  • 結局何がうまくいってるのか(いってないのか)分からないから、テストをすべきなんだろうな。

🍕 感想

  • 明日こそCSSをつけて提出するぞ〜
  • 今週末はほとんどプラクティスは進めようと頑張らず、本を読んで過ごした。結局いつもと同じくらいはできてるので、無理に頑張りすぎないのが1番だな〜と思う。

📚 来週の目標

  • SinatraメモアプリDB利用提出
  • 質問・雑談タイム1回は参加
  • Discordでわからないとき助けを求めるムーブを1度は取る

週報 2021/5/31(月)〜2021/6/6(日)

f:id:eatplaynap329:20210608223800p:plain

📚 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、全く自信がないけど早くレビューをもらって分かってないところを指摘されたい。なんとか動く形にはなったけど、どういうコードがベターなのかは分かってないのでリファクタリングのしようがなかった。
  • 本屋をぶらぶらしていて面白そうな本を見つけたので買った。わかりやすいイラスト図鑑でコンピュータ科学の基礎やプログラミング言語について解説されている。子供向けの本だけど、「平等性とコンピュータ科学」という章で、IT分野での性別・人種の不均衡の原因や問題について解説されているのもいいと思った!

📅 6/1(火)

💪 やったこと

  • Sinatraの課題なんとか提出したはいいものの、全てにおいて自信がなさすぎる(特にいまSinatraやってる方が多くて、日報を拝読するとレベルが高くて落ち込んでしまう)ので、レビューをもらって早く修正したい。
  • WebアプリからのDB利用の課題に入り、postgresqlのことを忘れ果てていたけど過去の自分の日報を見て再ログインできた。ちゃんとまとめるのは大変だけど、気が向いたらちゃんと書こう。
    • GitHubSSHの課題の頃は日報も結構丁寧にまとめていたけど、Rubyなど自分で考えることが多い課題になってからはほとんど書いてないな。ブログに公開できるほど丁寧でなくてもいいけど、記憶の取っ掛かりになりそうなことは日報に書き残しておくべきかもしれない。
  • DB利用してないほうのレビューがまだなので、新しくブランチを切るべきなのかな?ちょっと怖くて別のファイルを作ってpgを試したりした。
  • 🍒 チェリー本輪読会参加。
    • 疑似変数が何か、どうやって使うのかが分かった。
    • 参照の概念、ムズいけど破壊的メソッドを使った場合を例に取ると分かりやすい。

🍕 感想

  • 輪読会のあと、参照の概念についてJavaScriptのオブジェクト(って言っていいのかな?)の場合と比較してワイワイ話しながら学んでめちゃ楽しかった&&勉強になった。
  • チェリー本輪読会のHackMD、(チェリー本の副本としてめちゃくちゃ役に立ちそうだし)メンバーの合意が取れたら外部公開してもいい気もしたけど、公開するとなると自由な議論ができなくなりそうなのでしないことにした。自分の発言分で人に迷惑がかからなそうな部分だけScrapboxにまとめるとかにしようかな。

📅 6/2(水)

💪 やったこと

  • 🍒 チェリー本輪読会参加。
  • 輪読会仲間のyana-giさんのブログを読んだ。 コマンドライン上でGitHubの草を生やすnpmを作った - やなぎにっき
  • 以前分報で経過報告を見かけたときもめちゃくちゃかわいくて素敵だ〜!と思っていたので、早速使ってみたくてnpmがなにかも分かってないけど試行錯誤する。
    • 結果は↓のブログにまとめた。

eatplaynap329.hatenablog.jp

🍕 感想

  • 朝階段から転げ落ちてしまい、椅子に座ると痛いので寝ながらできることだけした。結果、JSのプラクティスが2つ終わらせられてラッキーだった。これが遅延評価勉強法なのかな。
  • 明日はちゃんとメモアプリのプラクティスに戻ろう〜!

📅 6/3(木)

💪 やったこと

  • DB利用したメモアプリの課題に着手するため、pg の使い方の簡単な説明 - 君の瞳はまるでルビー - Ruby 関連まとめサイトを見ながらPostgreSQLに接続しようと思ったけど、パスワードが分からない…設定したっけ?
  • 🍒 チェリー本輪読会参加。
    • テストの章に入った!最初に読んだときはRubyの知識がほとんどなかったので、読んでコードを試してへ〜と思うだけだったが、2回め読むといかにテスト結果を理解してなかったかがよく分かった。
    • 「テストメソッド」という言葉がとくに勘違いポイント。私はテスト対象のコードのメソッドのことかと思っていたけど、test_hogeという名前で定義しているテストする方のメソッドのこと。そして更に紛らわしいけど、テストメソッドの中にassert_equalassertrefuteなどの検証メソッドがある。
    • テスト、色々ルールがあって書き方が難しいのと、今まで書いてきたような簡単なコードだとテストが必要だと思ったことがなくて書いたことがなかったけど、慣れるためにAtCoderで練習のために書いてみようかな〜。

🍕 感想

  • 昨日の打ち身がまだ痛くてあんまり集中できなかった😭
  • ブートキャンプのテストのプラクティスは楽しいという話を聞いて、楽しみになった!

📅 6/4(金)

💪 やったこと

  • 昨日のパスワードがわからない問題は、ブートキャンプの先輩の日報を読んで、そもそも設定してないし書かなくてもいけると分かって解決。
  • しかし新しいデータベースが作れないという新たな問題に直面。以前eatplaynapと言う名前でスーパーユーザーを作ったはずなんだけど、このユーザーにDBを作る権限がないっぽいから変えないと。
  • 🍒 チェリー本輪読会参加。
    • 輪読会に主催のきっかけを作ってくださったタマキ (id:shirotamaki)さんにドライバーになってもらい、テストのプラクティスのコードをみんなでモブプロした。きっと大変だったと思うけどありがとうございます〜〜!
    • 実際にコードを書いたところを見て、エラーを皆で読むすごく理解が進んだ。今のメンバーはチェリー本1度通読したことがあるから、ざっくりとは分かっているが細かい分かってない点を改めて理解するための議論になりがちだけど、初めて読むときも誰かと一緒に読んだら効率的だったと思う。
    • なかなかメンバーを見つけるのが大変だと思うので、輪読マッチングアプリの誕生が待たれるな…

🍕 感想

  • チェリー本輪読会2週目も無事に終わった!モブプロが加わって楽しさが増した気がする。
  • 輪読会仲間の いっしー (id:isshi-hasegawa)さんのブログを読んだ。 私もYouTubeやったり輪読会したりみたいな寄り道が多くてプラクティスが全然進んでないので、「自分らしく、楽しみながら続けることがもっとも重要」という言葉にとても救われた気持ちになった〜😭

isshi-hasegawa.hatenablog.com

  • 私の日報を見て、emoji-grassをインストールしたとお声がけいただいた。私みたいにJSのことがわからない外部の人向けにブログでインストール手順をまとめてみようと思った!

📅 6/5(土)

💪 やったこと

🍕 感想

  • 関東はまだ梅雨入りしてないらしいけど普通に天気が悪くて頭痛がつらかった。
  • 技術書が本棚に増えてくるとなんとなく嬉しい。

📅 6/6(日)

💪 やったこと

🍕 感想

  • ちょっとスランプ気味かもしれない。新しくこれが分かった〜!できるようになった〜!という満足感が感じられなくなってきた。
  • 最近フィヨルドブートキャンプの日報が学習ゼロ時間で登録できるようになった。そのため、土日はプラクティスから離れてもいいかなと思えるようになった(今日は勉強したけど)。本読んだり競プロして知識の引っかかりを作ろう。

📚 来週の目標