• 締切済み

プログラミングパターンの基礎を知りたい

基本書などで文法そのものは多少理解したのですが、 実際に作ってみると気になる点がいろいろあります。 プログラムのベストプラクティスや、基本マナーというようなものを 学びたいのですが 平易な本やwebをご存じないでしょうか? デザインパターンなどは少し高度というか、 マナーを超えているのでもっと基礎的なものを イメージしています。 例えばwebの入力チェックするプログラムでは、 入力文字サイズや、禁止文字のチェックをする必要がありますが、 if size check if ngword check のようにどんどんネストが深くなっていきます。 こういうものなのか?もっとよい書き方があるのか?など気になってます。 入力チェック後にチェックをクリアした変数に 実際の処理を加えようとするとインデントがかなり深くなってしまうケースがあります。 他にも変数が空なのか確認するのもis nullでチェックするのか、 is not nullでチェックするのかなど気になります。 想定言語は主要な言語で構いませんが、 当方で勉強したことがあるのはperl,php,pythonです。 こなれたライブラリのコードを読むなどが良いという気もしますが、 手軽に学びたく、解説の付いている書籍やwebが 希望となっております。

  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

  • catpow
  • ベストアンサー率24% (620/2527)
回答No.1

>>プログラムのベストプラクティスや、基本マナーというようなものを 学びたいのですが 平易な本やwebをご存じないでしょうか? 平易な本、webは知りません。 コンピュータの基本的なアルゴリズムを学ぶには、「コンピュータの古典的名著」といわれる書籍や情報処理試験で出てくる理論の元になった専門書を読むのがいいと思います。 ただ、それなりに難解ですし、私の場合、読み終えるにそれなりの時間がかかりました。 >>のようにどんどんネストが深くなっていきます。 こういうものなのか?もっとよい書き方があるのか?など気になってます。 今の流れは、そういう手続き型プログラミングでデータチェックをするよりも、フレームワークを使って宣言型プログラミングでチェックするやり方が増えている気がします。 また、コードの自動生成っていう流れもあると思います。 >>こなれたライブラリのコードを読むなどが良いという気もしますが、 手軽に学びたく、解説の付いている書籍やwebが 希望となっております。 手軽ってのは難しい気がしますね。 お金と時間と努力が必要だと思います。

関連するQ&A

  • 関数の引数のデフォルト値について

    PHP5.2.4を使用しています。 自作関数で、例えば数値や文字列を受け取る引数のデフォルト値を 「''」で入力されてないかをチェックする場合と、 「NULL」で入力されてないかをチェックする場合とでは、 どちらが良いというのはあるのでしょうか? function a($arg = '') {  if($arg == '')  {  } } //または function a($arg = NULL) {  if(is_null($arg))  {  } }

    • ベストアンサー
    • PHP
  • NULLの定義について

    C言語で、NULLとの比較を行う関数として、 strcmp関数を使用したいと考えています。 ある、文字列変数に、 "あいうえお"が入っている場合、 ""(何もない)の場合、 下記の例で真の処理と偽の処理、 どちらを通るのでしょうか。 当然、文字列変数が"あいうえお"の場合は、 真の処理を通ると思いますが、 ""(何もない)の場合が分かりません。 例として、 ~中略~ if( strcmp( 文字列変数, NULL ) != 0 ){ 真の処理 }else{ 偽の処理 } ~中略~ の時です。 言語によって、NULLは「0」と定義されていたような 記憶もありますが・・ したい事は、文字列変数が""の場合、 偽の処理をするようにしたいです。 プログラムの作り方を教えて下さい。

  • scanfについて

    C言語入門者です。基本的な問題で申し訳ないのですが 入力した文字がaの時だけ表示するプログラムを書きました。 scanf("%c", &d); if(d == "a"){ printf("inputed key is %c \n", d); } と書いたのですがコンパイルすると「ポインタと他の型が混在しています」とでてコンパイルが通りません。なでなんでしょうか?dに代入した文字や数値を変数として使う場合はどうしたらいいのでしょうか? どなたかご指導お願いします。m(_ _)m

  • IF文について

    アクセス97での質問です 今、入力フォームを作成してまして、入力チェックのプログラムを作成しているのですが、NULLや文字数等のチェックはうまくいくのですが、どうしてもうまく出来ないのがあるんです それは半角で5文字入力できるテキストボックスがあって その先頭の一文字が半角カナじゃない時にエラーを出したいんです 他のエラーチェックもIF文を使ってやっているので、同じようにIF文で作りたいのですが、いい方法が思い浮かびません わかる方がいらっしゃいましたら教えていただけませんか? 宜しくお願いします

  • ブランクのチェック

    C言語で、入力されたブランク(空白ではない)をチェックするようなプログラミングするにはどうしたらよいでしょうか。 char n [64]; scanf( %s , n ); if(n==""){ printf("エラー:入力してください\n"); } だと空白(NULL)の扱いになってしまいますか? ブランクに対してはどうプログラムを組めばいいでしょうか。

  • プログラミングなんですが。。

    次のようなプログラムはどのようにして作成したらいいのでしょうか。 [1]2つの整数aとbを作成します [2]2数が一致すれば”a=b=(入力した数値)” と表示させます [3]2数がともに10より小さければ”2数とも10未満です”と表示させます [4]2数のうちどちらかが5で割り切れれば”どちらかが5で割り切れます”と表示させます [5]bが0でまければa/bを表示させます   また、1文字を入力してその文字が小文字なら大文字に、大文字なら小文字に変換するプログラムを作成するためにはどのようにすればいいのでしょうか。 そして最後に0以上の整数をキーボードから入力し、その数が以下のどれにあたるかを判定し適当なメッセージをさせたいのですが [1]0ではない [2]4の倍数で、かつ7の倍数である [3]4の倍数であるか、もしくは7の倍数である [4]上の[2][3]のいずれにもあてはまらない   長くなってすみません。if文の使い方もよくわからないので教えていただけると嬉しいのですが (^^;)

  • プログラミングの分野

    プログラミングについて無知です。すみませんが、下に書いてある内容は、「OSS 」とか「Java言語」とか「Fortran言語」とか「UNIX」に関連する分野でしょうか ?関連するかしないか教えてください。 1 駅名の表示        ファイル名、注釈、文字列定数、エスケープ文字        システムのインストール 2 駅名の読み方       ヘッダーファイル、インクルードファイル、#include 3 駅名表示の切換え       変数、文字変数、ライブラリ関数、ラベル、goto文 4 曜日の算出       ネスト、書式、式、代入文、宣言、整定数、整変数、       代入演算子、(不)等値演算子、関係演算子、論理演算子、真/偽 5 借用権の値段       実数、実定数、実変数、実数名、評価 6 生年月日の入力       ブロック、複文、&演算子 7 利息計算       繰返し、ループ、ラベル(名札)、演算子の優先順序、       増分、初期設定 8 財産形成       演算子の優先順位、プログラムのトレース 9 結婚できるのはいつ       オーバーフロー、sizeof演算子、最適化、シフト演算子、       ループの種類 10 うるう年       関数の定義、関数の型、関数の値、パラメタ、仮引数、       実引数、返却値 11 法王の名前       ブロック構造、スコープルール、無限回ループ、       再帰的呼出し(recursive call)、コンマ演算子 12 おいらの予想       配列、#define、マクロ定義、long

  • VC++のプログラミングについて

    VC++(verson2003)でテンプレートはMFCのダイアログベースでアプリケーションを作成しています。以下のプログラムはあるボタンをクリックしたときに呼び出される関数でエディット(コントロール変数m_edit1)に入力されたファイル名の内容(メモ帳に記述したテキスト文)を変数textに格納するものです。このプログラム書き換えてメモ帳に 3 1 4 9 のように記述した数字をint型の一次配列に格納するようにしたいのですがどのようにすればよいでしょうか。 void CprogramDlg::OnBnClickedButton1() { CStdioFile fin; char buf[1001]; CString text,filename; m_edit1.GetWindowText(filename); if (filename == "") return; if(!fin.Open(filename, CFile::modeRead | CFile::typeBinary)) {  AfxMessageBox("読み込みファイルをオープンできません");  return; } text = ""; while (fin.ReadString(buf,1000) != NULL) { text = text + buf; } fin.Close(); }

  • 入力された文字列の制限

    こんにちわ、初心者プログラマーのRammyと申します。 現在webで使うツールを開発中なのですが、web上にある入力フォーム内に 入力された文字列について、 1.半角英数字及び_-.のみ入力可能にする(メールアドレス判断用) 2.半角数字のみ入力可能にする(電話番号などの判断用) 3.文字列の長さをチェックし、一定の長さを超えたら送信させない 以上の入力制限処理をJAVAで行いたいのです。 現在、空白チェックのみ、チェック用のBeansを作成し、その中に public static boolean checkBlank(){  if (kind == null || user_name == null  || mail1 == null || mail2 == null  || tel == null || subject == null || text == null ) {  return false; }  if (kind .compareTo("") == 0 || user_name.compareTo("") == 0  || mail1.compareTo("") == 0 || mail2.compareTo("") == 0  || tel.compareTo("") == 0 || subject.compareTo("") == 0  || text.compareTo("") == 0 ) {  return false; } return true; } このように記述してありますが、Beans内に上記の1~3の機能をつけたし たいのです。が、いったいどのように記述したらいいのかわかりません。 1・2に関しては、入力可能な文字をあらかじめ決めておいて、入力された 文字列を分解し、入力可能文字と一致するかどうか判断する、というイメージ はできるのですが、どう書いたらいいものかわからないのです汗 3は、lengthメソッドをやはり使うのでしょうがどう書けばいいのか・・・汗 本当に初心者な質問で申し訳ないのですがご教授下さいませんでしょうか。 ヒントでもかまいませんのでご回答いただければ幸いです、宜しくおねがい 致します。

  • CakePHPでシングルトンパターン

    CakePHPでシングルトンパターンで、インスタンスを使いまわしたいのですが、 うまく動作しません。 以下のようなプログラムですが、何か設定が足りないのでしょうか class Test{   public static $instance = null;   public function __construct(){}   public function getInstance(){    if(is_null(Test::$instance)){     Test::$instance = new Test();    }    return Test::$instance;   } } 上記クラスを以下のように呼び出しております。 $instance = Test::getInstance(); 何度やっても、インスタンスが新しく生成されてしまします。 良い方法がございましたら、ご教授下さい。

    • ベストアンサー
    • PHP

専門家に質問してみよう