気がついたら2時間とか平気でたってる。。。
ただ、集中力が切れたら、近くを散歩するでもよし、雑談をするでもよし。そんな感じで1日を過ごしています。
さて、プログラミングを行ってて、初心者に取っつきにくい事柄を列挙していこうと思います。
裾野を広げれば、自ずと売り上げは多くなるので、その辺も考慮しながら書いていこうと思います。
これは、プログラミングを好きになってもらいたいという事からであって、決して初心者は近づくべからずというモノではありません。
さて、振り返ってみると(^_^;)
デバッグとリリース
基本的な概念だと思いますが、デバッグとリリースという2つの概念をしっかりと押さえておかないと迷ってしまいます。概念として持っていなかったのは事実。
リリースは、本ちゃん環境の時にだけ使うってのが良いかもしれません。
ステップイン実行とステップオーバー実行
たぶんプログラムを作成して、いきなり完成版ができることはありません。ある程度練りに寝られた設計図があれば別ですが。。。
そこで、プログラミングを書いてはデバッグという、動作を見ていくことになります。
デバッグの基本的な操作方法、ステップイン実行は、1行ごとに動作を確認する方法ですね。
ステップオーバー実行は、ある関数毎に実行する確認方法ですね。
後はブレークポイントを置いて、F5を押して続行する方法もあります。
大中小といった感じで考えてみればいいと思います。
大まかには、ブレークポイントを目指して続行する方法。
細かに見ていく際に、関数レベルで荒く確認する方法。(ステップオーバー実行)
きめ細やかに確認する方法。(ステップイン実行)
名前空間
この辺が日本語訳のおかしなところで、もし訳しろといわれたら「使用したいクラスの関数群」とかの方が良いかもしれません。
namespaceなので名前空間という訳ですが、このあたりは、実際に使用したい関数群を宣言する意味もあります。
参照
外部DLLの呼び出し
部品がDLLになっており、DLLを呼び出さないといけない場面とか。高速な処理はC++で行って、画面や動きはWindowsでみたいといったときなど。
自由度はあがります。
クラスの概念。
クラスに様々な変数や、関数を持たせることができる点。
intやstringといった事柄は身近で理解しやすいですが、メンバー関数とか居ると、関数の中にもいろいろ持っているので、理解しがたいモノに見えてしまいます。
階層が深くなると、それはそれで、当たりをつけることができにくくなります。
値の受け渡し。
int型をstring型に変換する事や、型を渡すときに困ります。
このあたりはVBだとバリアント型で安直に書けると思いますが、C#だと厳密に値を受け渡さないとエラーがよく出ます。
バリアント型で記述すると、エラーの温床となるので、大規模なモノについては、Cの方が良いと思います。
むしろ大規模だとWindowsも使わない方が良いかな。。
ちょっとした業務とかであれば、windowsで問題ないと思いますが、基幹系とか勘定で用いるのはあまり得策ではありませんね。
自動プログラム作成ツール
このあたりは、賛否両論でして。。自動生成ツールとか言いますが、一長一短があります。
メリットは、プログラムを簡単に理解しやすい点。
デメリットは、プログラムを変更する際にデバッグができない点ですね。
今の開発も自動生成ツールを使いながら取りかかりましたが、細かい粒度の属性へ値をセットする際に、明確に初期化しないと値が変になるとか。。。
デバッグの時は初期化0でしているのが、リリース時には値が不定になっているとか。
まとめ
いろいろ書きましたが、要は、Windowsの基本的なお作法を知っていますか?ということですね。
お作法は、自分で勉強しなさいという事らしいのですが、個人的には、知らない人が自分で勝手に勉強するのは反対です。好き勝手に勉強するのであれば、これからの成長性や信頼性を見込んだ場合、Windowsではないと思っているからです。世界が閉じていくOSを勉強するのもどうなのかなと。。。
90年代後半から00年代までは、確かにWindowsの世界であったとは思います。
しかし信頼性が求められる分野やこれからは、多種多様なOSがあって良いと思います。独裁者は嫌われる。ってことですね。
話を元に戻して、プログラミングは体系立っており、ある程度の会社の方針や教育といった指針は、前任者やその仕事場の人たちがすでに技術を有しているからです。
その技術を下の人たちへ出し惜しみしているようでは、果たして裾野が広がるのかはなはだ疑問を持たざるを得ないと個人的には思います。
WindowsもOS毎に断片化されています。
断片化されるにつれ、技術は伝わりにくいのかもしれません。
教えることを放棄している事が問題?教える内容を実は持っていなかったりするのかもしれない?と勘ぐってしまいます。
といっても、プログラムはあくまでも1つのスキルとして持っていることに損は無いので、着々とスキル作りに励まないとね(^_^;)
0 件のコメント:
コメントを投稿