見出し画像

【応用64%】TECHCAMP名古屋21日目

どうも、ジュンです

いつもご視聴、コメント、高評価、ありがとうございます

TECHCAMP名古屋 73期 副業フリーランスコース21日目で学んだことについてお話します
rubyで1個、HTMLで2個、javascriptで1個、jQueryで2個、railsで5個、IPアドレスで2個、Linuxで40個、SSHで11個、その他4個のことについて学んだので、それぞれ説明します

★rubyで学んだこと★
1.attr_accessor
ゲッターとセッターつきの変数を定義することのできるメソッドです
コード量を大きく減らすことができるため、必ず覚えておくといいです

★HTMLで学んだこと★
1.カスタムデータ属性
htmlタグにオリジナルの属性を付与することができます
オリジナルの属性名に「data-」を先頭につけることで
カスタムデータ属性を作成することができます

2.カスタムデータ属性のメリット
JavaScriptから簡単に値を取得することができます

★javascriptで学んだこと★
1.カスタムデータ属性の値を取得する方法
取得したDOMに対してdataメソッドを使用します
取得したDOM.data("カスタムデータ属性名");の形で、
カスタムデータ属性の値を取得することができます

★jQueryで学んだこと★
1.$('クラス名:last')
そのクラスの保有する子要素の最後の要素を取得します

2.setInterval
指定した関数を、一定時間おきに実行します

★railsで学んだこと★
1.WebAPI
HTTPやHTTPS通信を通じて利用するAPIのことです
様々な種類があります
最近のWebAPIでは、返ってくるデータ形式にJSONが広く使われています

2.namespaceを使う理由
同じコントローラー名を利用していても、
それを区別できるようにするために、
namespaceを使ったりします

3.namespaceを利用したコントローラーのルーティングを作成する方法
namespace :名前空間名 do と end の間に、
resource コントローラー名, only :indexのように記述します

4.デフォルトでJSON形式でレスポンスするようにする方法
記述したルーティングの末尾に
defaults: {format: 'json'}を記述します

5.自動更新機能の実装手順
1.カスタムデータ属性を利用して、更新対象のHTMLにIDを付与します
2.コントローラーで、更新されたもののみを取得する処理を記述します
3.JSONを利用し、そのコントローラーからjavascriptに対して、更新されたデータのみを転送します
4.javascriptで関数を作成し、JSONで渡ってきた更新データから、カスタムデータ属性の値を抽出します
5.その関数の中でカスタムデータ属性の値を$.ajaxに渡します
6.$.ajaxに対応するdoneとfailを追加します
7.done側で、更新されたデータのみを表すHTMLを、each文を利用して生成し、appendで追加します
8.処理負荷の軽減のために、更新されたデータがない場合はその関数の実行を終了します
9.自動更新を行いたい部分に対してのみ、setIntervalを用いて、作成した関数を数秒おきに呼び出します
10.animateメソッドを用いて、自動的にスクロールするような仕組みとすると親切です
11.fail側で、エラーダイアログを表示する処理を追加すれば完成です

自動更新機能を実装したものをGithub上に上げているので、
詳しくは概要欄のURLにあるGithubのプルリクとコミットコメントを参照してください
https://github.com/EL93019205/chat-space/pull/11

★IPアドレスで学んだこと★
1.digコマンド
ドメインを管理しているサーバーに問い合わせをして、
ドメインからIPアドレスを取得し、表示します
domain information groperの略です

2.telnetコマンド
離れたところにあるホストを手元の端末から遠隔操作するために
ネットワーク接続するコマンドです

★Linuxで学んだこと★
1.Linuxの特徴
サーバー向けによく利用されています
オープンソースであり、誰でも自由に無償で利用できます
品質の高い多くのソフトウェアが利用できます
世界中でサーバ用途として広く利用されているため、
信頼性が高いです
操作を自動化するための仕組みが用意されており、
サーバの運用が行いやすいです

2.ディストリビューション
OSの中核であるカーネルと、
OSを構成する他のプログラムと合わせて、
様々なソフトウェアを最初から組み合わせたものです
CentOS、Ubuntuなどがあります

3.CentOS
Red Hat Enterprise Linux
通称RHELのソースコードを元に
開発が進められている無償ディストリビューションです
サーバーを構築したいユーザーを中心に人気があり、
企業での利用実績も多く、信頼性に定評があります

4.Ubuntu
初心者に優しいと言われるメジャーな無償ディストリビューションです
家庭・学校・職場で必要とされる、ワープロやメールソフトから、
サーバーソフトウェアやプログラミングツールまで、
あらゆるソフトウェアが含まれています

5.Amazon Linux
AWSのEC2で利用できるCentOS系列の
Amazon独自のディストリビューションです

CentOSと同じコマンドが使えたり使えなかったりなので、
扱いには注意です

6.各種ディストリビューションの主な違い
ディレクトリの構造が異なります
パッケージマネージャが異なります
標準でインストールされているアプリケーションや、
自動で起動するプロセスが異なります
コマンドやその使い方が異なります

7.パッケージマネージャ
コンピュータになんのソフトウェアがインストールされたかを記録し、
新しいソフトウェアのインストール、
新しいバージョンへのソフトウェアの更新、
以前インストールしたソフトウェアの削除を
容易に行えるようにするプログラムのことです

8.yum
パッケージをインストール/アップデート/アンインストール
するためのコマンドです

9.yum install ファイル名
パッケージをインストールします

10.yum update
システムにインストールされているパッケージをアップデートします

11.yum remove ファイル名
パッケージをアンインストールします

12.yum lis
サーバーにあるパッケージ一覧を表示します

13.シェル
ユーザーの入力したコマンドを
解釈するソフトウェアのことです

14.ls
カレントディレクトリの直下にある
ファイルやフォルダの名前が表示されます

15..
カレントディレクトリを表します

16...
親ディレクトリを表します

17.〜
ホームディレクトリを表します

18.cp
ファイルをコピーするためのコマンドです

19.mv
ファイルの移動およびリネームを行うためのコマンドです

20.rm
ファイルを削除するコマンドです

21.mkdir
新規ディレクトリを作成するコマンドです

22.touch
ファイルを新規作成します

23.cat
ファイルの内容を表示・結合するコマンドです

24.tail
ファイルの終わり部分を表示するコマンドです
-fオプションを追加すると、
ファイルが更新されるたびに表示も更新されます

25.vi
Linuxで標準で利用されるエディタの名称です
コマンドもあります
viに続けてファイル名を入力すると、
そのファイルをviで開きます

26.viの通常モードの操作
:w 保存します
:q 終了します
:q! 保存せずに強制終了します
:wq 保存して強制終了します

27.viでインサートモードにする方法
iを押します

28.viでインサートモードを終了する方法
escを押します

29.viで検索する方法
通常モードで/のあとに文字列を入力してEnterです

30.viでインサートモード中の操作を1回ずつ取り消す方法
通常モード中にuを押します

31.sudo
(スーパーユーザードゥ)
多分スーパーユーザードゥの略です
管理者権限を付与します

32.su
(スイッチユーザー)
多分スイッチユーザーの略です
ユーザーを変更します

33.パーミッション
誰にどのような操作を許可するかを決めるものです
readを表すrが読み込み可能、
writeを表すwが書き込み可能、
executeを表すxが実行可能を表します

34.パーミッションを確認する方法
ls -lコマンドで
各種ファイルのパーミッションを確認することができます

35.chmod
(チェンジモード)
パーミッションを書き換えるコマンドです

36.chown
(チェンジオーナー)
ファイルやディレクトリの所有者を変更するコマンドです

37.ps
プロセスを表示します
-aをつけると自分以外のユーザーが、
-rをつけると実行中のプロセスが、
-u ユーザー名をつけるとユーザー名とプロセスが実行された時刻が、
auxをつけると実行中のすべてのプロセスに関してCPU使用率などの
詳細な情報つきで表示します

38.パイプ
複数のコマンドを同時に実行します
コマンドとコマンドの間に|を入力します

39.grep
特定の文字列が含まれる1行を抽出するためのコマンドです

40.kill
プロセスを終了します
-9を付与するとプロセスの強制終了を行うことができます

★SSHで学んだこと★
1.SSHとは
セキュアシェルの略です
セキュアは安全、シェルはユーザーの入力を解釈するためのソフトウェアのことです
つまり、安全にリモートサーバと通信したい時に利用します

2.SSHのメリット
通信を盗聴される危険性を回避して安全に操作ができます
サーバー上でのファイル操作、設定ファイルの編集ができます
データのバックアップをしたいとき、サーバー上で圧縮して
ファイルの一括ダウンロードができるので、
アップロード・ダウンロードの大量ファイルの時間短縮ができます

3.SSHを利用する方法
リモートにSSHサーバー、ローカルにSSHクライアントという
ソフトウェアをインストールする必要があります
ただし、LinuxサーバやMacOSには標準でインストールされています

4.リモートサーバーにログインする方法
ssh ログインユーザー名 @ ipアドレスの形でコマンドを入力します
はじめてアクセスする場合は、接続の確認および
パスワードの入力を求められます

5.公開鍵と秘密鍵を作成する方法
.sshディレクトリでssh-keygen -t rsaコマンドを実行します
秘密鍵の保存場所を聞かれるので空欄でEnterを押します
秘密鍵に設定するパスワードを2回入力します
id_rsa.pubが公開鍵、id_rsaが秘密鍵になります
pubはパブリックの略で、公共のという意味があります
どちらがどちらの鍵か分からなくなった場合は、
パブリックがついているほうが公開鍵とおぼえます

6.公開鍵を置く場所
サーバー

7.秘密鍵を置く場所
ローカル

8.scp
送信先のディレクトリを指定してインターネットを介して
ファイルを送ることができるコマンドです

9.リモートサーバに公開鍵を送る時に注意すること
id_rsa.pubのままではなく、authorized_keysにリネームします

10.公開鍵のパーミッション
読み書き実行の全てができるように700にします

11..sshディレクトリのパーミッション
読み書きがができるように600にします

★その他★
1.DRY原則
don't repeat your selfの略です
重複のある記述があると
アプリケーションのコードが不必要に大きくなるため、
不具合が生じる危険性が高くなります
そのため、重複のある記述を抑えましょうというのがDRY原則です

2.YAGNI原則
you aren't Gonna Need Itの略です
実際に必要になった機能のみを追加すべきという原則です
なんとなく使いそうだからと思い実装しても、
1度も使われることがない可能性があり、
時間を無駄にします

3.単一責任の原則
クラスが果たす役割を1つにしようという原則です
役割が増えると、変更する箇所が多くなり、
変更箇所が多くなることで不具合を引き起こしやすくなります
それを避けるために単一責任の原則というものがあります

4.インターフェイス分離の原則
インターフェイスが分離されていないと、
内部で不必要なメソッドを実行することに繋がり、
処理時間や影響度に悪影響をもたらす可能性があります
それを避けるために、インターフェイスを分離する必要があります

今回の動画は以上です
今日もまたひとつ賢くなりました

この動画がいいなと思った方はチャンネル登録、高評価、
twitterのフォロー、よろしくお願いします

それではまた次の動画でお会いしましょう
ご視聴いただき、ありがとうございました


この記事が気に入ったらサポートをしてみませんか?