5月20日、JJUG CCC 2017 Springに行ってきた!のつづき
Selenideを使ってみた~ブラウザテスト自動化~
をメモメモ
・自己紹介
・selenide(せるにど)を使い始めたきっかけ
何も考えずやると、大量にコピペ
→メンテナンスかんがえるとつらい
・ページオブジェクトを利用する
→Beanに隠す
変更に強い
でも
ページオブジェクトを作成するのは大変
・楽に作成する
サーバー側のFormクラスからの生成
ページへ直接アクセスして要素取得
electronのwebviewを使う
・概要
electronのwebviewを利用する
・Java8なら「default method」を使って
・確認作業
いろいろできる
→UI試験の目的はなんですか?
画面遷移ができれば、あとから・・
画面キャプチャーは割り切って目視確認
→エビデンス形式加工する
selenide.screenshot→取得範囲
ライブラリある
・はまったこと
突然起動しない→chromeが更新されていてwebdriverのバージョン変わってた
・まとめ
ページオブジェクトは最初は簡単でも
確認については目的を明確にしてから計画をしたほうがよい
少しづつ導入することができるので、一歩一歩すすめる
Selenideを使ってみた~ブラウザテスト自動化~
をメモメモ
・自己紹介
・selenide(せるにど)を使い始めたきっかけ
何も考えずやると、大量にコピペ
→メンテナンスかんがえるとつらい
・ページオブジェクトを利用する
→Beanに隠す
変更に強い
でも
ページオブジェクトを作成するのは大変
・楽に作成する
サーバー側のFormクラスからの生成
ページへ直接アクセスして要素取得
electronのwebviewを使う
・概要
electronのwebviewを利用する
・Java8なら「default method」を使って
・確認作業
いろいろできる
→UI試験の目的はなんですか?
画面遷移ができれば、あとから・・
画面キャプチャーは割り切って目視確認
→エビデンス形式加工する
selenide.screenshot→取得範囲
ライブラリある
・はまったこと
突然起動しない→chromeが更新されていてwebdriverのバージョン変わってた
・まとめ
ページオブジェクトは最初は簡単でも
確認については目的を明確にしてから計画をしたほうがよい
少しづつ導入することができるので、一歩一歩すすめる
5月20日、JJUG CCC 2017 Springに行ってきた!のつづき
JavaエンジニアのためのPostgreSQLステップアップ
をメモメモ
・自己紹介
・関係者
DBA:安定稼働(フロント書かない)
アプリ開発者(Java、SQL)
データベーススペシャリスト:アプリ開発者用
・プログラムとデータの分離
APサーバー、データ分離
OS層の違い吸収:java→データベースの違い吸収:sql
・sql
結果を高速に:なにがほしい:答えを返してくれる
トランザクション制御、
制約
コミットされたデータを守る
同時実行(ロック)
不正アクセス
・JDBCドライバ:接続
DB各社によって、JDBCドライバの拡張に違いがある
ORマッパー:性能問題
・星野源さんが、データベーススペシャリストを持っている
データベースのエキスパート:重宝されるけど、資格はない
・JavaとPostgresを連携すると・・
業務システム:複雑なロジック
最適化した性能
・Webアプリと業務
Webアプリ:参照が多い。数万人アクセスも。自分自身のデータが多い
→UI
業務システム:アクセス数は社員数。複雑な検索もある
DBでもいえる
大量のアクセス、クエリは簡単→MySQLに命を懸ける
業務システム:Joinの数が増える、かしこいDB→PostgreSQL,Oracle
・PostgreSQLのかしこさ
1つのWhereで少数がヒットするもの
多数の結果を扱うSQL
→PostgreSQLは最適な方法で検索
インデックス
全件検索
MySQL:スレッドモデル→たくさんの人アクセスにむいている
PostgreSQL:業務の種類がたきで、たくさんJOIN
・選ぶ理由
拡張性:JSON型、地理
レプリケーション
大規模、マルチデータプラットフォーム
・SQLをちゃんと書きましょう→あとはDBAに任せちゃいましょう
・DBA
OSレベルの監視
メンテナンス:結構ちゃんとしないと、性能問題
バックアップ、
DB起動停止、障害復旧
・メンテナンス:DBのチューニング
DBの設定のチューニング→初期段階で決まる
SQLのチューニング→いろいろ
自分が困っていることが何
特徴:Webアプリより?業務より?
更新の量、回数、タイミング→設計段階で
個別最適:どのSQLがわるい? もっさりする・・
・SQLチューニング
なにもしていないのにおそい:信用されてない→ちょっとかえただけでもかわる
データ量の増大
JavaエンジニアのためのPostgreSQLステップアップ
をメモメモ
・自己紹介
・関係者
DBA:安定稼働(フロント書かない)
アプリ開発者(Java、SQL)
データベーススペシャリスト:アプリ開発者用
・プログラムとデータの分離
APサーバー、データ分離
OS層の違い吸収:java→データベースの違い吸収:sql
・sql
結果を高速に:なにがほしい:答えを返してくれる
トランザクション制御、
制約
コミットされたデータを守る
同時実行(ロック)
不正アクセス
・JDBCドライバ:接続
DB各社によって、JDBCドライバの拡張に違いがある
ORマッパー:性能問題
・星野源さんが、データベーススペシャリストを持っている
データベースのエキスパート:重宝されるけど、資格はない
・JavaとPostgresを連携すると・・
業務システム:複雑なロジック
最適化した性能
・Webアプリと業務
Webアプリ:参照が多い。数万人アクセスも。自分自身のデータが多い
→UI
業務システム:アクセス数は社員数。複雑な検索もある
DBでもいえる
大量のアクセス、クエリは簡単→MySQLに命を懸ける
業務システム:Joinの数が増える、かしこいDB→PostgreSQL,Oracle
・PostgreSQLのかしこさ
1つのWhereで少数がヒットするもの
多数の結果を扱うSQL
→PostgreSQLは最適な方法で検索
インデックス
全件検索
MySQL:スレッドモデル→たくさんの人アクセスにむいている
PostgreSQL:業務の種類がたきで、たくさんJOIN
・選ぶ理由
拡張性:JSON型、地理
レプリケーション
大規模、マルチデータプラットフォーム
・SQLをちゃんと書きましょう→あとはDBAに任せちゃいましょう
・DBA
OSレベルの監視
メンテナンス:結構ちゃんとしないと、性能問題
バックアップ、
DB起動停止、障害復旧
・メンテナンス:DBのチューニング
DBの設定のチューニング→初期段階で決まる
SQLのチューニング→いろいろ
自分が困っていることが何
特徴:Webアプリより?業務より?
更新の量、回数、タイミング→設計段階で
個別最適:どのSQLがわるい? もっさりする・・
・SQLチューニング
なにもしていないのにおそい:信用されてない→ちょっとかえただけでもかわる
データ量の増大
5月20日、JJUG CCC 2017 Springに行ってきた!
まずは
Vue+Spring Bootで他のすくフルスタック開発やってみた
をメモメモ
・自己紹介
・今日話すこと
Vueとかwebpackまわり
SpringBootとともにビルド
最強スタック
・VueとWebpackまわり
SAStruts+JSP→まあ時代的にも妥当だった
JavaScriptで頑張ることができなかった
JAX-RS+静的HTML+Knockout→よかった(2011年後半)
バインディングができる
Spring MVC+Thymeleaf→Spring Boot素敵
サーバーサイドテンプレートはもうなくていいかな
・Knockoutのよさ
双方向データバインディング
Javascript変更するとHTMLに反映
フォームコントロールで入れるとJavascriptのオブジェクトに反映
・データバインディング
変更通知
→通知されたときにする
・サーバーサイドテンプレートエンジンの好きになれないところ
HTMLとJavascriptとテンプレートの式言語が混在
JavascriptでDomいじるなら、サーバーでレンダリングしなくても
・最近やったスマートフォン案件
Android・iosの両方に対応
機能的にはWebアプリの域を脱しない
Cordovaを選択
・双方向バインディングしたい
cordovaを選択したけどvanilla JS(すっぴんのJS)もJQueryもやだ!
Vueファイル→コンポーネント→WebPack
・VueでSPA
SPAにするためのもの
vue-router2
:ルーティング
Vuex
:Flux実装
actions→mutation→state
axios
:HTTPクライアント
AJAXを投げる(プロミスが返される)
・Vueよかったこと
学習コストが低い
公式ドキュメント日本語
アニメーション CSS Transition
・こまったこと
iosのWebViewでびゅー→jsのバインドがうまく動かないケース
・npmとWebpackの導入
依存関係追加
package.json
・webpack 1つのjsファイルにまとめる
設定
ぷらがぶるなコンパイラー
開発中のWebpackビルド
webpack dev server
コード変更を検知してビルド、
ブラウザを自動リロード
・便利なもの
vue-cli すぷりんぐ いにしゃらいざーみたいなもの
chrome拡張
・ここまでのまとめ
・SPAは必須か?
すべては必要ないけど、ちょっとなってくれれば・・
JSファイルを複数出力したい→webpackの設定を変える
・SpringBootとともにビルド
ポイント
webpackビルド対象となるソースだいる
ビルドしたjsの出力先
ホスティングするパス
ビルド済みjs src/main/js
出力先:クラスファイルの出力先にしている(ほんとはりそーすのところ)
ホスティングしているパス bin/staticの下
・Gradleのビルドの流れ
npm run buildを実行
・さいきょうすたっく
・Spring Boot devtools
・Spring MVC Jax-RS
・Doma:DOアクセス
・Vue(+vue-router2,Vuex),axios
・Gradle
・npm,webpack
・selenide(せるにど)E2E、ブラウザテスト
・クラス設計
いみゅーたぶる
ばりゅーおぶじぇくと
→なるべく静的に
・クラス設計
おぶざーばー
いてれーたー
びじたー
・さいきょうのへんせん
フロントエンドの進化
・さらに気になる
CSS Grid Layout
・まとめ
まずは
Vue+Spring Bootで他のすくフルスタック開発やってみた
をメモメモ
・自己紹介
・今日話すこと
Vueとかwebpackまわり
SpringBootとともにビルド
最強スタック
・VueとWebpackまわり
SAStruts+JSP→まあ時代的にも妥当だった
JavaScriptで頑張ることができなかった
JAX-RS+静的HTML+Knockout→よかった(2011年後半)
バインディングができる
Spring MVC+Thymeleaf→Spring Boot素敵
サーバーサイドテンプレートはもうなくていいかな
・Knockoutのよさ
双方向データバインディング
Javascript変更するとHTMLに反映
フォームコントロールで入れるとJavascriptのオブジェクトに反映
・データバインディング
変更通知
→通知されたときにする
・サーバーサイドテンプレートエンジンの好きになれないところ
HTMLとJavascriptとテンプレートの式言語が混在
JavascriptでDomいじるなら、サーバーでレンダリングしなくても
・最近やったスマートフォン案件
Android・iosの両方に対応
機能的にはWebアプリの域を脱しない
Cordovaを選択
・双方向バインディングしたい
cordovaを選択したけどvanilla JS(すっぴんのJS)もJQueryもやだ!
Vueファイル→コンポーネント→WebPack
・VueでSPA
SPAにするためのもの
vue-router2
:ルーティング
Vuex
:Flux実装
actions→mutation→state
axios
:HTTPクライアント
AJAXを投げる(プロミスが返される)
・Vueよかったこと
学習コストが低い
公式ドキュメント日本語
アニメーション CSS Transition
・こまったこと
iosのWebViewでびゅー→jsのバインドがうまく動かないケース
・npmとWebpackの導入
依存関係追加
package.json
・webpack 1つのjsファイルにまとめる
設定
ぷらがぶるなコンパイラー
開発中のWebpackビルド
webpack dev server
コード変更を検知してビルド、
ブラウザを自動リロード
・便利なもの
vue-cli すぷりんぐ いにしゃらいざーみたいなもの
chrome拡張
・ここまでのまとめ
・SPAは必須か?
すべては必要ないけど、ちょっとなってくれれば・・
JSファイルを複数出力したい→webpackの設定を変える
・SpringBootとともにビルド
ポイント
webpackビルド対象となるソースだいる
ビルドしたjsの出力先
ホスティングするパス
ビルド済みjs src/main/js
出力先:クラスファイルの出力先にしている(ほんとはりそーすのところ)
ホスティングしているパス bin/staticの下
・Gradleのビルドの流れ
npm run buildを実行
・さいきょうすたっく
・Spring Boot devtools
・Spring MVC Jax-RS
・Doma:DOアクセス
・Vue(+vue-router2,Vuex),axios
・Gradle
・npm,webpack
・selenide(せるにど)E2E、ブラウザテスト
・クラス設計
いみゅーたぶる
ばりゅーおぶじぇくと
→なるべく静的に
・クラス設計
おぶざーばー
いてれーたー
びじたー
・さいきょうのへんせん
フロントエンドの進化
・さらに気になる
CSS Grid Layout
・まとめ