T2T2’s diary

アウトプット

201016アウトプット 12日目

TECHCAMP12日目

標】

他人の褌で相撲をとってしまった今週前半

自分の体験をアウトプットした今週後半

実りのある経験が出来たのは、当たり前か後半の週

前半の失敗を、土日含めて必ず取り戻す

 

 

習事項】

○ 稿の結合テストについて have_selector

目的 投稿したページに画像データが表示されているかを知りたい

効果 指定したセレクタが存在するかどうか判断するもの

expect(page).to have_selector ".content_post[style='background-image: url(#{@tweet_image});']"

 

○ イート編集の結合テスト

目的 自分以外のユーザーは、編集・削除が出来ないようにする

効果 FactoryBot で、ユーザー① ユーザー②をインスタンスして確認

 

○ find().hover

目的 挙動確認の際にカーソルを持っていくと表示される動作を再現 

効果 挙動で、ホバー表示してくれる

 

○ find().value

目的 挙動確認の際に、中にある値を表示する動きを再現 

効果 挙動で、値を表示してくれる

 

○ 規登録のテストコードについて
expect{find('input[name="commit"]').click}.to change { User.count }.by(1)
expect(find(".user_nav").find("span").hover).to have_content('ログアウト')

疑問 expect の後ろにある()と {}の違いについて

回答 {}は中の処理を飛ばして、後ろの動きをしてから処理する

   ()は順書通り、()を処理してから後ろの部分が処理される

効果 {}の方は、後半部分に押すとカウントされる仕組みがある

   そのため、先に{}のボタンをクリックされたら動作できないため

 

 

日の振り返り】

あっというまの2週間、残りは55日しかない。

時間は無限にあるわけではなく有限であるから焦ろ、自分。

もっと向上する意識をもって取組め、自分。

意識なきところに成長はなし、観察するからこそ芽が出る。

201016思考の整理

散と集約を繰り返す行為

車が目の前を過ぎ去るように、過ぎ去ろうとした思考を言葉にする行為

 

○:題目 思考の種となったもの

△:飛躍 思考の本流から伸びた枝葉

 

イッチをいれるためには?

・朝のルーティン(縄跳び・ダッシュ・ゴミ拾い・シャワー・家事・0秒思考)厳守

・上記でも駄目な場合

 ・夢の確認(長期的に達成したい目標)

 ・良いことを考える(短期に達成したい目標)

  →今日はこうなりたいを想像する

・私の今日はこうなりたいは、誰かもこうなりたい姿であると仮定

自分が達成したいならば、誰かに与えることから始める

 →良い言葉をもらいたいなら、良い言葉を自分から発信する

 

足のいく勉強をするためには?

・目標・宣言をして、自分の周りに壁をつくる

壁を超えられるから達成感を得られる

達成感が目に見えるようにする

→達成感という概念に形をあたえて、どれだけ自分がハードルを超えられたか確認

 

を落ち着かすためには?

・紙に書く

・筋トレ

・マインドフルネス

→肉体的・精神的に、自分から心のザワザワを自覚的に切り離す

心は自分の一部と認識して、コントロール出来ると考える

・紙に書く際の原因フォーマットをつくる

 ・”X” が 理解できない

 ・”X” を 理解するための方法は?

  →問題の細分化

 

日を工夫するためには?

・新しいことにチャレンジをする(挑戦)

・昨日の反省を見直して改善する(改善)

・反省をつける

→その時の気持ちを残す (”X” に対して ”嫌であった”,”気持ちが悪かった”等々)

→反省すべき気持ちを取り除くor上書きするには の方法を見つける

→気持ちはすぐに現れ、消えてしまうので、心にアンテナを張る

201015アウトプット 11日目

TECHCAMP11日目

標】

ノートの取り方を考える。

テキストを書き写すプログラムのような何かではなく、

自覚的に、これはどうなのかと疑問を持ちノートをとる。

 

習事項】

FactoryBot

目的 テストコードを複数回書くのが手間なので省略したい

効果 インスタンスをまとめてくれる

   あらかじめ各クラスのインスタンスを設定して、使いまわせる

 

Faker

目的 実装テストの際に、様々なパターンの確認をした

効果 FactoryBotのインスタンスを設定する部分に記述すると、

   ランダムにインスタンスを生成する

 

合テストコード

目的 ユーザーがたどる一連の流れを確認し、エラーがないか想定する

効果 何がどのルートで指示がなされているかを自分で確認できる

 

Capybara

目的 Systemspec(結合テストのコードを記述する仕組み)を記述したい

効果 実装(ターミナルで "rails g")すると上記の記述ができるようになる

 

visit

目的 移動先に移動するを再現できる

効果 visit ○○_path で結合テストの際に、自動的にに移動するを実装できる

 

page ,have_content

目的 移動先に目的の文言があるかの確認ができる

効果 visitで移動した(page)に、have_content(目的の言葉)が"ある"を表現できる

 

日の振り返り】

ノートのとりかたに関しては、納得のいく1日となった。

チームの一番早いペースの人に、ノート術を聴いたりして自分に取り入れる。

何故を問い、自発的に問題に取り組むようなノートの取り方で成長をする。

201015 思考の整理

散と集約を繰り返す行為

車が目の前を過ぎ去るように、過ぎ去ろうとした思考を言葉にする行為

 

キストの写経をやめる

・テキストをそのまま写経して、アウトプットすることをしていた

 テキストから自分で受け取ったことを、アウトプットするように変更

 間違えていい場所を提供されているのに、間違えない方法をやろうとしている

 ①_____をしたい

 ②なので_____を使う

 ③そして_____となる

 ④_____と記述する

 

ートをとるタイミング

・テキストであれば小ステップごとに、上記内容でまとめる

・時間単位であれば、25分ごとにタイマーを使用する

・枝葉に囚われすぎていないか確認する

自分でチェックする習慣をつけていく

 

を動かすために

・最低限自分ノートに言語化すること

・身体に覚えさせるように繰り返す

・目的は言語にして、何のためにしているのかの目標に形を与える

・その目標に対して、身体に反復作業をさせる

・反復作業 = 自分の体験として定着させる

・自分ごととして無理にでも受け入れる覚悟を持つ

 

分をアップデートさせるために

・今考えた思考を実行してみる

自分の心を使う

・体を使って、心に染み付ける

・その心を使って、アウトプットする

その行動に心はあるのかを、自分で確認する時間をつくる

201014アウトプット 10日目

TECHCAMP10日目

標】

勉強量が多くなり、その量に怠け癖が出ている。

テキストを見ながら書きながらと、「〜ながら」となってしまっている。

ただ写すのではなく、見る時間と書く時間を切り分けて設ける。

習事項】

Git・GitHubについて
何故 アプリケーション作成の際に「元に戻したい」という状況が発生
何を ある段階を記録しておき、あとで戻ることができるツール
方法 Git  :バージョン管理ツール(仕組み)
   GitHub:複数人開発ができる支援Webサービス
       Gitで変更した内容を共有できる


同開発における、clone(クローン)について
何故 共同開発において、1人がアプリケーションのベースを作成するため、
   共有するメンバーはそのアプリケーションをダウンロードしなければ、

   何を制作したらいいかわからない
何を clone(クローン)をダウンロードする
方法 ターミナルに、リモートリポジトリのURLに.gitを加えた文字列指定する。

   そして、ローカルリポジトリとしてダウンロードする

 
時編集の際に発生しがちな問題について

何故 複数のプログラムが同じデータを使おうとすると、競合している状態になる
何を コンフリクト(同時編集の際に発生しがち)を解決する webサービスの利用
方法 git hub web上の「resolve conflicts」をクリックすると修正箇所が表示され
   表示されるファイルごとに編集・修正をして反映をさせる


ストコードをする理由について
何故 クオリティの担保(人為的ミスを防ぐ、記録を残す)
   仕様をみきわめる(仕様を理解しているかの確認)
何を RSpec(アールスペック)と呼ばれるGemを使用する
方法 コードを自動確認して表示をするように反映させて使用する

 

日の振り返り】

昨日の振り返りを生かすべく、全体を読んだ後に一つ一つの項目へ。

一度読んで、もう一度文章を読むというN+1問題のようなことを地で行く。

学習項目は増え、このやり方が今のところ自分の最適解となっている。

201014思考の整理

散と集約を繰り返す行為

車が目の前を過ぎ去るように、過ぎ去ろうとした思考を言葉にする行為

 

えるという行為について

・物事を前進させるキッカケを生み出す手段

 ・個人的な方法として、とりあえず手を動かして書き出す

 ・書き出すことで、考えという概念(クラス)に形を与える(インスタンス

 ・形を与えられた物に対して、どのような手段をとっていくか検討する

 

行する勇気

・自分の進む道を"自分で選択"すること

・"自分で選択"=自分の事を決めることが出来る感覚を持つ

・他人からの評価でない、自分の内面にある評価軸を基準とする

・自分の内面の評価軸とは?

評価軸に従う事で、自分の判断に責任を持つことができる

 

続するには

・繰り返して、継続したい行動に触れる

 

・物事の習慣化は平均2ヶ月程度、週4回以上、継続したい行動に触れる

手触り感の重要性

・人間という存在に身体があるため、皮膚感覚というレベルで実体が必要

・まだ目に見えない情報だけで、習慣化するのは難しい

・外からのアクションを取り入れる(:仲間, :視聴, :触覚≒触れる?)

・人は人件費がかかるため、その他の方法でアクションを取り入れる方法は?

 

めるタイミング

・自分が諦めた時

・諦める=自分の"可能性"がないと感じた時

・誰が決めた"可能性"なのかは人それぞれだが、自分であって欲しい

 

・単純に時間がなくてタスクを実行できない場合

・価値(=生産性の効果)の低いものから行動をやめる

行動にランク付け

 (例)ジョギング 5/10 点

・運動、勉強などでグラフ化して自分の採点をする

 

行をとりいれるための方法

・ネット

・検索ランキング

・流行っているものが重要なのか、流行りそうなものが重要なのか

・まず知るために、その流行を作った人が考えた思考を辿る

どんな価値を提供したいと思ったのかを知る

201013アウトプット 9日目

TECHCAMP9日目

標】

自分のしたいことのために挑戦していることを問い直す。

今までの学習方法を見直す

習事項】

ソシエーションについて

目的 モデル同士を関連づけるための方法

   処理したい情報が増えると複雑化する(モデルが増える)ので、アソシエーションを使用する

方法 モデルに記載する
  ・has manyメソッド (ユーザー→ポスト  一人の投稿者が複数の投稿をする)
  ・belongs_toメソッド(ポスト →ユーザー 一つの投稿は一人がしたもの)

※実際は各々のモデルが、モデルに対して記載するので

 


N+1問題

問題 ループ処理の都度SQLを発行し、パフォーマンスが低下してしまう問題

例え 買い物する際に、1点1点お会計をしてしまうようなことが起きている

何故 一度目にモデルの取得して(+1)、それから各モデルを読み込む(N回)

対応 includesメソッド: 一度のアクセスでまとめて情報を取得できる
             モデル分なので(N回)で済むことができる。

 


稿者本人のみに編集・削除を許可するために

目的 他のユーザーから勝手に編集・削除を防ぐ

   誰彼構わず編集・削除ボタンが表示されている状態だから

方法 if文を使用する                             

   ログイン 且 ログイン中のユーザーID == 投稿したIDが同じか確認する

   同じであれば編集・削除ボタンが表示されるようにする

 


分テンプレート
目的 複数ページで利用する表示の一部をまとめる

   繰り返し使用するコードを再利用して、ページの量を減らす

方法 _○○.html.erbファイル を新規作成して同じページはまとめる


スト(入子構造)の利用
目的 ネスト利用でモデル同士を結びつけ共有しid情報が送りやすくする
   id情報を共有し利用する
方法 ルーティングにアソシエーション定義
   親(Do)を作り、その子を指定します(~end)

 

 

日を振り返り】

テキストを確認しながら読み進めると、途中手を動かして記載することがある。

プログラミングを書くことに慣れることも重要だが、ペースが途切れる。

 

思考が中断してしまい、全体の工程が複雑にもなっていることもあるので、

プログラミングした後に、何故こうなったのか流れを再度戻らなくてはならない。

全体の流れを読んだ後に、手を動かす時間として方法を変えるようにする。