気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Kotlin 実装確認ポイント

実装 思想 改修の場合、既存仕様や全体統一感に囚われ過ぎない。シンプル化、保守性向上を意識する 不要項目を含んだオブジェクトパラメータの是正 変数名が設定値と異なる名称であれば是正(影響範囲が広くなりすぎないかは判断) クラス構成 継承よりも移譲…

Oracle アカウントのスキーマへの指定テーブル、権限を確認する

スキーマを確認する -- スキーマ指定テーブルの確認 SELECT * FROM DBA_SYNONYMS WHERE OWNER = 'AAA_SERVICE'; -- スキーマ指定テーブルの確認(テーブル名の指定) --SELECT * FROM DBA_SYNONYMS WHERE OWNER = 'AAA_SERVICE' AND TABLE_NAME LIKE '%AVAI%';…

インフラ用語 WAFとCDN

WAF WAFとは、「Web Application Firewall」 Webサイトを保護する対策のひとつ 機能 「シグネチャ」と呼ばれる、不正な通信や攻撃パターンを識別するためのルールを設定することでWebアプリケーションにおける通信の中身をチェックし、不正な通信や通過させ…

Basic認証の認証情報をリクエストに設定する方法

Basic認証の認証情報をリクエストに設定する方法を簡単に記載しておきます。 Basic認証のフォーマット リクエストパラメータにAuthorizationを設定する Authorization="Basic ${Base64でエンコードした認証文字列}" # Base64でエンコードされた認証文字列 ${…

AWSのサブネット、セキュリティグループ、ネットワークACL

AWSで扱う概念について理解を深めるために記載してみる。 サブネット VPC内のアドレスレンジのこと ネットワーク内の小さな、サブのネット VPCに設定したCIDRブロック範囲に収まる小さなCIDRブロックを割り当てることができる 個々のサブネットは、仮想ルー…

インターネットゲートウェイとNATゲートウェイの違いと使い方

インターネットゲートウェイとNATゲートウェイは、AWSでセキュリティを担保したいAPIサーバーなどを立てる際に使うオブジェクトです。それぞれの大雑把な違いと使い方について参考URLの内容を引用しつつ、説明します。 インターネットゲートウェイとNATゲー…

ネットワーク用語_ACL、CIDR

ネットワーク関連で知らなかった用語をまとめておく ACL(Access Control List) システムやファイル、ネットワーク上のリソースなどへのアクセス可否の設定をリストとして列挙したもの。 ネットワークの場合 宛先と送信元のIPアドレスおよびポート番号を条…

NAT64とは

特殊なIPv6アドレスを利用することでIPv6アドレスを持つ端末から、IPv4アドレスのみを持つサイトへアクセスを可能とする技術です。 この技術により、混雑している従来のIPv4/PPPoE接続方式を使わず、IPv6/IPoE方式で大容量化されたネットワークに接続でき、…

スクラム勉強会

どうしたら、効率的に作業を進められるか? 見積もり 相対見積もり。ざっくりでもストーリーポイントを出すことが望ましい チームの目的によって取りうる選択が変わる ベロシティ(チームが作業を進める速度。開発効率)を上げたいのであれば、ストリートポイ…

ブラウザ操作でもvimっぽく扱う vimvim ショートカット

vim

以下のChrome拡張のショートカットで使いそうなものを記載しておきます。 chrome.google.com これ以外にもありますので、知りたい方はvimiumを追加した状態で?を入力してください。helpが表示されます。 Vimiumはコマンドの繰り返しをサポートしているため、…

Kotlin Coroutineの概念を理解する

以下でCoroutinの使い方をざっくり理解しました。 https://tamata78.hatenablog.com/entry/2021/09/06/174235 上記で理解を進める中でわからなかった概念を補足する情報を記載していきます。 CoroutineScope CoroutineScopeは、コルーチンビルダー関数である…

Javaバージョンを切り替えるjEnvの基本コマンド

jenvのインストール brewでインストール brew install jenv 設定 Bashを使っている場合 echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(jenv init -)"' >> ~/.bash_profile Zshを使っている場合 echo 'export PATH="$HOME/.j…

Brewfile関連の基本コマンド

Mac OSの環境構築を自動化するツールの基本コマンドを記載していきます。 パッケージを探す brew search # caskのパッケージも探せる mas search パッケージのアップデート $ brew upgrade $ brew upgrade --cask $ mas upgrade インストール済みパッケージ…

Mac OS 開発環境初期設定

ターミナル brew install /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" brew install cask クライアントアプリ アプリランチャー、コピペアプリ、 エディタ、docker、メニューカレンダー表示、ブル…

Mybatis キャッシュ設定

Mybatis キャッシュ設定 同じクエリを複数回呼ぶ場合、キャッシュ設定を入れると高速に処理できる可能性があります。 mybatis: configuration: cache-enabled: true # デフォルト有効だが、明示的に記載。 default-executor-type: reuse PreparedStatementを…

Kotlin Coroutineの使い方

以下を写経しつつ、理解をしていきます。 Kotlin の Coroutine を概観する - Qiita Coroutineとは? 軽量なThreadのようなもの 他の処理をブロックせずに並列処理を行える Threadは無視できないコストがかかるが、Coroutineは気にしなくてもよいレベルのコス…

MySQL ギャップロックとは?

現場でギャップロックという聞き慣れない用語を耳にしたので、 以下の記事を参考に理解する。 MySQLのギャップロックとネクストキーロック - 41から始めました MySQLロック ロックの種類 排他ロック DML実行時にトランザクションで最初に取得されるロック ロ…

気になる監視ツール

Sentry フロントエンドエラー可視化 New Relic アプリ監視ツール

Java8 ラムダ式でよく利用する関数型インターフェース

関数型インターフェースとは? 単一メソッドを持つインターフェース群 ラムダ 式で利用するのに都合がいい SE8からjava.util.functionパッケージに追加された ラムダ式を引数として取る場合に、関数型インターフェースを指定して受け取る。 ラムダ式の種類毎…

Pythonの負荷テストツール Locust

Pythonで負荷テストコードを記載するLocustについて記載します。 特徴 シナリオを Python で記述 分散&スケーラブル Web ベース管理画面 高いカスタマイズ性 本家サイト Github:GitHub - ktanakaj/locust-example: Example scripts for Locust Github/examp…

MacOS Python3系インストール

Pythonバージョン管理ツールのpyenvを入れて、3系のPythonをインストール&適用させていきます。 pyenvをインストール brew install pyenv pyenvの設定(シェルがzshの場合) echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'export PATH="$PYENV_R…

JSON用のgrepみたいなjqコマンド

JSONを便利に編集できるjqコマンドできる基礎的なことを書いておきます。 マニュアル、参考URL 公式マニュアルをみておくと幸せになれる。 jq Manual (development version) ここに書いていることでメモしておきたいことを書いていきます。 jq コマンドを使…

Kotlin 正規表現

下記の例を貼らせて頂きました。 Kotlinの正規表現の使い方 | 寝室コンピューティング // a,b,cのうちいずれかにマッチ val regex = Regex(pattern = "[abc]") // Raw Stringはエスケープ不要 """\d""" // 普通の文字列だとエスケープが必要 "\\d" // 文字列…

Mockito 基礎文法

Mockitoでパッとわからなかった書き方について書いていきます。 戻り値なしメソッド 何も返さないメソッドが指定インスタンスと引数のときにMock化されます Mockito.doNothing().when(モックインスタンス).メソッド(任意の引数); privateメソッド、staticメ…

ホスト名からIPを調べる方法(host, dig)

host -a ANSWER SECTIONのところにIPが表示される % host -a stg.sample.com Trying "stg.sample.com" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21689 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECT…

現場システム開発の進め方を考えてみる

システム開発を効率的に進めるための優先順位や力を抜く部分、効率化についての整理をしてみます。 前提 開発機能:なんとなくこんな機能というイメージはあるが、コードは読んだことがない 言語:Javaでの開発は慣れているが、新たに使うKotlinについては未…

Kotlin 基礎学習

Kotlin とは? オンライン実行環境 Javaとの違い null関係 スコープ関数 演算子 値比較、参照比較 文字列 文字列中に埋め込み文字 改行入り文字列 型 キャスト 関数 function 基本の書き方 名前付き引数 関数オブジェクト ラムダ式 制御文 if for while 配列…

Github Actions 補助機能メモ

Github Actionsで使える補助的な機能についてメモしておきます。 補助的な機能 CIをスキップする コミットメッセージに[skip ci]を含める。どこに書いてもいい。 ドラフトPR 修正途中のPRをWIPとして作成可能。マージできないPRとなる。

Jenkins Pipelineとは

Jenkins pipelineを使ったデプロイジョブが動作不良になった経緯があり、基本概念を調べてまとめておきます。 Pipelineとは Jenkins2.0においてPipeline Pluginが標準装備になりました。 Pipelineは、デプロイのパイプライン(ステージ毎の工程)を可視化する…

MySQL 実行計画(EXPLAIN)

MySQLにおける実行計画の見方について記載します。 EXPLAIN 結果確認 クエリコストをみたい場合 format=jsonをつけてexplainを実行する。 explain format=json 【クエリ】 結果Json query_costの箇所にコストが表示される { "query_block": { "select_id": 1…