【提案】ソースコード量の計測方法【議論】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG関数にせずにコピペしたら量が増える等という欠点があるからだ。
また、実行ファイルの容量で計るのもおかしい。なぜなら、静的リンクを
すると量が増える。いくらコメントを書いてもソースコード量に加算されない
等といった欠点があるからだ。
そこで私はソースコードを圧縮したサイズをソースコード量とする方法を提案する。
これなら、同じ処理をコピペしたりしてもソースコード量に影響が少なく、
より正確な量を測定できると思うがどうだろうか?
0153デフォルトの名無しさん
NGNG個人で書くコードの話なんだが?
個人で100万行書いたらあなたを尊敬します、マジで。
漏れは今現在メンテしてるソースで7万行程度。
>>147
ツリー型掲示板プログラムです。最初は友人達とメーリングリストを使って
情報交換をしたかったのですが、環境による制約から CGI スクリプトで
それを作成することにしました。最初は Lisp で書こうと思っていたの
ですが、インタプリタが用意されていないので Perl を使いました。
本当は RDBMS を使いたかったのですが、これも環境による制限から
ファイルベースの DBM を使いました。
プログラムを書く前に複雑な問題は可能な限り紙の上で解消しておくので、
実際にコーディングするときに複雑だと思った事はあまりありません。
使用できる言語は Scheme, Common Lisp, C, Perl, Python です。
やりたい分野は、複数人作業における複雑な作業を抜本的に改良する
ようなものです。最近良いと思ったのは CVS です。
他人数で仕事をした事はありません。3 人が最高です。
0155デフォルトの名無しさん
NGNGどんなプログラムを作ってるのか、概要ぐらい書けよ。
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG頭よくないね。プロジェクトの規模が重要なの。もちろんその中で
自分がどれくらいの位置を占めているかも重要だがね。
それがわからないから、行数の話でかみ合わないのかね。
0158デフォルトの名無しさん
NGNGとかいってみる。
015983
NGNG良い点
・プログラムスキルだけでなくCVSなどのバージョン管理についても理解がある
・掲示板のバックエンドにRDBMSを採用しようとした判断(結果としてDBMだけど)
悪い点
・経験プログラムの偏り。
・GUIプログラミングに関するスキルが不明
「それだけの言語経験がありながら、メジャーと言われる
C++/Javaのいずれにもやらなかったもしくは興味を持たなかった理由ってありますか?」
「UnixプラットフォームでもGUIの重要性が高まってきています。
Tk/Qt/Gtk などの経験はありませんか?」
0160デフォルトの名無しさん
NGNG>使用できる言語は Scheme, Common Lisp, C, Perl, Python です。
ほほぅ。なかなかユニークだね。この辺ってなんか語ることある?
言語自体をあれこれいじって楽しんだ/研究したとか?
>やりたい分野は、複数人作業における複雑な作業を抜本的に改良する
>ようなものです。
それはとりあえず企業が自分で使うためのもの、と受け取ってよいの?
それともそういう製品の開発に携わりたいとか?
bugzillaとかのバグトラッキングシステムなどは興味ある/ない。
プログラムを作りたいのか、それのこだわらず開発支援の環境を
構築することに興味があるのか?たとえば市販のツールを組み合わせて
同じことをするというのも射程距離なのか?また、支援ツールの
開発をしたいのか、支援環境の維持管理も含まれるのか?
ISOうんちゃらやCMMなどについて、興味ある・ない?肯定的・否定的?
>>159
普段使用している環境が GNU/Linux なせいもあると思いますが、あまり
C++ の必要性を感じた事がありません。以前、多様性が便利かどうか
試してみたいことがあったのですが、C で実装して終ってしまいました。
Java についてですが、文法は理解できます。Java に手を出したことも
ありましたが、その時点で必要性が感じられなかったので十分には
学習しませんでした。環境において必要とあらば、C++ でも Java でも
再学習しようと思います。
GUI ですが、GTK+ なら使えます。マニュアルをみながらですけど。
0162デフォルトの名無しさん
NGNG要求される信頼性と導入コスト・作業量との兼ね合いを
どの程度考えて「本当は RDBMS を使いたかった」と
言っているんだろうかとオモタ。
・・・あと RDBMSって言うよりは、製品名も出しておこうよ。
個人的には、もう少し聞きたいね。
・SQLは打てる?
・ER図は書ける?
・テーブル数とかの規模は?
・導入(環境設定)と運用(リカバリ・ログ管理)の作業はできるの?
016383
NGNG「結局、Cで実装したということですが…
多様性のメリットが理解できなかったということでしょうか?
それとも(書き捨てプログラムなど)場合によっては Cの方が
メリットがあると判断した結果でしょうか?」
> ほほぅ。なかなかユニークだね。この辺ってなんか語ることある?
> 言語自体をあれこれいじって楽しんだ/研究したとか?
学習した順序は Perl, C, Common Lisp, Scheme, Python です。
自分はずっと、エラー処理をいかに扱うかについて悩んできました。
関数の返り値を毎回チェックするのが、何か間違いであるかのように
思えていたのです。Scheme の継続を理解してから、例外処理を意識
するようになりました。例外処理が outgoing-only な継続である事に
気が付いてから、エラー処理が楽しくなりました。
言語自体で楽しかった (し、為になった) のは Lisp におけるマクロです。
この概念は C を使うときでも多いに活用させてもらってます。
> それはとりあえず企業が自分で使うためのもの、と受け取ってよいの?
> それともそういう製品の開発に携わりたいとか?
これは両方ですね。企業が自分のために使うものでもあり、自分のために
作るものでもあると思ってます。
バグトラッキングシステムは利用したことがない (大規模なプログラムを
作成したことがないので、大量のバグも発生しない) ので、まだ
わかりません。必要になったら探索してみようとは思います。
最後の質問ですが、標準規格のような類でしょうか?
016583
NGNGだって掲示板だよ。にちゃんねるの現状, TBCの情報流出などを見ても
RDBMSにしておくのはベターチョイスだと思う。
121の傾向を見るとDBにはPostgreSQLを選択してきそうだから、
導入コストも低いと思う。(DBMと変わらんだろ)
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNGいいんじゃない?2chのスレなんてこんなもんだよ。
>>162
どの程度のレベルを「打てる」というのか分かりませんが、とりあえず
思い付くようなものは問題なく打てると思います。あとは本を読むので。
ER 図ってのは始めて聞く単語です。
テーブル数は場合によりけりでしょうか。数は結果論だと思います。
導入、運用、管理はできます。サーバ管理者をやっていた経験もあります。
>>163
多様性は便利だと思います。すでに Lisp を習得していたので、無意識の
うちに多様性の恩恵にあずかっているんでしょう。C で書くと、他の言語
の処理系からでもある程度リンクしやすいので、将来的には利点があると
思います。GTK+ なんかがその例ではないでしょうか。
0170デフォルトの名無しさん
NGNG>にちゃんねるの現状
鯖落ちとかパフォーマンス問題を指してるのね?
言っておくけど、ファイルベースのものを単にDBに置き換えたからといって、
パフォーマンスがファイルのときより改善されるとは限らないからね。
インデックスの貼り方一つで、パフォーマンスが数倍〜数十倍変わるし。
その辺のチューニングは121は習熟しているんだろうか?
>TBCの情報流出
sa/パス無し とか system/manager のまま運用するような愚かな真似をすれば、
DBでも十分問題がおきそうな気がします。
ファイルベースでも Grant/Deny をきちんと設定すれば、問題ないと思います。
>導入コストも低い
一人でやるならともかく、複数人の作業でDBを使うアーキテクチャを組むと、
スキルのある人員の確保とかで苦労が増えるかもしれません。
まぁこれはDB接続とかのコアな部分をコンポーネント化して隠蔽すれば良いのでしょうけど。
コーディング量は確実に増えますでしょうから、その辺の部分も含めたコストを121は
どの程度考えてるんでしょうか?
017183
NGNG別にパフォーマンスだけの話じゃないけどさ、同時アクセス、排他制御、シリアライズといった
恩恵を DB 使えば簡単に得られるのに、自分で実装するのって馬鹿らしくない?
それに、dat落ちってなんだよ。DBにしておけば…。
それと最近DBのチューニングヲタが多いんだけどさ、チューニングがあまり有効にならない分野ってのも
多いんだよ。DWHとかな。全トランの 1/10以上のレコードを取り出して集計しないといけないとかね。
管理者ロールにパスワード設定するのは当たり前。この前 SQL Server の sa/ノンパス に
ついて「セキュリティホール」なんて報じているメディアもあったけどね。
DBの導入コスト、ファイルシステムを使用して排他制御するのと天秤にかけたら…
漏れは DBの方が開発コストを抑えることができると思う。
0172デフォルトの名無しさん
NGNG業務でDBが絡むと、ER図(EntityRelationDiagram)は
結構使われてると思いますんで、早速ぐーぐって勉強することをお勧めします。
>サーバ管理者をやっていた経験もあります。
もーちょっと具体的に。
・いつからいつまで?
・どこで?(ex.「中堅流通業のIS部門で」)
・誰と?(ex.「運用チームは5人、自分はサブリーダで2人面倒見てました」)
・何を?(ex.「NT4.0ドメイン・ファイルサーバの管理とFreeBSDベースのWebサーバの設定・管理」)
0173デフォルトの名無しさん
NGNG>自分はずっと、エラー処理をいかに扱うかについて悩んできました。
>関数の返り値を毎回チェックするのが、何か間違いであるかのように
>思えていたのです。Scheme の継続を理解してから、例外処理を意識
>するようになりました。例外処理が outgoing-only な継続である事に
>気が付いてから、エラー処理が楽しくなりました。
なるほど。一緒に仕事すると楽しそうだね。ところでやぼなこと聞くけど。
約1000行が最大というのだから、エラー処理に関する経験もその中での
ことと思っていいんだね。
>これは両方ですね。企業が自分のために使うものでもあり、自分のために
>作るものでもあると思ってます。
それはそうなんだけど、小規模な会社だとそういった部分に金をかけられない。
キミが就職しても片手間にやれれば御の字だと思う。
大規模な会社の場合開発支援の部署は開発とは別にある。外販する製品を
開発する部署もまた別。開発支援の部署に入ればひがなそれをやることになる。
製品を開発しながら自分の開発に役立つツールを部署内で作るというのも
あるけれど、あまり比重をかけられないのが普通。それを望むとなると、
かなり会社を選ぶ必要があると思う。例えば基礎研究部門とかのように
比較的自由度が効くようなね。ただ当然そういったところは誰でも歓迎って
わけじゃない。
シビアなことをいえば開発と開発支援の整備を両方とも目いっぱいってのは、
あまり期待しない方がいいと思う。(あくまで一般論だよ。)
>バグトラッキングシステムは利用したことがない (大規模なプログラムを
>作成したことがないので、大量のバグも発生しない) ので、まだ
>わかりません。必要になったら探索してみようとは思います。
なるほど。
>最後の質問ですが、標準規格のような類でしょうか?
検索すればでてくるよ。開発支援部署を希望するなら、そういったことに
興味を持つのもよいと思う(そうの上で否定するなり肯定するなり)。
業務フローを整備し、それを支援する社内情報システムを作るとか。
けどキミはきっと開発の方をやりたいんだよね。
このままいくとキリがないので、時間的な区切りをつけませんか?
たとえば最大でも 200 とか。その時点で判定を下して頂ければと思います。
>>170
DBMS の本質はプログラムからデータの物理的な表現を切り離すことに
あるので、理想的には DBMS は指数単位のクエリにも耐えられるものと
仮定してプログラム設計を行うべきだと思います。現実はそうでは
ないので、ある程度は考慮しますが。チューニングについてはサッパリ
です。「遅いかな?」と感じたり、どう考えても実行効率が悪い様な
場合のみ本でも読んで解決しようというスタンスです。
あとは実際に速度を計測します。
>>172
ER 図の説明、ありがとうございます。早速調べてみようと思います。
「サーバ管理」というのは大袈裟な表現だったかもしれません。実際には
個人でサーバを立ててメールや Web 等を利用しようといった具合です。
・開始と終了年月日は忘れました。大体 1 年半くらいやってました。
・個人でやってました。
・ひとりでやってました。友人のサーバ管理を補助していたこともあります。
・GNU/Linux で、Web、メール、DNS、あとはログインもさせていました。
>>173
1000 行が最大ではありませんよ。最近に作った小規模なものがその行数
だったということです。一番 (自分の作ったものの中で) 大きいのは
多分 GUI フロントエンドの付いたLisp インタプリタですが、手元に
ないので行数は数えられません。
>シビアなことをいえば開発と開発支援の整備を両方とも目いっぱいってのは、
> あまり期待しない方がいいと思う。(あくまで一般論だよ。)
やっぱりそうですか。自分のやりたいのは開発なので、支援プログラムには
時間を割り当てられなくなってしまいそうですね。
0176162・172
NGNG「デスマーチ」について、君の思うことを書いてみて。
>やりたい分野は、複数人作業における複雑な作業を抜本的に改良する
>ようなものです。
これと絡めてね。
----
技術的素養は十分あると思うよ。技術者としてなら採用したいと思う。
017783
NGNG現場の人間として面接に参加している人の多くは「採用」するんじゃないかな。
ただ、大手のように年寄りが余生を過ごすためにやるような人事部だけの面接だと
どうかなー、むずかしいかもしれないね。
君の偏りがあって誰でもピクっとくるキーワードがあまりないんだよね。
C++/Javaを触ったけど当時必要性を感じなかった、必要あればやる。というのも
現場の人間はプログラマにとってもっとも大事な要素が「自分でものごとを調べる能力」だと
知っているから君を評価できるけど。C++/Javaに挫折したと受け取る素人もいるし。
「必要があれば調べる(能力が私にはあります)」というのも「今後がんばります」という
精神論にしか聞こえない素人もいる。
極端な例だけどさ…
「PerlでCGI…ふーんアクセスカウンターとか作れる人か… (いらないや)」
「C++/Javaは… 挫折したのか… (いらないや)」
「本読んでがんばる? やる気だけじゃーなー (いらないや)」
面接攻略という面から見れば、もっとウケるキーワードを用意するとか、
調べればできるといった言い回しはやめたほうがいいかもしれない。
>>176
デスマーチの主な原因のひとつに、「曖昧さ」にあると思います。
ドキュメントに使用する文字、日付のフォーマット、決断の権限などを
明確にすることによって、かなりオーバーヘッドが軽減されると思います。
あとは無駄な装飾に拘らない事が重要だと思います。
お客さんに提出する文書は LaTeX で整形して、あとは全て plain text が
良いと思います。そうすればメーリングリストやツリー型掲示板で
議論の流れを明確にして、途中参加の人もある程度の速度を以てプロジェクト
の一員になることができると思います。バージョン管理も重要ですね。
何かというと、密接なコミュニケーションが最も重要なんだと思います。
あとはプロジェクトリーダーとして、高給取りで百戦錬磨のハッカーがいると
最高です。
新卒で今年の春から働きだしたもので、この程度しか答られませんが。
>>177
やった。ありがとうございます。
あまり自分は得意ではないのですが、おっしゃる通りキーワードを並べると
効果的かもしれませんね。周りの人があまりにも「キーワードは○○」
みたいな口調で話しているので、何だかなぁと思っていた所なんですよ。
0179162・172・176
NGNG>何かというと、密接なコミュニケーションが最も重要なんだと思います。
>あとはプロジェクトリーダーとして、高給取りで百戦錬磨のハッカーがいると
>最高です。
この辺はちと夢見すぎのような気もするけど(というか、少し短絡的のような…)。
「密接なコミュニケーション」が具体的に何を意味するのかとか、
曖昧な仕様の検出と明確化への具体的なプロセスをどうするかとか、
その辺を実務で覚えていくといいと思う。
あと、ちと技術的なアプローチに偏ってると思うよ。
プロジェクト参加者のモチベーションとか、顧客・自社・協力会社間の政治的なものが
最終成果物に影響しないってのは、少数だと思うんで、本気で首突っ込むならば
その辺でのリーダーシップを執るための手腕も磨いてほしい。こういう問題は避けないでね。
>途中参加の人もある程度の速度を以てプロジェクト
>の一員になることができると思います。
ここをちゃんと考えてるのはいいね。こういう気配りを一つ一つ積み重ねて、いずれは
プロジェクトの初期から携われるぐらいの力を持ってると思うよ。
とりあえず俺なら、デカ目のプロジェクト(100人月以上)にPGとして参加させてみたい。採用っ!
0180デフォルトの名無しさん
NGNG>1000 行が最大ではありませんよ。最近に作った小規模なものがその行数
>だったということです。一番 (自分の作ったものの中で) 大きいのは
>多分 GUI フロントエンドの付いたLisp インタプリタですが、手元に
>ないので行数は数えられません。
それを先にいってよ。(笑
雑談だけどLispインタプリタはどの言語で書いたの?
>新卒で今年の春から働きだしたもので、この程度しか答られませんが。
ほお新卒か。技術的はなかなかのもんだね。少なくと職を選ばなきゃ仕事にあぶれる
ことないと思う。
けど、キミは何がやりたいかだね。例えば言語をいじったりツールを作って飯
を食えるのは相当なレベルである必要がある。俺の会社にも研究部門はあるが、
いいたかないが学歴も、院卒の新卒か第二新卒が前提。それ以外採らないわけ
じゃないが、それを補ってあまりある相当な資質が必要。Lispインタプリタ云々は
微妙な線だ。
一方そうでない場合は受託か製品開発をやってもらうことになると思う。
perlにこだわるというなら、はっきりいって小規模なWeb作成の受託とか
だと思うけど、それでよいの?あるいは社内のサーバー管理者とか?
なんとなくそれにはもったいない気がする。
言語をこんだけいじっているなら、他の言語に乗り換えてもやっていける
と思うけど、その場合どんな仕事をしたいかになる。優秀そうだから
技術だけ見て採用不採用を決めるなら、採用ってことになる。
けど入ってもキミが不本意と思う仕事しかさせてあげられなければ結局また
転職ってことになって、うちの会社もキミも損だから。
そして、必ず実際の面接で聞かれると思うけど、転職を考えた理由。
0181例の部外者
NGNG0182デフォルトの名無しさん
NGNG>極端な例だけどさ…
>「PerlでCGI…ふーんアクセスカウンターとか作れる人か… (いらないや)」
>「C++/Javaは… 挫折したのか… (いらないや)」
>「本読んでがんばる? やる気だけじゃーなー (いらないや)」
>
>面接攻略という面から見れば、もっとウケるキーワードを用意するとか、
>調べればできるといった言い回しはやめたほうがいいかもしれない。
初めて意見が合ったね。
面接する方も優秀なやつを取り逃がさないように努力はする。
しかし結局会話に上らなかったことは知りようがないのだから、
>>121の発言のように妙に控えめなのは、困る。根掘り葉掘り
聞いてくと、なんだ結構面白いやつじゃないか、って話になっても
そこまでで時間切れになって詳しく聞けないこともある。
そうするとどうやっても大味な評価になってしまうからね。
聞いて欲しいことはそっちからヒントを出してくれないと。
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG実績の方が確実だが、新卒に実績をっていっても仕方ないから。
0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNG>>180
> それを先にいってよ。(笑
> 雑談だけどLispインタプリタはどの言語で書いたの?
動くことには動いたのですが、明確なゴールが無かったため挫折してしまい
ました。納得のいく品ではなかったので、人に話すつもりはなかったん
ですよ。言語は C です。
始めてプログラムを作成した頃は、周りの友人 (非プログラマ) の意見を
反映できるようなプログラム作りを目指していました。しかし文献を読ん
だりしていくうちに、だんだん技術に偏った考え方をするようになって
しまいました。これが本末転倒であることは十分にわかっています。
もう少し腕を磨いてから、もう少し腕を磨いてから... という無限ループ
に陥っている状態です。目標を再確認することが、当面の目標です。
>>182
以前は面接でかなりアピールする方だったのですが、(自分でいうのも
なんですが) 次第に謙虚になって、現在のようになってしまいました。
これじゃダメですね。
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG>なんですが) 次第に謙虚になって、現在のようになってしまいました。
りきんで伝える必要はないけど、(淡々とでも)伝える必要はある。
俺の場合は淡々と説明してくれていいけど、相手による。
>動くことには動いたのですが、明確なゴールが無かったため挫折してしまい
>ました。納得のいく品ではなかったので、人に話すつもりはなかったん
>ですよ。言語は C です。
Lispインタプリタを書いたというなら評価の対象になる。1000行のperlのcgi
よりもその価値が小さいとは思えない。それをいうつもりがないというのは、
それを一切評価して欲しくないといってるに等しい。
0190デフォルトの名無しさん
NGNG彼のところはどうかしらんが、、、
たいてい面接官ってちゃんとプログラムすら書いたことないやつが平気で
君?難行ぐらいかいたことある?なんて聴いて、その行数でそいつの経験血
を推定しちゃってる企業は事実として、割りと多い。
またソフトウェアマネジメントにしても、ソフトウェア組んだことない奴(例えば
ハード屋出身のマネージャが時代の趨勢で最近ソフトも面倒みなきゃらんので)
が人を取るために、なくなく面接官やってたりする。
0191デフォルトの名無しさん
NGNGそういう面接官の場合、行数を聞こうが他の何を聞こうが、おんなじだろ?
0192デフォルトの名無しさん
NGNGあるならぜひ知りたいね。
0193デフォルトの名無しさん
NGNG面接日が決定してから、面接までのオナニーの回数。
これが多いほど精力が高いとみなすことができ、
またエロを前にぶら下げることで馬車馬のように働かせることができる。
また、オナニーばっかりしているやつなどは、
業績不振のときに切捨てても会社に実害をおよぼすことがない。
0194デフォルトの名無しさん
NGNG>また、オナニーばっかりしているやつなどは、
>業績不振のときに切捨てても会社に実害をおよぼすことがない。
最初から雇わない方がもっと害がないんじゃない(w
0195デフォルトの名無しさん
NGNG「20〜30万行くらいでしょうか…」ってハッタリかましたんだけどさ、
どうゆうプログラムなのか内容も聞かれずに面接終わったよ。もちろん採用ね。
ようするに行数を多く申告すればいいってこった。
0196デフォルトの名無しさん
NGNG小さい会社で、その会社に入ることが目的の場合はそれでいいけど。。。
配属する部署とか、最初に入れるプロジェクトとかも面接のデータを参考にするから、
あんまり事実と違うこというと入ったあと不幸になるんじゃないかと。
ま、入ってしまえばこっちのもんって考えも一概に否定しない。実際這ったりかました
手前、そのとおり振舞う羽目になるってこともある。うそから出たまことだね。
自己責任てことで。
0197デフォルトの名無しさん
NGNGプログラムの規模をソースコードや、それを圧縮したもので表す方法は、プログラム
言語に依存するという問題がある(アセンブラの1000行とPerlの1000行では規模・
複雑さが大きく異なる)。
そこで、ソースをコンパイル・アセンブルしたバイナリをさらに圧縮したサイズで
プログラム規模の指標とする方法を提案する。
この方法であれば、言語にも依存せず、無意味なコピペにもあまり依存しない。
画期的な方法である。
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNGbccは質の悪いデブコード吐くし、VCL使えばそれだけで超巨大ファイルが出来る
0200デフォルトの名無しさん
NGNGであるとき、
作業量 = 圧縮(コンパイル(開発後)) - 圧縮(コンパイル(開発前))
かな。
0201デフォルトの名無しさん
NGNG言語ごとに係数をかければいい。
0202デフォルトの名無しさん
NGNG何を言ってるのかわからんのはオレだけか?
0203デフォルトの名無しさん
NGNGリソースとかどうすんの?
#今昔作ったVBのexeをcab最高圧縮したら320KBになったけど
#これってどうなんだ?
■ このスレッドは過去ログ倉庫に格納されています