railsチュートリアル2週目 学習メモ 1章〜3章
2018/06/17 02:20
<p>こんにちは、fujjimaです。</p> <p> </p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB">チュートリアル</a>が一通り終わったんですが、正直5,6章あたりから読み飛ばすところが増えてきて、いまいち理解しきれていなかったので、1章から一つ一つ理解しながら復習を行うことにしました。そこで、疑問に思っていたところや詰まっていたところを、参考にさせて頂いたサイトと合わせて、備忘録としてまとめてみました。</p> <p>※かなり雑にまとめているので、後々加筆修正が多分入ります。</p> <p> </p> <p> </p> <p><em><strong>1章</strong></em></p> <p> </p> <p><<a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a>インストール></p> <p>■bundle,Gem周り</p> <p>・bundleとはなんぞや</p> <p>・GemfileとGemfile.lockって何が違うのか</p> <p> </p> <p>■pumaとは</p> <p> </p> <p>参考:</p> <p><a href="https://qiita.com/kompiro/items/223bb04c2f009787eea8">pumaを使ってみた</a></p> <p> </p> <p>■排他処理とは</p> <p> </p> <p>参考:</p> <p><a href="http://www.techscore.com/blog/2012/12/25/rubyrails%E3%81%A7%E3%83%AD%E3%83%83%E3%82%AF%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E3%82%88%E3%82%8B%E6%8E%92%E4%BB%96%E5%88%B6%E5%BE%A1/">» Ruby/Railsでロックファイルによる排他制御 TECHSCORE BLOG</a></p> <p> </p> <p>■<a class="keyword" href="http://d.hatena.ne.jp/keyword/webrick">webrick</a>とは?</p> <p>参考:</p> <p><a href="https://thinkit.co.jp/article/117/1">WEBrickを使ってみよう! | Think IT(シンクイット)</a></p> <p> </p> <p><controllerファイル></p> <p>■Action Controllerとは</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a>における「<a class="keyword" href="http://d.hatena.ne.jp/keyword/MVC">MVC</a>」の概念の内、"C"に相当するライブラリの一つ。</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a>のコントローラは基本的にこのAction Controllerクラスを継承している。</p> <p> </p> <p>参考:</p> <p><a href="https://railsguides.jp/action_controller_overview.html">Action Controller の概要 | Rails ガイド</a></p> <p><a href="http://d.hatena.ne.jp/keyword/ActionController">ActionControllerとは - はてなキーワード</a></p> <p> </p> <p>■Application Controllerとは</p> <p> </p> <p>参考:</p> <p><a href="https://whitech0c0late.hatenablog.com/entry/20120128/1327759552">Railsで共通メソッドの作り方 - 線路は続くよどこまでも。</a></p> <p> </p> <p>■コントローラとは</p> <p><span style="color: #222222; font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W4', メイリオ, Osaka, 'MS Pゴシック ', sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">コントローラはユーザーからのリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トを受け取り、モデルやビューなどと連携し結果をユーザーに返す役割をする部分。</span></p> <p> </p> <p>参考:</p> <p><a href="https://www.rubylife.jp/rails/controller/">コントローラとアクション - Ruby on Rails入門</a></p> <p> </p> <p>■renderとは</p> <p>テンプレート表示のためのメソッドであり、contoroller,view両方で使用することが出来る。(ただし、それぞれの場合で使用方法が若干異なる)</p> <p> </p> <p>参考:</p> <p><a href="http://railsdoc.com/references/render">render - リファレンス - - Railsドキュメント</a></p> <p><a href="https://www.sejuku.net/blog/14032">rails renderの基礎から使い方まで(partial, 引数) | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト</a></p> <p> </p> <p>■routes.rbファイルとは</p> <p>HTTPで送信されてきたリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トを適切なコントローラのアクションに割り振る役割を持っている。5種類のアクションがある(get,post,delete,puch,post)</p> <p> </p> <p>参考:</p> <p><a href="https://www.sejuku.net/blog/13078">【完全入門】Ruby on Railsのroutesについてわかりやすく解説してみた! | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト</a></p> <p> </p> <p> </p> <p><em><strong>2章</strong></em></p> <p> </p> <p> ■リソース</p> <p style="box-sizing: inherit; margin: 0px; line-height: 1.9; color: #333333; font-family: -apple-system, system-ui, 'Segoe UI', 'Helvetica Neue', 'Hiragino Kaku Gothic ProN', メイリオ, meiryo, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;">データモデルとweb<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%BF%A1%BC%A5%D5%A5%A7%A5%A4%A5%B9">インターフェイス</a>が組み合わさったもの。</p> <ul style="box-sizing: inherit; margin: 1.5em 0px; padding: 0px 0px 0px 1.5em; list-style: disc; line-height: 1.9; color: #333333; font-family: -apple-system, system-ui, 'Segoe UI', 'Helvetica Neue', 'Hiragino Kaku Gothic ProN', メイリオ, meiryo, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;"> <li style="box-sizing: inherit;">データモデルとは 現実世界のあるモノを分類/抽象化して落とし込んだカタマリ (より具体的にいえば(今回の文脈では)「<a class="keyword" href="http://d.hatena.ne.jp/keyword/RDBMS">RDBMS</a>に則って設計されたデータ群」と同義)</li> <li style="box-sizing: inherit;"> <p style="box-sizing: inherit; margin: 1em 0px; line-height: 1.9;">web<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%BF%A1%BC%A5%D5%A5%A7%A5%A4%A5%B9">インターフェイス</a>とは<br style="box-sizing: inherit;" />データモデルをwebで取り扱えるようにしたもの</p> </li> </ul> <p>→つまりリソースとは、</p> <p> HTTP<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%C8%A5%B3%A5%EB">プロトコル</a>経由で自由にCURD(作成/読み出し/更新/削除)できる</p> <p>(分類された)データ群</p> <p> </p> <p>参考:</p> <p><a href="https://qiita.com/kidach1/items/43e53811c12351915278">Railsを支える基本概念の整理(RESTfulやリソースなど)</a></p> <p> </p> <p>■scaffold</p> <ul> <li>モデル、コントローラ、ビュー、ルーティングなどをまとめて作成し、雛形を作成してくれる</li> <li>作成したモデルに対して、各カラムの名前及びデータ型(int型とかString型とか)を指定できる</li> <li>各種webページを自動で作ってくれる(対応アクションはindex,show,new,edit)</li> </ul> <p> </p> <ul> <li>コマンドの書式は下記のような感じ</li> </ul> <pre style="box-sizing: border-box; overflow: auto; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 15px; display: block; padding: 10px; margin: 0px 0px 15px 15px; line-height: 1.6; color: #555555; word-break: break-all; word-wrap: break-word; background: #eeeeee; border: 1px solid #cccccc; border-radius: 4px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a> generate scaffold モデル名 <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AB%A5%E9%A5%E0%CC%BE">カラム名</a>1:データ型1 <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AB%A5%E9%A5%E0%CC%BE">カラム名</a>2:データ型 2 …</pre> <p> </p> <ul> <li>自動的に作成されるコントローラファイルは下記のような感じ</li> </ul> <p>※長いので一部省略してます</p> <p> </p> <pre class="code lang-ruby" style="overflow: auto; font-family: Monaco, Consolas, 'Courier New', Courier, monospace, sans-serif; font-size: 15.2px; border: 1px solid #c7dce3; margin: 0px 0px 10px; padding: 20px; white-space: pre; color: #524336; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;" data-lang="ruby" data-unlink=""><span class="synPreProc" style="color: #9355e6;">class</span> <span class="synType" style="color: #3ec63e;">UsersController</span> < <span class="synType" style="color: #3ec63e;">ApplicationController</span> . def index . end <span class="synPreProc" style="color: #9355e6;">def</span> <span class="synIdentifier" style="color: #51cfcf;">show</span> . end <span class="synPreProc" style="color: #9355e6;">def</span> <span class="synIdentifier" style="color: #51cfcf;">new</span> . end <span class="synPreProc" style="color: #9355e6;">def</span> <span class="synIdentifier" style="color: #51cfcf;">edit</span> . end <span class="synPreProc" style="color: #9355e6;">def</span> <span class="synIdentifier" style="color: #51cfcf;">create</span> . end <span class="synPreProc" style="color: #9355e6;">def</span> <span class="synIdentifier" style="color: #51cfcf;">update</span> . end <span class="synPreProc" style="color: #9355e6;">def</span> <span class="synIdentifier" style="color: #51cfcf;">destroy</span> . end <span class="synPreProc" style="color: #9355e6;">end</span></pre> <p> </p> <p>※この時、モデル名はリソース名の単数形にする(例:リソース名=Users,モデル名=User)。これは、<a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a>では、モデルが設計図という概念である(=設計図から作られたものでなく、あくまで設計図そのもの)と前提に置いており、概念は複数形には出来ないためである。一方、リソース名は上記の通り自由に<a class="keyword" href="http://d.hatena.ne.jp/keyword/CRUD">CRUD</a>できるデータ群なので、複数形となる。</p> <p> </p> <p>参考:</p> <p><a href="https://techacademy.jp/magazine/7204">超便利!Ruby on Railsのscaffoldの使い方 | TechAcademyマガジン</a></p> <p><a href="https://qiita.com/kidach1/items/43e53811c12351915278">Railsを支える基本概念の整理(RESTfulやリソースなど)</a></p> <p> </p> <p>↓なぜモデル名が単数なのかについての参考</p> <p><a href="https://github.com/yochiyochirb/meetups/issues/94">"rails generate scaffold modelname"でモデル名を単数にする理由について · Issue #94 · yochiyochirb/meetups · GitHub</a></p> <p> </p> <p>■ resources</p> <p>routes.rbファイルで使用され、自動でRESTFULなルート定義を設定する。</p> <p>"<a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a> routes"コマンドでHTTPメソッド(Verb列)とURLとアクションが紐づいたルート定義が生成されていることを確認出来る。</p> <p>なお、HTTPメソッドはリソースに対して行われるものなので、対象のリソースを指定する。(resources :usersのように)</p> <p>参考:</p> <p><a href="https://www.sejuku.net/blog/27728#i-3">【Rails入門】resourcesの使い方まとめ | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト</a></p> <p><a href="https://railsguides.jp/routing.html">Rails のルーティング | Rails ガイド</a></p> <p> </p> <p>■<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9">インスタンス</a>変数(@が付く変数)</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9">インスタンス</a>ごとに値を持つ変数。</p> <p> </p> <p>参考:</p> <p><a href="https://techacademy.jp/magazine/9704">変数の種類を知っておこう!Ruby変数のスコープの使い方 | TechAcademyマガジン</a></p> <p><a href="http://uxmilk.jp/24330">【Ruby入門】Rubyのインスタンス変数とクラス変数 | UX MILK</a></p> <p> </p> <p> </p> <p>↓<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9">インスタンス</a>、クラスの概要をざっくりと分かりやすく解説してくれています</p> <p><a href="http://d.hatena.ne.jp/micdonalds/20100305/1267738291">クラスメソッドとインスタンスメソッド - mic_footprints</a></p> <p> </p> <p><a href="https://diveintocode.jp/tips/what_class_instance">DIVE INTO CODE | クラスとインスタンスとは</a></p> <p> </p> <p>■validates</p> <p>バリデーションは、正しいデータのみをデータベースに保存するために行われる。</p> <p>例えば下記のような部分がバリデーションである。</p> <p> </p> <pre class="code lang-ruby" style="overflow: auto; font-family: Monaco, Consolas, 'Courier New', Courier, monospace, sans-serif; font-size: 15.2px; border: 1px solid #c7dce3; margin: 0px 0px 10px; padding: 20px; white-space: pre; color: #524336; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;" data-lang="ruby" data-unlink=""><span class="synPreProc" style="color: #9355e6;">class</span> <span class="synType" style="color: #3ec63e;">Micropost</span> < <span class="synType" style="color: #3ec63e;">ApplicationRecord</span> validates <span class="synConstant" style="color: #ff6666;">:content</span>, <span class="synConstant" style="color: #ff6666;">length</span>: {<span class="synConstant" style="color: #ff6666;">maximum</span>: <span class="synConstant" style="color: #ff6666;">140</span>} <span class="synPreProc" style="color: #9355e6;">end</span></pre> <p> </p> <p>validatesで文字列の長さを検証する時の使い方は以下のようになる。</p> <pre style="box-sizing: border-box; overflow: auto; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 13px; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.42857; color: #333333; word-break: break-all; word-wrap: break-word; background-color: #f5f5f5; border: 1px solid #cccccc; border-radius: 4px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><code style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: inherit; padding: 0px; color: inherit; background-color: transparent; border-radius: 0px; white-space: pre-wrap;">validates(<span style="color: #00cccc;">検証するフィールド名</span>, <span style="color: #ff0000;">:length => 検証パラメータ</span>)</code></pre> <p> </p> <p>今回で言うと、下記のようにvalidatesを使用していることが分かる。</p> <p><span style="color: #00cccc;">検証するフィールド名</span> = :content(シンボル)</p> <p><span style="color: #ff0000;">:length => 検証パラメータ</span> = length: 検証パラメータ(ハッシュ構造のデータ型の代入)</p> <p> </p> <p>※ここで、":content"と" maximum: " にそれぞれ付いてる" : "の位置の違いがとても気になったので、■ハッシュとシンボルに別枠としてまとめた。</p> <p> </p> <p>参考:</p> <p><a href="https://qiita.com/shunhikita/items/772b81a1cc066e67930e">Railsバリデーションまとめ</a></p> <p><a href="https://railsguides.jp/active_record_validations.html">Active Record バリデーション | Rails ガイド</a></p> <p><a href="http://railsdoc.com/references/validates">validates - リファレンス - - Railsドキュメント</a></p> <p> </p> <p> </p> <p>■ハッシュとシンボル</p> <p>【シンボル】</p> <p>文字列に見えるが内部は数値。Symbolクラスのオブジェクトであり、同じ表記のシンボルなら、必ず同じ<strong><em>オブジェクト※</em></strong>を指す。</p> <p>本当にざっくり言うと、":content"のように文字列の前に":"が付いていたらシンボル。</p> <p>ただし、代入の際は":"は文字列の後ろに来る。下のようなパターンはまさにそれ。</p> <p> </p> <pre class="code lang-ruby" style="overflow: auto; font-family: Monaco, Consolas, 'Courier New', Courier, monospace, sans-serif; font-size: 15.2px; border: 1px solid #c7dce3; margin: 0px 0px 10px; padding: 20px; white-space: pre; color: #524336; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;" data-lang="ruby" data-unlink="">fruites = {<span class="synConstant" style="color: #ff6666;">apple</span>: red, <span class="synConstant" style="color: #ff6666;">grape</span>: purple} <span class="synComment" style="color: #4f80e5;">#ここで代入</span> puts fruites[<span class="synConstant" style="color: #ff6666;">:apple</span>] <span class="synComment" style="color: #4f80e5;">#redと表示</span> puts fruites[<span class="synConstant" style="color: #ff6666;">:grape</span>] <span class="synComment" style="color: #4f80e5;">#purpleと表示</span></pre> <p> </p> <p>※ここで、「オブジェクトとは?」と思った人は下の「参考:」内にあるリンク先をみて下さい。</p> <p> </p> <p>【ハッシュ】</p> <p>キーと値を組み合わせて保持するデータ構造。配列が開始番号をゼロとした要素番号でしか要素の指定が出来ないのに対して、「○○なら××」というようにキーに対する値と言う形で値を管理できる。まぎらわしいが、下のようにシンボルを使ってハッシュを作ることも出来る。</p> <pre class="code lang-ruby" style="overflow: auto; font-family: Monaco, Consolas, 'Courier New', Courier, monospace, sans-serif; font-size: 15.2px; border: 1px solid #c7dce3; margin: 0px 0px 10px; padding: 20px; white-space: pre; color: #524336; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;" data-lang="ruby" data-unlink="">user = {<span class="synConstant" style="color: #ff6666;">:user1</span> => <span class="synSpecial" style="color: #c000c0;">"</span><span class="synConstant" style="color: #ff6666;">ユーザー1</span><span class="synSpecial" style="color: #c000c0;">"</span>, <span class="synConstant" style="color: #ff6666;">:user2</span> => <span class="synSpecial" style="color: #c000c0;">"</span><span class="synConstant" style="color: #ff6666;">ユーザー2</span><span class="synSpecial" style="color: #c000c0;">"</span>} <span class="synComment" style="color: #4f80e5;">#ここでシンボルに代入している</span> puts user <span class="synComment" style="color: #4f80e5;">#表示は右の通り {:user1=>"ユーザー1", :user2=>"ユーザー2"}</span></pre> <p> </p> <p>参考:</p> <p>↓シンボル</p> <p><a href="https://qiita.com/iron-breaker/items/32710004f0bb2e2babb6">配列とハッシュとシンボルは紛らわしいので整理!!</a></p> <p><a href="http://mikanmarusan.hatenablog.com/entry/2017/12/29/005632">[Ruby] シンボルとハッシュ - mikanmarusanのブログ</a></p> <p> </p> <p>↓ハッシュ</p> <p><a href="https://style.potepan.com/articles/4832.html">【Ruby入門】ハッシュ(hash)とシンボルの基本 | 「ポテパンスタイル」</a></p> <p> </p> <p>↓シンボルの詳細な理解に関しては以下を参考にして下さい</p> <p><a href="http://ruby-newbie.hatenablog.com/entry/2012/12/30/201905">Ruby on Rails 入門のための知識 1(シンボルとハッシュ) - OnsenとRuby</a></p> <p> </p> <p>↓シンボルのちょっと難しいやつ</p> <p><a href="https://rails-study.net/symbol/">Railsでよく出てくるコロン(:)は、シンボルって言うやつらしい | JavaからのRuby on Rails入門</a></p> <p> </p> <p>↓オブジェクトについて</p> <p><a href="https://qiita.com/kansiho/items/13b5e9a32ddfc9bea01c">rubyにおけるオブジェクト指向とはなにか(๑•̀ㅂ•́)و✧【基礎】</a></p> <p> </p> <p> ■has_many,belongs_toの関連付け</p> <p>そもそも関連付けとは、テーブル同士に関係があることを示すためのもの。</p> <p>belongs_toとhas_manyの二つがあるが、それぞれ下記のような使用法となる。</p> <p> </p> <p>・belongs_to:</p> <p> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B2%BE%C8%B8%B5">参照元</a>テーブルから参照先のテーブルのデータの情報にアクセスすることが出来る</p> <p> ようにする→<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B2%BE%C8%B8%B5">参照元</a>と参照先の関係を明示する</p> <p>・has_many:</p> <p> 1:n (nは任意の整数) の関係を表す。例えば一つのオブジェクトに対して、</p> <p> 複数のオブジェクトが存在していることを明示できる。</p> <p>※has_many関連付けを使用する場合、相手のモデル名は複数形にする必要がある</p> <p> </p> <p>参考:</p> <p>↓関連付けの基本 </p> <p><a href="https://www.sejuku.net/blog/26617">【Rails入門】has_many、belongs_toの使い方まとめ | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト</a></p> <p><a href="https://qiita.com/To_BB/items/47d2c7b1bc3513025d7b">【Rails初心者向け】モデル間の関連付け(アソシエーション)まとめ</a></p> <p> </p> <p> </p> <p>■継承</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/ruby">ruby</a>の継承では、「親クラス」のメソッド、カラムを使用することが出来るようになるため、コードの量を減らすことが出来る。</p> <p> </p> <p>参考:</p> <p><a href="https://techacademy.jp/magazine/9722">実際の業務で役立つ!Rubyでクラスを継承する方法 | TechAcademyマガジン</a></p> <p> </p> <p>↓継承とかオーバーライドとか</p> <p><a href="https://rails-study.net/extend/">Rubyの継承とオーバーライドについてまとめてみた | JavaからのRuby on Rails入門</a></p> <p> </p> <p> </p> <p>ざっと2章はここまで!</p> <p> </p> <p> </p> <p><em><strong>3章</strong></em></p> <p> </p> <p> ■README.md</p> <p> </p> <p>参考:</p> <p> </p> <p> </p> <p>■heroku,<a class="keyword" href="http://d.hatena.ne.jp/keyword/github">github</a>コマンド</p> <p> </p> <p>ここだけは注意!!/////////////////////////////////////////////////////////////////////////////////</p> <p>今後Herokuで何らかの本番アプリケーションを運用する予定があるなら、7.5のproduction用Webサーバーの設定に必ず従ってください。</p> <p>////////////////////////////////////////////////////////////////////////////////////////////////////////////</p> <p>参考:</p> <p> </p> <p>↓herokuにデプロイしたアプリを消す時</p> <p><a href="https://qiita.com/chihiro/items/5c3ff400f6cb99deb945">【herokuコマンド】createからdestroyまで</a></p> <p> </p> <p> ■<a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a> g controller 〜 コマンドについて</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a> generateコマンドの一種である。ファイルの自動生成コマンドであり、"generate"部分を"g"に省略可能である。どういったファイルが生成されるのか、については「参考:」にあるリンク先のサイト様を参照して下さい。とてもきれいにまとまっています。</p> <p> </p> <p>今回で言うと、"<a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a> g controller〜"だと以下のファイルが生成されるそうです。</p> <p>・コントローラ</p> <p>・ビュー</p> <p>・アセット(参考: にアセットについてのリンク先を載っけています)</p> <p>・ルート</p> <p>・テスト</p> <p>・ヘルパー</p> <p> </p> <p>ちなみに、下にコマンドの実行結果を載せました。</p> <p> </p> <pre class="code lang-ruby" style="overflow: auto; font-family: Monaco, Consolas, 'Courier New', Courier, monospace, sans-serif; font-size: 15.2px; border: 1px solid #c7dce3; margin: 0px 0px 10px; padding: 20px; white-space: pre; color: #524336; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;" data-lang="ruby" data-unlink=""> create app/controllers/static_pages_controller.rb route get <span class="synSpecial" style="color: #c000c0;">'</span><span class="synConstant" style="color: #ff6666;">static_pages/help</span><span class="synSpecial" style="color: #c000c0;">'</span> route get <span class="synSpecial" style="color: #c000c0;">'</span><span class="synConstant" style="color: #ff6666;">static_pages/home</span><span class="synSpecial" style="color: #c000c0;">'</span> invoke erb create app/views/static_pages create app/views/static_pages/home.html.erb create app/views/static_pages/help.html.erb invoke test_unit create test/controllers/static_pages_controller_test.rb invoke helper create app/helpers/static_pages_helper.rb invoke test_unit invoke assets invoke coffee create app/assets/javascripts/static_pages.coffee invoke scss create app/assets/stylesheets/static_pages.scss</pre> <p> </p> <p>参考:</p> <p><a href="http://maeharin.hatenablog.com/entry/20130212/rails_generate">いつも忘れる「Railsのgenerateコマンド」の備忘録 - maeharinの日記</a></p> <p> </p> <p> ↓アセット</p> <p><a href="https://qiita.com/shizuma/items/1980bf885906c73238b6">Rails Assetの管理についてまとめる</a></p> <p> </p> <p>■<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%C3%A5%D4%A5%F3%A5%B0">マッピング</a>(routes.rbファイル)</p> <p>1章でも出てきたroutes.rbファイルについて、中身の詳細な書き方を調べました。</p> <p> </p> <p>※ちなみに下記の①、②の書き方では同じ結果となった。</p> <pre class="code lang-ruby" style="overflow: auto; font-family: Monaco, Consolas, 'Courier New', Courier, monospace, sans-serif; font-size: 15.2px; border: 1px solid #c7dce3; margin: 0px 0px 10px; padding: 20px; white-space: pre; color: #524336; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;" data-lang="ruby" data-unlink="">①get <span class="synSpecial" style="color: #c000c0;">'</span><span class="synConstant" style="color: #ff6666;">static_pages/home</span><span class="synSpecial" style="color: #c000c0;">'</span>, <span class="synConstant" style="color: #ff6666;">to</span>: <span class="synSpecial" style="color: #c000c0;">'</span><span class="synConstant" style="color: #ff6666;">static_pages#home</span><span class="synSpecial" style="color: #c000c0;">'</span> ②get <span class="synSpecial" style="color: #c000c0;">'</span><span class="synConstant" style="color: #ff6666;">static_pages/home</span><span class="synSpecial" style="color: #c000c0;">'</span></pre> <p> </p> <p>参考:</p> <p><a href="https://qiita.com/Yaruki00/items/d677e0751c90500afc8c">Railsのroutesを読む</a></p> <p> </p> <p>↓個人的に気になったアクションとビューの対応について</p> <p><a href="https://pc.tokuvin.net/create-rails-ctrl-action/">Railsのコントローラとアクションを作成する</a></p> <p> </p> <p> </p> <p>■テスト</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/RSpec">RSpec</a>を使わない素のテストコードの書き方で、下の2種のテストを行う。</p> <p>・unit test (モデルのテスト)</p> <p>・functional test(コントローラ+ビューのテスト)</p> <p> </p> <p>「■<a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a> g controller 〜」で実行したコマンドで作成されたテストファイルが下記のようなもの</p> <pre class="code lang-ruby" style="overflow: auto; font-family: Monaco, Consolas, 'Courier New', Courier, monospace, sans-serif; font-size: 15.2px; border: 1px solid #c7dce3; margin: 0px 0px 10px; padding: 20px; white-space: pre; color: #524336; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;" data-lang="ruby" data-unlink=""><span class="synPreProc" style="color: #9355e6;">require</span> <span class="synSpecial" style="color: #c000c0;">'</span><span class="synConstant" style="color: #ff6666;">test_helper</span><span class="synSpecial" style="color: #c000c0;">'</span> <span class="synPreProc" style="color: #9355e6;">class</span> <span class="synType" style="color: #3ec63e;">StaticPagesControllerTest</span> < <span class="synType" style="color: #3ec63e;">ActionDispatch</span>::<span class="synType" style="color: #3ec63e;">IntegrationTest</span> test <span class="synSpecial" style="color: #c000c0;">"</span><span class="synConstant" style="color: #ff6666;">should get home</span><span class="synSpecial" style="color: #c000c0;">"</span> <span class="synStatement" style="color: #d88a17;">do</span> get static_pages_home_url assert_response <span class="synConstant" style="color: #ff6666;">:success</span> <span class="synStatement" style="color: #d88a17;">end</span> test <span class="synSpecial" style="color: #c000c0;">"</span><span class="synConstant" style="color: #ff6666;">should get help</span><span class="synSpecial" style="color: #c000c0;">"</span> <span class="synStatement" style="color: #d88a17;">do</span> get static_pages_help_url assert_response <span class="synConstant" style="color: #ff6666;">:success</span> <span class="synStatement" style="color: #d88a17;">end</span> <span class="synPreProc" style="color: #9355e6;">end</span></pre> <p> </p> <p>参考:</p> <p>↓<a class="keyword" href="http://d.hatena.ne.jp/keyword/RSpec">RSpec</a>使わないテストの基本的な考え方</p> <p><a href="http://language-and-engineering.hatenablog.jp/entry/20091023/p1">Ruby on Railsのテストの書き方 (モデルの単体テストと,コントローラの機能テスト) - 主に言語とシステム開発に関して</a></p> <p> </p> <p><a href="http://ruby.studio-kingdom.com/rails/guides/testing">Railsのテスト | Rails日本語ドキュメント | Ruby STUDIO</a></p> <p> </p> <p>●assert_select</p> <p>2つの書式があり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BB%A5%EC%A5%AF%A5%BF">セレクタ</a>で指定された要素が条件に一致する場合と、選択された全ての要素が条件に一致する場合である。</p> <p>今回でいうと、about.html.erbファイル内の<title>タグ内に<span style="color: #000000;"><span class="synSpecial">"<span class="synConstant">About</span></span><span class="synConstant"> | <a class="keyword" href="http://d.hatena.ne.jp/keyword/Ruby%20on%20Rails">Ruby on Rails</a> Tutorial Sample App</span><span class="synSpecial">"と一致しなければテスト結果で「Red」となる。</span></span></p> <p> </p> <p>※下のコードは"static_pages_controller_test.rb"内のAboutアクションに関するテスト部分である</p> <pre class="code lang-ruby" style="overflow: auto; font-family: Monaco, Consolas, 'Courier New', Courier, monospace, sans-serif; font-size: 15.2px; border: 1px solid #c7dce3; margin: 0px 0px 10px; padding: 20px; white-space: pre; color: #524336; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;" data-lang="ruby" data-unlink="">test <span class="synSpecial" style="color: #c000c0;">"</span><span class="synConstant" style="color: #ff6666;">should get about</span><span class="synSpecial" style="color: #c000c0;">"</span> <span class="synStatement" style="color: #d88a17;">do</span> get static_pages_about_url asse_response <span class="synConstant" style="color: #ff6666;">:success</span> assert_select <span class="synSpecial" style="color: #c000c0;">"</span><span class="synConstant" style="color: #ff6666;">title</span><span class="synSpecial" style="color: #c000c0;">"</span>, <span class="synSpecial" style="color: #c000c0;">"<span class="synConstant" style="color: #ff6666;">About</span></span><span class="synConstant" style="color: #ff6666;"> | Ruby on Rails Tutorial Sample App</span><span class="synSpecial" style="color: #c000c0;">"</span> <span class="synStatement" style="color: #d88a17;">end</span></pre> <p> </p> <p>ちなみに<title>は、ブラウザの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C4%A1%BC%A5%EB%A5%D0%A1%BC">ツールバー</a>の表示されるタイトルのことである。</p> <p>参考:</p> <p>↓公式リファレンス</p> <p><a href="https://railsguides.jp/testing.html">Rails テスティングガイド | Rails ガイド</a></p> <p> </p> <p>↓assert_selectの基本的な使い方(分かりやすい!)</p> <p><a href="http://d.hatena.ne.jp/zariganitosh/20080405/1207455670">assert_selectの使い方 - ザリガニが見ていた...。</a></p> <p> </p> <p>■埋め込み<a class="keyword" href="http://d.hatena.ne.jp/keyword/Ruby">Ruby</a></p> <p>●provide及びyeildについて</p> <p><span style="color: #333333; font-family: -apple-system, system-ui, 'Segoe UI', 'Helvetica Neue', 'Hiragino Kaku Gothic ProN', メイリオ, meiryo, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">provide関数(<% provide(:title, 'Home') %>)を使ってViewからLayoutにデータを引き渡すことが出来る。今回は一つのhtmlファイル内で呼び出しているが、これも同様の使い方だろうか。</span></p> <p>yieldに関しては、「レイアウトを使う際に、/static_pages/homeにアクセスするとhome.html.erbの内容がHTMLに変換され、<%= yield %>の位置に挿入される、ということだけ理解しておけば問題ありません。」との記載。</p> <p> </p> <p>●application.html.erbについて</p> <p>上で疑問に思って点が説明されていた。背景としては、「home,help,aboutの3つのファイルがあるけど、ページの内容とかタイトルとかほぼ一緒だよね?まとめようぜ」という感じ。</p> <p>application.html.erbファイルに共通するコード部分を書いておいて、各ファイルで異なる部分に関しては"yield"を使って引数を与えてみたり、個別のhtmlファイルを引っ張ってきたりする感じかな。</p> <p>参考:</p> <p><a href="http://ruby-rails.hatenadiary.com/entry/20140810/1407603600#ctrl-pass-data">Railsでビューのレイアウトを指定する - Rails Webook</a></p> <p><a href="https://qiita.com/rentalgambler/items/3fd7c050b4ad2c424957">provide関数とyield</a></p> <p><a href="https://qiita.com/sanstktkrsyhsk/items/e7d27c6717b430302967">yieldについて</a></p> <p> </p> <p>■(発展)minitest reportersについて</p> <p>テスト結果を<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%B0%A5%EC%A5%B9%A5%D0%A1%BC">プログレスバー</a>で表示してくれる。gemでインストールして使用する。使用方法に関しては「参考:」のリンク先を参照のこと。</p> <p> </p> <p>参考:</p> <p><a href="https://github.com/kern/minitest-reporters">GitHub - kern/minitest-reporters: Create customizable MiniTest output formats.</a></p> <p><a href="https://qiita.com/baban/items/88e18a784eaf39efb6e0">minitestのオススメ基本設定調べてみた</a></p> <p> </p> <p> </p> <p> </p>
【GW企画part1】出身地ネタ
2018/05/03 17:24
<p>みなさんこんにちは、fujjimaです。</p> <p> </p> <p>GWですが、僕は幸い9連休でしたが半分が終わりました。仕事の5日間は長いのに休日の5日間は短くてとても悲しいです。もっとも、あと40年ぐらいは同じことを言ってそうですが…</p> <p> </p> <p>さて、前回のブログでGW中にやりたいこととして「ブログを3記事書く」ようなことを言っていたんですが、ペース配分をミスり、後半に詰め込む形になりました。これも詰め込み型教育の弊害ですかね。</p> <p> </p> <p>突然ですが、画面前のあなたのご出身はどちらでしょうか?</p> <p>東日本ですか、西日本ですか。はたまた海外というエキセントリックなピーポーでしょうか。</p> <p> </p> <p>私は、イギリスです。</p> <p>嘘ではありません、日本語しか自信を持って話せませんが、事実なのです。</p> <p>あちらで生まれ、小学生の間に日本に来た次第です。</p> <p>ですのでイギリスにいたのは短い間でしたが、そんな中でも「日本と違った」と感じることは多々あったので、いくつか紹介していきたいと思います。</p> <p> </p> <ul> <li>浴槽内で体を洗う</li> </ul> <p><strong> まあ、これがダントツでしたね</strong></p> <p> イギリスでは浴槽内で体を洗っていました。なので入浴中の浴槽内は泡泡です。</p> <p> ともすればジャグジーっぽい見た目ですが、ただの泡です。そこまで金持ち</p> <p> ではないです。</p> <p> 日本でこれやったら、間違いなく排水溝が詰まりますね、なんでイギリスでは</p> <p> 大丈夫だったんでしょうか。</p> <p> </p> <ul> <li>牛乳がプラスチック容器らしきもので売られている。</li> </ul> <p> 紙パックでは売っていません、プラスチックらしき容器です。</p> <p> プラスチックよりは若干柔らかい材質だった気もしますが、少なくとも紙では</p> <p> ありません。ただ、プラスチックか聞かれると多分プラスチックとしか言えず、</p> <p> ここまでプラスチックに無力感を覚えたのは初めてです。</p> <p> </p> <ul> <li>夏は夜まで明るく、冬はすぐ暗くなる</li> </ul> <p> 緯度が高い国では当たり前になっている現象ですが、太陽と地球の位置関係上、夏は</p> <p> 21時ぐらいでも日本の夕方並みの明るさで、冬だと16時で真っ暗になります。</p> <p> 慣れればなんてことはないですが、旅行などで赴いて初体験した場合、新鮮さを</p> <p> 存分に味わえるでしょう。</p> <p> </p> <ul> <li>髪を洗うと、髪がゴワゴワする</li> </ul> <p> イギリスは硬水地域です。硬水で髪を洗うとゴワリ、パサつき、そして傷みます。</p> <p> ちょっと検索すればいくらでも出てきますが、硬水にはミネラルが多量に</p> <p> 含まれており、これが髪のタンパク質によくない影響を与えます。</p> <p> そんな環境ですので、イギリス人男性は基本、薄毛の方が多いそうです。日本の</p> <p> ようにストレスで薄毛になるよりかは健全ですかね(・ω・)</p> <p> 石鹸の泡立ちも悪くなるので、旅行などで硬水地域に行く際は硬水用のシャンプー</p> <p> や石鹸を持って行くことをお勧めします。</p> <p> </p> <p>ざっと、身の回りで感じたイギリス特有のものはこんな感じですかね。あとは習慣的に、3日に1回ぐらいしかお風呂入らないとかね。</p> <p>多分、ほとんどの方が「どうでもいいわ」とお思いのことだと思います。</p> <p>ここに書いてあること以上の感動を得たい方は、是非とも一度イギリスに行って下さい。有名なフィッシュ&チップスも、本場のパブ(居酒屋的なところ)で食べればめっさ美味しいし、硬水で入れた紅茶も一度飲んでみるといいと思います。ただ個人的に、walkersというポテトチップスがあることがイギリスの最大のメリットだと感じています。</p> <p> </p> <p>あとは、コメント等で「イギリスではこれってどうなの」的な質問があれば、分かる範囲でお答え出来ればと思います。(制度的なことは、僕が住んでた時とえらい変わってると思うので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AD%A5%E9%A1%BC%A5%D1%A5%B9">キラーパス</a>となります。ご注意下さい)</p> <p> </p> <p>それではまた٩( 'ω' )و</p> <p> </p> <p> </p> <p> </p>
私の半年のプログラミング学習の変遷
2018/04/30 17:07
<p>こんにちは、fujjimaです。</p> <p>今、プログラミングの学習をしております。</p> <p>始めてから半年程度なんですが、学習の変遷は下記の通りです。(分かりにくいですが、当時の心情→その時の行動というような形式で時系列で並べてます)</p> <p> </p> <p>業務で<a class="keyword" href="http://d.hatena.ne.jp/keyword/Java">Java</a>使ったけど、調べたら至る所で使われている言語らしいぞ!</p> <p>これ勉強したら他のとこでも使えるスキルが身につくぞ!→<a class="keyword" href="http://d.hatena.ne.jp/keyword/Java">Java</a>を書籍で学び出す</p> <p>↓</p> <p>あかん、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Java">Java</a>だと完成形のイメージが湧かん…→モチベーションが下がり、勉強が一時中断する</p> <p>↓</p> <p>とりあえず、アウトプットのイメージが分かりやすいHPを自分で作ってみよう!→HTML,<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSS">CSS</a>を学び始めて、TOPページ・プロフィール・略歴を載せただけの手抜きなHPをなんとか作ってみる</p> <p>↓</p> <p>やっぱりサーバーサイドの言語が出来ないと、サービスなんてろくに作れないらしいし、どれか一つでも言語出来ないとなぁ…→友人の紹介で知った「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Ruby">Ruby</a>」の手軽さ・コードの読みやすさに興味を持ち、Progateを使って学習を始める</p> <p>↓</p> <p>Progateを何周かして、なんとなく<a class="keyword" href="http://d.hatena.ne.jp/keyword/Ruby">Ruby</a>,<a class="keyword" href="http://d.hatena.ne.jp/keyword/Ruby%20on%20rails">Ruby on rails</a>の概要を知ることはできたし、意外とちょろいな→友人から「Progateよりも難しくてためになる教材」ということで、”<a class="keyword" href="http://d.hatena.ne.jp/keyword/Rails">Rails</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB">チュートリアル</a>”を紹介され、とりあえずやってみる</p> <p>↓</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Ruby">Ruby</a>,<a class="keyword" href="http://d.hatena.ne.jp/keyword/Ruby%20on%20rails">Ruby on rails</a>の深淵に触れ、恐怖で震える。←今ここ</p> <p> </p> <p>整理してみましたが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Java">Java</a>はもう少し、<a class="keyword" href="http://d.hatena.ne.jp/keyword/web%A5%B5%A1%BC%A5%D3%A5%B9">webサービス</a>とまではいかなくても簡単なツールとか作ってみるまで勉強を続ければよかったかなと思います。</p> <p> </p> <p>そんなわけで、今は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Ruby">Ruby</a>,<a class="keyword" href="http://d.hatena.ne.jp/keyword/Ruby%20on%20rails">Ruby on rails</a>に集中して取り組んでいます。</p> <p>目標としては自分のサービスをリリースすることですが、自分一人でやっていくのか、はたまた流行りのスクールに通うことになるのかは現在考え中です。 </p> <p> </p> <p>それではまた!</p> <p> </p> <p> </p> <p> </p>
このGWは消えていった有給の生まれ変わりなんだ…
2018/04/29 23:20
<p>お久しぶりです、fujjimaです。</p> <p> </p> <p>年度切り替えにより有給は消えました、ざっと10日分程。</p> <p>10日あったら何が出来たでしょうか、今やってる<a class="keyword" href="http://d.hatena.ne.jp/keyword/rails">rails</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB">チュートリアル</a>は終わりましたかね。なんてもったいない…</p> <p>自分で計画立てて消化しきるように取得すべきだとは思うんですが、いかんせんいつ忙しくなるか分からないんで、申請して後々仕事が終わらずに地獄をみるのが怖いです</p> <p>(゚ω゚)(実際ちょいちょい炎上したし…)</p> <p>これからは計画立てたうえで、余裕をもって仕事を終わらせたいと思います。</p> <p> </p> <p>そんなこんなでGWに入ったわけですが、せっかく9連休(残り7日ですが)を頂けたので、GW中にしたいことをリストアップしてみました。</p> <p> </p> <h4>GW中の予定</h4> <ul> <li><strong> <a class="keyword" href="http://d.hatena.ne.jp/keyword/Rails">Rails</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB">チュートリアル</a>を1周終了させる</strong></li> <li> ブログを3記事書く</li> <li>ワンカラに行く</li> <li>部屋の掃除をする</li> </ul> <p>いや、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB">チュートリアル</a>は本当に1周は終わらせたい。正直、bootstrapが出てきたあたりから「理解した:何を言ってるかは分かるが応用が出来る気がしない:PCそっ閉じ = 3:5:2」ぐらいの割合で進んでいる現状ですが、このまとまった期間に”<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB">チュートリアル</a>内の各コードの目的を理解し、サービス内部でプログラムがどう動いているかを把握する”ことはしっかりやり遂げたいと思います。</p> <p> </p> <p>ブログは、思考の整理→アウトプットの訓練がしたいので目標を設定しました。ネタどうするかなぁ( ✌︎'ω')✌︎</p> <p> </p> <p>ワンカラは行きたいだけです。</p> <p> </p> <p>それでは皆様もよいGWを!</p>
半年後には今の会社にいないだろうから、転職理由を整理してみる
2018/02/16 00:19
<p>こんにちは、fujjimaです。</p> <p> </p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%ED%A5%B0">はてなブログ</a>って、1ヶ月何も記事の更新とかしないとお知らせが来るんですね。</p> <p>そのお知らせを受け取って、「アウトプット出来てないやん(´_ゝ`)」と焦って本記事の投稿に至りました。</p> <p> </p> <p>書かねば…( ゚Д゚)</p> <p> </p> <p>ということで、今回は「転職の理由」を整理しようかなと思います!</p> <p> </p> <h4>現職の状況</h4> <p> 以下の自己紹介にも書いたんですが、私はメーカー系のSEをしています。PCも作ってるし、ITソリューションも提供している会社です。</p> <p><iframe class="embed-card embed-blogcard" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;" title="明けましておめでとうございます - fujjima’s blog" src="https://hatenablog-parts.com/embed?url=http%3A%2F%2Ffujjima.hatenablog.com%2Fentry%2F2018%2F01%2F01%2F014514" frameborder="0" scrolling="no"></iframe><cite class="hatena-citation"><a href="http://fujjima.hatenablog.com/entry/2018/01/01/014514">fujjima.hatenablog.com</a></cite></p> <p> </p> <p>そこでやってるのが下記のようなことです。</p> <p>・外部設計(システムの概要の設計をするよ)</p> <p>・内部設計(システムの詳細な設計をするよ)</p> <p>・<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C3%B1%C2%CE%A5%C6%A5%B9%A5%C8">単体テスト</a>~<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B7%EB%B9%E7%A5%C6%A5%B9%A5%C8">結合テスト</a>(各機能単位で確認した後、機能を合体してテストするよ)</p> <p>・テスト結果報告資料作成(お客様にテスト結果を報告するための資料を作るよ)</p> <p> </p> <p>ありがたいことに、最近では導入の初期段階からプロジェクトに参画し、実際の納品までの一連の流れをやらせて頂くことも増えました。</p> <p>そんな感じでやりがいがあるであろう仕事も出来るようになってはきたんですが、以下のような不満が浮かんできました。</p> <p> </p> <h5><strong>技術力だとかは身につかなかった</strong></h5> <p>前提として、ここでいう技術力は「プログラミングスキル」の他、情報のキャッチアップ力・発信力など、昨今のエンジニアに求められているであろうことを指しています。</p> <p> </p> <p>ただ、私の職場には<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BE%E5%B5%AD">上記</a>を実践してらっしゃる方は殆どいないと思います(直接聞いたわけではありませんが…)</p> <p>勿論、複雑な業務知識や膨大な社内独自のルールに長けている方は多く、そういった方に仕事中に何度も助けて頂いたりして、尊敬できる方は多いです。</p> <p>ですが、2年近く働いてきて、このままこの仕事を続けるのは「怖い」と感じました。</p> <p> </p> <p>理由は、”社内でしか使えない技術”が多すぎることです。</p> <p>外部に漏れてはいけない技術・特許等が多いため、内部に閉じられた業態になってしまうのは致し方ないと思うんですが、これはそのまま「社外に出た時に活きるスキルがない」ということに直結します。</p> <p>今はよくても、5,10年後に「一人では何も作れないエンジニア」になっていそうだと思いました。</p> <p> </p> <h5><strong>全ての基準が「お客様が許すかどうか」になってしまっている</strong></h5> <p>日本のサービス業では今も、「お客様は神様」の思想に基づいている所が多いかと思いますが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Sier">Sier</a>系の企業も大概、お客様に頭が上がりません。</p> <p>明らかに、導入すれば作業の効率化が図れそうな技術があったとしても、ユーザーとなる企業様の許可がなければ決して導入することは出来ません。ですので、どうしても実績のある技術、つまり昔から使われている枯れた技術に頼ることが多くなりがちです。</p> <p>(案件によってはVisual Studio2005を使ってたり…)</p> <p>また、お客様に正当な理由を話せるようになるための作業が生まれる、ということはざらにあります。そしてその作業が「やっぱいいや」の一言で無に帰ることも往々にしてあります。</p> <p>なので、作業の効率化が出来ないまま、作業だけが増えていき、結果、過剰な残業が発生したりするわけです。 そしてスキルも身につかないという負のスパイラルにはまっていく感じです。</p> <p> </p> <p>大きく<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BE%E5%B5%AD">上記</a>2点の理由から、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Sier">Sier</a>業界から離れたいなと考えている所存です。</p> <p>「自分の手で直接、人が次のステージに進むことをサポートできるようなサービスを作りたい」という漠然とした思いがあるため、web業界を考えていますが、圧倒的にスキルが足りていません。</p> <p>なので、退職後はスクールに半年ほど通い、一人でサービスを作れるレベルまで成長してから、次の会社で働いてみたい、というのが今の考えです。</p> <p> </p> <p>以上、乱文になってしまいましたが転職理由(と将来の展望)でした(/・ω・)/</p> <p> </p> <p> </p> <p> </p>
興味のある曲の紹介Part1
2018/01/03 02:50
<p>こんにちは、fujjimaです。</p> <p> </p> <p>以前、ブログで触れるテーマについて「あとは音楽?とかですね」っていうもにょもにょした発言をしていました。(下のリンク先のブログで言ってます)</p> <p>なので今回から、私がよく聞く曲などをここでご紹介していきたいと思います。</p> <p>初回は2曲のご紹介です。どうぞ。</p> <p> </p> <p><iframe class="embed-card embed-blogcard" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;" title="ブログ始めました - fujjima’s blog" src="https://hatenablog-parts.com/embed?url=http%3A%2F%2Ffujjima.hatenablog.com%2Fentry%2F2017%2F12%2F24%2F212802" frameborder="0" scrolling="no"></iframe><cite class="hatena-citation"><a href="http://fujjima.hatenablog.com/entry/2017/12/24/212802">fujjima.hatenablog.com</a></cite></p> <p> </p> <h4>沈黙のsummer(fishlife)</h4> <p><iframe src="https://w.soundcloud.com/player/?visual=true&url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F99672014&show_artwork=true" width="100%" height="400" frameborder="no" scrolling="no"></iframe><cite class="hatena-citation"><a href="https://soundcloud.com/fishlife-jp/summer">soundcloud.com</a></cite></p> <p> </p> <p>1曲目はfishlifeさんで「沈黙のsummer」です。</p> <p>イントロ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%AB%A4%E9%A4%B7">からし</a>てドはまりしてしまい、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A6%A5%A9%A1%BC%A5%AF%A5%DE%A5%F3">ウォークマン</a>での再生回数が2000回とかいってました。</p> <p>1曲通して好きなポイントしかないんですが、2:24の時と2:33の時の転調が特にテンションが上がります。</p> <p>ぜひカラオケで歌ってみたいんですが、配信されてない上に歌詞さえ見つからないというある意味<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C4%A5%C1%A5%CE%A5%B3">ツチノコ</a>的な曲になっています。歌詞プリーズ。</p> <p> </p> <h4>アマテラス(KK)</h4> <p> </p> <p><iframe src="https://www.youtube.com/embed/L4nkrSIfXIk?feature=oembed" width="480" height="270" frameborder="0" allowfullscreen=""></iframe><cite class="hatena-citation"><a href="https://www.youtube.com/watch?v=L4nkrSIfXIk">www.youtube.com</a></cite></p> <p> </p> <p>2曲目はKKさんで「アマテラス」です。</p> <p>1曲目ががっつりロック系だったの対し、こちらはポップスですかね。いまだにポップスの定義がよく分からないです。</p> <p>ロック程の激しさはないかもしれませんが、祈りや渇望にも似た感情が込められている曲だと思います。</p> <p>こちらはカラオケでの配信もされているので、いつも歌わせて頂いてます。</p> <p> </p> <p> </p> <p>いかがでしたでしょうか。皆さんが知ってる曲はありましたでしょうか。</p> <p>どちらもジャンルは違えど、強くおススメ出来る曲ですので、ぜひ聞いてもらえればと思います。</p> <p>ではまた。</p> <p> </p>
明けましておめでとうございます
2018/01/01 01:45
<p>あけましておめでとうございます。</p> <p> </p> <p>皆さんは2017年はどのような一年になったでしょうか。そして2018年はどのような年にしたいと考えているでしょうか。</p> <p>私の場合は、2017年は良くも悪くも今後の仕事の仕方に対して考えさせられる一年となりました。そして2018年では、出会いを増やす、なにかをアウトプットするということに注力したいと考えています。</p> <p> </p> <p>そういえば、自分の自己紹介が出来ていませんでしたので、この場でさせて頂こうと思います。</p> <h4>1分で分かる自己紹介</h4> <p> 私の基本的な情報は下記のようになっています。</p> <p>名前:fujjima</p> <p>年齢:25歳</p> <p>職業:メーカー系のSE</p> <p>好きなもの:堅あげ、カラオケ、文房具</p> <p>嫌いなもの:調整・根回し、ぬるいシチュー及びカレー、親子丼の玉ねぎ</p> <p>最近の悩み:ノートPCのモバイルバッテリーが見つからない</p> <p>備考:足が大きめ(靴サイズ…29~30のものを着用)</p> <p> </p> <p>こんな感じです。改めてよろしくお願いします。</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p>