nologyance.net

日々のアウトプット

Java初心者の壁 ラムダ式を理解する(2)

匿名クラスとラムダ式は書き方が違うだけで同じもの 匿名クラスで実装 ラムダ式で実装 関数型インターフェース 書かなくても良いものを消す 匿名クラスでの実装 sortの引数の型がComparatorであることは、sortのシグネチャから特定できるので消す。 Comparat…

Java初心者の壁 ラムダ式を理解する(1)

初心者の壁 なぜ難しく感じるのか 段階的に理解する 匿名クラス 初心者の壁 初めて学んだ(学んでいる)プログラミング言語がJavaだという方は多いのではないでしょうか。 かくいう私も、新卒で入った会社の研修でJavaを学びました。 その後も、業務で扱って…

もう新人とはとても呼んでもらえないけどまだまだ技術力に自身のない若手エンジニアに送る技術書

3〜5年目のエンジニアをターゲットにしています。 かくいう私も4年目エンジニア、もうすぐ5年目に突入しようとしています。 実は技術に興味を持ったのはここ2年ほど。 それまではレガシーな現場で仕事をこなすだけの日々を送っていました。 学生時代に…

git rebaseって結局なんなの(2)

Git

対話的なrebase www.nologyance.net 前回の記事では割愛した、commitの改変についてもう少し詳細に見ていこうと思います。 対話的なrebase git rebase -i commit履歴 を実行すると対話的にrebaseを行うモードに移行します。 対話的rebaseモードでは、指定し…

Javaで引数のテストをしたいときはArgumentCaptorを使おう

Mockito ArgumentCaptor サンプル @Captor Mockito ArgumentCaptor モックしているオブジェクトのメソッドの引数を検証したい場合は、Mockito ArgumentCaptorを利用すると良いでしょう。 サンプル public class Person { privatre String name; Person (Stri…

Javaでファイルやディレクトリを扱う

Fileクラスを使う FilesとPathクラスを使う 相互に変換する Java8以降でファイルとディレクトリを方法には大きく2パターンが存在します。 Fileクラスを使う Fileという名前ですが、実際にはディレクトリもこのクラスで扱います。 以下のようなディレクトリ構…

git rebaseって結局なんなの(1)

初心者の壁rebase git add, commiit, checkout, mergeは怖くない! でも rebaseは怖い。 rebaseを理解するために必要なもの rebaseを理解する前にcommitとbranch、HEADの関係性についてきちんと理解できているか再確認しましょう。 詳細な説明は公式ページ等…

wordpressからはてなブログに移行しました

背景 現状 選定 実作業 背景 もともとこのブログはAWS Light Sailで運用を行っていました。 レンタルサーバーではなく、あえて自前のサーバーを利用することで、AWS周りの知識を身につけることができると考えたからです。 現状 特にアクセス数の多いブログで…

Javaで正規表現を扱うときの注意

エスケープを忘れない 特定の記号を文字として扱いたい場合は、バックスラッシュでエスケープする必要があります。 例えばexample(comをマッチさせたい場合、正規表現としては example¥(comのようにしてあげる必要があります。 記号によってエスケープが必要…

Java最新フレームワーク特集@関ジャバ参加レポ

関Java初参加でした。 テーマ テーマは最近注目のマイクロフレームワークであるQuarkusとMicronaut。 どちらもクラウドネイティブ環境向けのspringライクなフレームワークです。 特徴 GraalVMに対応していてnativeコンパイルができることと、SpringBootの組…

go学習メモ(1)

go

short declaration variableA := "hello" こんな感じのやつ。 関数内でしか宣言できない。 小文字大文字 大文字始まり:グローバル 小文字始まり:ローカル const 不変。 型を宣言しない。 フォーマット 一番長いところに合わせる 返り値 複数返せる エラー…

go言語の学習をはじめました

go

ツールづくり 現在SREに近いところの業務を担当しているのですが、どうしても運用系のツールをbashで書くには限界があります。 世の中的にはCLIはgoで作るのがトレンドらしい。 著名な製品だと、dockerやterraformなんかはgoで作られているらしいです。 開発…

mvとmoveでリネーム

bat

書いてますか、batスクリプト 私は結構嫌いです。 今日もまさかのハマり方をしました。 リネームできない bashのmvと同じようにbatのmoveでファイルのリネームをしようとしたところうまくいきませんでした。 原因 mvと違ってmoveを使ってリネームする場合、…

gradleビルドを高速化したい

非常に柔軟なビルドスクリプトが書けるGradle 業務システム界隈ではまだまだ普及期、Android界隈では標準といった具合の知名度でしょうか。 柔軟な記載ができる一方でgoovyのシンタックスシュガーに悩まされている方も多いのではないでしょうか。 私もその一…

ECSデビューメモ

クラスター、サービス、タスク定義、タスクの違い クラスターはただの箱。 タスク定義からタスクを生成する、それを束ねたものがサービス。 タスクが協調して一つのサービスを提供する。 動的ポートマッピング タスク定義でポートを0にすると、動的ポートマ…

amplifyで作成したAppSyncのAPIKeyが失効した

amplify pushに失敗する こんな感じのエラーが出て失敗する。 UPDATE_FAILED GraphQLAPIKey AWS::AppSync::ApiKey Fri May 17 2019 00:37:17 GMT+0900 (JST) API key not found: xxxxxxxxxxxxxx (Service: AWSAppSync; Status Code: 404; Error Code: NotFou…

ELBを作成する際の注意点

AWS

そこまで冗長化は必要ないけどそれなりにセキュアにしたい場合のVPC構成 AWS Black Belt Online Seminar 2017 Amazon VPC from Amazon Web Services Japan このスライドの右(あるいは左)半分のみ構築してEC2を運用されている方もいるのではないでしょうか…

AWS Amplify Vue.js vuetifyでサンプル実装

ついに始動 AWSソリューションアーキテクトの勉強等もあり、プロジェクトの構想からはずいぶんと時間が経ってしまいましたが、 いよいよ本格的にオリジナルアプリの開発に着手しました。 まずは基盤づくり https://qiita.com/shunp/items/d491adfadd570f66f9…

AWSソリューションアーキテクトアソシエイト試験に合格しました

AWS

祝合格 タイトルの通りです。 これから挑戦される方の参考になればと思い、私の経歴と試験対策について書いておこうと思います。 AWS歴 業務で約半年ほど利用。 利用経験があるサービスはec2,vpc,s3,codebuild,codepipeline,lambda,cloudwatch,cloudformatio…

「Ansible Night in Tokyo 2019.04」参加レポ

はじめてのAnsibleユーザー会 Ansibleユーザー会のイベントに初めて参加しました。 特定の技術コミュニティイベントに参加するのは初めてだったので少し緊張しました。 AWXとAnsibleTower この二つに関してのLTが多かった気がします。 実行ログを管理するた…

技術書典6参加レポ

有料枠で参加 今回から混雑緩和のため、11時~13時までの入場は1000円の課金が必要となりました。 これで午前は快適。かと思いきや、11時頃に待機列に並んで結局入場出来たのは約50分後でした。 戦利品 コンテナ時代のWebサービス作り方 におうコードの問題…

それamplifyでよくね?となった話

以前、採用技術検討ということでこのような設計で開発を進めていくことにしました。 https://nologyance.net/2019/02/27/post-662/ そして今週AWSのリリースノートを読んでいると気になるものが https://aws.amazon.com/jp/blogs/news/aws-amplify-console-t…

採用技術検討(2)

UIライブラリ Vueにはいくつか有名なUIライブラリがあり、開発するアプリの特徴に合わせて選ぶ必要があります。 現在私が開発しているオリジナルアプリでは、Vuetifyというライブラリを利用することにしましたのでその選定理由を書いておこうと思います。 ht…

vue.jsの学習(1)

Vue

参考書 参考書 基礎から学ぶvue.js https://www.amazon.co.jp/%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E5%AD%A6%E3%81%B6-Vue-js-mio/dp/4863542453/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&psc=1&refRID=E2KHFWYYY75B6RV81A6J 少し調べた感じだともう一冊、鉄…

systemdでdaemonを動かすときの環境変数

なるほど環境変数ね、完全に理解した Proxyの記事を書いたときにはそう思ってました。 http://nologyance.net/2019/02/08/post-617 落とし穴 そういうときには大抵見落としがあるわけで。 環境変数全然わかってませんでした。出直してきます。 背景 SpringFr…

batスクリプト初心者におくる心得

dos

新人SEあるある 配属されたプロジェクトで与えられる最初の仕事。 一体どんなスーパープログラムを開発するのかとワクワクしていると・・・ 「まずはbatスクリプト作ってみよっか。」 「ばっしゅすくりぷと・・・?」 最低限ここに気を付けよう batとかいう…

robocopyのいいところ

batスクリプトしか使えない環境 例えばプロダクトのWin版インストーラーを実装するときにファイルのコピーをしたいとする。 robocopyコマンド 深めのディレクトリでcopyコマンドなんかを使うと文字数が多すぎますエラーになった経験をお持ちの方も多いハズ。…

採用技術検討

近況 先日の記事でお伝えした通り、オリジナルサービスを作るために学習を続けています。 https://nologyance.net/2019/02/17/post-633/ 構成の具体化 もう少し具体的な構成をイメージするために色々と調べた結果、それなりに固まってきたので記事にしておこ…

JAWS DAYS 2019参加レポ

聴講したのは以下のセッション 1日でSSHをやめることができた話 ~AWS Systems Manager Session Manager 導入と運用Tips~ [初心者向け]AWS環境のセキュリティ運用(設計)をはじめてみよう Terraformを活用した自社SaaS展開事例について 至高の CI/CD パイプラ…

Gradleでオフラインビルド

オフライン環境でのビルド インターネットに接続できない環境でGradleビルドする方法 --offline オプション まさしく、といった名前のオプションがGradleには用意されています。 これをつけてタスクを実行すると、ネットワーク接続をせずにタスクを実行する…