重要なコーディング習慣
(puppycoding.com)- コーディングで最も重要な習慣は、可読性・一貫性・整理整頓だけではなく、何年、何十年も開発を楽しみ続けるための健康習慣である
- 長時間、猫背でキーボードの前に座っていると腰に負担が蓄積し、椎間板の突出が脊髄神経を圧迫して、脚のしびれ・痛み・睡眠障害につながる可能性がある
- 毎日、体幹と下半身をストレッチすると、腹部や太ももの筋肉が体を支える助けになり、筋力トレーニングでなくても定期的なストレッチには効果がある
- 少なくとも1時間に1回は立ち上がって歩いたり、画面から離れた活動をしたりすると、体を休ませるだけでなく、行き詰まったコーディング課題から離れて新しい試行のアイデアを得られる
- 深夜のコーディングを減らし、作業環境を改善する必要がある。疲れているほどコード品質と姿勢がともに崩れ、長時間の猫背姿勢が続きやすい
長時間座ってコーディングすると生じる身体的負担
- 最も重要なコーディング習慣は、コードそのものをより良くする習慣だけではなく、長く開発を続けられるようにする健康的な作業習慣である
- 長時間キーボードの前で猫背の姿勢を続けた結果、slipped disc, spinal disc herniationから回復中である経験が紹介されている
- slipped discは脊椎の椎間板が外に抜け出すという意味ではなく、通常は脊椎の下部付近の椎間板が突出し、脊髄神経を圧迫している状態を指す
- 腰痛だけでなく、脚のしびれや痛みを引き起こすことがあり、動けなくなったり眠れなくなったりする状況に至ることもある
- 回復には数週間または数か月かかる場合があり、手術も選択肢の一つである
毎日ストレッチする
- 長時間座っていると、腹部や太ももの筋肉が相対的にあまり使われず、体を支える際に腰を助ける力が弱まり、腰に追加の負担がかかる可能性がある
- 筋力強化運動が最善ではあるが、毎日体幹と下半身をストレッチするだけでも前向きな効果が期待できる
- 筋肉がより柔軟になれば、体を支えることによりよく貢献できる
- ヨガにのめり込む必要はなく、朝や夜の熱い入浴後のように体がほぐれているときに定期的にストレッチすればよい
- 最初に使われていた “chiropractor” という表現は “osteopath” に修正され、日本の接骨院に相当する英語名称は100%確実ではないという但し書きが付いている
定期的に休む
- 少なくとも1時間に1回は立ち上がって短く歩くか、画面を見ない活動をする必要がある
- この習慣は体をいたわる簡単な方法であると同時に、コーディングにも役立つ
- 問題に行き詰まったとき、まったく別のことをしてから戻ると、新しく試すためのアイデアが浮かぶことがある
- 誰もが必要性を理解しているものの実践が難しい習慣なので、意識的に繰り返して体に覚えさせる必要がある
深夜にコーディングしない
- 「徹夜した」といった態度を自慢のように捉える文化は変わる必要がある
- 非常に疲れているときに書いたコードは、より悪いもの、あるいは有害なものになり得る
- 疲れていると姿勢への集中力も自然に落ち、何時間もキーボードの上に猫背で座り続けてしまうことがある
- ある時刻を過ぎたら精神的にも身体的にも作業を終了する、という基準を決め、厳格に守る方法が必要である
コーディング環境を改善する
- ノートPCスタンドとエルゴノミクスチェアは、机に向かって座っている時間をより快適にできる
- こうした機器があっても腰痛は起こり得る
- スタンディングデスクを勧める声を多く聞いた後、移行を始め、現在は机の上に小さなテーブルを載せた仮の構成で使用している
- 立って作業すると、座っているときよりもよく動き、より疲れたと感じることなく、自然とより頻繁に休憩するようになる
- キャリアの初期にこうした習慣を改善すれば、健康的にコーディングできる時間をより長く維持できる
1件のコメント
Hacker Newsの意見
核心が埋もれている。素のノートPCを一日中使うのは健康を損なう
人間工学に合った姿勢を作るには[0]、視線は正面に近く、肘は低めで鈍角に曲がっている必要があるが、ノートPC単体では不可能。外付けキーボード・マウス・モニターをつないで、実質的にデスクトップのように使う必要がある
理論上はノートPCスタンドで外部モニターの代わりにできるが、ノートPCの画面は文字が小さいため、反射的に首を前へ突き出してしまう
外部周辺機器なしでノートPCを使う時間は、振動や騒音への曝露のように制限すべきだ。結局、肩か首、あるいはその両方をずっと緊張させることになる
インターネット上のどんな人間工学資料でも真っ先に指摘しそうな問題を脇に置いて、スタンディングデスクのようなニッチ製品から見始めるのは驚きだ。「些末なことにこだわるな」という言葉を思い出す
[0] https://www.nytimes.com/wirecutter/blog/7-things-you-need-fo...
しかも一般的な外付けキーボードも、ノートPCのキーボードよりはるかに人間工学的というわけではない。たいてい少し幅が広いだけで、手首の位置は依然としてかなり悪い
エルゴノミクスキーボードまで行かないなら、正しい高さの外部ディスプレイのほうがキーボードよりはるかに影響が大きい
2つの画面の上部を少し後ろに傾けて、下を見るようにした。立っていれば少し後ろへ下がれるので、肘を横に大きく広げる必要がない。手首もまっすぐで楽だ
Wirecutterのリンクを確認したところ、椅子がないことを除けば私の構成はすべての条件を満たしている。こまめに休めば1日8〜12時間でも持つ
伝統的に、机で読むときも書くときも正面ではなく下を見る。これも人間工学的ではないのだろうか? 本は台に立てられるが、書くための何かもあるのか気になる
たとえばIkea FLISATデスクは子ども用なのに、10代の子どもたちにもまだ合うし、正直ときどき私が作業しても快適だ
ノートPCは大きなモニターより画面解像度をずっと低く、つまりRetina倍率に設定している。作業領域は減るが、モニターなしで使うときに目を細めずに済む
姿勢はとても重要だ。だが、この記事が以前書いていたようにカイロプラクターを信じないことも重要だ。カイロプラクティックは、無害だが誇大宣伝のマッサージから、危険で時に致命的な脊椎操作までを含む疑似医療だ[1]
修正: 翻訳ミスの可能性を踏まえて直した
[1]: https://en.wikipedia.org/wiki/Chiropractic
[2]: https://web.archive.org/web/20100516074554/http://jrsm.rsmjo...
記事はそれを反映して更新した。違いがあるとは知らず、調査不足だった
個人的には、全人的医療をやっているという人を見たことがない。実際の現場で主に見るのは、Active Release Technique (ART)、Graston、カッピング、伝統的な理学療法が混ざった効果的な軟部組織・関節の手技だ。背中を鳴らすのはそのパッケージに付いてくるだけだ
https://wikipedia.org/wiki/British_Chiropractic_Association_...
結果は裏目に出た
「…訴訟が終わる前に、British Chiropractic Association会員の4分の1が公式調査の対象となった」
整形外科に行ったところ、医師は文字どおり「二足歩行の代償だ」と言っただけで、何の助けにもならなかった
夜にひどい腰痛で眠れないほどだったので、カイロプラクターに通い始め、10人ほど回ってようやく良い人を見つけた。その人はDNFT (directional non force therapy) というものをやっていて、背中や首を鳴らさず、脊椎の複数箇所にやさしく圧をかける方式だった
驚くほど本当に効いた。5年に一度くらい調整を受けに行っている。黒魔術のようだが、私には効いた
ここで試してみるべき前提が1つある。ノートPCは広く使われているが、コーディング環境としては優れていない。
携帯性のために作られているが、実際の使い方は悪い習慣、姿勢、手の位置、視野角をすべて助長する。選べるならデスクトップを選び、携帯性の制約を受け入れる。
もちろん、そうした選択はますます珍しくなっている。次善策はノートPCをドッキングして閉じたまま使い、モニター・キーボード・マウスのような別個の周辺機器を使うことだ
実のところ、机/パーティションの横に縦向きで取り付けた販売終了のHP UltraSlim Dockがとても気に入っていて、そのドックに合う最後のモデルをITチームに頼んで特別発注してもらった。私の新しいノートPCは5年前のモデルだ。それだけの価値はあった :)
要点は画面を上げて分離して使うことだ。画面を高くし、Bluetoothキーボードを使い、下を見下ろさないようにするべきだ。
理想的には、キーボードをノートPCの下に置けるように整えるとよい。難しくはあるが、炭酸飲料の缶と段ボールでも、その気があればできる。私はたいていノートPCをバックパックの上に載せ、キーボードを前か膝の上に置いている。
以前はタブレット型の2-in-1を使っていたが、本当に良かった。Tryoneのグースネックアームのような製品で、画面を好きな位置に浮かせられる。
適度に高解像度な11〜12インチ画面を近くに置けばかなり良かったが、作業に使えるもっと大きな2-in-1をずっと欲しいと思っていた。2013年のようにタブレットをより大型化する流れがあった時代が懐かしい。最近また少しずつ大きくなってはいるが、当時の大胆な18.4インチの怪物たちは、単に少し早すぎただけだったように思う。
結局のところ、核心は「コーディング環境を改善せよ」だ
キーボードを体の近くに置き、机の高さは座ったときに太ももより少し高い程度にして、肘が体に付くようにするのが、私が見つけた最高のエルゴノミクスだった。20代から30代にかけてあった背中・首・肩の痛みがほぼ完全に消えた。
唯一の問題は、椅子に座っていると尻が疲れることだが、これは休憩の口実にできる。
この姿勢が一般的に通用するのかは分からず、実験して見つけた。みんなにもいろいろな姿勢を試してみて、長時間のノートPC使用は避けることを勧める。本当に良くないし、PCの外でも続く悪い座り方の習慣を作りかねない
みんながどうしてあんなに長時間ノートPCを使えるのか理解できない。ノートPCを快適に使う唯一の方法は、外部モニター・キーボード・マウスをつなぐことだ。
投稿者はエルゴノミクスについて語っているのに、それでもなおノートPCを使っている。私にとってノートPCは、飛行機で仕事をしたり旅行中にホテルの部屋へ持っていったりするためのものであって、周辺機器なしで毎日使う主力機ではない。
ノートPCのキーボードは狭すぎるし、画面は高さも角度も間違っているし、トラックパッドは惨事だ。ノートPCを8時間使うと、翌日のマラソン後みたいな感じで、良いところがひとつもない
私には、ほとんど縦型マウスと同じくらいエルゴノミックに感じられる。ただ、縦型マウスはいつも私の手には大きすぎる。
WindowsノートPCのトラックパッドだと、なぜみんなが使いたがらないのか理解できる。Linuxは言うまでもなく、トラックパッドには本当に苦戦しているようだ
ケータリングエリア横のソファのこともあれば、外のバルコニーのベンチ、会議室、外のカフェのこともあり、絶えず場所を変えている。頻繁に動いてストレッチ休憩を取ることは、素晴らしいエルゴノミクス環境から得られる利点よりも良いと思う
プログラミングの、座ってじっとしている性質が好きだったことはない。時間が経つにつれて、10分ごとに背筋を伸ばし、60分ごとに少し長めの散歩をして頭を空にし、背中を回復させるよう自分に強いてきた。
出会った難しい問題やパズルは、たいてい歩いている間に解ける。脳が別の状態になり、問題解決がうまくなるのだ。
自宅ラボ用にエルゴノミクス用品を買ったり、会社がHerman Millerの椅子にお金を使ったりすることはできるが、どんなエルゴノミクス用品でも、座っていること自体の問題は解決できない。パターンを断ち切ることと、頻繁な回復休憩が必要だ。
これは生産性を高めることでも知られている。20代なら大きな問題なく長時間座っていられるかもしれないが、時間がたてば、途中で中断して運動・回復しない限り、座ることは必ず影響してくる
そのあと座り続けると、次に何をすべきか分からず先延ばしが始まることが多い。
一方で歩き始めると、脳が次にやることを決めたり、詰まっている問題を解いたりする方向に切り替わる
背中にも素晴らしく、肘掛けを調整して肩への圧迫を減らせるし、座面の傾きも良い。今では他の椅子に長時間座るのがほとんど無理なほどだ
スタンディングデスクの魅力はいまひとつ理解できない。じっと立っているのは座るより不自然に感じるし、動くのとは違って特別に健康的だとも思わない
個人的には何時間でも歩けるが、数分以上じっと立ってはいられない。立ち仕事の大半もたいていはある程度の動きがある。たとえば店員はレジを離れて商品を取りに行ったりもする
より良い座り姿勢、定期的な歩行休憩、運動といった一般的な推奨事項の中では、長時間のスタンディングデスク利用は最悪に近いように見える。ただし、座ることと立つことを交互にするのは良い考えだと思う
座っているときよりはるかに頻繁に休憩するよう強制される
[1] https://writings.stephenwolfram.com/2019/02/seeking-the-prod...
「カイロプラクターによれば、長時間座っているせいで腹部と太ももの筋肉が相対的に使われなくなり、その結果、体を支える際に背中を助けられず、背中に余計な負担がかかった」という話はもっともらしい
こまめに立ち上がって歩いたりストレッチしたりするのは体に良い。ただ、医学的助言をカイロプラクターに頼ることはしない
日本に住んでいて 接骨院 に通っているが、これをカイロプラクターだと思っていたものの、たぶん osteopath のほうがより適切な訳だと思う。投稿前に調べるべきだった
手のことも忘れてはいけない。プログラマーを「手で働く人」とは考えないが、実際にはそうだ。外科医も同じだ
最初は非常に硬いキーボードから始め、何十年ものあいだキーを強く叩きすぎていて、指には良くなかった。必要以上に強くキーを押してはいけない。何十年も積み重なると、関節や腱に加わる衝撃が損傷として蓄積する。1日のコーディングのあとで指が痛むなら気をつけるべきだ
手首の角度 も重要だ。手根管症候群はまったく楽しいものではない。私はまだ避けられているが、タイピング中に手首へ緊張が生じていないか確認すべきだ。緊張があるなら、レイアウトや姿勢をどう変えるか考える必要がある
ノートPCが嫌いな理由の1つは、キーボードが自分の手には小さすぎることだ。本格的な作業にはフルサイズのキーボードが必要だ
人間工学を考えるときは手を忘れてはいけない。目も忘れずに。定期的にモニターから目を離し、少なくとも20フィート先を少なくとも20秒見るべきだ。推奨される頻度が20分ごとか2時間ごとかは忘れたが、定期的にやるべきだ
https://workrave.org/
私にとって最高の選択肢は フロアデスク だ。最初は床に座るのが大変だったし、床にきちんと降りたり立ち上がったりする方法も学び直す必要があった
だが時間がたち、ヨガやストレッチをするうちにコアが強くなり、関節の調子も良くなって、いくらでも床に座っていられるようになった。降りたり立ち上がったりする回数も軽い運動と見なせる
長時間作業したあとでも腰やほかの痛みはまったくなかった。床では自然と姿勢を変え続けることになるし、椅子よりも座り方やしゃがみ方のバリエーションがずっと多いのも良い
あまり言及されないが、私にはとても理にかなっている。子どもが床に座るのを好むのは、まだ可動性の低下を経験していないからだ。狩猟採集民の部族は1日の大半を床に座って過ごし [0]、日本など多くの文化圏の高齢者も大きな問題なく床に座る
[0] https://www.huffingtonpost.co.uk/entry/sitting-all-day-bad-f...
約20年間プログラミングをしてきたが、私は椅子の前縁に尻を引っかけたまま、かなり 猫背の姿勢 で座る
この姿勢はとても快適でリラックスでき、背中にまったく圧迫を与えない。モニターは高めに置いて頭が上がるようにしている。必要なら1日12時間こうしていても、夜にまったく不快感や痛みがない
正しい「人間工学的」姿勢だとして棒のようにまっすぐ座るのは、災難を待つようなものに見える。とても不快で、背中、腕、首にストレスを与える
脊椎は正しく「積み上がった」位置でも、もともとかなり湾曲している。「棒のようにまっすぐ」のような目標を立てると、簡単に間違った方向へ行って過度に緊張してしまう