開始45日目〜超初心者、文系、30代のスタート〜
本日学んだこと:
・エンジニアに必要な検索力:
プロのエンジニアでも毎日Web上で検索しながら開発をしている。
キーワード選び4選:
- 複数キーワードで検索する
- 期間指定で新しい記事を探す
- 英語で検索する
- Googleの検索テクニックを利用する
- QiitaとStack Overflowは技術情報に関するサービスの中でも信頼性が高い。
- Qiitaはストック数、Stack Overflowは票数が多い情報が正確である可能性が高い。
・良いコードとは、読みやすいコードであり、誰が見てもわかるようにするのがポイント。読みやすいコードが書ければ、他のプログラマが一緒に働きたいと思う優秀なプログラマになれる。まずは学んだことを実行すること。
処理の内容を変えずに冗長なコードを削除したり、コードを改善すること。
メリットは読み手が最短時間でコードを理解できるようになる、修正がしやすくなる。
リファクタリングを行う為の6要素:
- 制御フロー
- 式の分割
- 変数
- メソッドの抽象化
- 関心の分離
- 短いコードを書く
正規表現について
文字列に特定の文字が含まれているかを確認することや、特定の文字を取り除くなどの操作を行うための技術が正規表現です。
正規表現は様々な言語で同じようなコードで表すことができるように設計されています。そのため、ほとんどの記述をRubyやJavaScriptなどの別言語間でも共有することができます。
例)電話番号のハイフン、フォーマットを統一させるために処理するなど。
2つメソッド
subメソッド・・・文字列の指定した部分を別の文字列に置き換えるためのメソッドです。第一引数に置き換えたい文字列を指定し、第2引数に変換後の文字列を指定します。
また、操作したい文字列は/で囲みます。JavaScriptでは、subメソッドと同じ機能を持つメソッドとして、replaceメソッドがあります。
Matchメソッド・・・引数に指定した文字列がレシーバの文字列に含まれているか否かをチェックするためのメソッド。含まれている場合は、指定した文字列がMatchDataオブジェクトの返り値で得られます。また、含まれていない場合は、返り値としてnilが得られます。マッチした文字列等はMatchDataオブジェクトで返されます。MatchDataオブジェクトから文字列等を取り出す際は、以下の様に配列からデータを取り出す時と同様の形で取り出すことができます。
電話番号のハイフン取り除く。
特定の文字を取り除く場合は、「特定の文字を空文字に置換する」と考えます。置換するメソッドはsubメソッドでした。
gsubメソッドのgが意味するのは、グローバルマッチと呼ばれ、文字列内で指定した文字が複数含まれている場合、その全てを置換するという意味になります。
tel.sub(/-/,'')
0901234-567
tel.gsub(/-/,'')
09012345678
上記のような違いになる。
パスワード8文字以上の英数字という制約をつける。
正規表現のパターン
[a-z] : 角括弧で囲まれた文字のいずれか 1 個にマッチ
\d : 数字にマッチ
{n, m} : 直前の文字が少なくとも n 回、多くても m 回出現するものにマッチ
i : 大文字・小文字を区別しない検索
. どの1文字にもマッチ
+ 直前の文字の 1 回以上の繰り返しにマッチ
明日やること:
正規表現の再テスト受講。
JavaScriptを学ぶ。
jQuarityの実装まで学ぶ。
感想:
再試験問題ももう一度取り組んだ為、簡単に終了。
応用編に入ると早速壁に直面。
どう変えて良いのかわからないのが現状。
しっかり学んだことを生かすためには、どう変えればわかりやすいコードになるのか。まずはそこから知る必要がありそうだ。