筋トレもプログラミングも反復練習が大事である。

プログラミング初心者三十路越えアスリート系女がフリーランスプログラマーを目指すブログ

開発日記vol/10:プルリクエストは細かく出す

f:id:simpledancer:20180228113608j:plain

プルリクエストとは

プルリクエストとは簡単に言うと、開発者のローカルリポジトリでの変更を他の開発者に通知する機能です。プルリクエストは次のような機能を提供します。

  • 機能追加や改修など、作業内容をレビュー・マージ担当者やその他関係者に通知します。
  • ソースコードの変更箇所をわかりやすく表示します。
  • ソースコードに関するコミュニケーションの場を提供します。

backlog.com

私は今開発を個人でもやっていて、メンターにレビューをしてもらってるんですが

ここ最近

できれば細かくプルリクエスト出してください。。。!と言われてしまいまして

個人的には、まとめて出した方が手間がかからないんじゃないか?と思ってたんですけどどうやら違うようです。

simpledancer.hatenablog.com

レビュアーにとっては結構めんどい(多分)

私みたいなペーペーだと大したコードなんて書けないけど

変更が大量になったり一個のPRにたくさん会話がつくと読みにくくなるらしい

そもそも一気に変更したのをPR出してしまうとレビュー自体がめちゃ大変なんだそうです。

techracho.bpsinc.jp

そんなわけで気をつけながら早めにPRを出そうとしたら今度はプルリクエスト出せない問題が出てきました。

baseになるものとcompareするものをいつも通りに当てはめたら

(base→master compare→他ブランチ)

There is anything compareとなってしまったのですね。色々試行錯誤してローカルで書いたブランチをpushしているにも関わらず!なぜだろう。。

解決したらまた書きます。

 

 

開発日記 vol.9:rake db:migrationできない時やったこと

f:id:simpledancer:20181018094712p:plain

pendingしたままで

rollbackすれば直る!と思っていましたがそれでもエラーが出てしまいました。

simpledancer.hatenablog.com

解決までの流れ

  1.  duplicate column name: id という表示がでる。→idが重複

  2. bundle exec rake db:migrate:status で今の状態を確認すると、rollbackして消えたと思っていたファイルがdownの状態

    f:id:simpledancer:20181019103339p:plain

  3. ファイルを削除
  4. もうちどbundle exec rake db:migrate:status で確認したらdownが消える

    f:id:simpledancer:20181019103359p:plain

  5. bundle exec rake db:migrate するとpendingが消え localhost:3000で表示される。

原因

  • idは自動生成するのに自分でカラムを追加してしまっていた
  • ロールバックしたけど必要のないファイルを消さずにいた

ということです。

迷った時は今の状況を確認する→bundle exec rake db:migrate:status

参考

joppot.info

qiita.com

開発日記vol.8:pending migration errorが出ました

f:id:simpledancer:20181018094712p:plain

あまりずーと長い間一つのものを作り続けるということがなかったので

昨日途中で何かやめてしまったのでしょう、朝起きてやろうとしたら

Migration are pendingと出ていました。

rake db:migrateで解決

qiita.com

Migrationを解決してね ということで

 

bundle exec rake db:migrate

 

したところmigratedされて無事解決。

再度rails s するとlocal host:3000でしっかり表示されました!

ちょっとしたエラーも焦らず行くぞ〜〜!

simpledancer.hatenablog.com

開発日記vol.7:seed-fuを使ってみる

f:id:simpledancer:20181017113931p:plain
要領が悪くてなかなか進まない。。。!

とりあえず自分のサービスを今ゆるゆる作ってますが

なかなか頭に染み込まないので新しいことをやる度にブログに残していこうと思います。

昨日は全くいじれなかったのですが、userページのリンクからそれぞれの動画を表示するページに飛ばせるようにidをふって行くつもりなのですが

seed-fuを入れると便利だよ、とのことで使ってみることにしました。

seed-fuとは

qiita.com

github.com

Seed Fu is an attempt to once and for all solve the problem of inserting and maintaining seed data in a database. It uses a variety of techniques gathered from various places around the web and combines them to create what is hopefully the most robust seed data system around.

プログラミングってまじ英語と切っても切り離せませんね。メンターが紹介するgithubだいたい英語のやつ。

てか、日本語で書かれててもあまりわからなかったりするので。これはちょっとずつ紐解いて行くしかないですね。

qiita.com

DBに初期データを投入するための仕組みとして、Rails(ActiveRecord)にはdb:seedというrakeタスクが用意されています。
このrakeタスクには冪等性がないため、実行するたびに新たなレコードが登録されます。そのため、変更が想定されるデータにおいてはdb:seedで投入する際に工夫が必要となります。

その煩雑さを解決する手段として登場するのが、seed-fuです。seed-fuでは更新されたレコードのみを操作します。つまり、値が変わったレコードはUPDATEされ、追加されたレコードはINSERTされます。

 

やること (予定)

  1. seed-fuのgemを入れる(bundle installする)
  2. ディレクトリを作る
  3. 紐付ける動画を選ぶ
  4. その動画のデータを格納した何か←適当 を作る
  5. 紐付ける

 名前のリンク→動画の紹介ページに飛ぶ という流れにしたいと思っています。

 

simpledancer.hatenablog.com

 

RubyMineのトライアル終了したので思い切ってライセンスを購入しました!

f:id:simpledancer:20181015111742p:plain

今までsublimetextでコードを書いていたのですが、私のメンターイチオシのRubyMineを使ってみることに。

トライアルが一ヶ月あるので、使ってみた感じで使いやすければライセンスを購入しようと思いました。

トライアルした感想

RubyMineって本当に機能がめちゃくちゃ充実してるのですが

初心者プログラマーの私はまあ、全然使いこなせてません!

ただ便利だなと思った一番のものが

勝手に保存してくれるってところです。

command+Sが要らない。

それは便利だなと思いました。

www.jetbrains.com

購入した理由

もう、これはエンジニア歴十年のメンターを信じて。

というか最近お金をあまり使ってないのでこれくらい使おうかなーと思ったり。

あと、道具に投資するのはいいことですね。

ちなみに個人で開発するならindividualので

学生さんならさらに安いプランとかあります。

個人だと会社とかで買うのより半額くらい(1年で1万くらい)

仕事にするのであれば、すごい出費というわけでないので妥当な金額かと思いました。

だからと言って、まじすげーおすすめ!っていうほど使いこなせてないので

ゴリ押しはしません。

simpledancer.hatenablog.com

開発日記vol.6:Google_MaterialDesignLiteを使ってみる。

f:id:simpledancer:20181001132157p:plain

Google_MaterialDesignLiteというものをいれてカード状に並べてリンクページを作ろうと思ってます。

 

MDL - Google Material Design Lite : Grids

サイズ感がよくわからないので、結構手間取りました。。

Materializeと言うのも勧められたのですが、カード状にできなさそう、、と言うことでやはりgoogleが出してる、このマテリアルデザインライトを使うことになりそうです。

simpledancer.hatenablog.com

参考にさせていただいた記事

saruwakakun.com

qiita.com

note.mu

 

重い腰をあげて自分のサービスを作り始めました。とりあえずrails newしちゃおう。

f:id:simpledancer:20180228113608j:plain

はい、自分のwebサービスにやっと着手しだしました!

私みたいな自信の無いタイプは他人の力を借りた方が良いですね。

メンターしてもらってる人に「うちの仕事のお手伝いもいいけど、とりあえず自分のサービス作っちゃいましょ」って軽く言われてしまって。

まあ、成果物があるのと無いのとでは雲泥の差ですから。

作ることになってしまいました。(下書きしてたブログです、実際は先月から始めてます)

構想を練る

どうしても新しく作る!となると、画期的なものを!!と考えていたのですが

画期的なもの以前にフリーで仕事を取るということはとりあえず、既存のwebサービスが自分で作れなきゃ意味がないじゃん。。

ということで私は海外のwebサービスを模倣して日本語でもう少し簡単にできたらいいな、、と思っていたサービスを真似て作ってみようかと思ってrails newしました。

サンプルサイトと違う、諸々のエラー

あれ、テックアカデミーやrails tutorialしてたときはこんなエラーが出なかった!

っていうことがもう、たくさんありすぎます。

それもちょっとしたことで原因がわからなくて、止まる、止まる、止まる!

こんなとき完全な独学だと心が折れやすいけど、メンターさんのおかげでなんとか保ってます。

 

これから開発日記を書いていきます!発見したことなど。整理とアウトプットのため。

simpledancer.hatenablog.com

 

とりあえずrails newしましょう。

開発日記vol.5 railsでvideo_tagを使って動画を表示する

最初carrierwaveを入れたのですが

そもそもとりあえず私アップロード機能いらないやん!ということで

表示できればいい!

なのでとりあえずhtml.erbにvideo_tagを書いて見る。

そこでよくわからなかったのが解決したのをまとめます。

video_tag書き方がわからなかった

video_tag - リファレンス - - Railsドキュメント

<%= video_tag("test.mp4", :controls => true) %>

これだと表示されない。そもそものvideoをどこから読み取っているのか

私の概念だとtest.mp4ってファイル名入れたら(assetsとかに入れてたら見に行ってくれるっしょと思ってたけど)

publicディレクトリ以下に入れてかつパス / を入れなきゃいけんと。

なので動画ファイルを入れたい場合、

<%= video_tag("/assets/videos/sample.mp4", :controls => true, :loop => true, :size => 20*20) %>

とこんな感じでpublic以下のurlを入れ、

セミコロン で動画のloopやらサイズやらを指定する必要がありました(この辺の書き方がわからなかった!)

サイズの変更が 

:size 動画サイズ(幅x高さ)

で * で表現できるのですよね。これ、書いてなくて。一日悩んだという。

 

参考

 

 一番最初に買ったrailsの本ですが、パスの指定などについても書いていたので、これでちょっと理解できました!

色々ググって調べたけどなかなか出てこないこととかも意外と本ってこういう時に頼りになるのだな。。と。

 

開発日記vol.4 railsチュートリアルに書いていなかったこと・ナビゲーションバーの表示を修正する

f:id:simpledancer:20180922151044p:plain

railsチュートリアルではこのナビゲーションバーのアカウントとドロップダウンリストが表示されるようになるのですが、私が作ったものには、ドロップダウンリストが表示されない!

ということで解決したのでメモがてら。

application.jsがチュートリアルのものと変更する必要があった

f:id:simpledancer:20180922151257p:plain

一番下の require bootstrap 消す。

手順

まずここで確認したけど間違いはなく↓

getbootstrap.com

ここに書いてあるの確認

github.com

私の場合

  • gemfileは問題なかった
  • パーシャルも問題なかった(というかチュートリアルのほぼそのまま)

ということでまずは上二つを確認してから挙動がうまくいかなかったのでメンターにヘルプを求めたところそんな感じ。でした。

自分だと堂々巡りだったので一瞬で解決。。

 

 

開発日記vol.3 gitで苦戦。知らなかったことを知る毎日。

f:id:simpledancer:20180215104851j:plain


昨日ビデオチャットをして無事解決したのですが

masterブランチのリモートとローカルの内容がぶつかり合い、

さらにあとで作ったブランチもコンフリクトを起こし

コンフリクト祭りで一人ではどうにもなりませんでした!

 

まじで独学で開発できる人ってすごいなと思っています。

一人で解決できなかったけど、昨日もいっぱい今まで知らなかったことがたくさん知れました!

忘れないようにアウトプットしようと思います。

simpledancer.hatenablog.com

gitに自分の名前とアドレスを登録しておく

gitに登録するという概念が全く持ってなかったのですが

どうやら自分の情報を登録しておく必要があるようです。

githubとかbitbacketとか使ってるので、それに入ってるからそもそも登録することすら知らなかった。

Git - 最初のGitの構成

Gitをインストールしたときに最初にすべきことは、ユーザー名とE-mailアドレスを設定することです。全てのGitのコミットはこの情報を用いるため、これは重要で、次々とまわすコミットに永続的に焼き付けられます:

知らなかったよねえ。私だけかな。。

vimでファイルの内容を変更する 

gitでコンフリクトが起こったとき、今まではテキストエディタを開いて、ファイル探して直して、、としていたんですが、

なんとターミナル上でvim画面を呼び出し、そこでファイルを編集できてしまうということを知りました!すごいね!

qiita.com

 

simpledancer.hatenablog.com