コードが汚いと開発・修正の工数が10倍になると判明 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
納期に苦しんでいるSEさま必見の情報です。
今すぐコードが綺麗か汚いかを
ツールを使って調査してみましょう >>1
コードがクソなのは設計がクソなのはだからな。 >>3
設計通りに書くのは無能のコーダー
バイト君レベル
設計通りだと汚くなりそうなら提案する
実際に着手して初めて分かる問題点も見つかるだろうし、「設計がクソ」で終わるのは仕事の進め方がヘタクソ
設計の早期修正は他メンバーを楽にさせる点(1人のコストで10人のコスト削減)で重要
勿論その実績をまとめておいて後で賞与面接とかでアピールするんだぞ >>6
>設計通りだと汚くなりそうなら提案する
>実際に着手して初めて分かる問題点も見つかるだろうし、「設計がクソ」で終わるのは仕事の進め方がヘタクソ
報酬をケチるから、そういうバイト君しか来ないんだろ。
良い人材が欲しければ、それなりに払えよ。 どこかの研究か調査で分かったの?それならそのソースは?
昔から割と言われているプログラマーの生産性は数十倍違うってやつは
1950年代だったか1960年代だったかに実際計測して出た数字だから
今でも折にふれて言われているわけで。
>>1の根拠になるソースはどこ?体感()? 割り込み電話と、無駄な会議を減らせば、それだけで生産性10倍いきそうだな。 設計を直すだけならいいけど、そういう奴は大抵仕様を変更しようとするからな。 無能残業して時間報酬相場を下げるな
【知的財産と契約料金の搾取助長者ばかり】
[受注系SI生涯損害促進者を追放すべき]
偽装請負従犯SEの動機
コミ障
趣味
高卒
文系大卒
低偏差値大卒
偽装請負従犯SEの迷惑
不当指示遵守
強要期限遵守
無能残業
安売競争
利益提供
裁判苦手
対人障害
健康障害
孤独死
偽装請負従犯SEの代償
デスマ
技術低下
収入低下
失業
貧困
非婚
離婚
鬱病
早死 コードが汚いとかわりと関係無くて、関数やクラス分けがメチャクチャとかのがデスマーチになり易いよ。 0と1というビットの反転で済むところが全部 x = 1 - x; なんて書かれていたから
x ^= 1; へ修正するのに手間が掛かり過ぎた。 WebやDBなんてパートがやるべき
【知的財産と契約料金の搾取助長者ばかり】
[受注系SI生涯損害促進者を追放すべき]
偽装請負従犯SEの動機
コミ障
趣味
高卒
文系大卒
低偏差値大卒
偽装請負従犯SEの迷惑
不当指示遵守
強要期限遵守
無能残業
安売競争
利益提供
裁判苦手
対人障害
健康障害
孤独死
偽装請負従犯SEの代償
デスマ
技術低下
収入低下
失業
貧困
非婚
離婚
鬱病
早死 手入力を増やしてしまう低技術者
なんとかならないかな? >>18
わりとどうでもいい事の例えかな?
最近のコンパイラに掛かれば同じコードに変換されてるみたいな。 >>20
>手入力を増やしてしまう
どういう状況? >>23
そのシステムの画面か、データベースに直接、データを登録するとかじゃないの? よくSEがいう「運用で対応します」ってやつだろw
システム化に失敗しましたって意味でも有る。 >>25
設計や実装のまずさを手作業で修正、ってのは失敗だけどね。
ただ、システム化=オールコンピュータ化では必ずしもない。
機械に任せた方が良い部分と手作業が良い部分との区別は必要。
結果的に殆ど機械化というのも当然あり。
事務システムの移行で、氏名の一部が外字登録されてたケースがあったが、
手作業だと年7人日、機械化すると200万円くらい掛かるってんで、
今でもそこは手作業でやってる。 普通ならメインの処理メソッドの中に、処理Aの呼び出し、処理Bの呼び出し・・・って感じで書くと思うが
とある現場のプログラム見たら、メイン処理の末尾で処理Aの呼び出し、処理Aの末尾で処理Bの呼び出し・・・
って感じで書かれてて、眩暈がした
さらに再帰は全て関数で実現してるし、どんだけコールスタック積むつもりだよwww >>28
すまんが、お前の指摘は
コールスタックだけだよな? 結婚希望者は不適合
【知的財産と契約料金の搾取助長者ばかり】
[受注系SI生涯損害促進者を追放すべき]
偽装請負従犯SEの動機
コミ障
趣味
高卒
文系大卒
低偏差値大卒
偽装請負従犯SEの迷惑
不当指示遵守
強要期限遵守
無能残業
安売競争
利益提供
裁判苦手
対人障害
健康障害
孤独死
偽装請負従犯SEの代償
デスマ
技術低下
収入低下
失業
貧困
非婚
離婚
鬱病
早死 コールスタックなんて真っ先にオプティマイズされちまう些細な問題だろ。 話がそれるかもだが、以前ローカル変数で1Mぐらいのバッファを宣言してるのを見てびっくりした。
スタック溢れないの?と聞いたら、ダイナミックスタックだから溢れない。と言われて、さらにびっくりした。 >>33
ダイナミックスタックって何よ?
足りなくなったらヒープから取るのか? >>34
アドレスだけ足りてればメモリはどっかから取ってくるよ。
仮想記憶を勉強してからまたおいで。 初めからちんたら綺麗なコード書いてても時間かかるの同じ >>37
きれいなコードを書くのに時間がかかるという前提が間違ってるよ。
むしろ綺麗なコードを書く人の方が開発速度速いから。
絵がうまい人が、絵を描くのも速いのと同じようなものかもしれないね。
綺麗なコードを書くのが遅いのは、綺麗なコードを書いたことがないから。
書いたことがないから、汚いコードを書く。それを直そうとすると時間がかかるのは当たり前
どうすればいいかわからないからね。初心者が書くのが遅いのも同じ理由。
でも綺麗なコードを書いたことがある人は、前にやったパターンを
なぞるだけだから、最初から綺麗なコードを書ける。だから速い。 デスマにしないとホクホクできないブラックさんが・・・ >>35
お前再帰関数のスレでも訳の分からん事書いてるだろ 関数の最後で関数コールしてるコードでは、普通ジャンプ命令に置き換わってるから、気にすんな。
みんなみんな賢いコンパイラさんが解決してくれてるよ。 >>39
デスマってもともとのスケジュールが悪いのが
大きな原因だけど、
技術力が低いっていうのもやっぱり原因の一つなんだよね。
自分のところの開発フローの効率化も出来ない奴が
他社のシステムの効率化なんて出来ないわけで。 >>43
はぁじゃねぇよw
俺がやったら5分で終わったバグの修正に
いちいち報告文とか書いて、これを修正するべきか?とかいう
やりとりをいちいちやってたからな。
技術力が低いから修正する時間がかかるから
やらなくて済むならやらずにいよう(ユーザー喜ばない)
そのために無駄な時間をかけて、そんなことだから
デスマになるんだと思ったね。 >>44
おまえマネジメントも上流工程もやったことないだろ? >>42
デスマについて多い勘違いだね。
デスマってのは、スケジュールひく前に運命が決まるんだよ? >>48
そうだよね。仕事の速度の問題じゃないからね。 うん。だから最初から余計なミーティングが問題だって言ってる。
ミーティングするにも時間はかかるわけで
簡単にすぐにできることにいちいちミーティングする?
そういう余計な会議で時間を無駄にしてるんだよ。 SEというのは血の巡りが悪いんだから、
プログラマからみれば会議していてもむだ
プログラマの頭の血のめぐりが悪いときは会議でなく散歩だね
会議でじっとしていることが、血行をわるくさせる
会議なんてものはSEの責任逃れ 頭にアホ置いた時点で確定するから始まった瞬間に運命決まってるようなもんだ >>36,40
スタック領域 自動拡張
でググったらすぐでるじゃん。
まさか検索もしないでそんな投稿するなんて思いもしないから、英語で検索しないと出ないのかと思っちゃったよ。
すぐに手を動かさない奴は伸びないよ。 無能残業者へ
SEの職務は、手入力を減らす事だと
わかってますか? 1行目と2行目がまるで噛み合ってない
本人は言いたいこと言えたと思ってるんだろうけど、伝えたいことがまるで伝わらない典型例みたいな文章だな 一行目は二行目以降のメッセージを伝えたい相手を特定してるだけだから
噛み合うとか噛み合わないの問題ではない。 コードが汚くてもコストは変わらん
人月契約の作業者が疲弊するだけ 工数を増やすために汚くしておくんだ
短くきれいで安いのでは困る >>69
プログラミングの価値を、コード量で測ろうとしてるもんな。
重要なのは、改善効果の金額換算だろ。 今時、日立ですらコード量で仕事量ははからないんだが
どこの話なんだろうか 中華の作ったゴミ見るたびに全部書き換えたくなる
つーかあいつら書いたコードゴミすぎてみてるだけで吐きそう 開発終わるとステップ数数えさせられるんだが、今時そんなことしないの? >>73
ステップ数はコストだよ?
同じ機能をある人は100行で作りました。
ある人は全く同じものを10000行かけて作りました。
どちらがコストがかかってるでしょう?
言うまでもなく後者だよね。
バグや機能修正が入った時、100行のコードから該当箇所を修正します。
ある人は、10000行の中から該当箇所を探し出します。
どっちがコストがかかるでしょう?
言うまでもなく後者だよね。
それを理解して、ステップ数を数えてこの人は行数が多い!
たったこれだけの機能をこんなに時間かけて作るんじゃねーよ
大赤字じゃねーか。っていう判断に使うのなら問題ない。 ステップ数が多いほど生産性が高いとかのたまうのが東証一部上場企業のPMだから終わってるわ
いしど きれいなコードだなぁと思ったら異常処理が一切書かれてなかったでござる 異常系は基本何もしないのが唯一解なんだけど、なぜか昔から誤解されてるよなあ。 使うのが自分自身だけなら問題はない
他人が使うもので非対策はゴミ以下 異常系からのリカバリーを要求されるシステムだって世の中にごまんとあんのにな リカバリ出来るのは正常系やで
それを異常系と呼んで場当たり的な対処で済まそうとするから
見るもおぞましいソースコードが出来上がるんや >>79
> 異常系は基本何もしないのが唯一解なんだけど、なぜか昔から誤解されてるよなあ。
わかってるねw
異常系に対するだめなコードは、エラーが発生する可能性があるから
発生した時に何かしなきゃいけない。と可能性がある場所毎に
何か書くこと。その場でログを出力するとかね。
そんなことやるから、あちらこちらに異常系のコードが大量に
生産されてしまうし、見逃しも沢山生まれる。
そんなことせずに、異常になった時に絶対呼ばれる部分があるんだから
そこにコードを一つ、または数個かけばいいだけ。
あとはまれにそれだけじゃ不十分な時に、追加のコードを
書くだけでいいんだよ。リカバリできる異常状態も
まれなんだから、リカバリできる場合に限って対処すればいい。
やり方が正反対なんだよな。 >>84
Windowsで言うところのブルースクリーンだな
復帰不能 >>85
悔しいからって、負け惜しみ言うだけで
消えるなよw >>87
それは論点ずれすぎてるw
わかってないよお前。 俺わわかってる。
要はエンジョイコーディングってことだろ? >>83
そうなんだよね。
リカバリー出来る様にするならそれは正常系なんだよ。
設計のバカが担当が異常系で処理させれば済むって事で
初期の設計に入れてないんだよw エラーを無視すれば、どんなエラーが出ても
続行できる。 >>93
エラーが物理的な要因による物でもそう言えるならあんた帰っていいよ。 >>71
未だにやってるよ
設計もしてないのにステップ数から
見積りとかバカかと言ったら
逆ギレされた 俺は綺麗なコードや汚いコードに基本文句を言わない。
ある程度スパゲティでも構わないし (いや実際には構うんだけど) 苦情や文句を言うこともない。
2ちゃんねるとかで質問者が変な書き方したがっててもいちいち突っ込まない。
同じ書き方で回答を提示する。
しかしそんな俺でも許せないものが一つある。
書き方が一貫してないコード。
特に複数人で修正して回ったようなスパゲティコードは手に追えない。
たぶん納期に追われてプログラマが辞めながら作って行ったらしきコードなんだろうけど、
これだけは本当にどうにかしてほしい。 思想が一貫してれば書き方なんかどうでもいいわ
>>96は多分思想がバラバラなんだろうけど 昔関数作ったら関数仕様書を作るプロジェクトがあった
その場合人は関数を作らないようにするためその関数の中で修正してしまう
こうして数千行の関数が量産されていく
そこで新たに関数を作ろうものなら空気が読めない人間になる
生きて行くって難しい >>99
意図的にそれで手続きが問題ないならたいしたスキルだよ >>101
マジレスすると意図的に長い関数を書くのは割と簡単
気をつかうのは変数名ぐらいで良い
無意識に長い関数を書けるからすごいんだ >>102
確かにブロック化すればスコープも解決できるし
簡単といえば簡単だな、可読性も段違いで良くなるし つか普段からやってるわ
関数化すると可読性が悪くなる(複雑化する)やつはブロック化 全然関係ないけど、90年代に比べて読みやすい関数の大きさが倍だと答えられてるらしい
単にディスプレイの大きさの問題だとか 経験しないとわからないものがあるw
昔のCコンパイラは関数の先頭で変数宣言しないとコンパイルエラー
使うかわからない変数が数十個並んでる
これには未初期化で使用されRelease版でのみ発生する不具合がつきまとう
再現性がたまに発生するものは極めて厄介
更にマッチスレッドがこれに絡むと地獄
またソースはこれまでの修正でコメントや#if0づくめ
数百行コメントアウトとかざらにある
ネストもむちゃくちゃで信用できない
統合環境なんてないから有効行の判断も解読しながらの作業
ほんと今の統合環境ありがたいw OSの入ってるマシンで何かを動かそうとするからめんどくせぇんだよ
インベーダーマシンはインベーダー専用にしろよ >>106
おまいは何歳だよ?w
結構、年齢の高い奴の発言に聞こえるぞ。 メニューボタン画面別に実装させんな
全部一緒でいいだろ!
いろんなことをなんどもなんども抗議したのに人を小馬鹿にして効く耳もたずに
まだできないのとか生産性悪くない?とかもっと働けとか
ふざけんなクソが
シロートの新入社員とか得体の知れないインド人やら朝鮮人もいるメンバーでどうせいちゅうねん
挙句に共通関数は自社の無能に任せて何度も仕様変更して全画面修正
getなんちゃらを呼び出すと副作用があったり画面側が頑張って仕様と違う動作を修正しなきゃいけなかったり
なんなのこいつら何で死なないの? >>115
SIer系、かつ言語はMS系もしくはJava?
該当するなら、そういう仕事は避けるべし > 共通関数は自社の無能に任せて
それ、"無能"に任せてるとかじゃなくて、"無能"が自社の"無能エース"を信頼してるって図式なんですが そりゃあ組織形態が汚いので
コードが汚いかは関係無いな。 関係なくはないだろう?
組織形態の汚さが、コードの汚さにつながるのだから、
コードが汚いと、組織形態も汚いと考えるべき。
コードを見ればいろんなことがわかるんだよ。 まず何が綺麗かを組織で決定してないとな。
「俺はこれが綺麗なんだもん」で書かれた記述は間違いなく汚い。
記述の綺麗さはまず統一性。 > まず何が綺麗かを組織で決定してないとな。
それを組織で決めるのはダメ。
ソースコードの品質をはかるツールが有るのだから
まず最初にそれを使うことから始める。
そうしないと、変な書き方が社内標準とされてしまう。 >ソースコードの品質をはかるツールが有るのだから
なるほどね。
それで俺はネットをくぐった。複雑さがないと良い、という評価になるのだな
ニ三年前に見た評価ツールは、関数の大きさが100行もあるやつはだめで、
小さくなっているかを測るやつ。 汚いコードってのは、クラス分けがテキトーで、
似た様な処理ってだけで集めて第1引数の値で細部が異なるスーパー関数で、
全部グローバル変数だから誰がどこからでも変更してOKで、
ポインターが三重くらいあるのがザラで… 綺麗さの基準が統一性ってのは賛成
統一性の前には
ほとんどの教科書やもてはやされるルールが霞む
クソも統一がとれていれば厳かなクソとなる プログラミングの入門書に載ってるプログラムはなんであんなクソばかりなのかいつも疑問に感じてる。 >>126
何の教科書なのか全然わからんが、
良い教科書のやり方に統一すればいいだけじゃん。
どの教科書もたいして変わらんだろうし。
なんで、統一 と 教科書 を別のものって考えてるの? >>127
> プログラミングの入門書に載ってるプログラムはなんであんなクソばかりなのかいつも疑問に感じてる。
入門書だから
>>129
> カーニハン・リッチーもクソなの?
クソではなくて時代遅れ。
1978年出版でC言語が標準化されるよりも前のもの >>131
そうゆう考えがより自分勝手に拍車をかけて結果的に別にするんだよ 無能実態派遣残業して時間報酬相場下げるな!
【知的財産と契約料金の搾取促進者ばかり】
[生涯損害助長SI受注SEを追放すべき]
偽装請負従犯SEの動機
コミ障人格障害
コンピュータ趣味
文系大卒低偏差値大卒
情報処理資格非保有者
偽装請負従犯SEの損害
無償プログラム提供
契約外期限遵守
客先指示遵守
知的財産譲渡
中間搾取促進
事前面接
低予備工数残業見積
無料追加
労働違反
裁判苦手
学習不足
対人障害健康障害
孤独死
偽装請負従犯SEの代償
低収入低技術
非婚離婚
鬱病
早死 133 返信:仕様書無しさん[sage] 投稿日:2015/12/15(火) 01:08:39.85
> >>131
> そうゆう考えがより自分勝手に拍車をかけて結果的に別にするんだよ
意味がわからん。 >>131に俺の考えなんて何も書いていない。
>>130で
「明らかに別」と言ってるじゃないか?
それだけじゃ内容がないので、
>>130に対して>>130が自身が言ったことを
他人にも伝わるように正確に言えって言っただけだぞ。
そういう考えってなんだよ? 1行つか1文加えるだけで便利になるのに仕様に無いから削除しろって方が頭ん中疑うわ。 基本は外部仕様と一定の速度だけ満たせばいいって会社と、
内部仕様まで完全に綺麗に統一しなきゃだめって会社あるんだよね。
後者は害が多いと思う。
変なことにまで決まりが出来てくるのもそうなんだけど、
そもそも、結局内部実装をきちんと把握して管理できる人は事実上誰も居ないこと。
作者でさえ10日後にはコードを忘れてしまうのに。 上層部がそれを求めてるんだらしゃーない
粒度粒度粒度うっせーんだよ 求めてっつっても、その上層部含め誰もコードを把握してないじゃないか。
する必要すらないし。 中華が作った糞コードの保守は確かに10倍以上辛いわ >>142
最終的に高くつくんだよな
保守も奴らにやらせりゃいいんだ、格安で 俺がプログラム作ると
いっつも名前がぐしゃぐしゃになるんだが
誰かどうすればいいか教えてくれ >>144
動詞、目的語の順に書いて、Listのときには_listとつける。
日本語を使いまくる。俺はこれで保守しやすいプログラムを
量産してる。
List<Customer> 取引先_list = get_取引先_list();
for (Customer 取引先 : 取引先_list) {
} 日本語変数や関数って、文字コード問題あるから要注意な。 >>146
listより複数形sをつける方が直感的だと思う
俺も昔はlistをつけてたけど、sの方が直感的だと思うようになった 日本語プログラムってエディタで書いて実行するだけなら、問題は起きないよね
周辺ツール(チェックツールとか)が対応していなかったりするから、日本語はやっぱり避けてる >>148
sは配列のときに使う。
リストのときは_listがいい。
配列とリストを相互に変換するときわけがわからなくなる。
_listだ。_listにしとけ。_listはすばらしい。 >>150
言いたい事は分かるんだが、
enumarableなモノを使わずに、レガシーなlistや配列を多用してるから
そういうワケの分からない自体に陥る
enumarableを使え
listや配列とか古臭い概念からオサラバですわ >>153
フレームワークで配列しか受け付けないのもあるし、
Listを使うのは追加の処理があってインデックスでアクセスしたいからだよ。
古いとか新しいとか関係ない。ケースバイケースだ。 >>152
そういう英単語は、プログラミングではまず登場しないから、心配無用
万が一の場合は間違っていても無理矢理sをつけるとかして、ごまかせばいい
そもそも、そういう英単語を選んだらダメなんだけどな
personとかdataとかinformationとか・・・ dataはまあ別にいいかもな(個人的には好きじゃないけど)
datum -> dataで済むし datumってなんか秋みたいじゃない?せつなくならない?
_listってつけたらほっこりするよ。 今は使ってる人が随分と減った気がするけど
オブジェクトは接頭辞で明確化するのが今でも最強だと思ってる。
データベースならマスタがm_***、テーブルはt_***、ビューはv_***。
クラスならC***、変数ならi***、l***、n***、dw***、s***みたいに。
これなら変数の目的が一文字目を見るだけで一目瞭然。
先頭小文字もクリアだし、***の部分は名詞に限定すればいい。
型という概念が曖昧なPHPなんかはこういう書き方してると特に助かる。 >>155
大体分かりましたわ
アナタがたぶん正しいわ
俺も必要に迫られたらlistとsを使い分けると思う つまり連続物かどうかがわかれば良い話で
listとsをわざわざ分けて名前を付ける必要があるのかと >>160
懐かしいな。
昔はそれがスタンダードな命名の1つだったよな。
俺は10年くらい前に卒業したけど。 >>164
使うなという現場なら使わないけど、それ以外は使ってる
卒業するようなものじゃない >>163
>>161を書いたけど、必要に迫られるケースがあるんだよ
ListとArrayで大幅にメソッドが違う言語では特に
ListとArrayがほぼ同じ扱いな言語とは話が違ってきたり >>165
いや、別にそれが好きなら使えばいいじゃんね
俺は、もう使わない
ただそれだけ >>160はハンガリアンじゃなくて
何なる命名規則な。
○○Formとか○○Viewとかいう名前にするのも、
f_ とか v_ という名前にするのもほとんど変わらない。
省略されたらわかりづらい程度の話 > 変数ならi***、l***、n***、dw***、s***みたいに。
こっちはハンガリアンだな。
あー、正確に言うと、本来意味のハンガリアンを
MSが間違って解釈した間違いハンガリアンだな。
これはMSが間違いだったと認めたもので、
つまり誰も推奨していない。やってはいけないもの。 ハンガリアン表記は批判的に言われることが多いけど、
実践的な技術だと思うんだよなあ >>166
宣言部を見れば良い
今時ならカーソルを合わせれば型が見れるし
インテリセンスもあるでしょ 宣言部を見なければいけない。
カーソルを合わせなければいけない。
インテリセンスを使わなければいけない。
これらは、リーディングのときの負担だと思うぞ。 >>170
MSが間違って解釈したハンガリアンはだめだよ。
変数名にデータ型を表す接頭語をつけるのはね。
データ型ではなくて、データの種類。例えば、フォームとかボタンとか
コントローラとかビューとかそういう種類の略字を接頭語にするやつは問題ない。
例えば、Startという名前はわかりづらいが、StartButtonやStartMenuだと
わかりやすいだろ?これと同じ。
実際にはButtonは、ボタンクラスを継承したものかもしれないし、
リンクをボタンにように見せているだけかもしれない。
でも種類としてはボタンなのでボタンでいい。
この時、接尾語にButtonとつけるか、接尾語にBtnとつけるか
接尾語ではなく接頭語にしてbtnとつけるか。それは名前の付け方の好みでしか無い。
StartButton も StartBtn も btnStart もこうしてみれば大した差はないのがわかるでしょ?
比較的最近のウェブフレームワークであるAngularは接尾語にCtrlとかControllerを
つけるというコーディング規約。
https://github.com/mgechev/angularjs-style-guide/blob/master/README-ja-jp.md >>172
その最初の一瞬だけ見れば済む確認手順を省略するために
名前に長々としたものを書き加える無駄さ >>171
> 今時ならカーソルを合わせれば型が見れるし
動的言語なので、カーソル合わせただけじゃわかりませんー。 >>174
可読性ってそういうものだよ。
書くのが面倒でも、読みやすさの方を優先するべき。
どうせ補完機能で、書く面倒さは軽減されるんだから。 >例えば、Startという名前はわかりづらいが、StartButtonやStartMenuだと
>わかりやすいだろ?これと同じ。
接頭辞の話と違うくね?
StartButtonだけじゃbooleanなのか整数なのか文字列なのかクラスなのかが一目でわからんて話でしょ >>178
省略すると基本的に可読性は悪くなるんだぞ?
必要となる情報が、すぐ近くに揃っていることが重要。
あちらこちらを見ないとわからないものは可読性が低い >>175
いきなり動的で書き始めるバカはいないだろ >>177
> StartButtonだけじゃbooleanなのか整数なのか文字列なのかクラスなのかが一目でわからんて話でしょ
だから、それをわかるように、頭にデータ型をつけたのが
MSが正しいハンガリアンを間違って解釈した「間違いハンガリアン」で
これをMSが間違いだと認めた時点で、推奨する人はだれもいなくなった。
で、正しいハンガリアンとは、StartButtonの代わりに、
頭に省略した名前の接頭語をつけて、btnStart としましょうというもので
本質的には、btnStart も StartButton も変わらない。
btnStart だと、タイプ数が減る代わりに覚えることが増える。
今の主流が省略した名前をつけるのではなく、その場に明確に
書きましょうって流れなだけ。 >>179
だったらintAbc、doubleDefなら一目瞭然だろ、と言ってるのと同じ
というかlistだのsだの付けるよりこの方がもっと正確に一発でわかるわな >>181
それはC#のように全てをクラスとして考えてる言語の場合だろ
C言語だったらdoubleを使わずに浮動小数点クラスを使えって話 >>182
それが一目瞭然に見えるのは、
AbcとかDefという名前が悪いだけ。
正しい名前をつけましょう。count とか lengh とか。
ボタンに対してstartとつけても、これは正しい名前とは思えない。
startという動詞だし意味が違ってしまう。
英文で説明することを考えよう。これはボタンなのだから
button(に相当する)という単語が含まれていなければならない。
intAbcもstart も同じことを言ってる、意味がわかるように
"正しい名前をつけましょう" だ。
だから、正しい名前として、StartButtonとつけるのが今は主流だが
それを btnStart とつけるのは、名前の付け方の好みの違いなだけ。 >>182
データ型を変換するところではそれやる。
double型のAなのか、int型のAなのか示したいってとき。
オーバーフローを気にしたいときはint32_valueとかね。 MSが間違って解釈した「間違いハンガリアン」は
データ型を含めるもの。
変数にはデータ型は含める必要はないが、
"正しい名前"をつけることは重要。
データ型は名前の一部ではないが、Buttonというのは
名前の一部であるから、正しい名前をつける一貫として
Buttonという単語を含めるのは至極当然の話である。 一応補足しておく。
本来の意味の正しいハンガリアンは「アプリケーションハンガリアン」
MSが間違って解釈したやつは「システムハンガリアン」
この2つの言い方は紛らわしいので、ハンガリアンの名誉回復と
頭に接頭語をつけることが全て間違いだと勘違いしている人のために
俺はあえて「間違いハンガリアン」と言わせてもらうけどなw >>184
valueとか型も正しい名前も糞もあったもんじゃねえ名前のオブジェクトもあるわな >>187
> だからそれは全てがクラスだからだろ
関係ねーよ。
たとえクラスがなかったとしても、ボタン(データかポインタか知らんが)に
ボタンという名前を含めるのは何も間違ったことではない。 >>189
それ以外に正確に意味を表せる言葉がないんだろ?
ならvalueでいいだろ。
俺が言ってるのは、ボタンに対してbuttonという単語を
含めることの何が悪いんだ?って話。
逆に入れたほうがいいだろ。 >>191
話を戻すな。>>181でレスしてる。
レスするなら、続きを書け >>192
話が通じねえ、深海と火星の話を思い出した トルネコ「
まあまあ きみたち。そんなに こうふんしないでください。
お前らはいきり立った。 システムハンガリアンのデメリットは、システムハンガリアンがアプリケーションハンガリアンじゃないってことだろ。
つまり、両方使ったら最強。
button_button_agree ←OKボタン
boolean_agree ←OKボタンを押したか 海外のソース見るとMSハンガリアンとやらを使ってる奴多いわ 釣りだろうけど、
Buttonを含めるのが当然とは思えないなあ。
ボタンの絵が描いてあって、Startと表示してあったら
それはスタートボタンのことを意味してるのだよ。
じゃ、スーパーのドアなどに「引」と書いてあるけど、
あれは「ドアを引く」と書いてないと意味が通じないのか?
ドアに「引」と書いてあったら、ドアを引くにきまってるじゃん? > ボタンの絵が描いてあって、Startと表示してあったら
> それはスタートボタンのことを意味してるのだよ。
ソースコードにボタンの絵が書いてあるのか? ソースコードにテキストしか使えないのにvisual studioとか言いはる詐欺製品w 変数は、型と名称でワンセットなんだから名称だけじゃソース的には情報不足
型名の代わりに長ったらしい名前を付ける奴もいるみたいだけど
そんな回りくどく非直感的な変数名など、読む方はたまったもんじゃない
日常会話でも略称で話すことは多々あるし、ましてやプログラミングは
文章ではなくコードを書くんだから、コードのメリットを最大限に活かして
見たら考えるまでもなく、直感的に読めるソースを書かないと
MSがなんと言ったのかは知らないけどMSハンガリアンとやらは
シンプルながら可読性を一気に押し上げる良いルールだと思うよ >>199
MSも2003年(もっと前?)からシステムハンガリアンは禁止みたいなことを言い出したが
ドライバー開発のサンプルプログラムから消えたのはWindows8のWDKサンプルからだし
MSが推奨しないので頭にデータ型を書くのは辞めようと決めてもCやC++の開発者の中には、
StartButton_bとしたり、アンダーバーが禁止されるとStartButtonbとかStartButtonBとかで
とにかく変数にデータ型を入れないことに抵抗する輩は必ずいたそうだ。
しかし今残っているのは既存コードの変数名を替える様なこともしていないだけでは? > ドライバー開発のサンプルプログラムから消えたのはWindows8のWDKサンプルからだし
そりゃ互換性を保たないといけないから仕方ない 型が変わったから変数名を変えるというのをデメリットと言う奴もいるけど
型を変えるってのはそもそもリスクのある行為だから使用箇所を確実に確認できるメリットもある
>>205
そうでもない
大体コロコロ変わるMSの方針転換にいちいち付き合ってられんて奴が多い
特にJavaの影響を受けたんだろう、VSも色々な対抗策を模索してきてる傾向が見える
もちろんハンガリアンに馴染みのない世代がダセェと思うのは当然
俺だって仕事用だったり、公開目的なら言語に合わせて書き方は変えてるけど
便利なものは便利なんだよね >>181
> これをMSが間違いだと認めた時点で、推奨する人はだれもいなくなった。
こういう嘘を恥ずかしげもなく言う馬鹿いるんだw
MSは別に間違いだとはまったく認めてないぞ
.Net開発では使わないでくれと言っているだけ
一方で賛否両論があることを認めている ハンガリアン記法に拘る人って時代の変化についていけない人たちだよね〜
どっちがいいとか悪いとかの以前の問題で、なんか気持ち悪い〜 あとWindowsプログラミングしかやったことない人たちだよな〜
視野が狭すぎて傍からみてると可哀想ぅ〜 1.変数の頭に型を示す文字を入れる
bStartButton
2.変数に型を入れる
boolStartButton
3.型を入れない
StartButton
4.変数の後ろに型を示す文字を入れる?
StartButton_b
基本は3だが1、4も捨てがたい
2はなんか嫌かも booleanのstartButtonって用途が全く分からん変数だな
そこからして全然ダメじゃん そのインスタンスを使う関数の内容次第だろ。
5,6行の関数ならインスタンス名は b とかで十分な時もあるだろうし、
他のボタンも引数で必要なら start_b とかする必要があるだろうし。 >>212
3の1択
型変わるときに変数名に型あるとミスリードする可能性がある
昔short使っていてそれをintに変えるからと修正したらとんでもない無駄な工数が発生する
型推論も随分広まってきたから型の判断は統合環境に任せればいい shortからintでどんな名称変更したんだよ
というか型を変えるのに影響箇所いっさい確認しないのか? データ型を変更するくらいなら、変数を新しく作って使った方がいい。 いまはIDEのリファクタリング機能で変数の名前変更はサクッと行けちゃうよ >>209
プログラミングってのは書けば書くほど、どんな記法が最良かってのが自然と見えてくる
限られた時間で沢山書いて沢山読むのに、誰だって面倒なのは嫌だからね
他人が作ったルールを馬鹿正直に全て受け入れてるプログラマはまずいないし
A型の融通利かないバカとド素人以外は
メリットがあるからこそ使い続ける人がいる、それだけの話 >>218
確かにそうだな
とするとハンガリアンのデメリットは無いね >>212は1の1択 >>217
影響箇所はもちろん確認するが型だけ変えるのと変数も変えるのとでは大きく違う
型なら全置換で終わる場合もあるが変数名となるとマンパワーが欠かせない
また人がやるからヒューマンエラーが入り込んでくる
規模が大きいと些細なことでも山となる
そもそも型程度が可読性に影響するならそれは糞でかメソッドだと思うがな >>214
StartButtonを例えに出すのがそもそも悪い
こんなのボタンコントロールのインスタンス以外の何物でもないわ
たとえばメートル管理、小数点管理ならfMeter
メートル単位の整数管理ならiMeter、nMeter
構造体ならsMeter、クラスインスタンスならcMeter >>222
影響箇所の確認について矛盾したこと思いっきり書いてるぜ >>222
オブジェクト指向言語で、同じ変数名の変数の型を自動的に置換なんて絶対ありえない。 >>224
修正は自動でテストは修正箇所全部だ
テストコードあれば工数は極めて小さくできる
>>225
オブジェクト指向なら尚更だが…
抽象化を柱としているのに型に依存するのは本末転倒
符号付きだろうが符号なしだろうが32bitだろうが64bitだろうが関係ない
数値をどう処理するかにだけ依存するべき
型推論使えばあまり型なんて気にせずにすむぞ
インターフェイスが変わっても修正無しで行けることもある 具体性のあるコードがあって初めて抽象化ってのができるもんだろ
ゆとりか? 同じコードなのに、人によって、書き方(スタイル)が違うのって嫌だよなぁ
common_method1(a, b, c)
x = a, y = b, z = c
common_method1(
x,
y,
z
)
こういうのも汚いよね
grepしにくいし、2,3ならまだしも何十もあると、理解するだけで大変 例はあんまり突っ込まないで
適当に書いただけ、とくに意味はない わかるよ
1行の文字数は、もちろん長すぎるのも読みにくいけど
一番読みにくいのが1行1文字みたいな使い方。
見易さに気を使ってるのかもしれないけど
見たいのは一つ一つの命令じゃなくて前後を含めた広範囲のロジックだから
スクロールせず1画面でできるだけ多くの情報を見たいわけで
だからってコメントも空行もなしじゃ境がわかりにくいので
何事も程々にだな 横80文字を超えなければいいんでしょ超えなければ。っていう考えで
method(aaaaaaaaaa, bbbbbbbbbb, cccccccccc, dddddddddd, eeeeeeeeee, ffffffffff, gggggggggg, hhhhhhhhhh)
というのを安易にこうするのも良くない
method(aaaaaaaaaa, bbbbbbbbbb, cccccccccc, dddddddddd, \
eeeeeeeeee, ffffffffff, gggggggggg, hhhhhhhhhh)
変数名が長いのは、関数が長すぎるせいだし、引数が多いのは
意味がある塊ごとに構造体やオブジェクトにした方がいい。
長い文字列、例えばメッセージやURLがない限り、無理やり
改行させなくても横80〜100文字に収められる。 80文字ってMSDOS時代じゃないんだから
なんでも構造体にすりゃいいってもんでもなくて
引数はI/Oを厳密に指定できるメリットがある
不要な引数はデフォルト化したりね >>239
文字数はMSDOS時代とは関係ない。視野の話。
お前だってその文章、たった半角40文字程度で改行入れてるだろ? > 80文字ってMSDOS時代じゃないんだから
今はスマホ時代ですよ >>235の意味は
横にするのか、縦にするのかどっちでもいい
同じ内容の記述なら同じスタイルじゃないとメンテしにくい
です 80は今の時代にすこし狭く感じる
commit msgとかは80 (76)でいいけど
今は100とかの方がよいと個人的に思う >>244
> 同じ内容の記述なら同じスタイルじゃないとメンテしにくい
同じスタイルにする意味はない。
長いときと短いときで、適切な書き方をするべきである。 >>246
"同じ内容の記述"なんだから、長いとき短いときはないのです
はい >>247
意味がわからないなら無理やり参加しなくていいんだよ フォーマッター使えばいいやん
メジャーな言語なら大体定義ファイルも特定の箇所だけ除外する仕組みも用意されてるでしょ フォーマッターは見にくいものを直してくれるのと
誤字脱字を発見するためで、見やすくするためのものじゃないよ >>250
なるほど、フォーマッターでスタイルは完全に揃うね
でも、IDE/Vim/Sublimeとか色々あって、1つのformatterを強制できないわ
どしたらいい? 「スタイルが統一されていれば見やすい」は間違いだからな。 統一されてると、格段に理解しやすいし、修正しやすいよ >>256
そもそもスタイルが存在してない場合もある。 初心者はそうだろうな
プログラミングに長けてる奴は適材適所で2、3種類くらいじゃん? 【主な偽装請負従犯要員SEの作業】
[技術不要の使い捨てスキル]
コマンド
データ > ロジック
簡単ロジック
大量データ
SE適性不要
IT資格不要
大卒資格不要
文科系対象
体育系対象
商業系業種
業務系処理
[業務ソフト作り捨てツール]
ノンプログラミングツール
フレームワーク
COBOL
VB
.net
Java
Web
DB
ERP
SAP >>256
2種類じゃなくて、7,8種類もあったらどう? >>235は何十って言ってるじゃん
そこを"2つ"と言い切るのは、変ですな >>261
慣れてない奴は間違いなく無限にあるが
7、8種類しかなくて使い分けてるならいいんでない? >>262
まずは何十を挙げてから出直せ、話はそれからだ 使い捨て早死に貧困の助長SEは大迷惑
相場下がって迷惑だから偽装請負の従犯は辞めろ!
・1,000万円/年以下低レベルの会社は辞めろ
・80万円/月以下低レベルの契約は辞めろ
・5,000円/時間以下低レベルの契約は辞めろ
・多重契約は辞めろ
・不利益な現場は辞めろ
・残業見積りは辞めろ
・時間外労働違反は辞めろ
・契約外納期は守るな
・客先指示に従うな
・知的財産を渡するな
・残業しないで学習しろ
・残業しないで副業しろ
・損害は訴えろ
【非婚】SI受注SEは3億円以下の低生涯収入【離婚】
http://hanabi.2ch.net/test/read.cgi/infosys/1451213054/ ・main()にすべてが詰まってる
・コメントでバージョン管理されている
そんな汚物コードをメンテするんだが
そういうときの精神衛生保全のために皆どんな工夫してる? >>266
1ヶ月くらいならクソコードがどんな悲惨な状況を生み出すか体験するために我慢するけど、長期間になるなら転職する。
そんなコードを生み出す組織は、コードだけではなくソフトウェア開発に関するすべてにおいてレベルが低いに違いないので、
そんな組織で働くことは成長の機会を放棄するのと同じです。 >>コメントでバージョン管理されている
バージョン管理はファイル名だろ。やり直し >>266
マジレス
・ローカルPCでGitを使って開発する (これ絶対)
・コード整形verと汚物verの両方を、うまく使い分ける
(閲覧・開発は前者、成果物は汚物verへ移植) >>266
移植作業には、WinならWinMergeがよいと思う
編集しながらコード差分、比較可能だから
(そんな知ってるわ!wだったらスマソ) >>266
修正コメント("YYYY/MM/DD 山田太郎 追加"みたいなの)は、
自作ツールとかで、さくっと行単位で追加、編集、削除できるようにする
エディタのマクロでもいいし、AutoHotkeyとかのキーバインドツールでもおk
(そんな既にやってるよ!だったらスマソ) 色々書いたけど、最終的には転職した方がいいよ
全く希望がないです。そういう企業は >>273
可読性とは言うが、可書性とは言わない。
なぜなら書くのは一回ですむが、
読むのは何度でもするからだ。
読みにくなる原因の一つである修正コメントを
簡単に増やせるようにしてはいけない。
それは簡単に読みにくくするための道具だ。 何をしてるのかをコメントに残して欲しいのに
そういうのは一切書かないで、変数の日本語名を
使用箇所全てにコメントとして書く意味不明さ。
LcBookMargReq = True; // 予約要求フラグ
:
LcBookMargReq = False; // 予約要求フラグ
変数名自体もわかりにくいし、どの変数も似た名前だし。
これならC#みたいに変数名に日本語使われた方がまだマシ。 >>276
そういう名前の変数が出来る本当の原因は
関数が異常に長いから >>275
>>273だけ見て脊髄反射やめて
>>266もミテネ! >>276
少し分かる
日本語として意味不明なコメントはダメだわな
例えば、
// 遷移状態完了済フラグ
みたいな奴 先日コードが汚ないと注意されたプログラマーが拗ねて退職したw 時給換算5,000円以下のSEの皆様へ
相場が下がって迷惑ですので、SE辞めてもらえませんか?
主婦SE以下の時給換算レベルですよ。
学習期間や契約終了の不利益リスクにどう対処するおつもりですか?
こちらこそ優秀なSEの離職で大損害なんですから。
発注者より >>284
元ネタは「何が嫌いかより 何が好きかで自分を語れよ」だが、
それとは全然意味が違ってる。
嫌いなもの言った所で好きなものはわからない。
例:ゴーヤーチャンプルーが嫌い・・・好きなものは? ⇒ 不明
だから好きなものを言えと言っているのだが、
コードの処理が冗長で汚い ⇒ シンプルなのが綺麗
クラスの依存関係がおかしくて汚い ⇒ 正しい依存関係が綺麗
のように汚いコードを言えば、その反対の綺麗なコードがどういうものかわかる。 >>289
ツール使って解析しているので主観ではない。 >>290
客観的な指標があるのならわざわざ反例をあげて回りくどいやり方をする必要はないな。
お前の思う良いコードを例にだせば良いよ、誰も文句は言えんだろ。 >>291
仕事で書いたコードなのだから書いたコードは誰でも見れるので例に出すまでもない。
ただし良いコードを見ただけで同じように書けるわけじゃないので
日々コードレビューを行って問題点の指摘とどうすればいいかを教えている。 ツールで計測できる客観的な指標というのは、だめであると言う理由だけ
どうすればいいかまでは教えてくれない。もしどうすればいいのかまで
教えるツールが存在するならば、ツールが勝手に修正できるはずだろう。 >>292
お前はアホか?俺にはお前のコードか見えんぞ。
それともアホの俺には見えんコードを書いてるのかお前は? >>294
会社のコードなんだから、社外の人間のお前にはみれん。
当たり前だろw >>295
お前自分が支離滅裂な事言ってるって分かってる? >>296
どこが?
文章に下線引くなどして、具体的に指摘してみて。 >>297
素直に分かってないって言えんのかお前は 時給換算5,000円以下のSEの皆様へ
相場が下がって迷惑ですので、SE辞めてもらえませんか?
主婦SE以下の時給換算レベルですよ。
学習や設備や裁判や営業や管理や離職等の費用も含まれてるのですよ。
こちらこそ優秀なSEの離職で大損害なんですから。
発注者より 犯罪者個人に対して告訴状を偽装請負・偽装出向・多重派遣の被害者が作成(刑事告訴は無料) or 司法書士が代筆(料金は5万円ぐらい)
↓
告訴状を【検察の直告班】に郵便局の内容証明付で送付(疎明資料・証拠にはICレコーダー、スマホによる録音が適しています)
↓
審査 → 不受理 → 告訴状再提出または刑法 第193条で訴えを起こす
↓
受理 → 告訴事実を認め示談交渉(↓) →示談成立 →法廷相場50〜100万円の示談金 ※示談拒否が良い
↓ ↓
事案化 ←←←←←← 示談不成立(↓) →示談外交渉 →犯罪者の年収半額×最大懲役年数の和解金支払い※推奨
↓ ↓
↓ 起訴 →公判 →罰金刑=前科(起訴事実を認めてるため)→追討ち民事訴訟
↓
審査 → 起訴(強制捜査・留置場)→ 公判 → 懲役刑などの厳罰(反省が認められないため)→追討ち民事訴訟
↓
不起訴、起訴猶予
↓
検察審査会法第30条(検察審査会へ申し立て)→ 起訴 → 起訴後は同上
刑法 第193条(公務員職権濫用)で検察事務官を刑事告訴 → 同上
◎告訴→告訴受理→示談交渉→厳罰を求め示談不成立→示談外交渉→和解金支払い・和解契約(公正証書・即決和解で秘密保持契約)
◎偽装請負・出向・違法派遣事件では派遣・出向先両方の代表者、役員、現場責任者に告訴できます。
前科がついた犯罪者が法人の代表であれば公的な入札からの排除、取引先や顧客との契約解除など社会的制裁・批判に晒されることから辞職または解任が妥当、役員・社員であれば懲戒を想定。
◎事業者内部の加害関係者による刑事告発(刑事訴訟法239条1項)も可能です。
加害者本人、管理間接部門の社員が刑事告発に踏み切る場合も和解金による解決が妥当です。
注意:告訴が受理されない理由
●3年間(※)の時効が過ぎたもの ※違法派遣
●同一事実について過去に告訴取消しがあったもの
●関連する民事訴訟を有利に導く目的の場合
●証拠が希薄なもの ※被害者が契約時に違法派遣・偽装請負・多重派遣と知っていても刑事告訴は有効です。 無能実態派遣残業して時間報酬相場下げるな!
【知的財産と契約料金の搾取促進者ばかり】
[生涯損害助長SI受注SEを追放すべき]
偽装請負従犯SEの動機
コミュニケーション障害
コンピュータ趣味
人格障害
文系大卒
低偏差値大卒
情報処理資格非保有者
偽装請負従犯SEの迷惑
無償プログラム提供
事前面接
契約外期限遵守
客先指示遵守
知的財産譲渡
中間搾取促進
低予備工数見積
時間外労働違反
残業見積
無料追加
学習不足
裁判苦手
対人障害
健康障害
孤独死
偽装請負従犯SEの代償
低収入低技術
非婚離婚
鬱病早死 >>305
心が汚い俺は
極力他人に責任を擦り付けるように
簡潔で綺麗なコード書いてるぞ オフショアは知らないけどニアショアから返ってきたコードですらまともな物に一度もお目にかかったことないんだけど、そんなもの?
外注の成果物で、おっ、これ書いたやつスゲーって感動したことある人いない?
本当は内部できっちりレビュー出来ればいいんだけど、そうもいかないこともあって死ぬほどメンテしづらいコードをメンテする羽目になるパターンが結構あって大変なんだ。 >>309
コーディング規約キッチリしてないおまいが悪いだけ。 >>309
スゲー人が書いたスゲーコードが
後にダメな奴にメンテされてダメコードになっている
ってものに、お目にかかった事あるぞ
メンテしづらい、ってのはメンテ方法が分かってないだけの可能性もある
でもまあ、どっちにしろ
ダメコーダーが大多数なのは確かだな ダメなオリジナルがダメダメなメンテでボロボロになってるの診てるけど…逃げたい…。 >>309
>本当は内部できっちりレビュー出来ればいいんだけど、そうもいかないこともあって死ぬほどメンテしづらいコードをメンテする羽目になるパターンが結構あって大変なんだ。
レビューとメンテ、どちらが大変か分かっているなら
答えはひとつだろ?
どんな状況であれレビュー工程をすっ飛ばした人が悪い。
つか、要点を押さえたレビューを適切な時期に軽く実施するだけで、随分と仕上がりは良くなる。 >>313
スゲー人が書いたスゲーコードを別のスゲー人がメンテしてスゲーコードを書いたら
結果スゲーメンテしづらいコードになる事象が世に溢れている >>316
だからレビューしろって。
どこが担当しようが、レビューをしなければ
コードの品質は統一されないの当たり前じゃないか。
コードを書くっていうのは設計をやってるんだぞ。 > スゲー人が書いたスゲーコードを別のスゲー人がメンテしてスゲーコードを書いたら
> 結果スゲーメンテしづらいコードになる事象が世に溢れている
それが本当なら、そうなったものを見てみたいね(笑)
なんなら君、書いてくんない?w まあ、スゲーの方向性にもよるな
スゲー人力オプティマイズしたアセンブラとか
でもまあ、話の流れとか行間くらい読んでくれとは思う >>319
お前がメンテしたコードにもあったと思うよ
自分が当事者だと気が付かないのかやっぱり >>321
そのレスは間違いだね。
なんで言い訳するの? 綺麗とか汚いとか、定量化出来ない話で盛り上がれるのは技術者じゃ無い。 俺が思う、メンテできない酷いコード(パート1)
・タブ、空白のインデントがあちこちで乱れている
とにかく汚ねえ! コードの見た目に関しては
わりと、どうでもいい。
フォーマッタで解決。 余計なこといろいろ書いていたらフォーマッタでも解決できない。 フォーマッタで整形出来ないってw
それ、コンパイルは通るのか? 引数やローカル変数がたくさん並んでるコードは、バグもたくさん並ぶ >>327はどういうケースなんだろうか
具体例が知りたい
草生やしてもなんにもならんし >>329
個人的には、引数やローカル変数は4つ以上だと臭うなぁ
10以上とかはもう見るのも嫌 >>331
引数は少ないに越した事は無いが、ローカル変数はむしろ多い方がいいぞ。
いっそ引数以外は全部ローカル変数にしなさい。 ローカルがやたら多いのは機能をうまく整理・分割できてなくて、
関数内がコボル状態だろう? 参照可能な変数がたくさん並んでるコード(ry
メソッドの頭からお尻が巨大なtryで囲まれたコードは、人力トライ&エラーの無限ループに陥る local variablesにはimmutable、mutableがあるよね
mutableなのはなるべく少ない方がいいと思う
でも、なるべく少なくする為に、むやみにmethod分割するのはアンチパターンが多い気がする
関数型なlibraryや、block scopeを上手く使えば、自然と減ってくる
一方、immutableの方は、多少多くても、
それが適切なモノなら、まいっかって感じ >>333
コボル状態って・・・
それが何か分かってしまう俺がもう嫌
コボラーの人の書いた別の言語のコードって、それが特徴的なんだよなぁ >>336
youはlocal variablesよりもtoo manyなenglish wordsをsomehowした方がbetterかと >>338
youはsomehowという間違った英語をsomehowした方がいいと思う >>337
なるほどあれはコボル由来の書き方だったのか ZEROとかONEとかの定数が並ぶコードを書く奴は業界から追放すべき リファクタリングにもローカル変数が増えてきたらメソッド分ける指標って書いてあったな。
短いスコープならローカル変数はあまり気にならないけど、スクロール必要なスコープで宣言されてるとレビューしててイラっとくる。 cssでこういう↓汚いゴミを書く奴
<div class="width-100 font-size-15">
.width-100 {
width: 100%;
}
.font-size-15 {
font-size: 15px;
} 【偽装請負搾取盗難】
作業やめて盗難届け出せよ!
盗難被害者の例
発注者 支払 140万円 1億円の大儲け
1次受注者 報酬 120万円 20万円の盗難被害額
2次受注者 報酬 80万円 60万円の盗難被害額
3次受注者 報酬 60万円 80万円の盗難被害額 工数見積りの海を彷徨う
http://hidekatsu-izuno.hatenablog.com/entry/2016/04/24/035446
この手の工数、工期という話題の時、役に立つのは次の資料だ。
IPA ソフトウェア開発データ白書
JUAS ソフトウェアメトリックス調査
素晴らしいことにどちらも PDF 版は無料で配布されているので、ダウンロードして見ることができる。
システム開発サイドだけでなく、エンドユーザ側でも有用な資料だと思う。 問題は、工数見積りだ。工数は単価をかければそのまま金額になるわけだし、標準工期のベースともなる。
一番重要な指標と言える。しかし工数については、データを見ても分散が大きく、
IPAでも、あくまで目安として50%の信頼幅に収まっているかを見るのに使ってください、というスタンスを取っている。
JUASはもう少し踏み込み、毎年データから回帰分析を行い総工数の見積りに使える式を算出しているのだが、
各年の結果がかなり異なる。例えば、2007年度版では、総工数=1.55×画面数だと書かれている一方、
2009年度版では、総工数=1.09×画面数となっている。ここ数年の版に至っては、画面数だけの分析は削除され、
画面と帳票での分析のみが掲載されている。同じ機能数なのに工数が50%も違うのでは、見積りチェック用途だとしても使いづらい。
とはいえ以前、システム開発はもっと明朗会計にならなければいけないでも書いたように、FP法と総工数には、
分散はあるものの明らかに正の相関が認められる。FP法は「機能」をポイント化しているわけだから、
工数は機能を正しく見積ることができればある程度予測できることが想像できる。
このことから考えると、面倒ではあるが、まじめに FP を求めろという話ではあるのだが、
実際には FP 法での見積りは次のような理由があって難しい。
概算見積りを求められるのは、RFP(Request For Proposal)提示時など要件定義前の
早いタイミングでありエンティティと言った詳細な設計まではとても落とせない。
FP法は、機能ごとの見積りではないため、機能数の削減が工数に与える影響を見積るのが極めて困難である。
この機能を削るからいくら安くします、などという交渉が難しくなる。 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrent(Covenant)が活発な情報交換・交流コミュニティでオープンソース開発されています(プログラマー募集中)
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします<(_ _)>
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできない情報発信好きアスペルガーw
通話料が激安になるブラステル(050 Free)で、かなり遅延や音声途切れが発生する方は、以下の設定を試してください
○ Wifiと3Gのコーデックは2つ(GSM、G.711u-Law)とも有効にしておく
○ エコーキャンセルをOFF(チェックを外す)にする
○ あとの設定はデフォルトのまま
http://blog.livedoor.jp/gnunobian/archives/52013458.html
上記の設定でも音質が悪い方は、wolfsonの高音質チップを搭載した機種(Galaxy 初代S、S3、S6、 AQUOSPhone ZETA SH-06E、AQUOSPhone si SH-07E、AQUOSPhone Xx 206SH、 Galaxy Note II)に買い換えて下さい。
500円以下の格安SIMで使えて登録・月額無料、IPベース発信なら携帯へは5.5円/30秒、固定へは8円/3分(月額無料でこの価格はすごい!)
http://blog.jikoman.jp/2015/11/brastel-050-free.html
あと、050Freeの起動もしくは発着信が2週間以上ないとプッシュサーバー期限切れでプッシュ着信が出来なくなるので、Llama Location Profilesで1週間に一度050Freeを自動起動するように設定すると、2週間以上経過してもプッシュ着信できます
最後にロケットストーブの焚き口へ超省電力なDC扇風機で風を送ると、横引き煙突が12m以上あっても煙が逆流してきません。
よって、横引き煙突で超高効率な熱回収ができるので薪が少量で済みます
あと、燃焼室の大きさは『無煙竹ボイラMBG150』で検索して参考にして下さい
http://i.imgur.com/iVuglg9.jpg
http://jp.misumi-ec.com/material/mech/KRT1/PHOTO/KRT1_221004926837.jpg
http://livedoor.blogimg.jp/zoukibayashinokai/imgs/2/a/2a3c6dc0.jpg
y 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
ZTZH3R583H >>343
ごめんなさい、一カ所変えれば連動させたい部分の調整中にたまにやる とても簡単な自宅で稼げる方法
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
W3427 汚い方ときれいな方を同時に同じ技術力のプログラマがやって試したの? あたりまえだのくらっかー
コード酷いと機能拡張に耐えられなくて下手すりゃ作り直しだからな きれいなコードより単純なコード
必然的にコード量は少なくなり生産性が向上する。 下手すりゃ、リファクタリングという言葉を知らないプログラマーもいそうだよな コードの汚さって、ゴミが残されてるのも一つだけど、設計的な意味で中身が汚い。
実際リファクタリングの必要性を感じるコードというのは初心者に多く
そもそもの作り方に難があり、作成者本人でさえ仕様変更に耐えない
SEの要望を満たせないなど、主に保守性に致命的な問題があると
判断されたコードを直す場合がほとんどだね。
作成者を含み誰かしらサラサラっと難なく対応できるなら保守性の高いコード。 同僚が、1人で1から書いたプログラムを実行しようとしたら、うまく動かなくてソース見たら、
1つの変数の中でキャメルケースとスネークケースと、ローマ字変数名と英語変数名が混ざった上に、ログの出力時刻を固定値代入して、ずっとその時刻使ってログを吐くように書いてあった
他にも色々酷い有様
基地外なのか!? 【犯罪】無能時間外労働違反SEの追放【損害】
☆不利益で迷惑だから料金増やすか生産減らせ☆
【契約料金や知的財産の生涯損害促進者ばかり】
[偽装請負多重派遣の従犯SEを追放すべき]
偽装請負多重派遣SEの動機
コミュニケーション障害
コンピュータ趣味
人格障害
文系大卒
低偏差値大卒
情報処理資格非保有者
偽装請負多重派遣SEの迷惑
無償プログラム提供
事前面接
契約外期限遵守
客先指示遵守
知的財産譲渡
中間搾取促進
時間外労働違反
低予備工数見積
残業見積
無料追加
学習不足
裁判苦手
対人障害
健康障害
孤独死
偽装請負多重派遣SEの代償
低収入低技術
非婚離婚
鬱病早死 競技プログラミングでシンプルなコーディングを身に着けよう! ■ このスレッドは過去ログ倉庫に格納されています