msawady’s tech-note

フルスタックエンジニアの学んだことや考えていること

【Scala】Scala 開発で twitter.Future を扱うときの頻出5パターン

はじめに 7月から転職をして Scala をメインに書いています。 2ヶ月ほど開発をしてFuture(twitter.Future) の扱いに慣れたので復習がてらブログにします。 基本的には以下の5パターンの組み合わせでなんとかなってます。 API コールの結果の返り値を使って別…

【MongoDB】ReplicaSet を利用して read アクセスを負荷分散する

MongoDB の負荷分散 分散計算で MongoDB からの読み取りが遅延していたので、ReplicaSet による負荷分散をしました その時の調査方法、具体的なやり方をまとめておきます 起こっていたこと 計算ノードは最大 60 台程度、1ノードあたり 18 計算プロセスが稼働…

4年ちょっと勤めた SIer を退職しました

いわゆる退職エントリです 新卒で入社した SIer を退職しました。おとといの金曜日が最終出社でした。 なにをしていたか 金融機関のセールスやディーラー向けのシステムを作っていました。 サーバーサイド(Java, Spring), フロントエンド(React), インフラ開…

【新人向け】エンジニアになったら、とりあえず読んで欲しい本5冊

これくらいの時期に毎年聞かれるので、まとめてみようと思います。 リーダブルコード リファクタリング チーム開発実践入門 ライト、ついてますか 考える技術・書く技術 リーダブルコード リーダブルコード ―より良いコードを書くためのシンプルで実践的なテ…

JJUG ccc 2019 spring 行ってきました

JJUG ccc 2019 spring の感想、まとめ 今回も行きました。 最近は仕事で Java を触る機会が増えていたことに加え、 Clean Architecture を読んだり、開発リーダーをやったりしたことで 「設計やQAも含めて、どう進めていくのが良いのか?」を考えることも増…

【Java】【Spring】interface を継承するクラスを @Autowired を利用して一括で DI する ~そして Strategy パターン へ~

Spring の Autowired の便利な使い方と Strategy パターンへの応用 最近、仕事で久しぶりに Java を使うようになりました リファクタリングタスクの中で Autowiredの便利な使い方を知りました Strategy パターンと組み合わせて綺麗にリファクタ出来たのでブ…

【読書メモ】Clean Architecture 達人に学ぶソフトウェアの構造と設計

システムアーキテクチャの設計と方針 GWにClean Architecture を読みました アーキテクチャや設計という抽象的なところをかなり良い感じに説明してくれてます 「コードは一通り書けるが、ゼロからシステムを設計する自信はイマイチ」という方にオススメ出来…

【Scala】Akka を利用して Alpaca API から米国株の日足データを取得する

Alpaca API から米国株の日足データを取得する Alpaca API というものを見つけました alpaca.markets 無料で米国株のシミュレーショントレードを行えるAPIです チャートデータなども取得出来ます Scala で触りながら遊んでみたいと思います Python の方が手…

【React】関数型プログラミングと React-Redux

React-Redux から振り返る関数型プログラミング React-Redux を3ヶ月ほど利用して関数型プログラミングのエッセンスをつかめてきました。 エッセンスとなるキーワードの解説を、「何が嬉しいのか」「React-Redux がどうしているか」と合わせて書いていきます…

考えるときに使うデータ構造の一覧

ここに書くのは何? 考えるとき、議論するとき、ドキュメンテーションする時、によく使うデータ構造をまとめます。 エンジニア視点でまとめましたが、大抵の人も同じように考えていると思います。 データ構造一覧 箇条書きする 順序つきリスト 同じ粒度のも…

【GitHub】【タスク管理】GitHub Project を使って開発リーダーをやってみた

はじめに 1月くらいから React-Redux を利用したフロントエンド開発のリーダーをやりました。 自社ではタスク管理にJIRA や Redmine を使うのが定番ですが、今回は実験的に GitHub Project を使ってみました。 一通り開発が終わったので感想などを書いていこ…

【React】【Redux】React-Redux キャッチアップのためのリンクまとめ

React-Redux 完全に理解した 昨年末から、React-Reduxを使ったフロントエンド開発に入りました (去年は AWS とかインフラ周りがメインだったのに...) 立ち上げフェーズで事実上の独学キャッチアップになりましたが、かなり分かってきました キャッチアップす…

JJUG ccc 2018 fall 行ってきました

JJUG ccc 2018 fall の感想、まとめ 今年は Python で自動化スクリプトを書いたり、インフラも含めたトラブルシューティングがメインで、 Java は 100行くらいしか書いていないのですが、JJUG ccc に行きました。結果としてはメチャメチャ勉強になりました。…

【ポエム】自動化でチームの学習を促進する

自動化について思っていることをつらつらと 自分のチームでは「自動化されていないものは(極力)本番に乗せない」というポリシーのもと、インフラの構築/エンハンス/運用 を行っています。 インフラチーム = 「手順書とパラメータシートによる辛いマニュアル…

【Python】運用スクリプトはshellじゃなくてPythonで書こうよ、という話

はじめに 自分のプロジェクトではベースとなるシステムがPythonで書かれていることもあり、インフラ/運用系スクリプトも基本的にPythonで書かれています。 一方で、社内の他のプロジェクトではやはりshellが主流です。。。先日もジュニアなエンジニアが先人…

【読書メモ】アナタはなぜチェックリストを使わないのか?

ミスを減らし、良い決断をするためのチェックリスト 上司からオススメされた「アナタはなぜチェックリストを使わないのか? 」という本が非常に面白かったので共有します。 チェックリスト作りのHow to が書かれているようなタイトルですが、中身としては「…

【AWS】【Python】EC2インスタンスをCPU使用率の高い順に表示するLambdaスクリプト

EC2インスタンスをCPU使用率が高い順に表示する 性能テストなどを行っていて、ボトルネックとなっているインスタンスを探したい cloudwatchの結果をクエリして「当該時間帯にCPU使用率が高かったインスタンス」を探す tabulateを利用して良い感じに表示する …

【AWS】【Python】Lambdaを利用して他のAWSアカウントのEC2インスタンスを再起動する

Lambdaを利用した他アカウントの操作 やったことの流れは以下の通り。 IAMロール/ポリシーの設定、信頼関係の編集 他のアカウントのIAMロールにSTSしてEC2クライアントを取得 tagの値で対象のインスタンスを抽出し、再起動 IAMロール/ポリシーの設定 Lambda…

【GitLab】【Python】GitLabにユーザーを一括で登録、グループ参加

GitLab API を使ってユーザー一括登録 csvファイルを読み込んで一括でユーザー登録、グループ参加 python-gitlab を利用してGitLab API を叩く GitHub - python-gitlab/python-gitlab: Python wrapper for the GitLab API 必要なもの Python3 GitLabのAdmin…

2018年にエンジニアとして学びたいこと

新年の抱負的なことを書いてみる 皆様あけましておめでとうございます。 新年ということで今年学びたいと思っていることを書きます。 ざっくりな方向性としては以下です。 英語 コンピュータサイエンス、インフラの基礎 その他、各種技術 AWS フロントエンド…

【Python】key と value が連なった List を Dict に変換する

Python の tips を備忘代わりに プロジェクトが変わりまして、Pythonを触ることが増えました 掲題の件で悩んだので、パフォーマンスの検証も含めて post しておきます やりたいこと こういう List を hoge_list = ['key1', 'value1', 'key2', 'value2', 'key…

【Scala】【mongoDB】mongoDB のレコードを case クラスにマッピングする

株のポジション管理を出来るようにしたいと思っています 大分放置してしまいましたが、ちょっとずつ再開します。 まずは銘柄一覧をブラウザから見えるようにします。 http://kabusapo.com/ranking/ からダウンロードしたcsvファイルを case クラスにパースし…

【mongoDB】【Scala】mongoDB のインストール → Scala で CRUD する

次のテーマは mongoDB twitter で呟いたりしたんですが、次のプロジェクトではmongoDB使います ただ、自分のタスクはインフラ運用に近い部分なので、実際にどうクエリするかみたいなところは暫く触らなそう なので、自習でやってみることにしました とりあえ…

【Javascript】【DataTables】DataTables を利用した Bootstrap テーブルのフィルタ機能

テーブルのフィルタリングを実装 DataTables を使ってフィルタリング機能を実装しました DataTables | Table plug-in for jQuery フッターにセレクトボックスを利用したエクセル的なフィルタリングを出来るようになっています。 ソース build.sbtに依存関係…

障害対応はエンジニアの地力である「問題解決能力」が試される

最近、障害対応で思ったことをポエムしておく 自分は開発か要件定義・設計を担当することが多く、保守の仕事をあまりしてきませんでした 最近、障害対応が増えたので、感想というかポエムをつぶやいておきます 障害対応は、エンジニアとしての地力が試される…

【Scala】【Play Framework】Bootstrap のモーダルダイアログに書いた内容をDBにinsertする

TODOの新規追加を出来るようにする Todo管理アプリ、前回の記事でデータベースへの接続ができた (【Scala】【Play Framework】Slick を使ってMySQLのDBに接続する - msawady’s learning memo) 今回は画面から新規Todoの追加を出来るようにする Bootstrap …

【Scala】【Play Framework】Slick を使ってMySQLのDBに接続する

やっとデータベースへの接続を ファイルの読み書きでやっていたデータストアをデータベースにする MySQLデータベースへの接続 ORMとしてSlickを使う sealed traitのマッピング select, update の実装 MySQLデータベースへの接続 事前にテーブル作成、初期デ…

【Java】abstract と interface の使い分け 〜「オブジェクト指向でなぜ作るのか」から学ぶ〜

「オブジェクト指向でなぜ作るのか」の読書メモとして 「オブジェクト指向でなぜ作るのか」を読んだのでそのアウトプット Java 歴2年で、「オブジェクト指向っぽい」コードは書けるようになってきたものの.... そもそもオブジェクト指向は何を解決したかった…

【レビュー】【新人向け】レビュイーの心得 ~レビューを通すための準備~

今日のテーマはレビュー 前回の話の続きで、次はテストフェーズ 【タスク管理】【新人向け】タスクのこなし方の基本 〜お仕事の流れ〜 - msawady’s learning memo 【タスク管理】【新人向け】タスクのこなし方の基本 〜タスクの優先度〜 - msawady’s learnin…

【Scala】【Play Framework】ブラウザからのサーバー処理の呼び出し、ファイルの書き込み

ブラウザからのステータス更新処理を実装しました Play Frameworkを用いた Todo 管理アプリの実装を進め、サーバーの更新処理を実装しました あちこち触ることになり記事の内容が若干散漫ですが、ご容赦ください やったこと 前回作成した右クリックメニュー…