ほんのちょっとしたプログラムを作ろうとしたら、思いついただいたいの機能を思い浮かべて、すぐにエディタを開いてなんとなくコードを書き始めています。
そうすると、いつも行き当たりばったりになって汚いコードになってしまいます。
紙に実現しようとする機能を書いて、だいたいの処理の流れを書いたりもしてみるんですけど、書き方が悪いみたいでその紙を見ても、これでどうコードを書いていけばいいんだ? っていう感じになります。
フローチャートを書いてみようと思っても、その前に処理の流れをどうするかを悩んでるのに気付いて、意味がありませんでした。
プログラムを作れる人は、自分用の小規模のプログラムを作るときはどうしているんでしょうか。
No.1
- 回答日時:
わたしも、プログラムを書いてるうちに汚くなってしまいます。
よく使う、関数などは、自作のヘッダーファイルにまとめてはどうでしょうか?
http://www9.plala.or.jp/sgwr-t/c/sec18.html#s18-2
#includeについて書かれています。
また、コメントをできるだけ付けるようにしてわかりやすくして、あとで、きれいに書きなおす。
機能ごとに、わけて、つくる。
デバッグ用のログファイルに出力するようにする。
あとで削除しやすいようにしておき削除するか、機能停止できるように組んでおく。
http://www9.plala.or.jp/sgwr-t/c/sec18.html#s18-2
#includeについて書かれています。
回答ありがとうございます。
>コメントをできるだけ付けるようにして
う、まったく付けてない。。。自分用でも付けたほうがいいんですね。
>きれいに書きなおす
初めは汚く書いても、だんだんときれいにして進めていくというかんじでしょうか。
初めからきれいに書くことにこだわりすぎるのはだめっぽいですね。
>デバッグ用のログファイルに出力するようにする
>機能停止できるように組んでおく
このあたりは勉強不足なので、リンク先ととも勉強してみます。
No.2ベストアンサー
- 回答日時:
がると申します。
んっと…小規模に限らなかったりするのですが(苦笑
基本的には
・コメントを先に書く
癖をつけるのがよろしいかと思います。
後は
・コードが汚いと感じた時点で書き直す
事でしょうか。
慣れると、結構スムーズにきれいに書けるようになります。
後は、個人的には「C++に移動してオブジェクトな書き方をする」と、処理が各々で局所化できたりするので、割合に見やすくなると思うです。
No.3
- 回答日時:
No.2の方の書き直すに同意です。
厳密に言えば、本番のプログラムを書く前に、
実験のプログラムを書く、ですが。
いきなりエディタを開いてコードを書き始めるのでかまいませんが、
それを実験プログラムとして参考にし、
再度本番プログラムを書き直すのです。
でも、自分用のプログラムであれば、
見た目がどうであれ動いて結果さえ出ればよいのでは?
回答ありがとうございます。
>本番のプログラムを書く前に、実験のプログラムを書く
わかりやすいですね。これなら初めからきれいに書くことにあまりこだわらずに書けそうです。
>自分用のプログラムであれば、見た目がどうであれ動
>いて結果さえ出ればよいのでは
自分用っていうのは、会社でやりそうな難しい開発手法は使わないぐらいの意味です。
No.4
- 回答日時:
こんにちは、AEと申します。
私はエディタにこだわったりしてますね。
というのも、綺麗なソースを書こうとすると、わりと
インデントや入れ方が重要と思いますので。
meadow(UNIX系のemcasやmule系のエディタ)を好んで
使っています。
あとは、がるさんのおっしゃるとおりコメントを先
に入れて、処理の流れを作ってしまっておく、という
感じでしょうか。
私などはコメントに、あーして、こーして、こーやって、結果こうなる、みたいな文章を力いっぱい書いてたりします。
#単に、おじさんなので物忘れが激しいだけという感じですが(苦笑)
ご参考まで。
回答有難うございます。
>エディタにこだわったり
やはり自分が使いやすいようにカスタマイズしたりしてるんでしょうか。自分には到底無理ですが。。。
>コメントを先に入れて、処理の流れを作ってしまって
>おく
そもそもコメントを付けた事がなかったので、どんな感じになるか試してみます。今から
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- C言語・C++・C# チャットGPT 4について質問があります。 画像のような3つの種類がありますが、それぞれ何が違うので 1 2023/04/29 03:12
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- Java Javaの問題なのですが、 永久ループを使って以下に従って数値を出力するプログラムを作成する。 ・1 3 2023/06/06 18:43
- Visual Basic(VBA) VBAのエラーについて 2 2023/08/02 17:46
- システム 古いWEBシステム。もう追加プログラムは作れない? それともできる? 6 2022/06/08 13:41
- ノートパソコン Windows 10 動作改善方法 6 2023/04/26 22:30
- 財務・会計・経理 業者間での注文書・請書の取り扱いについて 2 2022/06/27 15:53
- IT・エンジニアリング 不具合の現状認識をしないプログラマって信用できる人? できない人? 8 2023/07/28 09:09
- 大学受験 AO、総合型選抜出願時に使用する活動実績報告書について 4 2022/06/27 01:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Webプログラムってネイティブア...
-
VBA
-
Excel VBA じゃんけん
-
指定したフォルダーを最前面表...
-
COBOLのS9タイプからXタイプへ...
-
VBAのプログラムが動いているか...
-
vba listviewにおけるtextのAli...
-
Visual C++でDESを使って文字列...
-
コンパイルエラーの意味
-
プロダクションコードとは?
-
プログラミングの問題と解答例...
-
GPUとCPUを使えば簡単に高速化...
-
連立方程式
-
無限ループ中にある任意のキー...
-
CGIの記述について教えてくださ...
-
ポーティングって?
-
URLの最初の「h」を略す
-
Macターミナルで実行中のプログ...
-
VBAの配列サイズとメモリに関して
-
緯度、経度の 10進法と 60進法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba listviewにおけるtextのAli...
-
プロダクションコードとは?
-
指定したフォルダーを最前面表...
-
Webプログラムってネイティブア...
-
COBOLのS9タイプからXタイプへ...
-
VBコンソールアプリ(.NET Frame...
-
VBA
-
2値化した画像の黒い部分のピク...
-
初級者の質問――time_tについて
-
無限ループ中にある任意のキー...
-
Arduino nano(アルドゥイーノ ...
-
世界一美しいソースコード
-
VBAにてTIFFから画像を取込みた...
-
C言語でpingを実行してその結果...
-
三次元のグラフを書きたいので...
-
マイコンからプログラムを読み...
-
C言語→MATLABへの変換で、困っ...
-
XPathの関数「text()="value"」...
-
URLの最初の「h」を略す
-
プログラミングの問題と解答例...
おすすめ情報