プログラマの雑談部屋 ★31
■ このスレッドは過去ログ倉庫に格納されています
コメント入れるべきってのは、暗にコメントが常に正しいことを前提にしてるってことでしょ。
もっと言うと、変数やメソッドの命名がおざなりなコードでそこがしっかりメンテナンスされてるか?ってところに関わる 違うぞ、実装した理由とかコードで表現できないものをコメントに書くんだぞ
コード見ればわかるようなコメントはいらない 俺はコメント一切入れない主義
ソース見て分からない馬鹿はPG失格
昔コメントなんて書いてやったら
句読点が変とか文句言われたからな コメント無いのと変数や関数名がdata0025とか、funk0132とかだけなら無理。 >>272
コード見て分かるなら
デスマーチなど発生しない。
基本、分からないのだよ。 >>205
使わないことなどを理由に優先度下げまくってなあなあにする >>272
すまん、俺が主張したかったのは、
「>>268に対してソースのを綺麗に書いたり、命名をしっかり出来ないのに、コメントがしっかり書かれてメンテナンスされる訳ないでしょう?」
ってことだった。
>>272の意見自体は俺も正しいと思ってる >>278
>>272は典型的な勘違い
そういう言い訳は独立したドキュメントに書け
ソースコードのコメントは処理の内容を書くもの コードレベルの言い訳のためにわざわざドキュメント起こすのかよ コードからドキュメントの自動生成
ドキュメントからコードの自動生成
あるいは別の何かからコードとドキュメントの自動生成
があると便利だな
周知されると納期が縮むだけだがw // カウンタ変数の宣言
// カウンタ変数をインクリメントして次のループへ進む
・・・とか書いてないと規約に合ってないから納品できない、
全部見直せ、とか言われるのだぜ。 大規模で技術レベル統一できないならそうなるのもしゃーない
世の中書いてるうちに何の要件で書いてんのか見失う奴らもいるしな >>286
カウンタ変数で思い出した
// カウンタ変数
// ここから○○で使う >>265
正解
コメント付ける暇使ってコードをリファクタリングする方が大事 >>290
それどういう方針で何を理想としたリファクタリングなの? なぜ雑談部屋には頭おかしいプログラマしか沸かないのか
せめてリーダブルコードと達人プログラマーぐらい読んでくれ >>293
何それ?
100万部ぐらい売れてるの? JavaのInterfaceのコードを読むのか
コメント書くしかないだろ >>279
処理の内容とか一番要らんところだろwww
必要な情報はcontractだよ
そんでもってcontractはコメントではなくテストに書くものだ
コメントは不要 前に言ってた事前面接反対っていう話、
どういう事情かわかった、というより思い出した。
あれってオンナの派遣の話なんだよ。
面接して顔で選ぶ会社が後を絶たないからな。
で、女性差別だなどと騒ぎ出したってわけだ。
だからまあ、この世界では特に関係ないんだな。 ノンプログラマBIツール使うのをノンプログラマが嫌がって派遣プログラマの俺が使うという悲哀
第三正規化まで出来てテーブルと密結合する帳票出力を、導出表を巧みに使って表現する鬼仕様なんだこれが
俺は特派で今年居なくなるけど、基本月給20万円でやってくれる派遣が見つかると良いねって感じ
でないと派遣先に来年度組織変更あったら死ぬ 単価上げても営業がピンハネするだけだもんねぇ。
まあ一般派遣を使うようにでもなるのだろう。 >>300
java,javascript,vb.net,c♯で作りまくった社内Webシステムとも連携してて、これらを機能拡張、リファクタリング出来る一般派遣が必要なんだ
基本給20万賞与無しで企画からフルスタックで出来ないとダメなんだけど応募無いね
引き止められてるけど特派だからいかんともし難い 基本給20万賞与無しってのは、派遣元の会社が決めてる給料だから、
派遣先にしてみりゃ、そんなこと言われても・・・ と。
派遣先が支払うその単価で一般派遣を雇えば、そいつの時給はさぞや高いだろうから、
かなりデキる奴が期待できるかもよ。 >>298
どれを買うか選べるのに
買ったことに対してリスクは持たない
・・・なんてなったら奴隷の人身売買になるから禁止なのだよ。
選ぶならリスクを持てってことだ。
つまり直接雇用しろってこと。
そんなルール、誰も守ってないけどな。 みんな直接雇用するから、この世界は特派ばっかりなんだろ?
すでに会社員なんだから、面接しようがしまいが関係ねーやな。 elseいらないとか言ってるド素人が暴れまくってるスレだぞ
こいつらには本を読むという概念すらないw いらないんだ
リファクタなんかいらないんだ
やってる場合じゃない
もう十分きれいだし読めるし問題ないし時間もないんだ
やるべきことは最初からわかってるのに
リファクタが 質問がある時に自席で予め説明の為の準備をした上で自席に来てもらうってのが双方共に一番効率的だと思ってるんだけど、
今一緒に仕事してる設計者さんが「質問があるならお前が来いよ」みたいなスタンスの人で自席から動こうとしないんだけどどうしたらいいの?
設計書印刷して持って行って説明したりしてるんだけどコードの相談とかするとなると表現に限界があるんだよね 工場などで派遣切りとかにあったことがある失業経験者なら
この世界で優秀になれるかもしれないねぇ。
安定雇用というか雇ってくれた恩みたいなのを持ってるだろうから
さぞや真面目に仕事をしてくれることだろう。 >>299
帳票テンプレートにDB情報を入力する系のやつか
あれ最悪だよな
作ったやつは鬼か悪魔だよ >>306
それはelse信者だろ
彼らはここ10年以上なんの勉強もしていない 本読んでたらelseいらないなんて言葉は絶対出てこないからな
毎日ジャップジャップ喚いてるしこいつはたぶん在日だろ >>315
よう差別主義者!
国籍透視wネトウヨかよ >>315
逆なんだなぁ
それがわからん時点で本を読まないelse信者ってバレバレ ずっと聞いてるけど未だにelseが必要な現実的な例が出てきてないんだよね
アホが書いた実用性皆無のコードは出てくるけど >>319
if(type == A){
略
}else if(type == B){
略
}else{
略
}
pretype = type; しばらくJava離れていると==で通らないことに気付かなかったりする AとかBとか意味わからん
略ってなんだよ
pretype?
何がしてーんだ
現実的な例つってんだろ 公文書を改ざんできないようにするにはどうすればいい? 被害者増やさないために暴露するわ
某所でこんな環境で作業させられる場所あるから気をつけろよ
・単体テストツールを使って無い
・Git・SVNのような一般的なバージョン管理ツールを使って無い
・Javaの基幹システム案件なのにMaven使わずに手動ビルド
・コードの静的解析をいまだに半日かかる内製ツールを使ってる
・ネットワーク制限で上記ツール含めて自分で入れるの全部禁止
・上記のツール使って無いので、修正履歴含めて全部エクセル管理
ついでに修正前のソースコードはコメントアウトして残せっていう化石文化付き
2018年になってもIT江戸時代から抜け出せてないこんなクソ現場があるから気をつけろよ >>327
過去ソースのコメントアウトが大半を占める謎ファイルとかな >>327
付き合う必要皆無
駄目と言っておけば問題が起きたときに自分のせいにならないってアピールしたいだけ
Vmware入れて自分の環境固めて持ってきて作業すればいいよ
USBメモリやネットワークは監視してるけどDVDドライブなんかはノーマークのとこがほとんど このスレで聞いても良いものかどうか素人質問で申し訳ないんだが
自動車メーカーのコンフィギュレーターみたいな着せ替えってWPでも作れるのかな?
例えばこんなやつ
https://shop.hodinkee.com/pages/strap-finder#strap=dark-clay-calfskin-strap&watch_id=7
何で検索するとテンプレとか見つかるかな?
個人的なショッピングサイトを作ってみたいんだ >>334
何てワードでググれば良いかすらわからないから聞いてるんだ
コンフィギュレーターでググっても全然それらしいのでてこねぇんだわ
頼むよ教えてくれ 在日差別でストレス発散したがってる屑がいるな。
リアルの在日の前にでたら震えてションベンちびる癖に。恥ずかしいネット弁慶だな。 bool isValid;
(いろいろ処理する)
if( isValid )
{
(処理成功時の後処理)
}
else
{
(処理失敗時の巻き戻し処理)
}
(実行後の共通処理) GitHubでGoogle検索したらいちばんうえあたりにでてきたやつの一部
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(android.R.layout.two_line_list_item, null);
convertView.setTag(holder);
holder.text1 = (TextView) convertView.findViewById(android.R.id.text1);
holder.text2 = (TextView) convertView.findViewById(android.R.id.text2);
} else {
holder = (ViewHolder) convertView.getTag();
}
Event event = getItem(position);
holder.text1.setText(event.title);
holder.text2.setText(event.text);
return convertView;
} 状態の更新処理をともなうときはたいていelseいる
条件によって違う部分を更新するには、elseで切り替えるのがベストにみえる
逆に言うと状態とかない関数型言語で もう在日に触らなくていいだろ
上級スレに隔離しとけ 疲れた死にたい
過労死基準てなかなか満たせないよなあ 派遣なら再就職簡単だから普通に会社やめて1年ぐらいニートやればいい 自社の正社員で偽装派遣
辞めよう辞めようと思いながらずるずるきちゃった >>341
同じメソッドで異なる物を更新しようとしている時点でおかしい
適切な抽象化と関心の分離ができていないんだよ
条件によって筆者を更新するあるいは価格を更新するメソッド
意味不明だろ
このメソッドは筆者に関心があるのか価格に関心があるのか
条件が増えるたびにメソッド名や契約が変わりまくる典型的なクソ仕様だ
同じメソッドにある以上筆者の更新ロジックが変わったら価格の更新についてもテストしなきゃならない
どんだけ工数増やす気だよ
そうじゃなく書籍情報を更新するメソッドとするんだよ
条件なんていらない
筆者も価格も他の属性も単に上書きするだけ
条件によって変更が無いものは条件分岐を消して同じ値で更新するだけ
更新する値を計算する処理に条件をつける
適度に抽象的で全ての関心ごとが分離された美しい世界だ >>338
try {
色々処理ラムダ.実行();
}
catch (Exception e) {
ロールバック();
throw e;
}
finally {
共通処理();
} GitHubにあるのは全部神コードだと思ってるキチガイ >>349
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView == null ? createView() : convertView;
ViewHolder holder = (ViewHolder) view.getTag();
Event event = getItem(position);
holder.text1.setText(event.title);
holder.text2.setText(event.text);
return convertView;
}
private View createView() {
ViewHolder holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(android.R.layout.two_line_list_item, null);
view.setTag(holder);
holder.text1 = (TextView) view.findViewById(android.R.id.text1);
holder.text2 = (TextView) view.findViewById(android.R.id.text2);
return view;
} >>351
じゃあかわりにちょっと前にでた2chコードをだそう
>>346をふまえて
https://medaka.5ch.net/test/read.cgi/prog/1521205676/
932 自分:仕様書無しさん[sage] 投稿日:2018/03/25(日) 13:10:36.72
if(cond(x)) {
this.alpha = f(y);
} else {
this.beta = g(z);
}
この場合にどうするかは解決したんか?
937 返信:仕様書無しさん[sage] 投稿日:2018/03/25(日) 13:24:14.09
>>932
更新データを計算(x, y, z) {
if (cond(x)) return (f(y), beta);
return (alpha, g(z));
}
更新(x, y, z) {
(this.alpha, this.beta) = 更新データを計算(x, y, z);
} >>349
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView == null ? createView() : convertView;
ViewHolder holder = (ViewHolder) view.getTag();
Event event = getItem(position);
holder.text1.setText(event.title);
holder.text2.setText(event.text);
return view;
}
private View createView() {
ViewHolder holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(android.R.layout.two_line_list_item, null);
view.setTag(holder);
holder.text1 = (TextView) view.findViewById(android.R.id.text1);
holder.text2 = (TextView) view.findViewById(android.R.id.text2);
return view;
} elseの代わりに関数2つ増やしてreturnする馬鹿www
ワロタw else使わなくてもいいから、まず成果を出せよ、リアル界で。
関数2つ増やしてreturnするなどという底の浅い秘伝なわけじゃねーんだろ?
CADやゲームなどの3Dグラフィックといった高度な技術においても
elseを使わずに実装できるレベルに達してるんだろ? まあ、メソッドの途中でreturn入れてるようじゃあ、elseがあってもなくても・・・ >>340
こいつらが同じプロジェクトにいてくれれば
さぞや楽に仕事が進むだろうにねぇ。 >>355
バカはお前な
新規にviewを生成するという関心事を別のメソッドに分離するのが正しい
というかもっと言っちゃうとgetViewという名前のメソッドの中で
ViewHolder holder = (ViewHolder) view.getTag();
Event event = getItem(position);
holder.text1.setText(event.title);
holder.text2.setText(event.text);
こういうことをやるのは非常に筋が悪い
がしかしOverrideなので苦渋の決断でよしとした
こういうの見るとgoogleのライブラリは相変わらずセンスがねえなあと感じるね 関心ごとの分離ということを勘違いしている
同じタイミングや条件で違うものを更新するという、現実の要求そのものがなくなるわけじゃない
それはどっかでやらないといけないんだ… 一目瞭然だったソースにメソッド増やしてリターンも増やして
可読性落としてelseを三項演算子に代えて馬鹿コード生成素人の代表だなコイツw >>357
三項演算子を使えないゆとり用
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = reuseOrCreateView(convertView);
ViewHolder holder = (ViewHolder) view.getTag();
Event event = getItem(position);
holder.text1.setText(event.title);
holder.text2.setText(event.text);
return view;
}
private View reuseOrCreateView(View reusable) {
if (reusable != null) return reusable;
ViewHolder holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(android.R.layout.two_line_list_item, null);
view.setTag(holder);
holder.text1 = (TextView) view.findViewById(android.R.id.text1);
holder.text2 = (TextView) view.findViewById(android.R.id.text2);
return view;
} 通勤路の狭い道に池沼のミドリのおじさんが車道にはみ出して来る車に敬礼してるわ
メチャクチャ邪魔で車が減速するから目的は達成してるw
毎日誰も見ないエビデンスを作る俺より社会の役に立ってるな >>362
例えば?
else必須かつ現実的な例をはやく出してよ
俺はそろそろ出社するからまた定時帰宅後に検討しようじゃないか そのif〜returnって
メソッドの外でelse使ってやったほうがよくね?w >>353
>if(cond(x)) {
>this.alpha = f(y);
>} else {
>this.beta = g(z);
>}
>この場合
どんな場合にこんな糞仕様が必要になるか詳しく書け、能無し
ありもしない状態を仮定するな、クズ
10000回読め、チンパンジー
>>346 仕様書無しさん2018/04/05(木) 06:17:29.28>>349
>同じメソッドで異なる物を更新しようとしている時点でおかしい
>適切な抽象化と関心の分離ができていないんだよ >>366
イベントによって画面の違う部分更新したりしない? ■ このスレッドは過去ログ倉庫に格納されています