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

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

新規登録して質問してみよう
ただいま回答率
85.49%
アルゴリズム

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

コードレビュー

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

Q&A

解決済

12回答

4562閲覧

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

manzyun

総合スコア2244

アルゴリズム

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

コードレビュー

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

4グッド

1クリップ

投稿2018/06/08 02:29

タイトル通りです。

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

背景

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

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

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

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

本題

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

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

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

余談

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

hiraly, LouiS0616, yuyabu, kazto👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答12

0

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

投稿2018/06/08 02:34

kazto

総合スコア7196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 04:57

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

0

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

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

投稿2018/06/08 02:50

iarik

総合スコア101

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 05:04

理解しやすいスタイルでコード読むのが一番ですか。自分の杞憂というのか、思い過ごしでしたね。 とはいえ、確かにチームでレビューするときに(コードレビューツールがない場合は致し方なさそうですが)印刷は前時代的に思えますね……。
guest

0

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

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

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

投稿2018/06/08 02:37

編集2018/06/08 02:48
lazhuward

総合スコア1294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 05:00

シェルスクリプトの類はたしかにそうですね。 そしてドライ・ランがなかったりすると確認の必要は十二分にありますね。 様々なクラスを経由しているものは確かに印刷に不向きだなあと思っていました。
guest

0

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

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

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

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

投稿2018/06/08 05:07

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 05:13

そうですね、ペーパーレス化の時代に何やってるのだろうとは思ったりもします。 1280x1024ドット以上のディスプレイだと結構俯瞰してコードを追っていけるのですね。 そして更にクラスで細分化されたプログラムだと、印刷したら膨大な量になり、確かに苦痛ですね。 プリンターの桁数って136桁なのですね。自分もコード書くときに意識してみようと思います。
guest

0

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

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

投稿2018/06/08 02:45

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 05:01

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

0

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

投稿2018/06/08 14:15

can110

総合スコア38256

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 05:21

余白を多めにしてメモスペースを確保し、行間をメモで埋めていく。なるほど、アルゴリズムの勉強にはすごく役立ちそうですね! ちょっと自分もコードの行間埋めで勉強してみようと思います。
guest

0

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

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

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

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

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

投稿2018/06/08 13:39

HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 05:19

確かに紙だとメモ書きが簡単なのですよね。 でもそうですね。今は解像度の高いディスプレイも出てきたので、いちいち紙に印刷する必要がなくなってますね。 個人開発を促進するために、解像度の高いディスプレイ買うかなあ……。
guest

0

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

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

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

投稿2018/06/08 12:59

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 05:17

手続き型なら大体ゲームブックのノリで上から下に読めますね。 モダンなコードだと、IDE必須な感じが否めなくて、個人的には辛い節がありますが、そこはツールの使い方を熟知していない自分の問題ですね。
mkgrei

2018/07/27 05:57 編集

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

0

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

投稿2018/06/08 05:58

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 05:15

やはり大型汎用機(という言い方が正しいかわかりませんが)だと、開発環境が制約されているのですね。 今はむしろエディタやIDEが優秀過ぎて、それなしではコードを読むのが難しくなってて、個人的にはモヤってしていたりしてました。
guest

0

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

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

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

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

投稿2018/06/08 04:43

torisan

総合スコア678

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 05:10

言語や開発・運用環境よっては印刷したほうが読みやすい言語もありそうですね。 なるほど、気分転換に印刷して読んでも良いものですか。少しホッとしました。
guest

0

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

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

投稿2018/06/08 03:06

BluOxy

総合スコア2663

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 05:07

ソースコードを共有して開いてもらうまでに時間がかかる場合は確かにありますね。 部分だけ印刷。そういうのもありますね! (ファイル毎に印刷しておりました)
guest

0

ベストアンサー

こんにちは。

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

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

投稿2018/06/08 02:54

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manzyun

2018/07/27 05:06

確かに今の時代だと、印刷と同等レベルの解像度のモニターも普及してきましたので、そのとおりですね。 とはいえ、印刷することの利点もおっしゃってくださったので、ベストアンサーとさせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問