See the Elephant

1992生まれのプログラマが書くエンジニアブログ

技術広報になって昇格した。

とても久しぶりのエントリ。ロールチェンジしたのでログを残す。 広報は「自分発の言葉」を公に扱うことがさほど多くないため、自分の言葉はここに書いていこうかなと思っている。 あってることをやってたら昇格した。 技術広報になった。技術広報とは、名の…

ドラッカーと論語 仁とはフィードバックから学び続ける人

ドラッカーと論語 を読む。 今日は第一章。 論語は紀元前500年に生きた孔子が唱えた対人関係に関する古典。 ドラッカーのマネジメントは20世紀に生きた卓越した組織論の傑作。 この2つを掛け合わせながらドラッカーのマネジメントを説明していく本書。 今日…

クリーンアーキテクチャ REP, CCP, CRPを学ぶとSOLIDがアーキテクチャに対しても有効なことがわかる。

クリーンアーキテクチャ REP, CCP, CRPを学ぶとSOLIDがアーキテクチャに対しても有効なことがわかる。 クリーンアーキテクチャ第13章を読んでいる。 REP, CCP, CRPについて学んだのでメモ。 SOLIDの教えがそのままアーキテクチャに適用できると知り、記事に…

テスト駆動開発(TDD)はもう終わっているのか? Part1を読んでリポジトリ層に関するMockについて思いをはせる

postd.cc TDDとモックの話 Mockによって中間地点のゴールを作ることができるメリットがある Mockを多用しすぎることでリファクタリングが難しくなる場合もある mock多用のチームからmock使わないチームに異動したけど、個人的にはない方が楽やなと思う 過去…

mysql server(mysqld)の起動をn回リトライして待つshellコマンドとmakefileを書いた

この記事の対象読者 mysql serverの起動を待つスクリプトが欲しい docker-compose で mysqlを使っているが上手く初期化できない なぜか初期化処理がbuildプロセスだけ失敗する 以下のエラーでググってhostを直しても一向に直らない ERROR 2013 (HY000): Lost…

dockerでmysqlコンテナを立てる時の設定 my.cnf

dockerでmysqlコンテナを立てる時の設定 my.cnf mysqlのconf について学ぶ。 ざっと出すとこんな感じ [mysqld] skip-host-cache skip-name-resolve character-set-server=utf8mb4 [client] default-character-set=utf8mb4 mysql server, clientの設定がそれ…

クリーンアーキテクチャから学ぶSOLID : SRP

クリーンアーキテクチャから学ぶSOLID : SRP クリーンアーキテクチャを読んでいる。 Clean Architecture 達人に学ぶソフトウェアの構造と設計 TL;DR : モジュールはたったひとつのアクターに対して責務を負うべきである が結論。 SRP: 単一責任の原則 要約す…

フロントエンドについて学んだ2ヶ月

雑に文章を書きたかったので書いてみる。 fbもかえってきたし、自身の振り返りも兼ねて書いてみる。 気づけばエンジニアとして再びコードを書き始めてから2ヵ月ちょっとが経った。 7月にエンジニアに戻り、2ヵ月ほど引き継ぎをして、9月に正式にコードを書く…

Github ActionsでCI testを回す

Github ActionsでCI testを回す このブログでやること - github actionsでCI testを回す - docker の nodeコンテナを使う - CI testを行う 今回はすでに動いているリポジトリにci testを追加します。 nodeのバージョンを揃えるため、dockerコンテナを利用す…

3ヶ月の振り返り 2019/7-10月

時系列 捨てて入れる 2019/07 エンジニア復職 とはいえコードは書いてない cybozu kintoneの引き継ぎ 7月入社の人にレクチャー 2019/08 新卒エージェントチームのスプレッドシート運用をkintoneに置き換え オンライン面談商材のスキーム定義と実装 rubyで簡…

【React】 useMemoとuseCallback何が嬉しいの?

qiita.com useMemoとuseCallbackはdeps(計算が依存しているプロパティ)の同一性チェックが毎度入るのか useMemo つまり同一性チェックの計算より重い計算であればuseMemoで変数に処理をキャッシュしておいた方がいい useCallback https://qiita.com/teradonb…

mysqlで検索結果のカラム値を変数にキャッシュする

> SELECT @min_user_id := `id` FROM users ORDER BY id DESC LIMIT 1000; これで @min_user_id に検索結果がキャッシュされる。 select @cache1 = case when ...end, -- int @cache2 = case when ...end, -- int @cache1 * @cache2 as calc from hoge キャ…

scalaのforはflatMapやmap相当らしい

blog.shibayu36.org val map = Map("a" -> 1, "b" -> 2) map.get("a").flatMap(a => map.get("b").map(b => { a + b }) ) map.get("a").flatMap(a => map.get("c").map(c => { a + c }) ) map.get("c").flatMap(c => map.get("b").map(b => { b + c }) ) 上…

【振り返り】仲間内でここ3ヶ月の仕事を振り返ってみた

仲間内でここ3ヶ月の仕事を振り返ってみた 僕が所属する若手ものづくりコミュニティ Oystersでここ3ヶ月を振り返る会をやりました。 2019前半振り返り会なう pic.twitter.com/w48sqV1SVG— 健やかキュアセブン (@cureseven) July 27, 2019 友人もブログ書いて…

【React】useEffectってなんだろ

useEffectってなんだろ 仕事でreactを読んでいた時に出てきた記法 useEffect(()=>{}, []) 副作用フックと呼ばれるらしい。広くはhooksと呼ばれるっぽいね ja.reactjs.org 副作用フックは何かっていうと「コンポーネントの状態が変わった時にフックされる処理…

【DDD】ドメイン駆動開発のメリットと始め方 codezineを読んでみる

【DDD】ドメイン駆動開発のメリットと始め方 codezineを読んでみる codezine.jp 2ページまでよんだ。DDDってなんのために使うんだっけー?という話 DDDにおける2つの設計 戦略的設計と戦術的設計 whatとhowみたいな感じだな 戦略的: 何を設計し実装するのか …

【DDD】ドメインモデルとドメインサービスについて調べたがまだよくわかっていない

昨夜書いたブログにコメントが来た sqlアンチパターン マジックビーンズに対するコメント namu-r21.hatenablog.com ちょこっと調べ、友人の言葉を借りた一旦の理解は以下。 ドメインモデル: 状態(ステートフル)と振る舞いを持つモデル ドメインサービス: 状…

【SQLアンチパターン】24章 マジックビーンズ

【SQLアンチパターン】24章 マジックビーンズ twadaさんが弊社でSQLアンチパターン勉強会をやってくださっている。 聴講メモと自分なりの解釈のまとめ。 本日は弊社で @t_wada さんに定期開催頂いてるSQLアンチパターン読書会!今週は24章マジックビーンズで…

【React-Redux】mapStateToPropsとmapDispatchToPropsについて学んでみる

mapStateToPropsとmapDispatchToPropsについて 昨夜はreduxについて学んだ。 今日はreact-reduxについて調べる。 https://namu-r21.hatenablog.com/entry/2019/07/22/192333 react-reduxについて reactはdomレンダリングのためのFWである。 reduxはデータフ…

仕事に必要なのでreduxに入門した

reduxに入門した 仕事でreact-reduxの知識が必要なので学ぶ 1-2年前にflux勉強したので、それを思い出しながら。 namu-r21.hatenablog.com flux理解してるしredux余裕やろ とか思ってたけど、まぁまぁむずいね。 今日の教科書はこれ。 qiita.com reduxはイベ…

scala コレクションライブラリ foldLeft / foldRight

scala コレクションライブラリ foldLeft / foldRight https://dwango.github.io/scala_text/collection.html#foldleft%EF%BC%9A%E5%B7%A6%E3%81%8B%E3%82%89%E3%81%AE%E7%95%B3%E3%81%BF%E8%BE%BC%E3%81%BF foldLeft foldLeft はリストの要素を左から順にfを…

amazon アフィリエイトリンクをAPIで作る

amazon アフィリエイトリンクをAPIで作る いい感じにまとまった記事がなかったので、ここにまとめる。 ちなみにwebとプログラミングの初歩がわかってればそんなむずくない。 その辺が綺麗にまとまってる記事が見当たらなかったので、書いてみる。 アフィリン…

scalaのコレクションライブラリについて 前編

scalaのコレクションは mutableとimmutableがある immutableは安全で気にすることが減る scalaではあまりarrayを使わないらしい Listはimmutable scala> val lst = List(1,2,3,4,5) lst: List[Int] = List(1, 2, 3, 4, 5) scala> lst(0) = 1 ^ error: value …

MySQLはtransaction中でもselectできる

本番DBへクエリを流す 手で本番DBにクエリを流すのは人生で初めてだった。 これまではmigrateツールがよしなにやってくれていたので、あんまりそんな機会がなかった。 migrationツールがないチームに異動して初の体験。 mysqlでtransactionを使った 今日、業…

scalaで高階関数を学ぶ

scalaで関数を学ぶ いつものドワンゴscala講座を読む 関数 · Scala研修テキスト 今日は 関数 関数 scalaでは関数もオブジェクト。 メソッドと関数は異なるらしい。 本来はdefで始まる構文で定義されたものだけがメソッド。 関数オブジェクトを関数と呼ぶ。 …

無限LT #2 初運営&大成功!リーダーやってよかった!

無限LT #2無事終わりました! 我らがOystersのイベント無限LTが行われました あっきーさんによる無限LTのルール説明! #endless_lt pic.twitter.com/02YzEehcdh— おかしょい@アーキテクト 兼 技術広報 (@okashoi) July 14, 2019 #endless_lt cashx アーキテ…

scala 型パラメータ 非変、共変、反変について調べた

お仕事でscalaを使うのでscalaに入門 型パラメータと変位指定 · Scala研修テキスト 型パラメータについて 今日は型パラメータについて学んでいる。 動的型付け言語ばっかり書いてきたので、型パラメータについて学ぶのは初。 何の事は無い、クラスを作る時点…

ポリモーフィズム、雰囲気の理解で留めてしまっていたので再勉強

qiita.com ポリモーフィズム、雰囲気の理解で留めてしまっていたので再勉強 ポリモーフィズムとは多様性のこと 複数のクラスで同じ名前のメソッドを実装することで、同じメソッドコールに対してインスタンスの切り替えだけで振る舞いを変えることができる。 …

自戒を込めてt_wadaさんの"50分でわかるテスト駆動開発"を見てみた

テスト駆動開発の第一人者 3年目も半分終わったからt_wadaさんのTDD解説動画をみてみた。 https://channel9.msdn.com/Events/de-code/2017/DO03 1年目から直々にペアプロでTDDを教えていただいたので、改めてプログラマになる上で自戒を込めて動画を見返した…

CORS再入門

same-origin配下の管理画面ばっかり触ってたのでCORSよくわかってないまんだ developer.mozilla.org 読んだ qiita.com 読んだ わかってきた 基本的には、ブラウザから「リソース使わせてくれー」とサーバにお願いして、サーバが許可する作りになってるのか m…