최신내용부터 전체표시

21851. 車から変な音がする。(1kview/6res) 고민 / 상담 2004/05/18 22:34
21852. FULLERTON COLLEGE(723view/0res) 프리토크 2004/05/18 21:38
21853. アジアン家具(800view/0res) 고민 / 상담 2004/05/18 12:52
21854. プログラミング(2kview/14res) 프리토크 2004/05/18 12:18
21855. 家の購入&不動産投資(885view/4res) 프리토크 2004/05/18 04:46
21856. レコード買いたい!(366view/0res) 프리토크 2004/05/18 04:46
21857. 免許紛失(1kview/4res) 프리토크 2004/05/17 22:59
21858. supercut 利用したことのある人(1kview/10res) 프리토크 2004/05/17 21:32
21859. 子供を置いて行く母親の心理?(3kview/26res) 고민 / 상담 2004/05/17 21:09
21860. バースコントロールについて・・・。(6kview/35res) 고민 / 상담 2004/05/17 18:20
토픽

プログラミング

프리토크
#1
  • ボールペン
  • 메일
  • 2004/05/15 16:11

今プログラミングに興味をもっている方々。ここで、プログラミングについての技術などを話しませんか?専門的なことでもいいですし、簡単ななぞやわからないことなどなど。です。

#6

渡米前は日本の会社でSEをやってました。主にVC++やそれに似た言語で組んでました。
具体例を出してしまうと迷惑をかけてしまうんで、もし詳しく知りたいのであればメールください。
例えばショッピングサイトを作るとしましょう。その会社ではデータベースで商品の管理をしてます。お客さんはブラウザを使って商品を検索したりオーダーします。
プログラムの核になるのは商品管理データベースです。
このシステムは大きく分けて、(1)データ管理部、(2)HUI(HumanUserInterface)部、(3)ネットワーク部でつくります。
(1)データ管理部は、複数のお客さんのPCからくる更新・閲覧の要求を順序だてて処理します。関連する計算もするし、PCからの要求を制限したり拒否したりもします。普通はデータベース・サーバ上で動作します。ホストプログラムともいいます。
(2)ネットワーク部はネットワークカードの管理はもちろん、PC〜データベース間の要求のやり取り方式(こまんどフォーマット)やプロトコル管理なんかをします。これは直接お客さんにデータベースをいじらせないために、そしてデータベースの情報は分かりにくいので、お客さんの言葉に近くなるよう仲介をします。
(3)HUIは皆さんにおなじみのパソコン画面を見ながら、TEXT BOXに文字を入力したり、欲しい条件にあった情報を表示してあげたりします。クライアントプログラムともいいます。
このときHUIの処理自体は人間の代わりにネットワーク部をつかってデータ管理部にアクセスするだけです。
誤解されやすいですが、HUI自体がデータベースの更新等をするわけではありません。データの処理をデータ管理部ににお願いするだけです。だって、もし各PCでそういう処理をするように作ったらデータの処理内容を外部にもらしてしまいますから。ついでにデータベースの変更があったとき、全てのプログラムの変更すべき場所を探し出し、プログラムを作り直さないといけないからです。まぁ余談ですが。
とまぁ、分かりにくいかもしれませんが、プログラムのほとんどは、データベース&データ処理部、HUI(GUI)、ネットワーク(メッセージング)に分割して作っていきます。お客さんとはデータをどうやって管理するか、お客さん用の端末をどうやって見せるか、を話し合います。そしてそれらを実現するにはどういう処理をしてあげなくてはいけないかを大きなコンセプトから徐々に細かく分割して、最後にみんがが授業でやったような、Input&Outputでお互いをつなげあっていくプログラムを作っていきます。
これって、Windowsとかで動く単体のプログラムでも同じコンセプトです。
例えばWindowsMediaPlayerで動画を見るとします。データファイルの読み取りをするデータ部、それをデコードしてImage情報としてHUIに渡してあげるデータ処理部、表示はもちろん、早送り・一時停止などの操作をユーザに提供するHUI部、各種Window達とそのホストプロセスを仲介するメッセージング部といった具合に作っていきます。
モノにもよるけど、普通はプログラムの設計、プログラミング、テストの3段階で進み、それぞれ同じくらい時間がかかります。
特にプロとアマの違いはテストでしょう。プログラマにとって一番つまらない工程だけど、これを十分にできない会社(Micro$oft?)は後でユーザからものすごいブーイングにあいます。契約しだいでは損害賠償ものです。
チョコばななさんの言うとおり、仕事を始めてからのほうが上達します。そして常に仲間と情報交換したり、プログラマのフォーラムサイトなどで勉強したりします。これ以上書くとますます混乱させるだけなので失礼します。

#8

自分も興味があって勉強中なんですがなかなか苦労してます。できればオフ会やりませんか?

#9
  • Scottc
  • 2004/05/16 (Sun) 20:18
  • 신고

正直、私もいろいろ苦労しました。老婆心ながら一言。「分からないことがあったら適当に見切りをつけて人に聞こう」が鉄則だと思います。
”バリバリ”コーディングできるようになってしまうと、「なんであんなことに・・・」って笑っちゃうことも、たった一つの構文ミスで全く動かないのがコンピュータの世界。とくに自分の得意分野以外は、どんなプロでも素人同様、さっぱり分からないのが事実です。
プログラムに挑もうとしている皆さんは、恐れずに恥ずかしがらずに、隣の人や先生、フォーラムサイトにすがりつきましょ。
「自分の環境はこれで、"何"がやりたい。"ここ"までは分かる。」ってのを伝えると、エンジニア系の人ってうるさいくらいに教えてくれたりします。

#10

確かに自分の分野以外はとぼしくなりがちですよね。まあ、それはそうと今からはじめられるかたがたに、http://www.crew.sfc.keio.ac.jp/lecture/mmb2000/JavaLectures/top_page/flamebase.htmlこのサイトなどで勉強するのもいいかもしれません。いちからできていいかもです。

#11
  • piroです
  • 2004/05/17 (Mon) 11:00
  • 신고

>scottcさん
SEをなさっていたとのことですが、著作権などの処理はどうなさっていたのでしょうか。
私自身、ソフトを作って売る仕事ではないのですがもしそうなった場合、オープンソースした場合もしくはしない場合の著作権侵害に当たらないようにするには、どうされていましたでしょうか。

“ プログラミング ” 에 대해 기입한 내용의 유효기간이 끝났습니다
계속해서 토픽을 유지하려면 새로운 토픽을 작성하세요