アプリ開発サークル勉強会⑫ 開催日時 2021年3月20日(土) 7:00-9:00
本日もこちらの問題やりました!
Q49-51 https://gist.github.com/kenmori/1961ce0140dc3307a0e641c8dde6701d
Map
Mapオブジェクトはkey,value形式で値を保持することができる。
二次元配列から値を取得したい場合。
Map不使用
var fafa = [['one', 'info@fa'], ['two', 'send@fafa'], ['three', 'hoso@fafa']]; var str; fafa.forEach(function (value) { value.forEach(function (val) { if (val === 'send@fafa') { str = val; } }); });
// 結果 send@fafa
Map使用
var map = new Map(fafa); console.log(map.get('two'));
// 結果 send@fafa
こんな簡単に取得できるとは。。。
結合
var fafa2 = [['four', 'deo@fafa']]; var map = new Map([...fafa, ...fafa2]); console.log(map);
// 結果 Map(4) { 'one' => 'info@fa', 'two' => 'send@fafa', 'three' => 'hoso@fafa', 'four' => 'deo@fafa' }
...
こんな書き方もあるのね。
二次元→一次元
var fafa = [['one', 'info@fa'], ['two', 'send@fafa'], ['three', 'hoso@fafa']]; console.log(fafa);
// 結果 [ [ 'one', 'info@fa' ], [ 'two', 'send@fafa' ], [ 'three', 'hoso@fafa' ] ]
var fafa = [['one', 'info@fa'], ['two', 'send@fafa'], ['three', 'hoso@fafa']]; console.log(...fafa);
// 結果 [ 'one', 'info@fa' ] [ 'two', 'send@fafa' ] [ 'three', 'hoso@fafa' ]
EC2でSpringBootの起動時にエラー
Visual Studio CodeでSpringBootをjarにする
Visual Studio Codeでjar化の手順書
準備物
- Spring Boot Extension Pack(拡張機能)
- Gradle Build Tool
Spring Project作成
Ctrl + Shift + P(コマンドパレット) 以下のコマンドを打ち込む
今回はGradle、Mavenの場合はMavenに変えたらOK
Spring Initializr: Create a Gradle Project
後は必要事項を打ち込んでいく。
jarにしたいのでjarを選択
必要な依存関係を追加
Spring Web
Thymeleaf
プロジェクトを作成したフォルダを選択
実行→デバッグの開始
起動確認できたので次はjarにしていきます。
Gradle Build Tool をInstallします。
Gradle Build Tool Install
以下サイトよりInstall
gradle.org
Install Gradleをクリック
Step 1. Downloadをクリック
installしたいversionのcompleteをクリック
installできたら解凍して環境パスの設定を行う。
環境パス設定
スタート → Windows システムツール → コントロールパネル
システムとセキュリティ
システム
システムの詳細設定 → 環境設定
ユーザ変数
解凍先のフォルダを指定
システム変数
gradle.batが存在するbin/を指定
ターミナルから以下のコマンドを打ち込みinstallの確認
gradle -version
installの確認ができたので次はjarにしていきます。
jar作成
以下のコマンドを打ち込みjarにしていきます。
gradle build
build/libs/demo-0.0.1-SNAPSHOT.jarが作成されているので無事成功。
参考サイト
環境パス
www.javadrive.jp
環境構築~SpringFramework学習
zenn.dev
アプリ開発サークル勉強会⑪ 開催日時 2021年3月13日(土) 7:00-9:00
本日もこちらの問題やりました!
Q46-48 https://gist.github.com/kenmori/1961ce0140dc3307a0e641c8dde6701d
配列の中に連想配列
配列の中に連想配列が定義されているパターン
このようなkey,value形式の値を取り出して配列に戻す。
var names = [{ name1: 'A', name2: 'B' }, { name3: 'C', name4: 'D' }];
まずはforEachで連想配列を取り出す。
names.forEach(function (name) { console.log(name); });
結果:
{ name1: 'A', name2: 'B' } { name3: 'C', name4: 'D' }
次にkeyを連想配列に定義されているすべてのkeyを取り出す
names.forEach(function (name) { Object.keys(name).forEach(function (key) { console.log(key); }); });
結果:
name1 name2 name3 name4
後はこれらのkeyを使って連想配列の中のvalue値を取り出して配列に詰め込む。
var results = []; names.forEach(function (name,) { Object.keys(name).forEach(function (key) { results.push(name[key]); }); }); console.log(results);
結果:
[ 'A', 'B', 'C', 'D' ]
参考サイト
JavaScript|配列とオブジェクト(連想配列)の組み合わせパターン - わくわくBank
some
numbersの中身が一つでも5以上だったらtrueを返す。
someを使わなかった場合と使った場合の比較。
Someなし
変数numbers
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; var result = function () { for (var number of numbers) { if (number === 5) { return number >= 5; }; } return false; } console.log(result);
結果:
true
Someあり
var result1 = numbers.some(function (number) { return number >= 5; }); console.log(result1);
結果:
true
everyなし
numbersの中身がすべて5以上だったらtrueを返す。
everyを使わなかった場合と使った場合の比較。
everyなし
var result = function () { for (var number of numbers) { if (number >= 5) { return false; } } return true; } console.log(result());
結果:
false
every
var result1 = numbers.every(function (number) { return number >= 5; }); console.log(result1);
結果:
false
AWS わからない言葉を調べていく①
- レイテンシー
- CDN (Content Delivery Network)
- トラフィック
- オフロード
- スループット
- フォールトトレランス
- フェイルオーバー
- プロビジョニング
- スケーラビリティ
- スケールアップとスケールダウン
- スケールインとスケールアウト
- AWS用語集
レイテンシー
データ転送などを要求してから、その結果が返送されるまでの遅延時間のこと。
低レイテンシーとは遅延時間が少ないということ。
CDN (Content Delivery Network)
コンテンツデリバリネットワークの略。
ウェブコンテンツをインターネット経由で配信するために最適化されたネットワークのこと。
サーバーを一ヶ所に置くのではなく、分散させて配置し、アクセスの集中を避けて反応が遅くなったり応答不能にならないようにする。
トラフィック
ネットワークを流れる情報、情報量。
英語で交通という意味。
トラフィック制御やリソースのトラフィック制限等は情報の制御、情報の制限に置き換わる。
オフロード
実行中の処理を停止させる、システム不可を軽減させるなどに用いられる。
読み取り処理をオフロードするとは、停止、軽減させるということ。
RDSだとリードレプリカを作成することでトラフィックを分散させることができる。
スループット
単位時間当たりの処理能力
フォールトトレランス
システムの一部に問題が生じても全体が機能停止(機能を縮小しても)するということなく動作し続けるシステム。
フェイルオーバー
サーバー、システム、ネットワークで異常事態が発生した場合、自動的に冗長なサーバー、システム、ネットワークに切り替える機能。
手動で切り替える場合はスイッチオーバ―という。 マルチAZにRDSを配置するということは、障害発生時に、自動的に正常なRDSに切り替えれるということ。
プロビジョニング
準備、提供、設備。
自動的にプロビジョニングとは自動的に提供されるということ。
スケーラビリティ
仕事の増大に適応できる能力
アベイラビリティーとは、システムが継続して稼働できる度合いや、能力。
スケールアップとスケールダウン
スケールアップは性能を上げる。スケールダウンは性能を下げる。
垂直スケールともよばれる。
スケールインとスケールアウト
スケールインはサーバーの台数を減らす。 スケールアウトはサーバーの台数を増やす。
水平スケールともよばれる。
AWS用語集
単語の意味調べてたら偶然発見。
説明に専門用語が使われているためさらに調べる必要あり。
AWS の用語集 - AWS 全般のリファレンス
GitHubをかっこよくしていく。
DarkMode
Your Orgnaizationをクリック
AppearanceからDefault darkを選択。
目に優しいです。
GitHub Readme Stats
GitHubの統計情報が生成できる機能。
いままでのコミット数の合計等の情報が数値で表示できます。
言語ごとのパーセンテージも見れるので。どんな言語を扱ってるかもすぐにわかるので、
初めて訪れた人にはわかりやすくていいですね!
qiita.com
以下のサイトの引用
GitHubアカウント名と同じ名前のリポジトリを作成する 1で作成したリポジトリにREADME.mdを作成する 2で作成したREADME.mdにGitHubプロフィールに表示したい内容を追記する
Git hubに反映されなかったのでなんでだろうといろいろ試してましたが、
赤丸の箇所をクリックしたら反映されました。
GitHub Readme Stats のRepository
使い方はReadme.md
github.com
完成
見た目も重要ですね。
Clone後のRepositoryを消す
他人のRepositoryをcloneした後、使い終わって必要なくなった場合に表示から消す方法。
Repositoriesをクリック→該当のRepository右にあるLeaveをクリック
I understand, leave this repositoryをクリック
アプリ開発サークル勉強会⑩ 開催日時 2021年3月6日(土) 7:00-9:00
本日もこちらの問題やりました!
Q41-45 https://gist.github.com/kenmori/1961ce0140dc3307a0e641c8dde6701d
新しい連想配列作成
Object.prototypeにて全く新しい配列を作る例。
mapでも同じことできます。
var o = {}; var obj = Object.create(o, Object.prototype); if (obj === o) { console.log("onazi!!"); } console.log(obj);
結果:
{}
参照渡し
メモリ上だと同じ場所を参照しているため、どちらかの値を変更すると両方変更してしまう。
var o = { a: 1, b: 2, c: 3 }; var x = o; x.d = 4; console.log(o);
結果:
{ a: 1, b: 2, c: 3, d: 4 }
break; continue
foreachだとbreak;continue;が使えないため、for文を使うか、someを使う。 returnで代替えが可能。
[0, 1, 2, 3, 4].some(function (val, i) { if (val === 2) { // how do we stop? return true; } console.log(val); });
結果:
0,1
someは条件に一致すればtrue,一致しなければfalseを返却する。