新人プログラマへのアドバイス

TLで見かけた新人プログラマへのアドバイスをまとめてみました。
39
tokoya @tokoya

新人プログラマへ : ソースコード書く時に最適化なんて考えるな。おまえよりコンパイラの方が賢い。

2010-10-05 14:19:20
tokoya @tokoya

新人プログラマへ : 冗長なソースコードに見えても気にするな。コンパイラが何とかするから見やすさ優先で書け。

2010-10-05 14:20:21
tokoya @tokoya

新人プログラマへ : なんでも一行にまとめるな。どうせ最適化で消えるから一時変数使って分けて書け。じゃないとデバッグで苦しむ。

2010-10-05 14:21:30
tokoya @tokoya

新人プログラマへ : if(変数名)という書き方は厳禁。比較式の中にはちゃんと比較する値を明示的に書け。条件演算子も厳禁。

2010-10-05 14:24:30
tokoya @tokoya

新人プログラマへ : なんでもポインタで処理するな。配列はちゃんと[]付けて書け。出力されるオブジェクトは同じだ。

2010-10-05 14:25:13
tokoya @tokoya

新人プログラマへ、と書いてるけど実際には自分に対する自戒だなこれ(笑)。

2010-10-05 14:28:20

コメント

イスラエルエリカちゃん #StayAtHome @syuu1228 2010年10月5日
どうせ、これ全部守ってるけどロジックがハチャメチャなコードが生産されて来るんだぜ
0
SODA Noriyuki @n_soda 2010年10月5日
if (boolean変数名) なら全然OKでしょ、っていうか、普通はbooleanを比較しちゃ駄目(ただしbool「変数」どうしの等価/不等価比較を除く) RT @tokoy: 新人プログラマへ : if(変数名)という書き方は厳禁。比較式の中にはちゃんと比較する値を明示的に書
0
こんにちは、日本目光協会のほうからやってきました @anekos 2010年10月5日
新人プログラマへ : こういうのを安易に信じるな。
0
ぼんぼ (カカオ72%) @tm_bonvo 2010年10月5日
boolean同士の比較ならlogical-XOR使いたいところだけど、そういう演算子ないことが多いのよね。
0
kartis56 @kartis56 2010年10月5日
>ロジックがハチャメチャ  そりゃ、コード書く前にロジック書かせないからですよ。新人相手ならイッパツコーディング不許可にして、ロジックレベルのレビューしなきゃ。最適化するのはロジックでやって、後はそのとおりにコーディングするように習慣づけないと、ドキュメントすら残さなくなりますぜ。
0
さいたまさいたま(仕事募集中) @saitamasaitama 2010年10月5日
if(A==true)とか、個人的にはアフォっぽい書き方に見えるんだがなあ。 if(A==false)とif(A==true)が混在するくらいなら、if(A)またはif(!A)でいいと思うんだが。ifの中身は常にtrueさ。
0
🦅あえとす⛩️ @aetos382 2010年10月5日
if((((((((((boolVar == true) == true) == true) == true) == true) == true) == true) == true) == true) == true) { ... }
0
tech-hopper @yooydon 2010年10月5日
新人プログラマへ : デバッガに頼る前にコード全体を理解しろ。判らなければレビューで学べ。(デバッガで流れを追えるのは分岐の1ケースだけだったりするため)
0
まひわり @Mahiwari_jpnn 2010年10月5日
明確な論理型変数がある言語ならif(変数名)はアリ。そうじゃない言語は==とか使っとくのが無難。doubleの比較で==はやめておこう。
0
ta@台北 @ta1nakamura 2010年10月5日
テストコードも書こう。ユニットテストがしやすいコードを書こう。
0
atty303 @atty303 2010年10月5日
僕も基本的に if (anObject.hasChild == YES) は受け付けない。if (anObject.hasChild) のほうが読み易い。ただし、変数名から論理を想起できる場合ね。
0
DMスパマーに乗っ取られました @master_q 2010年10月5日
ユニットテストできないコードもあるんダゼ
0
inazakira @inazakira 2010年10月5日
何をもって「冗長」とするかは人によって違うのよね。
0
Briareos@残弾数はいつも────── @briareos 2010年10月6日
ぶっちゃけ「奇を衒ったコード」とか「趣味的な書き方をしたコード」は、ひんしゅくを買うだけにしかならないので、正直おすすめできない。てか、そういうコードでコードレビューやったら、突っ込まれまくりで恥かくだけですから。マジな話。
0
UЯAƧ @SARU_tw 2010年10月6日
ifで比較するときはtrueじゃなくてfalseで比較すべきって教わった。 理由は、false=0で、true=(!false)だから。
0
師匠🍆🍴⚓🎀🐇ハイパーメディアデベロッパー @sea_show 2010年10月6日
これを貼れと言われた気がした - 私がソフトウェア技術者をやめた理由 http://d.hatena.ne.jp/elm200/20100924/1285330288
0
山太夫 @_lushy 2010年10月6日
if(変数名)の件は、新人向けならいいのでは?「冗長な~」という前提があるし、逆に覚えてバグ出されるよりは列挙されたほうがマシと言う意味で。
0
うてん。 @uten00 2010年10月6日
if( 変数名 ) はたまにしちゃう。言語によっては想定しない結果になるからやっぱ条件式入れたほうがいいよね。
0
kartis56 @kartis56 2010年10月6日
if(変数名) がいけない理由は、変数の型がbooleanかどうかによるでしょう。もっというと処理系によってはfalseが0とは限らないし、その程度書いたって誰も損しない。
0
金子篤史 @libra55net 2010年10月6日
配列は[]付けろってのは賛同しかねる。
0
ぼうくん @VoQn 2010年10月6日
1.ポインタが利用できる言語ならポインタ使いこなせてる方が腕はつくんじゃないの
0
ぼうくん @VoQn 2010年10月6日
2. Javaで if("hoge" == hogeString){} なんてしようなら鬼軍曹からゲンコツくらうよね。要するにメソッドやメンバがboolean参照できるものなら素直に使った方がスマートでしょう
0
うてん。 @uten00 2010年10月6日
他の人が見てわかるよーなソースって意味ではポインタの多用やboolean判定を期待する条件式をどこまで使っていいかって悩みはあるかもね。
0
mar @marrrrrrrrr 2010年10月6日
新人プログラマへ:ちょっとはググれ
0
kartis56 @kartis56 2010年10月6日
>Javaで if("hoge" == hogeString){} 定数を左辺値にしたらコンパイルエラーでしょ?
0
@holypp 2010年10月10日
う〜ん、if(変数名)はふさわしいケースがたくさんあると思う。許されない職場には行きたくないな。それより(略)
0