Hello hackers !
Qiitaは、エンジニアリングに関する知識を記録・共有するためのサービスです。
コードを書いていて気づいたことや、自分がハマったあの仕様について、
他のエンジニアと知見を共有しましょう ;)
https://qiita.com/
Qiita(キータ)は、Incrementsが運営するプログラミング情報のナレッジコミュニティ。
2016年現在で日本最大のプログラマーコミュニティとされている[1]。
https://internet.watch.impress.co.jp/docs/news/1025972.html
前スレ Qiita
https://mevius.5ch.net/test/read.cgi/tech/1542357242/
Qiita 2 - キータぞ、来たぞ、キータだぞー
https://mevius.5ch.net/test/read.cgi/tech/1658762410/
Qiita 3 - キータぞ、来たぞ、キータだぞー
https://mevius.5ch.net/test/read.cgi/tech/1685235361/
探検
Qiita 4 - キータぞ、来たぞ、キータだぞー
■ このスレッドは過去ログ倉庫に格納されています
2024/01/17(水) 19:20:36.09ID:VohMlHbO
302デフォルトの名無しさん
2024/03/02(土) 23:41:41.36ID:zM2ZA6hl >>301
一目でashworthってわかるコメントすげえな
一目でashworthってわかるコメントすげえな
303デフォルトの名無しさん
2024/03/02(土) 23:47:27.34ID:i4kr5cxv https://qiita.com/kjm_nuco/items/fd16c2af6b089c4849cd
のコメントで
> 条件分岐が商業的な理由でどんどん仕様変更されていく事があるのは、仕事でプログラミングをした事があれば分かりませんか?
とか
> 多分、これが仕様書か基本設計書に書かれるんですよね。
>
> A: 4の倍数ならばうるう年
> B: 100の倍数ならば平年
> C: 400の倍数ならばうるう年
> そうしたら、この仕様に沿った形でコード書かないと。
とか、主張としては一理あること言ってるのに400の倍数は100の倍数に含まれるとか利用した記事主のコード支持してんのわけわからんなあ。
結局気に入らない相手にケチつけたいだけなんだよなあ。
のコメントで
> 条件分岐が商業的な理由でどんどん仕様変更されていく事があるのは、仕事でプログラミングをした事があれば分かりませんか?
とか
> 多分、これが仕様書か基本設計書に書かれるんですよね。
>
> A: 4の倍数ならばうるう年
> B: 100の倍数ならば平年
> C: 400の倍数ならばうるう年
> そうしたら、この仕様に沿った形でコード書かないと。
とか、主張としては一理あること言ってるのに400の倍数は100の倍数に含まれるとか利用した記事主のコード支持してんのわけわからんなあ。
結局気に入らない相手にケチつけたいだけなんだよなあ。
304デフォルトの名無しさん
2024/03/03(日) 00:28:36.24ID:ELcAnTIw >>301
weblio知らないなんてインターネットリテラシー低すぎますよw
weblio知らないなんてインターネットリテラシー低すぎますよw
305デフォルトの名無しさん
2024/03/03(日) 13:38:29.39ID:korTDzLq > 多分、これが仕様書か基本設計書に書かれるんですよね。
>
> A: 4の倍数ならばうるう年
> B: 100の倍数ならば平年
> C: 400の倍数ならばうるう年
> そうしたら、この仕様に沿った形でコード書かないと。
仕様に沿った形というとこういうコードだよなあ。
def is_leap_year(year):
leap_year = False
# A: 4の倍数ならばうるう年
if year % 4 == 0:
leap_year = True
# B: 100の倍数ならば平年
if year % 100 == 0:
leap_year = False
# C: 400の倍数ならばうるう年
if year % 400 == 0:
leap_year = True
return leap_year
仕様変更に対応し易いという点では優れてるかな。うるう年判定にそれが必要かは疑問ではあるが。
>
> A: 4の倍数ならばうるう年
> B: 100の倍数ならば平年
> C: 400の倍数ならばうるう年
> そうしたら、この仕様に沿った形でコード書かないと。
仕様に沿った形というとこういうコードだよなあ。
def is_leap_year(year):
leap_year = False
# A: 4の倍数ならばうるう年
if year % 4 == 0:
leap_year = True
# B: 100の倍数ならば平年
if year % 100 == 0:
leap_year = False
# C: 400の倍数ならばうるう年
if year % 400 == 0:
leap_year = True
return leap_year
仕様変更に対応し易いという点では優れてるかな。うるう年判定にそれが必要かは疑問ではあるが。
306デフォルトの名無しさん
2024/03/03(日) 13:40:04.83ID:korTDzLq 『リーダブルコード』に洗脳されたのかナントカの一つ覚えよろしく早期リターンを勧める人Qiitaでは見掛けるけど仕様からは逸脱しちゃうんで「仕様に沿った形でコード書かないと」という主張的にはナシだろうな。
def is_leap_year(year):
# 4の倍数でないなら平年
if year % 4 != 0:
return False
# 4の倍数で100の倍数でないならうるう年
if year % 100 != 0:
return True
# 4の倍数で100の倍数で400の倍数でないなら平年
if year % 400 != 0:
return False
# 4の倍数で100の倍数で400の倍数ならうるう年
return True
def is_leap_year(year):
# 4の倍数でないなら平年
if year % 4 != 0:
return False
# 4の倍数で100の倍数でないならうるう年
if year % 100 != 0:
return True
# 4の倍数で100の倍数で400の倍数でないなら平年
if year % 400 != 0:
return False
# 4の倍数で100の倍数で400の倍数ならうるう年
return True
307デフォルトの名無しさん
2024/03/03(日) 14:21:08.84ID:korTDzLq https://qiita.com/kjm_nuco/items/fd16c2af6b089c4849cd#comment-1dd48f5238d4a2c96c3c
> 多分、これが仕様書か基本設計書に書かれるんですよね。
>
> A: 4の倍数ならばうるう年
> B: 100の倍数ならば平年
> C: 400の倍数ならばうるう年
> そうしたら、この仕様に沿った形でコード書かないと。
おいおいashworth、「ただし」どこやった?
「仕様に沿った形でコード書かないと」ってどの口で言ってる?
https://qiita.com/kjm_nuco/items/fd16c2af6b089c4849cd
> うるう年と判定する条件は、以下のとおりである。
> A: 4の倍数の年は、うるう年
> B: ただし、100の倍数の年は、うるう年ではない(平年)
> C: ただし、400の倍数の年は、うるう年
> 多分、これが仕様書か基本設計書に書かれるんですよね。
>
> A: 4の倍数ならばうるう年
> B: 100の倍数ならば平年
> C: 400の倍数ならばうるう年
> そうしたら、この仕様に沿った形でコード書かないと。
おいおいashworth、「ただし」どこやった?
「仕様に沿った形でコード書かないと」ってどの口で言ってる?
https://qiita.com/kjm_nuco/items/fd16c2af6b089c4849cd
> うるう年と判定する条件は、以下のとおりである。
> A: 4の倍数の年は、うるう年
> B: ただし、100の倍数の年は、うるう年ではない(平年)
> C: ただし、400の倍数の年は、うるう年
308デフォルトの名無しさん
2024/03/03(日) 14:31:47.57ID:korTDzLq 「ただし」がないとインデントは浅くできる。
def is_leap_year(year):
leap_year = False
# A: 4の倍数ならばうるう年
if year % 4 == 0:
leap_year = True
# B: 100の倍数ならば平年
if year % 100 == 0:
leap_year = False
# C: 400の倍数ならばうるう年
if year % 400 == 0:
leap_year = True
return leap_year
「ただし」のありなしは仕様にある「4」「100」「400」の値が変われば結果に影響するのでこの点は重要。
def is_leap_year(year):
leap_year = False
# A: 4の倍数ならばうるう年
if year % 4 == 0:
leap_year = True
# B: 100の倍数ならば平年
if year % 100 == 0:
leap_year = False
# C: 400の倍数ならばうるう年
if year % 400 == 0:
leap_year = True
return leap_year
「ただし」のありなしは仕様にある「4」「100」「400」の値が変われば結果に影響するのでこの点は重要。
309デフォルトの名無しさん
2024/03/03(日) 14:49:33.76ID:dNrHcF7C コードもクソだけどコメントもまたクソなんだよなぁ
クソコード書くやつ特有のコメントの書き方
クソコード書くやつ特有のコメントの書き方
310デフォルトの名無しさん
2024/03/03(日) 16:04:43.33ID:+Cuj4OdR ashworthの投稿はわかりやすいなあw
311デフォルトの名無しさん
2024/03/03(日) 16:22:53.63ID:d7oKsZ8+ >>309
じゃあashworthが称賛してる記事主のコードを見てみよう。
> year = int(input())
> if year % 400 == 0: # 400の倍数なら「うるう年です。」
> print("うるう年です。")
> elif year % 100 == 0: # 100の倍数なら「うるう年ではありません。」
> print("うるう年ではありません。")
> elif year % 4 == 0: # 4の倍数なら「うるう年です。」
> print("うるう年です。")
> else: # どれにも当てはまらなければ、「うるう年ではありません。」
> print("うるう年ではありません。")
んー大差なくね?
つか出力するメッセージとコメントが被ってる分どうかという気がするわ。
じゃあashworthが称賛してる記事主のコードを見てみよう。
> year = int(input())
> if year % 400 == 0: # 400の倍数なら「うるう年です。」
> print("うるう年です。")
> elif year % 100 == 0: # 100の倍数なら「うるう年ではありません。」
> print("うるう年ではありません。")
> elif year % 4 == 0: # 4の倍数なら「うるう年です。」
> print("うるう年です。")
> else: # どれにも当てはまらなければ、「うるう年ではありません。」
> print("うるう年ではありません。")
んー大差なくね?
つか出力するメッセージとコメントが被ってる分どうかという気がするわ。
312デフォルトの名無しさん
2024/03/03(日) 17:17:37.89ID:sHthb9Xp > A: 4の倍数ならばうるう年
> B: 100の倍数ならば平年
> C: 400の倍数ならばうるう年
> になります。
>
> ここで、AとBの条件に注目して、
>
> 100の倍数ならば、4の倍数である
> ことに気づくと、
>
> 100の倍数は平年。そして100の倍数でない4の倍数はうるう年。
> という形で、AとBの関係を整理することができます。
>
> 同様に、BとCについても、
>
> 400の倍数ならば、100の倍数である
> ので、
>
> 400の倍数ならばうるう年。そして400の倍数でない100の倍数は平年。
> という形で、BとCの関係を整理することができます。
>
> まとめると、ある西暦に対して、
>
> 400の倍数ならば、うるう年
> 400の倍数でない、100の倍数ならば、平年
> 100の倍数でない、4の倍数ならば、うるう年
> 4の倍数でないならば、平年
> ということになります。
これコメントに書かなくて良い理由がわからん
つか記事主も「ただし」勝手に削除しとるのなw
> B: 100の倍数ならば平年
> C: 400の倍数ならばうるう年
> になります。
>
> ここで、AとBの条件に注目して、
>
> 100の倍数ならば、4の倍数である
> ことに気づくと、
>
> 100の倍数は平年。そして100の倍数でない4の倍数はうるう年。
> という形で、AとBの関係を整理することができます。
>
> 同様に、BとCについても、
>
> 400の倍数ならば、100の倍数である
> ので、
>
> 400の倍数ならばうるう年。そして400の倍数でない100の倍数は平年。
> という形で、BとCの関係を整理することができます。
>
> まとめると、ある西暦に対して、
>
> 400の倍数ならば、うるう年
> 400の倍数でない、100の倍数ならば、平年
> 100の倍数でない、4の倍数ならば、うるう年
> 4の倍数でないならば、平年
> ということになります。
これコメントに書かなくて良い理由がわからん
つか記事主も「ただし」勝手に削除しとるのなw
313デフォルトの名無しさん
2024/03/03(日) 20:00:32.81ID:fa8lyE6P 初めて聞いた「カルノー図」に発狂してるashworthオモロw
314デフォルトの名無しさん
2024/03/03(日) 21:02:10.90ID:Nvr74PJc ・if は個人的に「もし~なら」で言ってほしい
・「ただし」はプログラミング的な英単語がない気がするので(however的な?)、仕様書とかでも多用しないで欲しい
・else、elseifも「ただし」じゃないと思うので相応の日本語にしてほしい
・早期リターンしてほしい
400から順番にreturnしてもらえれば、ワイ的にはおけ
仕様変更の可能性に対してはとりあえず関数にしてればいい
マジックナンバーじゃねとかライブラリ使えとか色々あると思うけど、この関数が必要なんだろうからテスト通れば許容すると思う
・「ただし」はプログラミング的な英単語がない気がするので(however的な?)、仕様書とかでも多用しないで欲しい
・else、elseifも「ただし」じゃないと思うので相応の日本語にしてほしい
・早期リターンしてほしい
400から順番にreturnしてもらえれば、ワイ的にはおけ
仕様変更の可能性に対してはとりあえず関数にしてればいい
マジックナンバーじゃねとかライブラリ使えとか色々あると思うけど、この関数が必要なんだろうからテスト通れば許容すると思う
315デフォルトの名無しさん
2024/03/03(日) 21:47:18.39ID:B4rwo5Er 閏年の仕様が変わったら判定関数だけ置き換えればいいのだから
判定関数の中身なんて何でもいいのよ
割り算(剰余算)と分岐はCPUにとって非常に遅いから避けるとするならば例えばこんな感じ
fn is_leap_year(year: u64) -> bool {
let q100 = (year * 42949673) >> 32;
((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
}
判定関数の中身なんて何でもいいのよ
割り算(剰余算)と分岐はCPUにとって非常に遅いから避けるとするならば例えばこんな感じ
fn is_leap_year(year: u64) -> bool {
let q100 = (year * 42949673) >> 32;
((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
}
316デフォルトの名無しさん
2024/03/03(日) 22:44:59.76ID:korTDzLq >>315
107374182500年は平年? 閏年?
107374182500年は平年? 閏年?
317デフォルトの名無しさん
2024/03/03(日) 23:02:43.19ID:LRDbiCZ0 Rust推しは意識高い良く分かって馬鹿が多い印象
318デフォルトの名無しさん
2024/03/04(月) 00:48:03.64ID:nt/dsevV >>315
素直に100で割らない意味がわからん。
要らんことやって仕事増やすタイプだろお前。
pub fn is_leap_year(year: u64) -> bool {
let q100 = year / 100;
((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
}
https://godbolt.org/z/YKPWx7ecW
素直に100で割らない意味がわからん。
要らんことやって仕事増やすタイプだろお前。
pub fn is_leap_year(year: u64) -> bool {
let q100 = year / 100;
((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
}
https://godbolt.org/z/YKPWx7ecW
319デフォルトの名無しさん
2024/03/04(月) 08:16:08.85ID:L2qxv/xY320デフォルトの名無しさん
2024/03/04(月) 08:38:24.53ID:rKgJ7Cpp >>308
あまり見かけねえ書き方で新鮮だな
あまり見かけねえ書き方で新鮮だな
321デフォルトの名無しさん
2024/03/04(月) 09:02:08.19ID:4WAZxDSM >>315
Rustって使ったことないんだけど動確してみた。書き方合ってる?
fn is_leap_year(year: u64) -> bool {
let q100 = (year * 42949673) >> 32;
((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
}
fn main()
{
let year = 107374182500;
println!("is_leap_year({}) -> {}", year, is_leap_year(year));
}
実行結果:
is_leap_year(107374182500) -> true
https://wandbox.org/permlink/QpmojpixtLrxk9CW
Rustって使ったことないんだけど動確してみた。書き方合ってる?
fn is_leap_year(year: u64) -> bool {
let q100 = (year * 42949673) >> 32;
((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
}
fn main()
{
let year = 107374182500;
println!("is_leap_year({}) -> {}", year, is_leap_year(year));
}
実行結果:
is_leap_year(107374182500) -> true
https://wandbox.org/permlink/QpmojpixtLrxk9CW
322デフォルトの名無しさん
2024/03/04(月) 09:41:48.67ID:ybOgKOgD323デフォルトの名無しさん
2024/03/04(月) 09:52:37.00ID:vH/xi8sY 日本語に弱いやつしかいないのに互いに馬鹿にしあってるの草
324デフォルトの名無しさん
2024/03/04(月) 10:05:22.74ID:bg/wANq4 年を表す引数の型にu64使うのが頭悪い。引数型で表せる値について動作保証できないロジックも同様。
引数に4300億とか与えるとオーバーフローするし場合により異常停止するだろこのコード。実際にそういう引数は与えないと強弁したところで潜在的不具合であることに変わりない。
引数に4300億とか与えるとオーバーフローするし場合により異常停止するだろこのコード。実際にそういう引数は与えないと強弁したところで潜在的不具合であることに変わりない。
325デフォルトの名無しさん
2024/03/04(月) 10:07:06.25ID:G+SI+9NC 話題に加われない>>323がashworthなの一目瞭然で草ww
326デフォルトの名無しさん
2024/03/04(月) 10:17:08.86ID:nwGjv9Ax https://wandbox.org/permlink/V9X44saMMVMpQVoi
> thread 'main' panicked at 'attempt to multiply with overflow', prog.rs:2:14
> note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
あっこれはカッコ悪いなw
>>315
> 割り算(剰余算)と分岐はCPUにとって非常に遅いから避けるとするならば例えばこんな感じ
素直に100で割ってればオーバーフローしないんだし優先順位間違ってるよ。
> thread 'main' panicked at 'attempt to multiply with overflow', prog.rs:2:14
> note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
あっこれはカッコ悪いなw
>>315
> 割り算(剰余算)と分岐はCPUにとって非常に遅いから避けるとするならば例えばこんな感じ
素直に100で割ってればオーバーフローしないんだし優先順位間違ってるよ。
327デフォルトの名無しさん
2024/03/04(月) 10:23:15.83ID:x5QmeQKx Rust使いでニワカかあ。
自己評価と実力が合ってない雰囲気で質悪そう。
自己評価と実力が合ってない雰囲気で質悪そう。
328デフォルトの名無しさん
2024/03/04(月) 10:29:55.63ID:f2L8YBYP え、今更入力値が何でもアリになるの?w
329デフォルトの名無しさん
2024/03/04(月) 10:55:00.92ID:6oMfM7hM 仕様に入力値の範囲が決められてないのに実装者の都合で制限設けて良いって判断は流石に草
330デフォルトの名無しさん
2024/03/04(月) 11:23:54.90ID:FbUIg7c9 じゃあバリデーションが必要だなww
331デフォルトの名無しさん
2024/03/04(月) 13:14:12.60ID:L4FnNvvc 要件定義の際にクライアントに「1億年後も検証出来る仕様にした方がいいっすか?w」と聞かなかった上流の責任笑
332デフォルトの名無しさん
2024/03/04(月) 13:53:50.23ID:GQyS78JX Rust支持の人達って安全について意識が高く技術的レヴェルが高い層だと思っていたので自ら率先して不具合を作り込もうとする>>315の存在には驚いたんだけど、よく考えてみると
「えっ今どきEmacsなんて使ってるの?今はVSCode一択でしょ」
「えっ今どきSVNなんて使ってるの?今はgit一択でしょ」
「えっ今どきJavaなんて使ってるの?今はKotlin一択でしょ」
「えっ今どきC++なんて使ってるの?今はRust一択でしょ」
使ってる道具でマウント取ろうとする奴なんて昔からいるし使ってる道具が新しく洗練されてたとしてそれ使ってる奴の技術的高さを証明するものではないしなあ、変な先入観持ってたわと反省。
「えっ今どきEmacsなんて使ってるの?今はVSCode一択でしょ」
「えっ今どきSVNなんて使ってるの?今はgit一択でしょ」
「えっ今どきJavaなんて使ってるの?今はKotlin一択でしょ」
「えっ今どきC++なんて使ってるの?今はRust一択でしょ」
使ってる道具でマウント取ろうとする奴なんて昔からいるし使ってる道具が新しく洗練されてたとしてそれ使ってる奴の技術的高さを証明するものではないしなあ、変な先入観持ってたわと反省。
333デフォルトの名無しさん
2024/03/04(月) 14:34:57.46ID:ks/ruwRx >上流の責任笑
これが末端コーダーの考え方
これが末端コーダーの考え方
334デフォルトの名無しさん
2024/03/04(月) 15:14:26.33ID:L4FnNvvc >333
ヒント:冗談
ヒント:冗談
335デフォルトの名無しさん
2024/03/04(月) 16:34:00.40ID:FbUIg7c9 入力値に制限がないなら、
文字列とか小数とかそれ以外のパラメータなときを考慮してない
今までのコードは軒並み全部ダメってことでw
文字列とか小数とかそれ以外のパラメータなときを考慮してない
今までのコードは軒並み全部ダメってことでw
336デフォルトの名無しさん
2024/03/04(月) 17:50:07.95ID:+mqsOFjA >>334
何をバカにされてるかわかってない辺りがまさに末端コーダー
何をバカにされてるかわかってない辺りがまさに末端コーダー
337デフォルトの名無しさん
2024/03/04(月) 17:59:24.41ID:vb1ocUz9 >判定関数の中身なんて何でもいいのよ
判定関数自体の保守性が論点にも関わらずそれを無視した独りよがりのオナニー汚コードを恥ずかしげもなく披露するメンタリティが怖い
判定関数自体の保守性が論点にも関わらずそれを無視した独りよがりのオナニー汚コードを恥ずかしげもなく披露するメンタリティが怖い
338デフォルトの名無しさん
2024/03/04(月) 18:31:19.07ID:9eGnhSkR >>335
元記事に整数と書いてあるんだからそこまで考える必要はないでしょ
元記事に整数と書いてあるんだからそこまで考える必要はないでしょ
339デフォルトの名無しさん
2024/03/04(月) 19:15:00.88ID:L4FnNvvc >336
納期近いのか?イライラしても仕事は進まんぞ
納期近いのか?イライラしても仕事は進まんぞ
340デフォルトの名無しさん
2024/03/04(月) 19:16:47.00ID:8GGqJ/7e 97/400の閏年は10万年で1ヶ月の誤差が出るため100万の入力すら対応する必要がない
そこへ億の入力をして騒ぐのはキチガイ
そこへ億の入力をして騒ぐのはキチガイ
341デフォルトの名無しさん
2024/03/04(月) 20:12:58.89ID:f2L8YBYP 整数、西暦なんて数値制限がないんだから、
型も限りなく無限にちかいbit、桁数まで対応しなきゃいけんのかw
こりゃ大変だなw
型も限りなく無限にちかいbit、桁数まで対応しなきゃいけんのかw
こりゃ大変だなw
342デフォルトの名無しさん
2024/03/04(月) 20:22:40.17ID:6JPPJUIM 現在のグレゴリオ暦を運用し続けたとして1兆年後どうなるか? みたいな計算をしたいとして、間違って良い理由はないんだよなあ。
343デフォルトの名無しさん
2024/03/04(月) 20:30:16.70ID:k69OqpEV344デフォルトの名無しさん
2024/03/04(月) 20:34:57.33ID:A8alMUdc 3320年で1日の誤差
10万年で1月の誤差
120万年で1年の誤差
季節が数か月ズレると役立たないから
多くても数十万年に対応してれば十分かな
それ以上の数値を持ち出す人は本質的に何が重要なのかを理解できていないバカ
10万年で1月の誤差
120万年で1年の誤差
季節が数か月ズレると役立たないから
多くても数十万年に対応してれば十分かな
それ以上の数値を持ち出す人は本質的に何が重要なのかを理解できていないバカ
345デフォルトの名無しさん
2024/03/04(月) 20:52:01.50ID:BmASXDPG > 多くても数十万年に対応してれば十分かな
クソコードは数十万年に対応出来てることを証明するのにも無駄に労力要るんだよなあ。
クソコードは数十万年に対応出来てることを証明するのにも無駄に労力要るんだよなあ。
346デフォルトの名無しさん
2024/03/04(月) 20:55:08.59ID:sb3IKn5X > それ以上の数値を持ち出す人は本質的に何が重要なのかを理解できていないバカ
↑入力値によってはプログラムが落ちる事の重大さを理解してないアホ
↑入力値によってはプログラムが落ちる事の重大さを理解してないアホ
347デフォルトの名無しさん
2024/03/04(月) 20:59:22.65ID:E1/CqXZt 入力値によってプログラムが落ちると思っているアホがいるのか
348デフォルトの名無しさん
2024/03/04(月) 21:07:19.90ID:lbPgOJLr >>315のコードは
・なぜ引数yearの型がu64なのか
・yearを100で割れば良いところを2**32/100倍して32ビット右シフトなんて馬鹿なことをしてるのか
謎なのよなあ、こんなコード業務で書いたら絶対レビューでなんか言われるやつじゃん。
説明すれや >本人
・なぜ引数yearの型がu64なのか
・yearを100で割れば良いところを2**32/100倍して32ビット右シフトなんて馬鹿なことをしてるのか
謎なのよなあ、こんなコード業務で書いたら絶対レビューでなんか言われるやつじゃん。
説明すれや >本人
349デフォルトの名無しさん
2024/03/04(月) 21:27:56.24ID:cpsYzbII 今どきのコンパイラは、定数割り算を定数掛け算とシフトでコード生成するから、それ自体を問題にするのは知識不足としか。
350デフォルトの名無しさん
2024/03/04(月) 21:30:45.48ID:Z3raS9US351デフォルトの名無しさん
2024/03/04(月) 21:56:19.34ID:ZAExDmnh352デフォルトの名無しさん
2024/03/05(火) 00:11:26.36ID:tUTq/Hb5 型でエラーになるのはダメやろw
有限な数値型を引数にする関数は全部ダメ
有限な数値型を引数にする関数は全部ダメ
353デフォルトの名無しさん
2024/03/05(火) 00:19:04.31ID:LgXFRYMx それはあるな
少なくともbigintは必須
少なくともbigintは必須
354デフォルトの名無しさん
2024/03/05(火) 00:24:51.84ID:VNREUF6A355デフォルトの名無しさん
2024/03/05(火) 00:40:04.95ID:ayHwglDl 関数内部の単なる数値演算に保守性もクソもないぜ
そんなところの保守性にこだわるやつは仕事できないやつ
それよりも複数のデータや複数の関数に関わるところの保守性をしっかりやればいい
そんなところの保守性にこだわるやつは仕事できないやつ
それよりも複数のデータや複数の関数に関わるところの保守性をしっかりやればいい
356デフォルトの名無しさん
2024/03/05(火) 05:36:37.94ID:htia+Qez 中身が何でもいいならわずかなパフォーマンス改善よりも楽に読み書きできるほうがいいわwwww
357デフォルトの名無しさん
2024/03/05(火) 06:40:09.05ID:vd0jlnr0 非常に大きな値を扱える方がいい場合もあれば
実用の範囲だけを速く扱える方がいい場合もあれば
複雑になっても将来の拡張に備えた形にした方がいい場合もあれば
それら様々な前提があるのだから
それぞれの前提でそれぞれのふさわしい別々のコードになるのは当たり前
各々の前提を無視して批判するのは愚か
実用の範囲だけを速く扱える方がいい場合もあれば
複雑になっても将来の拡張に備えた形にした方がいい場合もあれば
それら様々な前提があるのだから
それぞれの前提でそれぞれのふさわしい別々のコードになるのは当たり前
各々の前提を無視して批判するのは愚か
358デフォルトの名無しさん
2024/03/05(火) 09:50:57.37ID:2lxN9jtN >>351
実行時にオーバーフローを検出する運用も普通に可能だけど安全の意味分かってる?
実行時にオーバーフローを検出する運用も普通に可能だけど安全の意味分かってる?
359デフォルトの名無しさん
2024/03/05(火) 10:58:46.36ID:e0di8bB0 >>351
> RustはC/C++と同じく整数演算はオーバーフローせずラッピングされるよ
CやC++でラッピングされるのは符号なし整数の場合だけ。
符号付き整数のオーバーフローは未定義動作になるので通常許されない。
> RustはC/C++と同じく整数演算はオーバーフローせずラッピングされるよ
CやC++でラッピングされるのは符号なし整数の場合だけ。
符号付き整数のオーバーフローは未定義動作になるので通常許されない。
360デフォルトの名無しさん
2024/03/05(火) 11:09:30.17ID:xnazIivs >>357
>非常に大きな値を扱える方がいい場合もあれば
>実用の範囲だけを速く扱える方がいい場合もあれば
>複雑になっても将来の拡張に備えた形にした方がいい場合もあれば
どの場合も保守性を無視したコードを書いていいわけじゃないんだぞ
ド素人さんw
>非常に大きな値を扱える方がいい場合もあれば
>実用の範囲だけを速く扱える方がいい場合もあれば
>複雑になっても将来の拡張に備えた形にした方がいい場合もあれば
どの場合も保守性を無視したコードを書いていいわけじゃないんだぞ
ド素人さんw
361デフォルトの名無しさん
2024/03/05(火) 11:10:48.88ID:kMFA7wVm362デフォルトの名無しさん
2024/03/05(火) 11:33:45.43ID:ihc4PKcq364デフォルトの名無しさん
2024/03/05(火) 12:09:50.59ID:3LKO8OZb この狂人の会話についていけるやつが賢いと本気で思うやつおる?w
365デフォルトの名無しさん
2024/03/05(火) 12:30:39.80ID:kMFA7wVm >>363 ashworthの投稿は一目でわかるなw
366デフォルトの名無しさん
2024/03/05(火) 18:44:35.96ID:1i72r55F367デフォルトの名無しさん
2024/03/05(火) 19:35:33.31ID:xTYxmN7F368デフォルトの名無しさん
2024/03/05(火) 20:42:06.70ID:HwnQ5/nd369デフォルトの名無しさん
2024/03/05(火) 20:50:34.98ID:CyHqAHwW 周りが見てて赤面するような低レベル自演
それをいつも平気でするのが彼なんです
それをいつも平気でするのが彼なんです
370デフォルトの名無しさん
2024/03/05(火) 21:13:56.87ID:LlXxwVu3 ashworthの投稿は一目でわかるなw
371デフォルトの名無しさん
2024/03/05(火) 22:49:41.95ID:EeD2UFNN まだクソザコミジンコいるの?いい加減飽きたよ
372デフォルトの名無しさん
2024/03/05(火) 23:54:29.42ID:RHufrhea ashworthの投稿は一目でわかるなww
373デフォルトの名無しさん
2024/03/06(水) 10:25:59.29ID:ilhvzGuB C言語1からお教えします!
https://qiita.com/ToaruSWEng_Yopiro/items/0fa594857d72c68fe3f7
宣伝記事。
30日で5万円て微妙な線かな。本人の実力とかサッパリわからん人だけど。
https://qiita.com/ToaruSWEng_Yopiro/items/0fa594857d72c68fe3f7
宣伝記事。
30日で5万円て微妙な線かな。本人の実力とかサッパリわからん人だけど。
374デフォルトの名無しさん
2024/03/06(水) 23:45:18.98ID:gwIxTDvC >>367
なるほど
コンパイラが
let q100 = year / 100;
を
let q100 = ((year as u64 * 1374389535) >> 37) as u32;
へと自動変換してくれてるんだ
これは割り算が遅いため?
なるほど
コンパイラが
let q100 = year / 100;
を
let q100 = ((year as u64 * 1374389535) >> 37) as u32;
へと自動変換してくれてるんだ
これは割り算が遅いため?
375デフォルトの名無しさん
2024/03/07(木) 17:33:15.65ID:S1Dt4N3M376デフォルトの名無しさん
2024/03/07(木) 20:58:11.23ID:HzTOrgQG377デフォルトの名無しさん
2024/03/08(金) 01:22:49.50ID:5X9kKh/r ashworthの投稿は一目でわかるなw
378デフォルトの名無しさん
2024/03/08(金) 01:36:10.70ID:sIorMR2i >>376
2^5=32倍すれば同じ
2^5=32倍すれば同じ
379デフォルトの名無しさん
2024/03/08(金) 20:20:11.11ID:aW3zWcXt >>367
うるう年判定プログラムの最終的な正解はそれか
q100 = year / 100
return ((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
うるう年判定プログラムの最終的な正解はそれか
q100 = year / 100
return ((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
380デフォルトの名無しさん
2024/03/08(金) 21:23:51.45ID:5X9kKh/r うるう年の判定に速度なんて求められてないから可読性捨ててるコードが正解な訳ないんだよ
381デフォルトの名無しさん
2024/03/08(金) 21:40:30.10ID:XB1ZE2bb なんて2年前のしょーもない記事を延々擦ってんの
382デフォルトの名無しさん
2024/03/09(土) 01:32:01.74ID:qaiTGGP1 https://qiita.com/jaque/items/b99ed9dce78cc64fa9d2#comment-c16f3fb050b21b73dc21
> 頭がまともならこうじゃねぇの?
> あまりにもバカらしいので動くかどうか検証してないけど。
> あれかな? 掛け算には順序があります!とか言ってる脳みそウニな小学校算数信奉者なんかな?
> なんでreturnするだけでカンマがどうしたいう話になるんやろ?
この人何か辛いことでもあったのかな?かわいそうな人もいればいるものだね。
> 頭がまともならこうじゃねぇの?
> あまりにもバカらしいので動くかどうか検証してないけど。
> あれかな? 掛け算には順序があります!とか言ってる脳みそウニな小学校算数信奉者なんかな?
> なんでreturnするだけでカンマがどうしたいう話になるんやろ?
この人何か辛いことでもあったのかな?かわいそうな人もいればいるものだね。
383デフォルトの名無しさん
2024/03/09(土) 02:35:14.90ID:IFxh9Qz2 ashworth生きとったんかワレ
384デフォルトの名無しさん
2024/03/09(土) 03:01:34.02ID:w/dffNo0 自宅Qiita巡回員がパトロール中にashworth見つけてきたのかと思いきや1コメ藤田で吹いたわw
しかもお前early return推奨しとるやんけww
しかもお前early return推奨しとるやんけww
385デフォルトの名無しさん
2024/03/09(土) 08:46:40.66ID:dSYGfuSn https://qiita.com/Sicut_study/items/71b866d8f064699cb57b
胡散臭すぎると思いつつ読んだら最後に士商法のリンクがあって納得した
胡散臭すぎると思いつつ読んだら最後に士商法のリンクがあって納得した
386デフォルトの名無しさん
2024/03/09(土) 08:51:24.21ID:dSYGfuSn ashworth本人が書いてるんだろうなぁ
387デフォルトの名無しさん
2024/03/09(土) 11:20:29.30ID:ff4VvQN6 D-Threeってやつのが一番まともだが
F#で書いたせいで誰にも伝わってなくて草
JSでも同じように書けるだろうに
逆にStack Overflowなら確実にマイナスポイントになってそうなやつがいいねされてるのあたりはさすがQiita
なんだよ関数型として見ればかなり自然てw
F#で書いたせいで誰にも伝わってなくて草
JSでも同じように書けるだろうに
逆にStack Overflowなら確実にマイナスポイントになってそうなやつがいいねされてるのあたりはさすがQiita
なんだよ関数型として見ればかなり自然てw
388デフォルトの名無しさん
2024/03/09(土) 11:39:24.84ID:MCo17Yej ashworth発狂してて草w
389デフォルトの名無しさん
2024/03/09(土) 11:51:36.66ID:B/Cj+09a 条件演算子を使ってる奴はカバレッジの概念がないんだろうなあ
390デフォルトの名無しさん
2024/03/09(土) 12:16:07.82ID:uaHECGrx https://qiita.com/jaque/items/b99ed9dce78cc64fa9d2#comment-47fc225ee5fb822d7d4b
> これ、酷いなぁ…。
> こんなのにいいねが6もつくんや…。
> 世も末やなぁ…。
とash worthが仰ってるコメント、
> 今回のコードもいい感じに整形したら意外とありかも?と思って書いてみましたが、やっぱりダメですね。(再代入とカンマ演算子がksすぎる)
と書いててコメント投稿者は良い例として認識してないし「いいね」付けてる人も分かってる筈なんだけど、一人で発狂してるash worth本当に馬鹿だなあ。
> これ、酷いなぁ…。
> こんなのにいいねが6もつくんや…。
> 世も末やなぁ…。
とash worthが仰ってるコメント、
> 今回のコードもいい感じに整形したら意外とありかも?と思って書いてみましたが、やっぱりダメですね。(再代入とカンマ演算子がksすぎる)
と書いててコメント投稿者は良い例として認識してないし「いいね」付けてる人も分かってる筈なんだけど、一人で発狂してるash worth本当に馬鹿だなあ。
391デフォルトの名無しさん
2024/03/09(土) 13:09:29.90ID:P9RNxhmx 前回のうるう年だとashworthはもう少しわかってるやつかと思ってたが今回の見ると俺の見る目が間違ってた
Zuishinや藤田らとどんぐりの背比べと言ってた人が完全に正しい
Zuishinや藤田らとどんぐりの背比べと言ってた人が完全に正しい
392デフォルトの名無しさん
2024/03/09(土) 13:54:31.13ID:xhr7K3Xv ashworthの投稿は一目でわかるなw
393デフォルトの名無しさん
2024/03/09(土) 13:57:15.07ID:XTrfHDdU 抜群に馬鹿でしょashworth
394デフォルトの名無しさん
2024/03/09(土) 14:09:45.45ID:/Q6g3drt ashworthがよくやってる行動で自分が知らない方法について否定したり馬鹿にしたりするの見ててだいぶ恥ずかしいんだけど本人的にはどうなんかね?
もう50過ぎみたいだけど自分のこと少しも客観視できないのかな
発達障害的な人物かしら
もう50過ぎみたいだけど自分のこと少しも客観視できないのかな
発達障害的な人物かしら
395デフォルトの名無しさん
2024/03/09(土) 14:13:11.40ID:ziGRJbZi396デフォルトの名無しさん
2024/03/09(土) 14:25:42.44ID:rCU83oCx https://qiita.com/jaque/items/b99ed9dce78cc64fa9d2#comment-c16f3fb050b21b73dc21
> 頭がまともならこうじゃねぇの?
> return z * (
> (a >= 10)
> ? 10
> : (a >= 5)
> ? 5
> : (a >= 3)
> ? 3
> : (a >= 2)
> ? 2
> : 1
> );
else ifが続くとインデント平気でどんどん深くしちゃうタイプかな?
馬鹿すぎワロタw
> 頭がまともならこうじゃねぇの?
> return z * (
> (a >= 10)
> ? 10
> : (a >= 5)
> ? 5
> : (a >= 3)
> ? 3
> : (a >= 2)
> ? 2
> : 1
> );
else ifが続くとインデント平気でどんどん深くしちゃうタイプかな?
馬鹿すぎワロタw
397デフォルトの名無しさん
2024/03/09(土) 17:11:07.39ID:IFxh9Qz2 流石に非生産的だしうざいから運営に報告したわ
多分何も対処しないだろうけど
多分何も対処しないだろうけど
398デフォルトの名無しさん
2024/03/09(土) 18:13:38.91ID:OQtWIbCu うるう年ではashworthが早期リターン推奨で藤田がifのネスト推奨だったのに何で今回は真逆になってるの?
399デフォルトの名無しさん
2024/03/09(土) 19:03:44.68ID:03XpQJ59 条件によらず最適な方法はひとつしかないと思ってるならashworthより馬鹿
400デフォルトの名無しさん
2024/03/09(土) 19:29:16.06ID:dVZBBHHR うるう年判定はif使わないのが普通だろ
(4の倍数)&(!100の倍数|400の倍数)
(4の倍数)&(!100の倍数|400の倍数)
401デフォルトの名無しさん
2024/03/10(日) 09:24:24.15ID:YpWHSIo6 >>391
流石にそれらより遙か下だわ
流石にそれらより遙か下だわ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【ネトウヨ終了】大人気ユーチューバー「高市早苗のことをまともだと思うやつは私のコンテンツにさわらないでください」 [339712612]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 外務局長「中国さんごめんなさぁ...」小野田「中国なんかどうでもいいっ!」高市「首脳会談したい」マスコミ「立憲が悪いっ!!」 [237216734]
