2018年の振り返り
2018年も残すところあと少しなのでどーでも良い感じの振り返りを・・・
その1
部屋の模様替え計画2018が唐突にスタート(2017の今の時期から唐突にw)
ちなみに、当初の予定の後半はまだ終わってないので2019として年明けくらいから開始になる予定
その2
地元へ何度か
何がびっくりって姪っ子が二人とも20才ちかくて、甥っ子がまた増えてたこと
その3
テレビ買った。
テレビと言いつつアンテナケーブル刺さってないのでモニターですがw
paypay第二弾まだかなぁ〜
その4
風邪ひいてない気がする。
○○は風邪ひかないって言わないように!
その5
新型iPad pro良い!
巨大で無停止の決済サービスを作るアーキテクチャをぼんやり考えてみた
昭和の最後の正月まであと少しなので、巨大で無停止で超高負荷に耐えれる低コストな決済機能を作るアーキテクチャを考えてた
前提
日本の決済サービスとかじゃなく、アリペイを1から作るならって考えた(決済ルールが似てる奴・・・ACHとか・・・ならこれでいける気がする)。
アクティブなユーザが相当数いないとベースのコストが高くて大変そう
アリペイ並の低コスト決済サービスが出来るとは一言も言ってない
サーバ構成
A群:全体をコントロールする為のサーバ群、単時間ならダウンしても良い程度
B群:DB,MQ,APサーバ,LBから構成されるサーバ群、通常B群はユーザと1:Nで紐付く
C群:基本的にWebベースのサーバ群、フロントアプリから呼ばれたりする
D群:巨大ストレージサーバ
ポイント
全サーバをダウンする前提にすること
独立したB群を必要なだけM個配置すること
B群のフェイルオーバーを各レイヤでやること
B群のDBサーバを含むサーバ群をOSSで固めることで低コスト化
バージョンアップとかサーバの入れ替えはまるっと落とせる!(ダウン前提なので)
ソフトウェア的な事
C群がB群にアクセスするときA群(のキャッシュ)に問い合わせて宛先を決める
B群はフェイルオーバーに備えてフェイルオーバー先のMQにデータのコピーを送り込み続ける
A群はB群をかなりの高頻度で動作確認して問い合わせ先テーブルを更新する
C群はB群のサーバから一定時間レスポンスがなければ再処理する
B群のサーバは同じリクエストIDの情報が複数来たら必ずパスする
感想
なんか作れる気はする。
作りたいかどうかは別だし、ビジネス的な所の方が面倒だけどw
サンタの配送の仕組みをふんわり考えた
あるクリスマスイブの日にサンタの配送は一体どのくらいの人数でやってるのか気になったので計算してみた
一戸の配達に20分かかって、6時間以内に配達を完了する必要がある場合
サンタの人数は国内だけで15,000人弱(ただしトナカイ除く)
世界規模でやるとサンタの人数はさらに激増しそうだなぁ〜って思った
ただ、国内に限っていえば多分ヤマト運輸の方が凄いので、ヤマトの仕組みをそのまま使えばサンタは楽になりそう
ちなみに、子供のプレゼントの平均の値段を5000円としたところサンタが贈るプレゼントの国内での総額は452億円になったので、このプレゼント+配送を世界規模でやれるって相当(以降自主規制
メリークリスマス!
だいぶ前から型がある気がしてたことに今頃気がついた事
ソフトウエア開発をやってると色んな「型」があって、適用対象の得手不得手とか色々あるなぁと。
複数の「型」を使い分けれる人もいれば、一つの「型」でなんとかしようとする人も居たりして、色々だなぁと。
ソフトウエア開発を始めた頃に知った比較的優秀な「型」から離れなくて原理主義的な人が居ると思えばあっさり離れて次の「型」をマスターしちゃう人とか居て、人それぞれ違ってて面白いなぁと
じゃあ自分がよく使う「型」ってなんだろうって思っってぼんやり考えたら
- 業務フロー
- データモデル
- ルール
ってこの3つしかなくて、相変わらずシンプルだなぁと(まぁおかげでUIが苦手なんですけどw)
他の人をみてると各自いろんなやり方を工夫してるんだけどまだ「型」って呼べるほど確立した状態じゃない人も居て、苦労してるなぁ〜って見てて思ったり
そんなこと言わずに教えろよって言われそうだけど、自分もどうやって覚えたのか既に覚えてないし(割としっかりナビゲーションはしてもらった気がする)、ドメイン嗜好指向な人たちと話がずれるし(むちゃドメイン指向だと思うんだけど用語が違うらしい)ということで諦めてる
今年のある日そんな事を考えてた
若手に勧めてるこれ勉強した方が良いよネタ
周りに居る自分より若い人に時々勧めてる(別に強制はしてない)のでメモとして
SQL
今主流の言語とかライブラリが完全に廃れても安定して使われてそうだから
LISP
これがちゃんと理解で来てれば多分今後出てくる言語も対応できるはずっていう言語なので。たまに例外があるっぽいけど・・・しゃーないw
TCPとUDPとその上のプロトコル
ネットワーク周りから離れられない悲しい僕たちの基礎知識
計算量とアルゴリズムとCPUとかコンピュータの構成
XXXをすると速くなるっていうのがCPUの進化で変わる現象が良くあるので基礎は大事
各種設計手法
設計手法も10年単位で変わっているので基礎として複数勉強した方が良い
各種開発プロセス
開発プロセスも20年単位で変わっているので基礎として複数勉強した方が良い
まとめ
この辺一通り理解してるぜ!っていう若手エンジニアは是非連絡してください
良さそうな転職先紹介出来ると思います