タグ付けされた質問 「side-effects」

4
グローバル変数が邪悪なのはなぜですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6か月前に閉鎖。 この質問を改善する 私はの使用がglobalpython(およびプログラミング全般)で悪い習慣と見なされている理由を見つけようとしています。誰かが説明できますか?より多くの情報とのリンクもいただければ幸いです。

10
ifステートメント-短絡評価と読みやすさ
場合によっては、ifステートメントがかなり複雑になったり長くなったりする可能性があるため、読みやすくするために、の前に複雑な呼び出しを抽出することをお勧めしifます。 例えばこれ: if (SomeComplicatedFunctionCall() || OtherComplicatedFunctionCall()) { // do stuff } これに bool b1 = SomeComplicatedFunctionCall(); bool b2 = OtherComplicatedFunctionCall(); if (b1 || b2) { //do stuff } (提供された例はないことを複数の引数などで他の呼び出しを想像し...、それだけで説明のために悪いです) しかし、この抽出により、短絡評価(SCE)が失われました。 毎回本当にSCEを失うのですか?コンパイラーが「最適化」してもSCEを提供できるシナリオはありますか? SCEを失うことなく2番目のスニペットの読みやすさを向上させる方法はありますか?

2
ストリームパイプラインでのデータベースへの保存
オラクルのウェブサイトのドキュメントによると: ストリーム操作に対する動作パラメータの副作用は、一般に推奨されません。これらは、無意識の要件の意図しない違反や、その他のスレッドセーフティの危険につながることが多いためです。 これには、ストリームの要素をデータベースに保存することも含まれますか? 次の(疑似)コードを想像してみてください。 public SavedCar saveCar(Car car) { SavedCar savedCar = this.getDb().save(car); return savedCar; } public List<SavedCars> saveCars(List<Car> cars) { return cars.stream() .map(this::saveCar) .collect(Collectors.toList()); } この実装に対抗する望ましくない影響は何ですか? public SavedCar saveCar(Car car) { SavedCar savedCar = this.getDb().save(car); return savedCar; } public List<SavedCars> saveCars(List<Car> cars) { List<SavedCars> savedCars = new ArrayList<>(); for …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.