MIND x GAME

ろんりろん、真摯に論理的にやっていく

2017/12/03

丹田

力を込める、置き場所

基本

重心を下に、腰を低く、足を広げる(自分がどう動くか・相手をどう動かすのか判断基準、要確認
姿勢良く、背筋を曲げない
目線は真っ直ぐ、動きを悟られぬよう相手の目ではなく顔を、抽象化

集中

使いどき、浪費を避ける
自分の番まで目を瞑ってリラックス

研究

仮説を立てて検証してみる
再改修を経て血肉となる

逐次

前の動作を生かして次の動作に繋げる、流れるように動く
二ヶ条を極めた手をゆるめずそのまま前方に回転させると相手の肘が浮いてくるのでそこを捉えて...
最初に裏拳(二本指で相手の眉間を弾く、力に頼らず肘を使ってスナップを効かす)を入れて相手の重心を後ろに移してから...

人間

師範の呼吸投げ、ある領域に達するということ
ドキュメンタル、極限状態に置かれた時...

codility

ルール

達成すべきゴールから逆算して行動原則を定めておく
完璧な解答をする必要はない、とりあえずパスしたい、7割程度
可読性<スピード・愚直な実装をまず行う等、急いで作業するぐらいが結果的に丁度いい、時間が限られているなか効率的なアルゴリズムをあれこれ構想するのは好ましくない

〜の一点

焦って体勢崩してその場凌ぎの対応しても何の解決にも到らない
問題点が判明したのなら丁寧に合理的に対応する、N=2本来動くはずのものが動かないのであれば曖昧にせずその原因を一つずつ探る
結果からbreakしていないことがわかるからfor文の中身を確認していくと...

考えても仕方のないことは要点を押さえたら振り返らない
呼吸法
未来

その他

問題文を逐次的に読む、困ったら事例、条件は要確認(下限値・上限値
問題文を正しく理解する(連続した値を分割→☓ソート

物事を抽象化して本質をイメージ化(ローテション・回すとはどういう情報なのか、
そして本質的な問題を抽出(順列か?整列の並びが担保されているか・配列の分割?平等に分配されているか、本質を捉えれば間違いに飛びつかずに...→☓ユニーク化して検索、数が連なっているか確認

規則性に基づき計算式を(1.5周は半周と同じ
対象・操作に注目、例外は打ち切り(要素1は回せない、即答は打ち切り(1周しても変わらない、

なるべく早い段階で愚直な処理手順は、開始30分くらい
ループ処理や条件分岐での閾値の取り扱いに気を配る
ソート、ブラグ、メモ配列等を駆使して

継続性

サービスを開発する中で最も大切なこと、それは一言で言ってしまえば「サービスの継続性」を考慮することだと思う

会社は人によって稼働している運動体であり、中の人がいなくなっても絶えず動き続けなければらない

もちろん技術は大切だけれど、それ以上に継続的にものを作っていくための仕組みが重要だと悟った

いろんな視点から言えるけど、その粒度によって大別できる
いわゆる大きな視点と小さな視点というやつ

粒度が大きいところで言うと、人が大きく介在する部分
サービスの理念・ロードマップが共有されていない、運用に関するドキュメントが整備されていない、...
機能追加がサービスの成長(問題解決・売上↗)に繋がらないことで関係者(開発・営業)のモチベーションが下がっていく、障害発生時拠り所となる情報がなくカオスになり対応できず、...
結果的に、そのサービスが除々に機能しなくなっていく

粒度が小さいところで言うと、テクニカルな部分
怠惰についてとことん考えてみる
どう修正するのか、そして開発に集中するためにどのような仕組みがあればいいのか
ここを修正するとしたらここを部品化すれば再利用できるから、運用作業をできる限り自動化したいから...
具体的には、テストコードの実装であったり、継続インテグレーションに沿った開発とか

一つの解決策としては、Wikiと同期しながら開発を進める
Wikiへサービスに関する情報を集約する
理念・ロードマップ、売上・コスト・利益、歴史、要望、ヒアリング、競合から、
システム構成、プログラム説明(処理の流れ・なぜこう修正したのか等)、運用手順(下記コマンドを実行しま...)、障害対応(アラートメールが届いた時には...)まで
Wikiの内容を理解したうえで開発に着手する、そして修正内容に応じてWikiの更新を行う
新参者には、サービスに関する教育の一環としてWikiを読ませたうえで開発に参加させる
Wiki→開発→Wiki→...を繰り返していく、Wikiをこう変更するから開発はこう進めていくという流れ
それに加えて定期的にWikiを更新する必要がある、状況変化に伴うアップデートや読みやすくなるよう情報の整理等能動的に代謝を起こしていかないといずれ風化してしまい誰も利用しなくなってしまう
Wikiのメンテナスにはそれなりのコストがかかる
「とりあえず〜」等の保留を一切なくし何よりも丁寧に取り組んでいくというタフさが問われる、そしてサービスとの距離を縮めていく

2017/11/25(土)

行って良かった

身体を置き去りにしていたなと
取り戻すきっかけになった
無駄な力を抜いて重心を適切なポイントに落とし込む

理合に沿ってパパっと動く
思考の流れを阻むものがなく常に循環している
そして行動

とにかく実戦あるのみ

プログラミングするときに意識してること

はじめに

書くほどのことではないかもしれないけど、プログラミングする中で意識的にやってることをつらつらと。

概要

やりたいことを明確にする

仕組みをイメージする

言葉や図式に変換する

プログラミング言語に変換する

仕様

つくるものを明確にする。
当たり前のことだけど、仕様は文面で残して、その内容をしっかり確認してもらう。
「内容を確認してもらう」ことが重要で、資料を拵えて確認依頼して完了というわけではない。
それは責任転嫁の権利を得たということであって、重要なのは相手がその内容を承認しているかどうか。

アルゴリズム

実現方法について吟味する。
言語や図式よりも抽象度の高いある種のイメージ(直感的に積み木を組み立てるような感覚)を利用して、仕様を満たすものが実現できるか検討する(データ量、計算量の制約を含む)。
日々の経験や情報収集を通じて判断材料を増やし、対応できる領域を広げていく。
次に、そのイメージを具体的な形(言葉)に落とし込む。いわゆる設計と言われるもの。
特に形式は定まっていなくて、大まかな処理の流れをまとめる(〜して、その次に〜して、その次に...)。
また、既存の機能を修正する場合にはその影響範囲を把握する必要がある。基本的に漏れが発生するため、必ずテスト作業合わせて実施する(突貫工事は事故の元となる)。
実現可否を踏まえたうえで処理全体を見渡すことにより、実装してから振り出しに戻る確率を最小限に留めることができる。

コメントファースト

実現方法を少しずつコードに変換していく。
コードを書き始める前に、その概要をコメントで書き記していく。
Docコメントを書くことで責務を明確にし、ブロックコメントを並べることで処理の流れを明確にする。
結果、コードを書き始めてからの出戻りを最小限にすることができる。

フロント→サーバ→フロント...

トランザクション開発
疑似テスト駆動開発(仮定 → 検証 → 仮定 → ・・・、開発しながら仕様を策定していく)
1 サーバ処理をシュミレーション
2 サーバ側から疑似値を返すよう調整+フロントを作る
3 サーバ側を徐々につくっていく+合わせてフロント側のフラッシュアップ

git

抽象的な言い方だと、開発にメリハリが生まれる(ここまでは作業完了
機能単位~
コミットを汚さないために、コミット単位で動作確認するようになる

逆説的に、全体を意識したうえで部分をつくる癖がつく。
適度なコミット単位で開発を進めていくために、作業全体でどのようなコミットを積み重ねていけばよいのか自然と考えるようになる。

大まかな流れとしては、プロトタイプ(雛型+α)がつくれたらコミットをして、
動作確認する過程で細かい修正コミットを重ねていく
小さなプロトタイプを素早く作り、その修正を繰り返すことで洗練させていく

おわりに

複雑さにどう向き合うのか。
一言で言ってしまえば、森を見たうえで木を見る、ということに尽きる。

保護す

日常の様々な取り組み(まぁ仕事とか趣味とか)に対して退屈さを感じ始めたら、
その原点に立ち返ると、何かしら収穫があったりする。

当時の錯綜しつつも純粋な思いを呼び起こし、
その思いがどのような過程を経て現在に到るのか確認する。
当時の思いが適切かどうかという問題はあるけれど、
少なくとも当時の自分を動かすには十分な力があったことは確かで、
その思いを呼び起こすことで何かしらの刺激は得られる。

自分の設計したものが(目に見えて)動くことに対する喜び
問題の特定、及び技術による解決
日常に埋もれ、忘れ去られている身体の感覚
身体を理合に沿って動かすことの心地良さ
・・・

そして重要なのは、その思いが何故廃れようとしているのか。
仮定と検証を繰り返して、
ある物事に対する取り組み方を間接的に変えてしまった要因を浮き彫りにする。
きっと、それは到るところにあって、それらは相互作用しているかもしれない。

それらと適当な距離感を保つよう調整し直すことで、投げ捨てられているものを拾い上げる。

それにしても、最近こういう系の記事が増えてきているような...

R

俺はいつも覚悟ができずに曖昧な態度でミョンちゃんの気を引こうとしてただけ
自分の頭の中でだけミョンちゃんとの特別な関係を維持するためにも
だけどそれが何だったのだろう
ミョンちゃんは常にメッセージを送っていたのに

西君

あなた何が欲しいのん

(MINDGAME p.15より)


思えばあれを買った頃からこうなることはわかっていたのかもしれない。
ここにこうしてあることが何よりの証拠になっている。
渡せるチャンスはあったのだから。

メッセージを観てあれこれ考えてみたけど、結果から振り返ってみると...。
結局、自分に対する肯定感が揺らいでしまえば振り出しに戻ってしまう。
「ごときが」「たられば」に阻まれて、悶々とした心地悪い状況をつくっていた。

自分が変わっていくことを善としながら、それが他人となると話は別で。
最初から違和感はあったけど、それ以上の何かがあった。
その部分は自分の中にまだ残っているし、それがある限りきっと。

いつも頭をよぎって他のことが何も手につかないとは、こういう感じなんだということを知った。
本当に楽しかったし、その分辛かった。
いろんな思いが込められたこれを大切にしていきたい。