[C/C++]上位の工程について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ただの屍のようだ

[C/C++]上位の工程について

#1

投稿記事 by ただの屍のようだ » 10年前

とある日曜プログラマのフリーターです。
学習が進み、演習プログラム→演習プロジェクトぐらい進歩しました。

そこでの悩み事といえば、膨大化していくコードでのメンテナンスやさらなる拡張でしょう。
幸いなことに、設計も製作も管理運用も全て一人なので、思わぬバグを入れられる心配はありませんが。
設計に関して役に立つ本や知識、Webサイトなど教えて下さい。

*今のひどさをコードにすればこんな感じです:

コード:

クラス:		class Cell{略};
				class CellTable{略};
変数:			CellTable *lp_table;


プロトタイプ:	BOOL myShuffleCells(Cell *,int);
中身:			BOOL myShuffleCells(Cell *table,int size){
					srand((unsigned) time(NULL));
					for(int i=0;i<size;i++){
						int new_pos = rand()%size;
						RECT rc = *(table[i].myGetCellRect());
						*(table[i].myGetCellRect()) = *(table[new_pos].myGetCellRect());
						*(table[new_pos].myGetCellRect()) = rc;
					}
					return true;
				}
コメント:		*(table[i].myGetCellRect()):
				Cell* → Cell[] → 関数呼び出し → 戻り値:RECT* → 構造体:RECT


呼び出し:		myShuffleCells((*lp_table)[0],lp_table->myGetTableSize());
コメント:		(*lp_table)[0] = CellTable* → CellTable → operater[]呼び出し → 戻り値:Cell*

operator[]:	const Cell *CellTable::operator[](const int num)const{
					return &(this->table)[num];
				}

				Cell *CellTable::operator[](const int num){
					return	const_cast<Cell *>(
						static_cast<const CellTable &>(*this)[num]);
				}
コメント:		CellTable* → CellTable → const CellTable & + [num] → const Cell[num] → 戻り値:const Cell* → 戻り値:Cell*



アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: [C/C++]上位の工程について

#2

投稿記事 by h2so5 » 10年前

具体的にどこがどうひどいと考えているのでしょうか。

ただの屍のようだ

Re: [C/C++]上位の工程について

#3

投稿記事 by ただの屍のようだ » 10年前

自分自身のデバッグ技術は皆無といっていいでしょう。
となれば、型の変換やメモリの割り当て・開放、そして実際のアルゴリズムまで全て自分の目と脳で追わなければなりません
最近、デバッグ入門書買ってみたのですが、CCNA・CCNP・ネットワークスペシャリスト試験にWindowsの参考書も読まなければならないので
本棚においてあるだけの状態ですね。
そこで自分の負担が軽くなるような設計アドバイスや参考書があれば、ほしいとおもいました。まる

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: [C/C++]上位の工程について

#4

投稿記事 by h2so5 » 10年前

そうではなくて、提示されたコードは「ひどい」んですよね。
そのコードのどこがどうひどいのか解説してください。

ただの屍のようだ

Re: [C/C++]上位の工程について

#5

投稿記事 by ただの屍のようだ » 10年前

すでに答えてあるはずなんですけどね。
型変換が多くてバグりやすい→神経質になり、考え込む→脳で処理を追う→疲れる→
拡張する→さらに呼び出しが長くなる→神経質になり、考え込む→脳で処理を追う→疲れる
以下ループ

一行で言うと:拡張するたびに コードの追跡時間 > 考える時間 > コーディング時間 = 疲れがひどい
*実際にコメント行での型変換過程を追跡するにもかなり時間かかりました。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: [C/C++]上位の工程について

#6

投稿記事 by h2so5 » 10年前

素直にstd::vector<Cell>とstd::shuffle使えばいいと思います。

ただの屍のようだ

Re: [C/C++]上位の工程について

#7

投稿記事 by ただの屍のようだ » 10年前

CellTable ≠ Cell[] だが、Cell* を vector にするのはいい発想だと思います。
shuffleについては正直、一時間以上考えたと思います。std::random_shuffleでいけるかどうかについて
問題なのはRECT*を引数にできないと自分は思いました。

話し戻します。プロジェクトには一貫性あったほうがいいと思いますが、*と& , malloc()/free()とnew/deleteとVritualAlloc()/HeapAlloc() ,
class使うならnew/deleteで統一してもいいと思いますが、*は&より便利なのでどうしても*のほうを多用します。
そして、ポインタとSTLの相性はとてもわるいです。
あと、自分のコードを他人に渡したら、進捗が遅くなるところか、バグだらけとなって返ってくる気がします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: [C/C++]上位の工程について

#8

投稿記事 by h2so5 » 10年前

ただの屍のようだ さんが書きました: そして、ポインタとSTLの相性はとてもわるいです。
その理由はなんでしょうか。

ただの屍のようだ

Re: [C/C++]上位の工程について

#9

投稿記事 by ただの屍のようだ » 10年前

STLはコンテナ、反復子、汎用アルゴリズム、関数オブジェクト、アダプタによって成り立っていますから。

ただの屍のようだ

Re: [C/C++]上位の工程について

#10

投稿記事 by ただの屍のようだ » 10年前

話題を戻します。
今回、新たに習得したいのは、上流工程の一つである:クラス図の製作法、要点などからして
プロジェクトをチームで進めるために必要なさまざまのノウハウに関する本、Webサイトです。

softya(なりすまし)

Re: [C/C++]上位の工程について

#11

投稿記事 by softya(なりすまし) » 10年前

どうしたものか、返事がありませんね。
これは管理者コールをせざるを得ない状況と判断しました。
職歴のみでも20年のお方のニックネームを借りて、呼んでみましょうか (by屍)
管理者コール!アドバイスください!

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: [C/C++]上位の工程について

#12

投稿記事 by softya(ソフト屋) » 10年前

呼ばれてしまいましたが、名前がややこしいので勘弁して下さい。

>プロジェクトをチームで進めるために必要なさまざまのノウハウに関する本、Webサイトです。
本や座学で学べる物ではないです。会社で実際に体験される事をオススメします。

>クラス図の製作法、要点などからして
単に技法で良ければUMLを学ばれると良いでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ただの屍のようだ

Re: [C/C++]上位の工程について

#13

投稿記事 by ただの屍のようだ » 10年前

就職については考えたこともありますが、まだまだ修行中な段階で、思うようにプロジェクトを完遂できるだけの力がまだありません。
自分はあくまで十分な知識&スキルを前もって、作品に取り組むつもりですので、ざっと考えてあと1年はかかるでしょう。
上流工程については、無知なもので、どこから取り組めばいいかわかりません。
ただ目的は明確で、パフォーマンス(主に速度の面)を可能な限り維持して、拡張・保守しやすいコードを設計したいと思います。
やがて、チームメンバーを捕まえたとき、人数に比例して生産性が向上するようにしたいです
*ただし、チームメンバーのスキルは自分と互角とします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: [C/C++]上位の工程について

#14

投稿記事 by softya(ソフト屋) » 10年前

ただの屍のようだ さんが書きました:就職については考えたこともありますが、まだまだ修行中な段階で、思うようにプロジェクトを完遂できるだけの力がまだありません。
自分はあくまで十分な知識&スキルを前もって、作品に取り組むつもりですので、ざっと考えてあと1年はかかるでしょう。
上流工程については、無知なもので、どこから取り組めばいいかわかりません。
ただ目的は明確で、パフォーマンス(主に速度の面)を可能な限り維持して、拡張・保守しやすいコードを設計したいと思います。
やがて、チームメンバーを捕まえたとき、人数に比例して生産性が向上するようにしたいです
*ただし、チームメンバーのスキルは自分と互角とします。
人との取り組みの中で学んでいくしか無いと思います。
会社に入るか、自分で人を集めるか、自分のやりたいようにしてください。
可能性の高い方法を提案しましたのでこれ以上は私からアドバイスすることは何もないです。独自の道をお進みください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ただの屍のようだ

Re: [C/C++]上位の工程について

#15

投稿記事 by ただの屍のようだ » 10年前

自虐のつもりはないですが、低学歴・未経験・貧乏という人生が詰むような3ステータスがそろってます。
ITの知識・スキルも全てアルバイトで生活費稼ぎながら独学したものなので、就職しようとすれば作品が必要になります。
就職先もおそらくブラック企業で、ボロ雑巾になって捨てられます。
ボロ雑巾になりたくなければ、完成度の高い作品を作る必要があります、どうか力を貸してください。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: [C/C++]上位の工程について

#16

投稿記事 by softya(ソフト屋) » 10年前

ただの屍のようだ さんの考えは独特すぎて、私にはアドバイスが難しすぎるのです。

> ボロ雑巾になりたくなければ、完成度の高い作品を作る必要があります、どうか力を貸してください。
その考え自体に賛同できません。
完成度の高い作品を作れば、「就職先もおそらくブラック企業で、ボロ雑巾になって捨てられます。」を回避できる論理の飛躍も良く分かりません。
つまり、私には言い訳をして回り道をしているようにしか見えません。
前に何度かアドバイスしてますが、やはり自分のやりたい方向しか目に入らないようなので何を言っても私の言葉は響かないと思います。
なので、冷たいようですが自分の信じるように道を突き進んでくださいとしか言えません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ただの屍のようだ

Re: [C/C++]上位の工程について

#17

投稿記事 by ただの屍のようだ » 10年前

突き進むつもりでいます。
人との取り組みの中で学ぶことでも、人とn年も取り組んできた熟練のみなさんなら”それらのこと”は自然と身についたはずです。
”それらのこと”が書かれている本や身についた”それらのこと”を掲示板通して、私に教えてくれればいいです!

*私は低学歴ですが、学力・知能は低くないつもりです、現にその気になれば”なんでも”独学で習得します。
”質問をして、答えを得る”。こんなやり取りも私の中では立派な”人との取り組み”です。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: [C/C++]上位の工程について

#18

投稿記事 by softya(ソフト屋) » 10年前

ただの屍のようだ さんが書きました:突き進むつもりでいます。
人との取り組みの中で学ぶことでも、人とn年も取り組んできた熟練のみなさんなら”それらのこと”は自然と身についたはずです。
”それらのこと”が書かれている本や身についた”それらのこと”を掲示板通して、私に教えてくれればいいです!

*私は低学歴ですが、学力・知能は低くないつもりです、現にその気になれば”なんでも”独学で習得します。
”質問をして、答えを得る”。こんなやり取りも私の中では立派な”人との取り組み”です。
すいません。
私にはついて行けない理論です。
なので、他の方にお任せします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ただの屍のようだ

Re: [C/C++]上位の工程について

#19

投稿記事 by ただの屍のようだ » 10年前

あいかわらず強情ですね。
自分のような若者にご教授を与えてもバチはあたらないし、
デメリットもほぼないうえ、掲示板の知名度をあげるメリットがあります。
私としては、親切なベテランからアドバイス(書名や用語だけでも)いただけると信じたのに、裏切られた気分ですね。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: [C/C++]上位の工程について

#20

投稿記事 by softya(ソフト屋) » 10年前

ただの屍のようだ さんが書きました:あいかわらず強情ですね。
自分のような若者にご教授を与えてもバチはあたらないし、
デメリットもほぼないうえ、掲示板の知名度をあげるメリットがあります。
私としては、親切なベテランからアドバイス(書名や用語だけでも)いただけると信じたのに、裏切られた気分ですね。
私とただの屍のようださんは、相性が悪いんですよ。
私は痛切にそう感じでいます。
それ以上の理由はないです。
ご勘弁ください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ただの屍のようだ

Re: [C/C++]上位の工程について

#21

投稿記事 by ただの屍のようだ » 10年前

softyaさんはおそらく体調不良のせいでそう感じただけでしょう。
頭の熱を冷やしていただけるときっといつもの副管理人らしさを取り戻すはずです。

私怨抜きで自分のような”卵”に適切なコメントをよろしくお願いします。
他の方々もなにかしらアドバイスくれるとありがたいです

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: [C/C++]上位の工程について

#22

投稿記事 by h2so5 » 10年前

じゃあこれでも読んでください。

ただの屍のようだ

Re: [C/C++]上位の工程について

#23

投稿記事 by ただの屍のようだ » 10年前

The Art of Readable Code なるほど。
私は英語がとても下手なので、英語の勉強には使えそうです。
内容はコメント見る限り、良い(わかりやすい)コードの書き方みたいですが、目的とは微妙に離れています。
”良いプロジェクト”の作り方を紹介・説明する本もお願いします。

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 13年前
住所: 大阪府
連絡を取る:

Re: [C/C++]上位の工程について

#24

投稿記事 by Hiragi(GKUTH) » 10年前

h2so5さんが紹介した本は一応日本語に翻訳されたモノもあります。

とりあえず買っといて損のない本だと思いますが。
だいがくせい!

ただの屍のようだ

Re: [C/C++]上位の工程について

#25

投稿記事 by ただの屍のようだ » 10年前

私は貧乏ですが、参考書にはケチらないタイプです。
実際に、本の価値を下げるために”英語の勉強には使えそうです”といっているわけではありません。
一応、英語も自分の学習範囲内に入ります。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: [C/C++]上位の工程について

#26

投稿記事 by h2so5 » 10年前

良いプロジェクトというかチームの話ですが。

mes

Re: [C/C++]上位の工程について

#27

投稿記事 by mes » 10年前

> 学力・知能は低くないつもりです、現にその気になれば”なんでも”独学で習得します。

そんなに頭がいいなら人の知識を当たり前のようにクレクレ言ってないで勉強したらいいんじゃないですかね。

ただの屍のようだ

Re: [C/C++]上位の工程について

#28

投稿記事 by ただの屍のようだ » 10年前

私は今日も、現在も、5分前も勉強していますよ。
ただ新しい分野にむやみにあれこれ探って、財布・寿命を薄くするより、先駆者の足跡を追うのが”本当に賢い人”のやり方なんですよ。
(ITに限らず、どの分野においても、私はただ追うに徹する)
さきほども言ったように、上流工程に対する知識は皆無です。もう少し目印をくれたほうが私としては追いやすいかなと思います。

coco

Re: [C/C++]上位の工程について

#29

投稿記事 by coco » 10年前

ただの屍のようださん、初めまして
質問の内容は高度なためお答え出来ないのですが、純粋に気になった事だけ尋ねさせて下さい。
就職先の予定としてはゲーム系ではないSEでお間違いないでしょうか?
既に充分な技術力をお持ちの様な気が致しますが、就職先がブラックかどうかを警戒するよりも、まず就職してそれから転職を行うのは如何でしょうか?
一般職よりも手に職があるため転職し易いですし、何より職歴無しでいきなりホワイトな大手?は少々難しい様に思えました。(勿論不可能ではないと思います。)

プログラマの寿命は短いと言われておりますし、就活では若い人達と競わねばなりませんので…。特にホワイト企業は人気も高いですから。

質問に返答している訳では御座いませんので、お答え辛ければスルーして下さい。

ただの屍のようだ

Re: [C/C++]上位の工程について

#30

投稿記事 by ただの屍のようだ » 10年前

自分としては、ネットワークエンジニアを第一目標にしています。
理由は自宅でネットワーク機器一通り組むのが大変財布にやさしくないし、スイッチ一つでも本より圧倒的に高いです。
CCNA・CCNPのコマンドや知識をうまく頭に入れることができれば、すぐさま転職してもいいでしょう。
ゲーム系かどうかは正直どうでもいいです。
上でも書いたように足りない知識を独学していけばいいので、どの分野でもうまくやっていける自信はあります。

>既に充分な技術力をお持ちの様な気が致しますが → 過剰評価です。

coco

Re: [C/C++]上位の工程について

#31

投稿記事 by coco » 10年前

おぉ、ネットワークエンジニアでしたら今どこでも人手不足ですから全く問題無かったですね。
作品作りとおっしゃっていたのでてっきりソフト側かなと勘違いしておりました。
(自分もPHP,MySQLを使ったデータサーバ開発のプログラマとしてアルバイトや仕事探しをしておりましたが、ネックワーク系は作品提出を求められる事がほとんど無かったので。ただごくまれにC++の理解力を見るとのことで作品提出を求める所もありました。

自分も独学で頑張ってきたので親近感が沸きますね。
既に自分などよりも幅広い技術をお持ちな事は間違いないと思います。
余計なお節介でした、これからも頑張って下さいm(_ _)m

ただの屍のようだ

Re: [C/C++]上位の工程について

#32

投稿記事 by ただの屍のようだ » 10年前

Advanced Windowsが思うように進まなくて、ネットワークのほうも今CCNAやってる最中なので就職するにしても、来年あたりになります。
歳からしても、おそらく±2ぐらいしか違わないと推測します。
あと、ソフト側というのは間違っていません。その気になれば、n年後に一緒に働く機会があるかもしれませんね。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: [C/C++]上位の工程について

#33

投稿記事 by softya(ソフト屋) » 10年前

> 横槍ですみませんが、学ぶ姿勢のある私も応援してください

何事も相性がありますので、私が回答すると私が心身症になりそうです。
ご勘弁いただければと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ただの屍のようだ

Re: [C/C++]上位の工程について

#34

投稿記事 by ただの屍のようだ » 10年前

せっかく立てたのだから、1項目だけでも収穫がほしいところです。
はい、ドーン UML! これに絞ります。
UMLのもたらす利点、UML極めるとなにができるか、プロジェクトにおいてどんな役割なのか、などなど
好きなようにいくらでも回答してください。←の答えに少しでも満足したら解決にします。

*これ以下のことについては、答えたくなければスルーでお願いします。
掲示板トップの#mixcppコメント一通り読みました。
自分としては、前々からゲーム業界にあまりいいイメージはないのですが、ぶっちゃけブラック?
注:業界全体ではなく、所属している環境のみで回答してください。

ターボ
記事: 152
登録日時: 12年前

Re: [C/C++]上位の工程について

#35

投稿記事 by ターボ » 10年前

ただの屍のようださんおはようございます。

UMLならこのソフトを使って見られてはいかがでしょうか?

astah* community - 無償UMLモデリングツール

http://astah.change-vision.com/ja/produ ... unity.html

zeek

Re: [C/C++]上位の工程について

#36

投稿記事 by zeek » 10年前

ただの屍のようだ さん、こんにちは。

組み込みソフトとなっているのでちょっとずれてしまうかもしれませんが、UML 関連情報としてこれはいかがでしょうか?
http://www.ipa.go.jp/files/000005113.pdf

また、ご参考までにソフト開発に役立ちそうな情報はここにもあります。
http://www.ipa.go.jp/sec/publish/index.html
いくつかは、無料で閲覧できます。

ただの屍のようだ

Re: [C/C++]上位の工程について

#37

投稿記事 by ただの屍のようだ » 10年前

ターボさん、 zeek さん、貴重な情報とフリーソフトありがとうございます。
自分は組み込みではなく、Windowsプログラミングやってる人ですが、きっと役に立つと思います。
*まぁC/C++でWINAPIと標準ライブラリだけでプログラム組んでいたら勘違いされるのもわかります。

ただの屍のようだ

Re: [C/C++]上位の工程について

#38

投稿記事 by ただの屍のようだ » 10年前

さて、一応収穫はあったので、座学に専念するとしますか。
ゲーム業界に関するコメントがないってことは、ご自由に"想像"してくださいってことですね。

閉鎖

“C言語何でも質問掲示板” へ戻る