2021/04/30 学習等

【就職活動等】

◯ 今日は面接等なしの予定。

◯ 応募も昨日のうちに行ったので、今日は学習に集中

PHP

◯ 標準入力
 ・ キーボード、ファイル、コマンド等で入力されたデータが渡される。標準入力はこれらのデータをプログラム
   に渡す。
◯ 標準出力
 ・ プログラムから渡された(上記の)データをディスプレイやファイルなどに出力すること
◯ paizaにてまずは基礎問題を解く。forとifは記述の方法も含めていいタイミングで復習できた。
◯ 最初にDランクの問題解くつもりが「trim(fgets(STDIN))」という見慣れないコードに出会したので一旦
  基礎問題に集中していました。
◯ Dランクの問題チャレンジ。簡単な計算だけなのでレート高いやつかCランクチャレンジしてもよさそう。
◯ セッター
 ・ プロパティのアクセス権をprivateにするとプロパティの値をクラスの外から変更できなくなる。そこでプロパ
   ティの値を変更するメソッドを定義する。このようにプロパティの値を変更するメソッドをセッターという。
   setプロパティ名が一般的な命名
【オリジナルアプリ】
◯ 記事投稿のビューを作成。概ね整ったのであとはコントローラーの記述と、ユーザー登録と同様にエラー
  メッセージの位置の調整。
◯ 写真と被って読みにくい字を「text-shadow」で、影をつけて読みやすくした。

2021/04/28 学習内容等

就職活動】

◯ 引き続き複数社の応募

◯ 1社面接。早ければ今週中に合否が決まるかも。会社が掲げる理念、自分がそれにマッチしているのか、そういった視点でも再度振り返り考えていきたい。

PHP

◯ カプセル化

 ・ オブジェクト指向の重要な機能の1つ。
   使い手にとって必要ないものを隠してしまうこと。
 ・ 現物に例えると、PCの回路はPCの内部に入り込んでいて(隠されている)ユーザーはキーボードなど限られ
   た部分にしか触れられない。
   回路を隠すことで、回路に触って壊れてしまう等アクシデントを事前に防いでいる。
 ・ クラスを作る際、他の人もそのクラスを使いやすいように、使って欲しい機能は公開し、使って欲しくない機
   能は隠す。
◯ publicとprivate
 ・ カプセル化はクラスのプロパティとメソッドへのアクセスを隠すことを言う。
 ・ クラスの外部からアクセスできるようにするにはpublic、アクセスできないようにするにはprivateを用いる。
   プロパティは基本的にprivateを用いる。
◯ ゲッター
 ・ アクセス権をprivateにすると、プロパティの値はクラス外から取り出せない。そこで、プロパティの値を返す
   だけのメソッドを定義するには、ゲッターを用いる。
   getプロパティ名 と記述するのが一般的。
◯ trim
 ・ 文字列の先頭にある空白や改行を削除する。
◯ fgets
 ・ 指定した場所からデータを1行受け取る命令。
◯ STDIN
 ・ 標準入力(キーボードで入力された値を渡す)の機能を表す。
   trim(fgets(STDIN)) -> キーボードで入力された値を、先頭にある空白等を削除したうえで受け取る命令
【オリジナルアプリ】
◯ 記事投稿のビューを作成中。後で画像を複数枚投稿できるようにする予定。

2021/04/26 学習等内容

【就職活動】

◯ 今日は面接ないので応募に時間をかけた。

PHP

◯ 引き続きプロゲートでの学習(今やってるのは料理のメニュー表を作る)

◯ require_once

 ・ 別のphpファイルを読み込むことができる。
   <?php require_once(‘data.php') ?>    data.phpを読み込む記述
   <p> <?php echo $curry->name ?> </p>   data.phpで定義した変数$curryが使える。
◯ 画像の表示
 ・ 注意点
   クォーテーション ”” が必要
   echoしないと出力されない
   <img src = “<?php echo $curry->image ?>”>
◯ 税込価格を表示
 ・ floorメソッドで、小数点を切り捨てにする。
 ・ priceにアクセスして、税率を乗じている。
   return floor($this->price * 1.08)
【オリジナルアプリ】
◯ ユーザー管理のCSSセレクタ名)の微修正と整理。
◯ ベーシック認証の設定(ホントは最初にやっておくべき)
◯ ログアウトのテストコードを追記
◯ 記事を投稿するため、postテーブルを作成
◯ 明日は時間取れるかはアヤシイが、次は記事の作成ページを作っていく。

2021年4月25日 学習内容

【昨日】

◯ 学習等なし。趣味の自転車で札幌〜余市の往復。 

【今日】

◯ オリジナルアプリのユーザー管理機能(新規登録、ログイン、ログアウト)完成。(就活しながらなので中々進まない)

◯ 新たにチャレンジしたり手こずったことは下記の点

 ① ユーザー新規登録ページにて、エラーメッセージを任意の場所に表示させる。 

  ・ 上部のform_with直下に次の記述

     <% if @user.errors.any? %>
     <% end %>
  ・ また、各フォームの下に次の記述(下記はメールアドレスを例にしている)
     <% if @user.errors.include?(:email) %>
      <p style="color: red;"><%= @user.errors.full_messages_for(:email).first %>
     <% end %>
  ② エラーメッセージの日本語化
   ・ まずはGemに次の記述 gem 'i18n'

   ・ ターミナルでbundle install

   ・ config/application.rbに次の記述

     config.i18n.default_locale = :ja

   ・ config/locales/devise.ja.ymlファイルを作り、そのファイルに次の内容をコピー。  

     https://github.com/tigrish/devise-i18n/blob/master/rails/locales/ja.yml

   ・ 上記だけでは足りない部分は、config/locales/ja.ymlファイルを作成し、次の記述

       ja:
         attributes:
          user:
           username: ユーザー名
           name: 名前
           birthday: 生年月日

   ③ パスワードの最低文字数を設定する

    ・ userモデルに次の記述

      devise: varidatable, password_length 8..128

      これで最低8文字を入力させるパスワード設定入力設定になる(デフォルトは6文字)

   ④ ログインのエラーメッセージ

     ・ 新規登録と同様の記述ではエラ〜メッセージが表示されない。

     ・ そこで、deviseに格納されているflashメッセージを呼び出す処置をする。

     ・ app/views/layouts/_flash.html.erbファイルを作り、次の記述

       <% flash.each do |key, value| %>
        <%= content_tag(:p, value, class: "alert alert-#{key}") %>
       <% end %>

     ・ ログインページに上記部分テンプレートを呼ぶための記述

       <%= render partial: 'layouts/flash' %>

    ⑤ 結合テスト実行で発生したエラー

      ・ 結論は、rails webpacker:installで解決。

      ・ なお、webpacとは、webアプリを作成する際に必要となる様々なJavaScriptをひとまとめ

        に管理するツールで、webpackerというGemでwebpacをRails仕様にしてファイルやヘルパ

        ーメソッドが使えるようになる。

2021/04/23 学習等内容

【就職活動等】

◯ 今日は応募はなし(また来週から)

◯ 面接も今日はなし

◯ 4月の頭に書類出した会社から面接したいという連絡がちょこちょこ来始めた。志望度の高い会社なので

  しっかり準備したい。

PHP

◯ 今まで学んだことを活かしてメニューサイトを作る。(新しいことは今日はなかったので、ここに書くこ

  ともない)

【オリジナルアプリ】

◯ ユーザー登録の単体テストはOK

◯ 今度は結合テストでエラー

◯ ユーザー関係を一通り終えたら手こずった部分を後日まとめておく