質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.60%

  • アルゴリズム

    392questions

    アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

  • コードレビュー

    37questions

    コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

ソースコードを印刷して読むことがありますか

解決済

回答 12

投稿

  • 評価
  • クリップ 1
  • VIEW 741

manzyun

score 1864

タイトル通りです。

この質問は、若干アンケート的な側面があります。
仕事やコーディングに疲れた時の暇つぶしの雑談程度にとらえていただければと思います。

 背景

みなさんはソースコードを紙に印刷して読むことがありますでしょうか。
私はしょっちゅうそういう欲求に駆られつつも、
「プログラマなんだから全部コンピューター内で完結しろよ」
と自分を責めることがあります。

ただ、趣味の範囲でmit-pdos/xv6-public: xv6 OSのソースコードを暇な時に読み流したりして、そこでたまに新たな発見を得ることはよくあります。

また、Joel on Softwareというエッセイ集で、確か印刷してコードを読むと、コードの網羅性が高まる(印刷したものとディスプレイの解像度は(当時は)印刷したもののほうが断然高いため)ということが書かれていたと記憶しています。

しかしながら、一部では、
「そんなFORTRANやCOBOL時代のデバック方法(笑)」
みたいな雰囲気が(私が作っているだけかもしれませんが)漂っており、素直に申し上げると、
「自分のやってることって、前時代的なのかなあ」
ともやもやしております。

 本題

ソースコードを印刷して読んでたり、書き込んでいる方はいらっしゃいますでしょうか。

もしいらっしゃいましたら、印刷するのに良いツールも(できればLinuxでも動くもの)をご教授いただけると幸いです。

また、2018年、Letinaディスプレイや4Kディスプレイなどの高解像度ディスプレイも普及し始めた現在なのだから、ソースコードを印刷して読むなんて邪道だろう。なぜなら……という意見も頂戴できると幸いです。

 余談

印刷ではないけど、電子ペーパーデバイスでソースコードを読んでいるという方がもしいらっしゃれば、ぜひ感想を伺いたいです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 12

+2

コードレビューをしっかり行いたいときなどは、印刷する方が見通しが良くなる場合もあります。
(もったいないので2in1の両面とかで)
紙なら並べて見ることもできるので、そう悪くはないやり方だと思っています。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 13:57

    熟読しなければいけないときにはいい方法だと思えて少しホッとしてます。
    両面印刷で資源節約も大切ですね。

    キャンセル

+1

インフラですと、LinuxシェルやPowershellを印刷してコードを読むことはしょっちゅうあります。
なぜならシェルプログラミングは通常のプログラミングとは違い、コンパイルせずステップ実行するため
脳内で処理を実行するしかできないからです。
シェルを印刷して関数にマーカー引いたり、値に何が入っているとか書き込みます。

印刷できるツールなんて探すほうが時間の無駄だと思っていますので、
サクラエディタに貼り付けて印刷してます。

オブジェクト指向言語など様々なクラスを経由しているものや
コード行数が長いものは、印刷にはあまり向いてないかもしれませんが
COBOLと同じように、インデントも見ているプログラミング言語(Python)も
印刷したほうが分かりやすいかもしれません。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 14:00

    シェルスクリプトの類はたしかにそうですね。
    そしてドライ・ランがなかったりすると確認の必要は十二分にありますね。

    様々なクラスを経由しているものは確かに印刷に不向きだなあと思っていました。

    キャンセル

+1

他人の書いたコード(teratailの質問に含まれているコード等)は、我流でインデントされていたり、コメントが無かったりして解読しにくい場合があります。

そうした時は印刷して、複数色のカラーマーカーの出番になります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 14:01

    なるほど、回答する際の質問のコード解読に印刷ですか! 自分も今度回答する時にやってみようと思います。

    キャンセル

+1

私は紙に印刷して読むことはありませんが、印刷して読まれる人に対して記載されたような事を思うことはありません。人それぞれ理解しやすいスタイルでコードを読むのが一番だと思います。  

ただし、プロジェクトやチームでコードレビューをする際に、必ず印刷してレビューしてもらう等のプロセスを設けている場合は前時代的だと指摘される可能性は多いにあるかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 14:04

    理解しやすいスタイルでコード読むのが一番ですか。自分の杞憂というのか、思い過ごしでしたね。

    とはいえ、確かにチームでレビューするときに(コードレビューツールがない場合は致し方なさそうですが)印刷は前時代的に思えますね……。

    キャンセル

+1

「自分のやってることって、前時代的なのかなあ」

ですね。環境保護の観点からペーパーレス化が求められていますが、それに反する行為です。
……というのはまた別の話題で語るとして、

私もかつてはコードを読む際に印刷していた時期がありましたが、十数年前までの話です。画面の高解像度化やエディターの高機能化にしたがい、印刷して読むことはなくなりました。画面が1280x1024ドットぐらいになると、情報量としては印刷したものに引けを取りませんし、キーワードの色分けでむしろ印刷するよりも読みやすくなります(カラー印刷なんて普通しないし)。何よりも、目で追える程度の量ならともかく、それなりのコード量になればエディターの機能(特に検索機能)は不可欠ですが、それができない印刷では読むのが苦痛ですらあります。

ちなみに、私は1行の折り返しを120~130桁程度を目安(習慣)としていますが、それはプリンターの桁数(136桁)が由来です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 14:13

    そうですね、ペーパーレス化の時代に何やってるのだろうとは思ったりもします。

    1280x1024ドット以上のディスプレイだと結構俯瞰してコードを追っていけるのですね。
    そして更にクラスで細分化されたプログラムだと、印刷したら膨大な量になり、確かに苦痛ですね。

    プリンターの桁数って136桁なのですね。自分もコード書くときに意識してみようと思います。

    キャンセル

checkベストアンサー

0

こんにちは。

昔、まだディスプレイの解像度が低くて、印刷した方が見える範囲が広かった時代はかなり頻繁に印刷していました。
近頃は印刷すると却って見える範囲が狭くなるのであまり印刷することはなく成りました。どうせコンピュータの前に座っているのでディスプレイで見たほうが検索もできて見やすいというのもあります。

要するにその時その時の時代や作業形態に合わせて、自分にとってやりやすい方法を選んでます。印刷するとマーカーなどをつけることもできますし、コンピュータの前に座ってなくても見れますので、それはそれでありではないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 14:06

    確かに今の時代だと、印刷と同等レベルの解像度のモニターも普及してきましたので、そのとおりですね。

    とはいえ、印刷することの利点もおっしゃってくださったので、ベストアンサーとさせていただきました。

    キャンセル

0

同時に複数ファイルのソースコードを読むときは
読む頻度が高いソース部分を印刷…なんてことはやったことがあるような無いような…。

余談ですが、
人にほんの一部分のソース(またはソースの差分)を見せるときは
相手にSVN等ファイル開いてもらうより印刷して「ここどうですか?」と聞いた方が
てっとり早いのでたまに印刷してます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 14:07

    ソースコードを共有して開いてもらうまでに時間がかかる場合は確かにありますね。

    部分だけ印刷。そういうのもありますね!
    (ファイル毎に印刷しておりました)

    キャンセル

0

基本的に印刷して読むことはありませんが、
I●M社のRP●に限り印刷します。(一応伏字w

理由としては、
・1画面に16行しか表示されない、且つコード位置の微調整が面倒
・インデントという概念がない
為、コードが非常に読み辛いからです。

前時代的と言ったイメージはありません。
気分転換に印刷してみた、とかでも良いわけですし。

客先などで『魅せる』必要もある場合は
アリなのかもしれない、くらいでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 14:10

    言語や開発・運用環境よっては印刷したほうが読みやすい言語もありそうですね。

    なるほど、気分転換に印刷して読んでも良いものですか。少しホッとしました。

    キャンセル

0

昔、汎用機で貧弱なエディタしかない時はプリントしていましたが、オープン系になってからは印刷したことはほとんどありません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 14:15

    やはり大型汎用機(という言い方が正しいかわかりませんが)だと、開発環境が制約されているのですね。

    今はむしろエディタやIDEが優秀過ぎて、それなしではコードを読むのが難しくなってて、個人的にはモヤってしていたりしてました。

    キャンセル

0

印刷して読むのが楽な場合もあります(した)ね。

手続き型なら順番に読んでもしっくりきますし、印刷してマーカーつけたりして「汚して」楽しんでいました。
画面と違ってコードまでの距離が近かった印象です。

モダンなコードはブロックを小さくして飛び飛びにしたりするので、紙だと可読性が落ちちゃいますね。
設計思想がだいぶ変わった気がします。
エディタだと検索したり、関数に飛んだり、説明がポップしたり…
紙に印刷してじっくり読むほど凝ってないといいますか、ミスりにくいコードの書き方が工夫されるようになったといいますか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 14:17

    手続き型なら大体ゲームブックのノリで上から下に読めますね。

    モダンなコードだと、IDE必須な感じが否めなくて、個人的には辛い節がありますが、そこはツールの使い方を熟知していない自分の問題ですね。

    キャンセル

  • 2018/07/27 14:57 編集

    モダンなコードでは具体的な実装はだいぶ重要度が落ちます。
    C++などであれば、最悪ヘッダーファイルを読めばそれなりに内容を把握できます。
    クラス図は大事ですね。

    あとは関数名通り実装してくれれば…

    キャンセル

0

 印字して読むことはあります。

メモ書きが簡単ですし。離れたページを同時に見ることもしやすいですし。

 といっても、結局はディスプレイとかIDEとか机の広さ次第です。

マルチディスプレイで高機能なIDEがあるならば、印字不要なケースもあります。今やデバッガもエディタも高機能環境が当然です。一方、印字物は情報管理の観点から上司の確認が必要だったりと手間がかかることがあります。(会社次第です)

読む対象にもよりますけどねー。四色定理の証明に使用されたといわれるエレファントソースコードなんて見たくもない・・・印字して縦に積み上げてメートル単位って聞いたことがあります(^ω^;)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 14:19

    確かに紙だとメモ書きが簡単なのですよね。

    でもそうですね。今は解像度の高いディスプレイも出てきたので、いちいち紙に印刷する必要がなくなってますね。

    個人開発を促進するために、解像度の高いディスプレイ買うかなあ……。

    キャンセル

0

最近は面倒なのであまりしませんが、たった数十行なのに、しかも単純データ例で実行してみても分からないコード、たとえば技プロ系のアルゴリズムメインのコードを理解するためには余白を多めにして印刷してました。
自分がコンピュータになって余白に書き込みしながら頭で動かしていくうちに何となく理解できるようになるので、紙に印刷するのも有効な手段だと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/27 14:21

    余白を多めにしてメモスペースを確保し、行間をメモで埋めていく。なるほど、アルゴリズムの勉強にはすごく役立ちそうですね!

    ちょっと自分もコードの行間埋めで勉強してみようと思います。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • アルゴリズム

    392questions

    アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

  • コードレビュー

    37questions

    コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。