AFTER CODEBSE School 11week(5/28-6/3)
今週でついにRailsチュートリアル完了した。長かった。。。。とりあえず、もう一周ぐらいやんなきゃ記憶飛んでそうなので頑張る。
AFTER CODEBSE School 11week
1週間のツイートをベースに振り返る
active_relationships モデルってどっから出てきたのかなーと思ったけど、モデルの名前とモデルのクラスの名前って同じじゃないといけないと勘違いしてたっぽい。https://t.co/yvIDB6mXN3 pic.twitter.com/fMYEIxOGel
— shimabukuromeg (@20092014) 2018年6月3日
Relationshipモデル図 pic.twitter.com/seXwpMurA0
— shimabukuromeg (@20092014) 2018年6月3日
外部キーも、<class>_idでわかんないパターンだから指定してあげる。 pic.twitter.com/zlXWprsnHB
— shimabukuromeg (@20092014) 2018年6月3日
Relationshipモデル図(フォロワー)。フォローの逆 😇 pic.twitter.com/WvZbSHPP8L
— shimabukuromeg (@20092014) 2018年6月3日
user .followers.map(&:id) が難しい🤔 pic.twitter.com/i9x3lgqwKp
— shimabukuromeg (@20092014) 2018年6月3日
* user.followersは、userのフォロワーの配列
— shimabukuromeg (@20092014) 2018年6月3日
* mapメソッドは、要素の数だけ繰り返しブロックを実行し、ブロックの戻り値を集めた配列を作成する
* &は、その隣のオブジェクと(:id)に対して、to_procメソッドを呼び出して、その戻り値のProcオブジェクトを、ブロックを利用するメソッドに渡す。
resources 使って自動的にできるルーティング以外でルーティングを追加したい場合、memberメソッドとかcollectionメソッドを使う。 pic.twitter.com/RQ0iQQFgek
— shimabukuromeg (@20092014) 2018年6月3日
この1行(resources :users)のこと忘れてた。復習 😇😇😇
— shimabukuromeg (@20092014) 2018年6月3日
サンプルアプリケーションにこの1行を追加すると、ユーザーのURLを生成するための多数の名前付きルート (5.3.3) と共に、RESTfulなUsersリソースで必要となるすべてのアクションが利用できるようになるのです pic.twitter.com/omOwPUYVK9
Rubyの https://t.co/7sDHWOXF1Q(&:to_s) 記法を紐解く https://t.co/UsxgndYfrI
— shimabukuromeg (@20092014) 2018年6月3日
デフォルトで作成されるRESTfulなルーティングは7つですが、7つでなければならないということはありません。必要であれば、コレクションやコレクションの各メンバーに対して適用されるリソースを追加することもできます。https://t.co/Vvb1wwPVjU pic.twitter.com/r0cuYxhZsr
— shimabukuromeg (@20092014) 2018年6月3日
following/followersのルーティングを追加した場合。 pic.twitter.com/s25p8qVVNU
— shimabukuromeg (@20092014) 2018年6月3日
むずい。。。。🤔🤔🤔
— shimabukuromeg (@20092014) 2018年6月4日
respond_to について調べてみた|クラスメソッドブログ https://t.co/DCKH8V8d7F
やっと14章終わった。。。この章、深掘り要素がめちゃめちゃあったので、もうちょっとやっていきたい😇😇😇 pic.twitter.com/nRfE99HUbR
— shimabukuromeg (@20092014) 2018年6月4日
railsチュートリアルとりあえず一通り終わったー。記憶飛ばないうちに2週目やりつつ、自作アプリ何作るか考えよモデリングとか難しそう😇😇😇
— shimabukuromeg (@20092014) 2018年6月4日
チェリー本の手つけてないとこちゃんとやろ。railsチュートリアルやってて、なんでそういう動きになるのかよくわかんなかったり、定義元ジャンプしても読めなかったりするの多かったの、rubyがあんまりわかってないからだと思うし。
— shimabukuromeg (@20092014) 2018年6月4日
Ruby on Railsを仕事にしていくための第一歩 | 酒と涙とRubyとRailsと https://t.co/pR30WQL6VA @zyunnosukeさんから
— shimabukuromeg (@20092014) 2018年6月4日
気なるツイート
プログラミング初心者はHTML&CSSとJavascript(ES6)を一通りやって、サーバーサイドのスクリプト言語を1つやるといいと思います。サーバーサイドのスクリプト言語に慣れたらJavaScript に戻って、VueとかReactやっておけば間違いないと思います。
— 椿知浩(Progate) (@tomohirotsubaki) 2018年6月6日
まとめ
めちゃめちゃ時間かかったけど、一応できた。引き続き、2週目も頑張る。
さらに細かく見る。2周目は全体的に1/3程度(50時間)で終わるように進めよ。(50時間だと期間的には二週間ぐらい6/18の週ごろ目安) pic.twitter.com/vWyWjmgtlC
— shimabukuromeg (@20092014) 2018年6月6日
2周目終わったあと自作アプリ作りに取り組むとして、およそ1.5ヶ月ぐらい時間必要だとざっくり計算すると、7月末までかかりそう。それまでに完了するのが目標。
— shimabukuromeg (@20092014) 2018年6月6日
AFTER CODEBSE School 10week(5/21-5/27)
今週も主にRailsチュートリアル。13章完了した。今まで一番難しかった。。。振り返るとめっちゃ時間かかってる。。。
AFTER CODEBSE School 10week
1週間のツイートをベースに振り返る
ページネーション復習。https://t.co/VYhyYPx2da pic.twitter.com/QY7wnWqqy4
— shimabukuromeg (@20092014) 2018年5月22日
micropostsで同じことやろうとしたら、ちょっと混乱したので整理。 pic.twitter.com/6XySXbShxE
— shimabukuromeg (@20092014) 2018年5月22日
micropostsで同じことやろうとしたら、ちょっと混乱したので整理。その2 pic.twitter.com/sCSoDwgYe2
— shimabukuromeg (@20092014) 2018年5月22日
関連付け。 pic.twitter.com/zkVqXretob
— shimabukuromeg (@20092014) 2018年5月24日
雑まとめ。Strong Parameters 混乱するー😇😇😇 pic.twitter.com/Rw8CGwXciQ
— shimabukuromeg (@20092014) 2018年5月24日
雑整理。form_forむずい。混乱してきた🤔🤔🤔 pic.twitter.com/7LJW46lqNB
— shimabukuromeg (@20092014) 2018年5月24日
form_for復習。7章。
— shimabukuromeg (@20092014) 2018年5月24日
fオブジェクトのobjectメソッドが呼び出されると、関連づけられたオブジェクトを返すってことか😇😇😇
「フォーム変数fをf.objectとすることによって、関連付けられたオブジェクトにアクセスすることができます。」(13章) pic.twitter.com/OGFG7GgRL7
yield復習😇😇😇
— shimabukuromeg (@20092014) 2018年5月25日
渡されたブロックをメソッド内で実行するためにyield を使う pic.twitter.com/CH5HfWUDSh
関連付けが出てきたぐらいから、CODEBASE講座のアプリケーション設計の回で教えてもらったことがじわじわきてる。けどむずい。。。 pic.twitter.com/ycRbJEbLoc
— shimabukuromeg (@20092014) 2018年5月25日
13章 フィード画面のマイクロポストをテストするで、follow_redirect!とかassert_match content, response.body って何だっけ???ってなったので復習整理😇😇😇https://t.co/75Sr0h0eIh pic.twitter.com/5XfnUILQ0A
— shimabukuromeg (@20092014) 2018年5月27日
assignsメソッドがわかんなくなったから復習/整理メモ😇😇😇
— shimabukuromeg (@20092014) 2018年5月27日
11.3.3で紹介したassignsメソッドを使ってください。このメソッドを使うと、投稿に成功した後にcreateアクション内のマイクロポストにアクセスするようになります。https://t.co/q8r4hYrI1a pic.twitter.com/LhO8WUYdbu
インデックスとは? pic.twitter.com/y9zMAaBkmy
— shimabukuromeg (@20092014) 2018年5月28日
インデックスとは? pic.twitter.com/TcM1AWLBXA
— shimabukuromeg (@20092014) 2018年5月28日
13章やっと終わった。。。今まで一番むずかった😇😇😇 pic.twitter.com/FCkGpBNzLl
— shimabukuromeg (@20092014) 2018年5月28日
その他
この週流れてきたいいなと思ったツイートと記事
自分が成長したいんなら、どれだけ年食っててもcomfort zone を抜け出す様に意図的に動かないとダメ。
— Ryosuke IWANAGA 🇨🇦 (@riywo) 2018年5月22日
#Railsチュートリアル "2周目は1周目よりは確実に理解できる. 大丈夫. まずは1周目を走りきって, 恐れず2周目をやってみよう! 2周目を始めると自分の成長が実感できる. これは快感!" 2周目で気づいた、当たり前な3つの… https://t.co/YTt6JI3Sh1
— 安川要平/Yohei Yasukawa (@yasulab) 2018年5月25日
世の中の真理 pic.twitter.com/5rPdYt6JWW
— 二匹目のペンギン (@pengin_two) 2018年2月19日
俺はプログラムに向いてないんじゃない!書いてる量が足りないだけだ!!
— つるべー (@tsurubee3) 2018年5月21日
すごい人見て「俺は向いてないな」って逃げるのはやめよう!!
AFTER CODEBSE School 9week(5/14-5/20)
今週も主にrailsチュートリアル。12章と13章の途中まで。進めてる途中で、あれなんだっけ???ってなる事象多発。あと今更ながらCODEBASE SHCOOLで作ったアプリを公開してみた。SlimをLinuxで動かすようにしたり、apacheとかnginxとかの設定を調べるのに手間取った。この辺りもう少し理解深めていきたい。(けど今はチュートリアル頑張る)
AFTER CODEBSE School 9week
振り返り
チュートリアル復習。ユーザー情報更新の処理のところ。パスワード入力しなくても更新できるようにする処理。どうするんだっけ。https://t.co/8BvgWGZcLJ pic.twitter.com/aKfr8q3ug2
— shimabukuromeg (@20092014) May 20, 2018
なるほど〜 pic.twitter.com/fxugC4SxRC
— shimabukuromeg (@20092014) May 20, 2018
ユーザー新規登録のときパスワードなしで登録できるのでは?について。 pic.twitter.com/7ceFmnmCjc
— shimabukuromeg (@20092014) May 20, 2018
パスワード再セットアップするときにパスワード空した場合どうなるかって話。https://t.co/Gu978atAYG pic.twitter.com/yJe8aHdSg4
— shimabukuromeg (@20092014) May 20, 2018
コントローラーのupdateアクションで空かどうかチェックしてエラーメッセージ追加する。なるほど〜 pic.twitter.com/IsOStJJg6H
— shimabukuromeg (@20092014) May 20, 2018
12章パスワード再設定の統合テストのコード。すぐ忘れそうなので度々見返そう😇😇😇
— shimabukuromeg (@20092014) May 20, 2018
このテストはコードリーディングのよい練習台になりますので、みっちりお読みください。https://t.co/cfk4diE5oQ pic.twitter.com/Up72zrXZyI
やっと12章終わった。。。 pic.twitter.com/H3mCvR9ig4
— shimabukuromeg (@20092014) May 20, 2018
Procオブジェクトがよくわかってない問題🤔
— shimabukuromeg (@20092014) May 20, 2018
Procクラスはブロックをオブジェクト化するためのクラス。Procクラスはブロック、つまり「何らかの処理(手続き)」を表すらしい。。。https://t.co/ZVRieZkTyn pic.twitter.com/GTBKUbblzv
Procなんとなく意味わかったけど、default_scopeメソッドむずい🤔
— shimabukuromeg (@20092014) May 20, 2018
# Procオブジェクトを普通の引数として渡す
def greeting(arrange_proc)
text = arrange_proc.call('hello)
puts text
end
# Procオブジェクトを普通の引数としてgreetingメソッドに渡す
greeting ->(text){ text * 2 }#Cherry本 pic.twitter.com/pR6zjjJuZe
Next Week
- 13章は確実に終わらせる。
- 14章はできるところまで進める。できたら14章まで終わらしたい。
AFTER CODEBSE School 8week
今週はRailsチュートリアル10と11が終わった。そしてCODEBSE School 終わって2ヶ月がたった。この2ヶ月はRubyばっかりやってるけど、わかりやすいアウトプットがないのが焦る。とりあえずチュートリアルまず終わらしたい。
AFTER CODEBSE School 8week
- rails tutorial
- 第10章ユーザーの更新・表示・削除
- 第11章アカウントの有効化
振り返り
- 学習時間をかけるの習慣にできていると思うので、今度は質をあげたい。なかなかチュートリアルの進み具合が遅い。どうしたら質をあげれるんだろうか。
- チュートリアルやってて、おおお!って勉強になること多いけど、これってほんとコードかけるようになってる???って思っちゃうことある。例えば、Rubyでスクリプトを何も参考情報とかなしでさらっとかけたりできるかと言われたらできない。今はチュートリアルベースのWEBアプリ制作をアウトプットに学習してるけど、この学習をベースにRuby力が鍛えられるようなアウトプット(目標)設定してコード力あげていきたい。定義元を読み込むとか。
NEXT Week
- rails tutorial
- 第12章パスワードの再設定
- 第13章ユーザーのマイクロポスト
AFTER CODEBSE School 7week
今週はGWもありかなりまとまった時間が取れた。
AFTER CODEBSE School 7week
- rails tutorial
- 第7章ユーザー登録
- 第8章基本的なログイン機構
- 第9章発展的なログイン機構
振り返り
プログラミング学習をしていると、「コード動かなすぎオワタ…」とか、「難しすぎてオワコン…」って気分になるけど、心配無用です。ある日突然、ブレイクスルーしますので。
— マナブ@バンコク (@manabubannai) 2018年4月29日
スティーブ・ジョブズ的にいうと、「点と点が繋がる」でして、その日からは、プログラミング愛が生まれます👶
Next Week
rails tutorial
- 第10章ユーザーの更新・表示・削除
- 第11章アカウントの有効化
AFTER CODEBSE School 6week
今週の学習時間は21時間。主にrailsチュートリアルに取り組んだ
AFTER CODEBSE School 6week
この1週間でやったこと
rails tutorial
- 第5章レイアウトを作成する
- 第6章ユーザーのモデルを作成する
- 第7章ユーザー登録(7.2 ユーザー登録フォームまで)
progate sass
そのほか
- sinatra自作アプリ作成の続きを少し
振り返り
「第5章レイアウトを作成する」でかなり時間がかかった気がする。アセットパイプラインあたりがいまいち理解しずらくて、時間かかった。今でもあんまりちゃんと理解できていない気がしてる。。。
ざっくりだけど以下のように理解してる
Rails のアセットパイプライン(Assets Pipeline)は JavaScript や CSS、画像ファイルといったファイル達(アセットファイル)を連結したり圧縮することで効率的にアクセスできるようにする仕組み(フレームワーク)です。
todo
Okinawa.rb Meetup 4/24
ISUCONのはじめかた話を聞いてきた。題材はprivate-isu。雑にメモ
ISUCON流れ
全体流れ
- sshの設定で公開鍵はgithubにあげとく作戦
- config設定(セッションが切れないようにするなど)
- アプリケーションのコードをgithubにアップする
- githubにあげたコードをローカルに持ってくる
- ローカルでサーバーと同じような状態にする
- ローカルでコードを修正できるようにする
- ベンチマーク実行する
- ブラウザから操作してみる
- ボトルネックを探す
- ローカルでコード改修する
- 環境にデプロイ
- ベンチマーク実行する
ローカルでアプリを動かせるようにする状態にするのがなんとなく難しそうだった。
MySQLメモ
- ダンプ
$ mysqldump -uroot isuconp > db.sql
- リストア
mysql> create database isuconp; mysql> quit $ mysql -uroot -proot -D isuconp < db.sql
- ポートフォワード
ローカルの3306にアクセスしたらサーバーのMySQLにアクセスするようにしたかったけど、なんか3306を指定したらエラーになってうまくいかなかったので、いったん13306を指定してる
shimabukuromegumi-no-MacBook-Pro:~ root# ssh -f -N -C -L 13306:localhost:3306 isucon@13.231.226.73 -p 22 shimabukuromegumi-no-MacBook-Pro:~ root# mysql -uroot -P 13306 -h 127.0.0.1 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 648 Server version: 5.5.49-0+deb8u1 (Debian) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
$ mysql.server start $ mysql.server stop $ mysql.server status
memcached メモ
isuconアプリをローカルで立ち上げる時にmemcachedがないっていうエラーになったので、導入した。(なぜ必要なのかはいまいちわかっていない)
- インストール
brew install memcached
- 起動
memcached
sinatraメモ
ローカルにisuconアプリを持ってきたあと、bundle install、bundle exec ruby app.rbで起動すると思ったけど、うまく起動しなかった。bundle exec rackup -p 8080とするとちゃんと起動した。(なんで起動しなかったのかよくわかっていないってのと、rackupってコマンドがなんなのかよくわかっていない)
cd isucon-pixiv/ruby bundle install --path=vendor/bundle bundle exec rackup -p 8080
ngx-mrubyメモ
isucon7の予選のsleep問題にrubyでも対策できるようにngx-mrubyを使えるのでは???という話。isucon7のsleep問題もいまいちよくわかっていなくて、なるほどわからん状態だけど、ngx-mruby気になる。
isucon7メモ
ISUCON 7 予選で ISUCON 初参加した結果を振り返る · GitHub
一見無駄に見える参照実装の sleep の意味に気づくとブレイクスルーすることができたと思います。
Goつかってたということもあって、sleepはとくに障害になりませんでした。
これがPerlやRubyといったprefork型のやつだと、/fetchの並列度によってはworkerが/fetchに専有されるみたいなのもありえたのですが、GoとNode.jsはその辺考えなくて済むのでそこは楽でしたね。 beatsync.net