汚いコードの読み方

鍛えられたのでまとめ

 

■ 準備

① まず回せるようにする

     入れたら正常に何か出てくる状態を作る

② デバッガを用意する

     任意の箇所で止めて変数の中を見れるようにする

     無理ならprintなりcsvなり、とにかく経過を吐き出せるようにする

 

■ 無駄なこと

・ コードをただ眺めてウンウン言うこと

⇒ 難解な英文を読んでいるのと同じ

    グルグル回るだけで進まない

⇒ 手間でも、とにかく【回しながら】一文一文結果を見ていくのが結局早い

⇒ よく分からん処理でも、inとoutの差分を見れば、実態は掴める。

     読んで処理内容に当たりをつけてから、回して結果を確かめるより、

    先に何が起きるかを知ってから読む方が解きやすい

 

■ やりたいこと

【次に読んだときに同じことをしなくて済むくらい、可読性を上げること】

 

■ 方針

とにかく関数単位で、機能を明らかにしていく

分かったらコメントを書き込んでしまう

 

リファクタリングのレベル感

① グローバルで引いてる変数を全て外に出す

    ⇒ 単体テストできるようにする

② 関連する処理を固めて、塊ごとにコメントを差し込む

③ よく分からん変数に、中身の例をe.g.でコメント付けする

    ⇒ 回して、実際に入ってきた中身を横に書いておけばいい

④ 共通化できる処理を関数にして外に出す

⑤ 長すぎる処理を関数にして外に出す

 

 

■ 意図

クソみたいなコードを見ると、とにかく④⑤をやりたくなる

 

が、1番悩ましく、センスを問われるのが④⑤であるからして、

④⑤は非常に時間を食う

 

④⑤をやるために、まずは③までやる。

この状態ではコメントだらけのコードになるが、

無いよりマシ。

 

時間ができたら、②で処理が意味的にまとまっているので、

出せるところから外に出していけばいい

 

 

■ 外に出す目的

単体テストのため

長いコードのままでは、途中で何かが起きる可能性を洗い出しにくい

 

複数に分割して、モジュール単位でrigidにする。

そしたら、後はそのつなぎ目にしかリスクはない。

処理が短いので単体テストコードも脳死で書きやすい。

 

 

■ 補足

クソみたいな変数名を見つけたとして、

いい名前に変えようとすると、センスが問われる。

意外とそこで悩んで時間を食う。

 

だったら、とりあえずコメントとe.g.だけ書き殴っておいて、

思いついた時に直す。

 

コメント付けておけば、

とりあえずまたその読みにくさに悩まされることはない。

 

まずコメントを付ける。

コメントが付くところが、本来修正が必要な箇所。

 

その修正は、良いアイディアが思いついた時にやる。

それは別に自分でなくても良い。

 

自分は、とにかく読みにくいコードに悩まされなくなれば、まずはそれでいい。

ラインを決める

2つの職場を見て


職場の本質はどこも同じ。さほど変わらず。

いい加減な人、真面目な人、ずるい人、

何もしない人、、、、

必ずそれぞれいて、組織は統制が取れていない。

(赤いリンゴは揃わない)


ゲームの本質は同じ。

自分がどういうプレイスタイルを取るか。


評価を得たいのか、楽をしたいのか、

金が欲しいのか、スキルを磨きたいのか。

それぞれがそれぞれの思惑で生きる中で、

自分も思惑を決めて生きること。


思惑がなければ、人に流される。

都合の良い人になって、価値がなくなる。


「何がしたいんだっけ」と、

「ここからは引き受けないライン」、

を決める。


そこの軸がないから、

押し付けられて、

1番美味しくない役回りを食わされる。

 

■ 苦手なので、テンプレを決めます。

たとえば、予定が既に入っていれば、

すみませんその日は無理でと断れる。

 

やろうと思ってるけど、やる日を決めてないから、

とりあえず引き受けるかで引き受けて、

やることが後回しになる。

 

【1. 予定を先決めする】

・ 日割で計画を決めてしまう

 

 

 

いらないもの

大人になると丸くなると言うが、

それは「この世に正解などないこと」を、

自然と悟るからだろう。

 

ある基準では絶対的な正解が、

別の基準では正解ではなくなる。

 

結局、最適解など「正解」の定義次第で、

その「正解の定義」も人それぞれだと知るからだ。

 

その中で、あえて最適解の「セオリー」を、

自分なりに定義してみるなら、こんな感じだろうか。

 

■ いらないもの

① 評価

つまるところ、頂に立つこと。

いらない。

結果として付いてきたとしても、目的に含めるべきでない。

 

評価を目的にすることは、他者に合わせることである。

他者の基準など諸行無常

しょせん好き嫌いであり、あてにならない。

戦略の中に含めること自体が非効率である。

 

人に依存し全てを捧げ、

その果てに裏切られたらどうするのか。

 

むしろ、評価をあてにせずとも成功できる道を模索する方が、

精神衛生的にも良いだろう。

 

■ いるもの

① (サバイバル)スキル

つまるところ、引き出し。

他者に頼らないなら、頼るのは自分。

評価されなくとも、裏切られても、

市場価値さえあれば道は見つかる。

 

毎日毎日、着実に何かの汎的市場価値が向上していることが重要。

特定の村内での市場価値を上げることとは違う。

それは、前述の「評価を得ること」と同値。

 

 

② 情勢を読む力

船頭になる必要はない。

乗る船を見極める力さえあれば良い。

そしていざとなれば船を移れる準備とフットワークさえあれば良い。

 

ひとたび頂きに立てば、責任、しがらみ、足の引っ張り合いが生じる。

船が沈もうとも最後までもがくのが船頭だ。

あまり利口ではない。

 

船の舵を握るのもひとつ。

船から逃げるのもまたひとつ。

別に弾除けになる必要はない。

船の行く末が読めなければ、どちらにせよ成り立たない。

 

頂きは必要ない。

未来さえ読めていれば良い。

頂きは消費され利用されるだけ。

 

良い人ほど辞めていく、の真理

優秀でしかも良い人、

ずっといて欲しい人ほど辞めていく、

というのが通説である。

 

できない人、厄介者、

ずる賢くてサボり癖、辞めて欲しい人ほど、

辞めないというのが通説である。

 

なぜなのか。

 

辞めない、ではなく、辞めさせていないから。

上層がそういう厄介者を放置している、

見て見ぬ振りをしている。

 

結果的に、良い人が迷惑を被り、

あれだけ明らかに「邪魔」な人材が優遇されている、

という事実に将来性への不信感を感じ、

出ていく。

 

結局は、

「マネージャーが何もわかっていない」

「マネージャーが何も切り込めていない」

ということ。

 

裏を返せば、

良い人が集まる職場は良い職場である。

 

悪い人を断罪できるか否か。

 

まともな人が辞める前に、

まともじゃない人を辞めさせられるか。

人を大事にしない経営の末路

https://www.google.co.jp/amp/s/toyokeizai.net/articles/amp/423926

 

典型例。

感覚がズレてる。

使い捨てにされているという感覚は労働者は分かるし、

ましてや引く手数多の職種ならこんなところには残らない。

 

思っても誰も進言できないというところに、

暴君性とワンマン性を感じる。

 

こういう体質がある限り、経営はダメになる。

 

人は宝。

実体験から見るリテンション

■ 要約

・離職を生む要因の9割はコミュニケーションエラーなのではないか

心理的安全性と、声掛け風土

・困っている人はみんなで助けましょうという風土

 

■ 辞めるとき

・親の介護とか、そうした外的要因は抜いて、

・怒ってやめる、落ち込んでやめる、人間関係でやめる、心身の限界でやめる

・詰まるところ、コミュニケーションエラー

・さらに詰まるところ、承認欲求

・大概は、誤解やすれ違いがある

・なぜこんなにも苦しいのにこうしてくれないのか

→ 上の人はそこまで見てない、深刻に考えてない

→ 下の人は弱音が吐けない、むしろ弱音を吐くなという強迫観念を感じている

→ やめるしか道がない

→ やめる

 

・ 本当にそうなの?

→ 辞めますってなってから、「そうだったのか…」ってなってない?

→ それならそれはコミュニケーションエラー

→ 多分こうだろうというお互いの先入観がすれ違ってて誤解を生んでる

 

・ 相談し合える空気感さえあれば…

→ その空気感って?

→ 人間っぽさではなかろうか

→ 多くの雇用者は労働者に「ソルジャー」たることを求める

→ 不平不満を言わずバリバリ働く。確かに理想的な人材だが、中身はみんな「人」

→ そうでないもの、そうなることに少し疲れたもの、を否定しない

→ ソルジャー対ソルジャーで会話をしない。親近感がない。「根っからソルジャー」に話しても自分の悩みなど理解してもらえないだろう、と感じさせない。

→ 着ぐるみの頭を取った人の話を聞き、また頭をかぶってもらい働いてもらうことが、「管理」職。

→ 脱落者を切り捨てる風土を作るな、誰も息を抜けなくなる、弱音を吐けなくなる

→ 仕事はソルジャーだけど、この人も中身は人間なんだ、という人間らしさ。そういう人に相談事は集まる。

→ いい意味で「普通さ」がないと、「弱った人」が心を開いてくれない

 

・自分はそういう人間になれているか?

→ 後輩が自分にYESしか言わないなら、それは仮面の付き合いしかできてない

→ そういう部下を好んで周りに置くから、本音で相談したい人が寄ってこない

→ なぜYESしか言わないのか

→ 怖いと思われているから

→ 怖いと思われ本音・意見が引き出せないなら上司失格

 

・現代の上司に求められるスタンスは「聞き役」

→ YESもNOも聞く

→ YESを好むなら、NOは辞めていく

→ 偽りのYESに価値はあるのか?

評価

■ 評価されない

怖い。意図的にはしごをはずされる。

→ 自分と上司とのボタンのかけ違い。

    否がないかもしれないが、もはや印象や相性が悪い。

 

■ やるべきことに集中する

何をされてもやるべきことは1つ、

というマインドでいるしかない。

 

■ 割り切る

しょせん、サラリーマンなのだから。

1番になることが目的ではないのだから。

何ができていればいいのか、本質的な目的を考える。

 

■ 合わないなら選択肢の幅を広げる

期限を決める。

そのCPごとに将来を考える。

不当なら辞める。

 

■ こたえ

気にしすぎるくらいなんだから、気にしない