スレ立てるまでもない質問はここで 161匹目

■ このスレッドは過去ログ倉庫に格納されています
2022/08/27(土) 16:03:56.00ID:5336PvZW
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。

次スレは>>980が立てること

【前スレ】
スレ立てるまでもない質問はここで 160匹目
https://mevius.5ch.net/test/read.cgi/tech/1652160275/
2022/09/26(月) 13:56:41.47ID:87YoNLu+
$ cp a a1
$ cp a a2
$ cp a a3
をまとめてやりたいときってブレース展開とかで上手く書けますかね?
for を使う方法ならわかりますが
2022/09/26(月) 14:50:27.77ID:d5GlFcgh
展開にそういう機能はないからムリじゃないかな seqとxargs使えば出来るけどだったらforでもいいような
2022/09/26(月) 16:47:05.39ID:EGAvXCTL
横なんですけど、例えばパラメータがファイル名に埋め込まれてる実験ファイルが大量にあるような状況で、各パラメータについての多重for文を回してデータを抽出、加工することがあるんですが、cut 辺りが非常に遅いです
こういうの早くするコツありますかね?

それこそ展開が使えると速いんですが、ファイル名が統一されてないときなんかは for 文式に走査せざるを得なくて困っています
2022/09/26(月) 17:13:30.83ID:KGSSSIHZ
シェルスクリプトのループはスクリプト言語のループに比べても桁違いに遅いし
ループ内で外部コマンド呼び出してたら更に遅くなる

速度が必要なら外部コマンド側でループ相当の処理をさせる
2022/09/26(月) 17:51:11.30ID:6tM7XGma
シェルスクリプトで遅いならスクリプト言語
それでも遅いなら事前コンパイルするGC言語
さらなる高速と省メモリを求めるなら非GC言語(C/C++/Rustなど)
2022/09/26(月) 17:57:44.25ID:rB0VxLwq
書き直したところで速くならない場合もあるから
何が遅いのかと他の言語なら速くなるのかを把握してないと無駄な努力をすることになる
2022/09/26(月) 19:12:48.53ID:d5GlFcgh
コマンドを起動することが本質のシェルスクリプトで速度云々言い出すのは色んなコトが世代間で伝わっていっていないんだろうなぁとこういうの見ると思う
2022/09/26(月) 19:20:07.36ID:EGAvXCTL
>>203-205
ありがとうございます
cut が滅茶苦茶遅いのは確認済みなので、とりあえずPythonあたりで同等の処理を試してみようと思います
> 例えばパラメータがファイル名に埋め込まれてる実験ファイルが大量にあるような状況で
というセットアップがそもそも良くないのかなぁとも思いつつ。。。
2022/09/26(月) 19:36:46.81ID:7ui+hcDc
>>206
システマティックに大量のコマンドを起動するにはどうしたら良いですか、と質問を読み替えればなんらおかしくないでしょ
「世代」とか全然関係ね~老害乙
2022/09/26(月) 19:51:07.88ID:BaHy7ID2
状況次第だよね
その多重forで外部コマンド多数起動でも速さも使用メモリも困らない状況ならシェルスクリプトでよいし
速さもメモリもシビアな状況で使うものはRustで書いてしまうし
2022/09/26(月) 21:02:00.88ID:asYcDi/H
>>207
そのセットアップとやらを見直すことに特に障害がないなら見直したほうが早いと思う
2022/09/26(月) 21:21:59.75ID:9/gyXHnS
>>207
この辺をまず参考にしてみては
https://stackoverflow.com/questions/57138422/why-is-it-much-slower-to-use-cut-than-awk-to-intercept-two-strings-from-each-lin
https://unix.stackexchange.com/questions/169716/why-is-using-a-shell-loop-to-process-text-considered-bad-practice
2022/09/26(月) 23:52:02.74ID:tIU7Oyti
Ruby で作るのが簡単
2022/09/27(火) 05:35:30.78ID:f9wenpM6
>>200
$ echo a{1..3} | xargs -rn1 cp a
214デフォルトの名無しさん
垢版 |
2022/09/27(火) 12:02:41.52ID:vP3LfdbR
>>199
[何がいいたいかを補足]
C言語の場合、
void func()
{
 int x;
 {
  int y;
  y を使った処理;
 }
 x は参照できるが、y は参照できなくなり、yを参照しようとするとエラーになる。
}

JSの場合もまったく同様の事が出来、"use strict" モードの場合でも、
function func()
{
 let x = 111;
 {
  let y = 222;
  y を使った処理;
 }
 x は参照できるが、y は参照できなくなり、yを参照しようとするとエラーになる。
}
と書くことが出来る。この点、JSはCと非常に似ている。
「スコープ」や「生存期間」の話。
xは、関数スコープ。yは、ブロックスコープ。
ところが、Rubyではこのような「ブロックスコープ」は作れないのではないかと思われる、ということ。
Rubyのブロック関数とは別。
2022/09/27(火) 23:51:52.61ID:oW3s344K
単なるブロックか。
Ruby には、そういうのは無いかも

{ } で囲むと、Hash になるから
2022/09/27(火) 23:57:39.82ID:TrPk/9km
Pythonにはあるんだっけ?
217デフォルトの名無しさん
垢版 |
2022/09/28(水) 00:55:41.98ID:UllJACrH
結局MITライセンスってどこに記載すればいいの?
Read meでいいの?
2022/09/28(水) 08:43:18.58ID:+fYbTo1x
Github - Adding a license to a repository
https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-license-to-a-repository

ファイル名をLICENSE または、LICENSE.md にして、ライセンスのひな形を選ぶ
219デフォルトの名無しさん
垢版 |
2022/09/28(水) 09:45:46.85ID:kZGixsXA
HTMLスレなのかJavascriptスレなのかその他Web技術のスレなのか、どこで聞いていいのかわからないのでここで聞きます。

Cookieの使い方について基礎から勉強しています。
ログイン認証があるサイトって、パスワード情報をCookieに保存しているのですか?
一般的なYahooやGoogleのサイトを表示して、Chromeの開発者ツールで
「ローカルストレージ」「セッションストレージ」「Cookie」といった中身を見てもそれらしきものが無いのですが。
220デフォルトの名無しさん
垢版 |
2022/09/28(水) 11:36:20.40ID:LfA43n9E
またシェルスクリプトが遅いと抜かす愚か者がいるのか
パイプでつなげて外部コマンドに処理させれば速い
外部コマンドはC言語で書かれている
だからシェルスクリプトは遅くない
2022/09/28(水) 11:38:31.42ID:RLf9Yg7w
>>216
Python はもっと闇が深い
2022/09/28(水) 11:41:06.54ID:RLf9Yg7w
>>219
Cookie について知りたいのか、パスワード管理について知りたいのか、どっちだ?
2022/09/28(水) 11:44:30.97ID:Vg6XXWWJ
>>219 一般的には認証通ったらあとはセッションIDだけ保存すんじゃない?
2022/09/28(水) 12:08:40.25ID:Vg6XXWWJ
>>220
他の人が話してたのはスクリプトの実行速度じゃなくてプロセス生成コストの話だよ
コマンド蹴るのが本業のシェルスクリプトでそこが許容出来ないならスクリプト言語なりなんなり使って無駄を省けっていう
225デフォルトの名無しさん
垢版 |
2022/09/28(水) 13:02:54.35ID:kZGixsXA
>>222
両方です。
一般的なサイトで、ログイン状態が保存されている場合、
ブラウザ側のどこにどういう形で保存されているのか知りたかったということです。
たとえばyahoo.co.jpのクッキーと値一覧を表示してみても、IDやPWらしきものは見えないので。
つまり、>>223のおっしゃる通り、別のもっと難読化された文字列として保存されているということなのですね。

たとえばですが、投稿型のwebシステムで不正なJavascriptを投稿し、閲覧者に実行させることができてしまうセキュリティーホールがあったとして、
それを悪用して、そのサイト用にブラウザに保存されているCookieをまるっと全部どこかに送信するようなことができたとしても、
イマドキのちゃんとしたサイトであれば、そのせいで不正ログインやその他悪いことに使われる恐れはあまり無いということですか?
2022/09/28(水) 13:41:58.90ID:ZxjDXT+r
>別のもっと難読化された文字列として保存されているということなのですね。
ここが危ういな
パスワードが平文で保存されてないから安全、と捉えてないだろうか
2022/09/28(水) 15:40:10.03ID:Jk2txA1W
サーバー側でユーザー名とパスワードが一致した場合に
そのユーザー用のセッションキーを生成しそれをクッキーに設定するというのが一般的かと
だからそのクッキーに保存されたセッションキーだけを見たところで何の意味も無いという事
サーバー側でクッキーにセッションキーがあれば、セッションキーから誰かが分かるので
ログイン後のそのユーザーの処理のためのデータ保存等をしたりも出来る
ログアウト時にセッションキーを破棄すれば、その後は再ログインしないとそのユーザーとしてアクセスは出来ない
2022/09/28(水) 17:35:24.13ID:jG+wS9Ro
>>225
https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#security

Set-Cookie時にHttpOnlyとSameSiteを指定しておけば
ブラウザの脆弱性でも無い限りXSSでCookieを丸っとどこかに送信されるということはない
丸っと送信された場合は単純なセッションID以外の追加の対策を講じてない限りセッションハイジャックにつながる
2022/09/28(水) 18:30:52.56ID:RIdEQsh/
>>225
>投稿型のwebシステムで不正なJavascriptを投稿し、閲覧者に実行させることができてしまうセキュリティーホールがあったとして
この時点でもうイマドキのちゃんとしたサイトじゃねーよ!というのは
ツッコんではいけないのかな・・・
2022/09/28(水) 18:51:37.65ID:O/WDqR6E
>>215
C言語だと、
if (1) {y=xxx;・・・} でも同じように振舞うから、ためしにRubyでも
if true
 y = xxx;
 ・・・
end
とやってみたら、駄目で、endの後ろでyを参照できてしまった。
それと複数行コメントが書きにくいこともあって node.js に全面移行した。
2022/09/28(水) 18:59:38.20ID:ToxcoP+T
PythonもRubyと同じでダメなの?
2022/09/28(水) 20:23:08.25ID:6R9dYwhj
JavaScriptのプログラムを書くと逮捕されるってマヂですか?
2022/09/28(水) 21:49:58.73ID:J5u4MZBt
>>230
お疲れ様www
234デフォルトの名無しさん
垢版 |
2022/09/28(水) 22:17:26.26ID:4YWmzJ6I
TXTファイルをCSVに変換して操作したいのですがダブルクォーテーションを区切り文字としないやり方ありますでしょうか?
2022/09/28(水) 22:38:33.00ID:2jO0elT5
あるよ
なんの言語でやりたいの?
2022/09/28(水) 22:40:17.26ID:2jO0elT5
言語や環境について何も書かない場合はRubyの例だけが垂れ流されるのがこの板のデフォルトになるがよろしいか?
2022/09/28(水) 22:43:06.56ID:Jk2txA1W
自分でデコードなど書くなら好きにやればいいけど普通は""みたいな形でエスケープするのが流儀かと
なので、"だけのデータなら""""みたいな形にした方が良さそう
2022/09/28(水) 23:09:36.85ID:0sCmeNkX
>>234
まあ単なる書き間違いだと思うけどcsvなんだから区切り文字はカンマ( , )な
カンマ自体や改行をデータに含めたいとか要件を書いた方が良いかと
2022/09/28(水) 23:14:01.17ID:8tA0YY3G
素直にRFC4180準拠にしとくのが吉
240デフォルトの名無しさん
垢版 |
2022/09/29(木) 00:25:20.96ID:SEBL/pbJ
すみません234です。質問が不正でした。txtファイルをCSV形式で操作する際、ダブルクォーテーションにより囲まれた文字列を値とするのではなく、ダブルクォーテーション自体を文字としてJAVAで操作したいです。
2022/09/29(木) 06:27:37.00ID:mQhfaXoY
>>240
だーかーらー
> カンマ自体や改行をデータに含めたいとか要件を書いた方が良いかと

そういうのを含まないなら単にカンマで分割すればダブルクォーテーションもデータの一部になるだろ
てか、自分で処理するんじゃなくて何かライブラリ的なもの使おうと思ってるのか?
2022/09/29(木) 07:50:17.17ID:p0DTtsl5
>>240
検証してないけどこんな感じでいいんじゃないか
Files.lines(path).map(line -> line.split(',', -1)).toList();
2022/09/29(木) 09:20:19.58ID:DUgkcSyO
>>219
Cookie の質問は、この板ではなく、web制作管理板か、WEBプログラミング板へ

Ruby on Rails では、パスワードはbcrypt で暗号化する。
初心者用の本では、セッションID をブラウザのCookie へ保存する

一方、RUNTEQ の動画では、Cookieへ保存するのは危険だから、Redis を使うと言ってる

【エンジニア未経験】転職を成功させるWebアプリ開発の技術選定7選
www.youtube.com/watch?v=K6Us1UXI784&t=170s

>>230
Ruby の複数行コメントは、=begin, =end だから書きにくいけど、
VSCode で、Ctrl + / で簡単に、複数行コメントにon/off できる
244デフォルトの名無しさん
垢版 |
2022/09/29(木) 09:37:19.00ID:yzYmCLI1
オブジェクト指向で
クラス=ニュークラス
変数A=クラス.メソッド(引数)
で他のクラスでメソッドで作った変数Bを変数Aに代入したいとき
returnで返すのが一般的なんかな?

俺他のクラスでプロパティ作ってメソッド内で作った変数Bをプロパティに入れて
クラス=ニュークラス
クラス.メソッド(引数)
変数A=クラス.プロパティ
にしてるんだけど異端か?

なんか遅くなるとかの弊害ある?
2022/09/29(木) 10:33:39.29ID:DUgkcSyO
Ruby のCSV では、要素内に、クォート文字・ダブルクォーテーション、
列区切り文字・カンマ、行区切り文字・改行を入れられる

クォート文字は、要素を"〜" で囲んで、その中に"" と2つ続けて、1文字扱い。
カンマ・改行も、要素を"〜" で囲んで、その中に入れられる

require 'csv'

input = <<"EOT"
"a""a","b,b",あ
"c
c","d\nd"
EOT

p input_ary = CSV.parse( input ) # 2次元配列
#=> [ ["a\"a", "b,b", "あ"], ["c\nc", "d\nd"] ]

# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str

出力
"a""a","b,b",あ
"c
c","d
d"
2022/09/29(木) 10:36:41.16ID:DUgkcSyO
>>244
それをちゃんとソースコードで書いて、該当の言語のスレで聞けば?

言語とコードが分からないと、答えられない
247デフォルトの名無しさん
垢版 |
2022/09/29(木) 10:40:08.80ID:yzYmCLI1
>>246
ふーん…
そうなのか…
どの言語でも共通の話題なのかと思ってた
当該スレで聞いてみます
2022/09/29(木) 16:19:49.10ID:tJn82MVG
>>244
メソッドを実行する主体や実行タイミングが
プロパティを読み取る主体やタイミングと違うなら理解できなくもない

メソッド実行とプロパティ読み取りが毎回セットになるべきなら理解できない
2022/09/29(木) 17:56:54.06ID:vOlJ4Qt9
>>244
説明が究極的に下手

てか後者は破壊的メソッドのこといってるなら、初心者の段階でそんなの描くのはほぼ間違ってる
2022/09/29(木) 18:48:34.15ID:p0DTtsl5
「他のクラスでメソッドで作った変数Bを変数Aに代入したいとき」というところでどっと疲れるw
ミュータブルやステートフルのほうが便利じゃん!って初心者はまず飛び付くんだけど、経験を経て逆だったことに気付くんだよなあ
2022/09/29(木) 19:03:40.63ID:nA4Nikqb
そりゃミュータブルから教えるからだよ
i=i+1を教えられて「なんでや!iが0なら0=1になるやんけ!わけわからん!」という段階を経て変数というものは書き換えるものと刷り込まれていく
つまりだいたいC言語のせい
2022/09/29(木) 19:14:21.35ID:98MCpLln
>>244
データを保持して他のメソッドで使うかどうかで決めるべきじゃない?
2022/09/29(木) 19:16:34.09ID:p0DTtsl5
いやローカル変数は別にミュータブルでもいいよ
さほど問題にならない
2022/09/29(木) 19:17:20.00ID:vOlJ4Qt9
デザパタとかアンチパターンとかOOPとか
既存の教えをぶっちぎるつもりなら上位0.1%目指すってこと
そういう気がないなら言われた通りに書きなさい
255デフォルトの名無しさん
垢版 |
2022/09/29(木) 19:17:23.56ID:yzYmCLI1
>>250
別クラスのメソッド内で作った変数Bをメインクラスの変数Aに入れたいときってことなんだが…
まぁなんか見た感じ言語特有らしいのでその言語のスレで聞きましたわ
なんか色々考えてくれてありがとうございます
2022/09/29(木) 19:30:02.95ID:xLGmAerI
インスタンスの解放を自前でやる言語でなければ好みの問題の範囲だと思うが
2022/09/29(木) 19:53:42.86ID:UH+Zd6DV
>>256
そんなのCだけじゃん
C++はスマポ使えば自動解放だし
Rustは常に自動解放だし
そもそも今回の件と解放は関係ないし
2022/09/29(木) 19:59:10.32ID:ZjyFu9Pk
>>253
ローカル変数もイミュータブルで良い
for文などの自動更新変数は手動書き換え出来ないイミュータブル扱いの言語が多いから可能
2022/09/29(木) 20:55:09.45ID:HxLzcltj
>>244
クラスインスタンスをフィールドやシングルトンなりで長期間保持するならプロパティにする
短期間保持(メソッドやブロック)ならリターンにする

たまにパターンによって複数のメソッド呼び出しをif文で変えてる場合はプロパティにしてるのコードを見かける
個人的には必要な情報をコンストラクタで渡すからリターンで書くけどね
2022/09/29(木) 20:57:03.64ID:D9meFc20
>>244が宇宙人みたいに見えるw
実際のコードでも提示した方が良いのでは?
2022/09/29(木) 21:25:54.77ID:5k0MXCr/
バックグラウンドスレッドで数秒毎にメソッドを実行して結果をプロパティに保存
プロパティが変更されたらそれをオブザーブしてるスレッドがプロパティを読んで画面を更新

みたいなのはよくある話
2022/09/29(木) 21:38:34.72ID:nA4Nikqb
>>260
MAUI Highschoolていう動画を公開してるやつだぞ
最新の動画がまさにそういう戻り値の変な渡し方をしてたから

class Aにメソッドとプロパティがありメソッドの戻り値はvoidで呼び出すと返すべき値をプロパティにセットする
呼び出し側はclass Aのインスタンスを作成してメソッドを呼び出した後にプロパティを参照する
そのプロパティはclass A側で保持する意味のないものでもう使わない
2022/09/29(木) 22:01:24.93ID:C9z6YVIX
>>261
それスレッド間共有メモリの悪手
2022/09/29(木) 22:17:10.38ID:mQhfaXoY
クラス名や変数名にカナや漢字が使える時代だから
> 変数A=クラス.メソッド(引数)

> 変数A=クラス.プロパティ
ぐらいはいいけど
> クラス=ニュークラス
は違和感あり過ぎ
2022/09/29(木) 22:23:12.52ID:o1s2vCU9
パース処理を非破壊的に書こうとすると一度しか使っていない似たような名前が増える
266デフォルトの名無しさん
垢版 |
2022/09/29(木) 22:27:41.28ID:yzYmCLI1
>>262
そうするとreturnで返したほうがいいんですかね?
副作用的なやつがあるのかなと
処理スピードが遅くなるとか
今まだ3ヶ月しかプログラミングやってないのでそういう基本的なことができてない
267デフォルトの名無しさん
垢版 |
2022/09/29(木) 22:31:02.94ID:yzYmCLI1
awit asyncの処理だとタスクしか戻らないので変数がタスク以外のときはプロパティを渡すしがないのかなってのはありますね
その感じで覚えちゃってるので
2022/09/29(木) 22:34:36.22ID:+nkVuy43
>>267
そんな欠陥言語があるのか?
2022/09/29(木) 22:35:40.90ID:kOL/SO6R
>>257
Delphi経験者はこういうときインスタンスの破棄はどこですべきかとかついつい考えちゃうんですよ
ごめんね
270デフォルトの名無しさん
垢版 |
2022/09/29(木) 22:44:36.45ID:yzYmCLI1
>>268
欠陥じゃないと思うけども…

https://i.imgur.com/1lhsFUF.png
2022/09/29(木) 22:56:36.86ID:vOlJ4Qt9
3か月の段階で非同期処理扱うの早い
それなりに設計もコーディングも能力あげないと同期・非同期は自分自身の手で複雑な構造作る事になるものだから
2~3年後くらいでもいいよそれ
272デフォルトの名無しさん
垢版 |
2022/09/29(木) 23:04:27.06ID:yzYmCLI1
>>271
でもTask.Delayとか非同期処理じゃないとできない処理がたくさんあるんです!
HttpRequestとかも同期処理用のメソッドを書くとVSがこれは古い記述方法ですって言ってくるので非同期処理のメソッド使わにゃならんのです!
ただまぁreturnで値が取れること知れたので良かったですわ
returnとかほぼ使ったこと無い…
2022/09/29(木) 23:07:47.08ID:S94uJYpZ
>>244をRubyで書くと
class Hoge
 def method(arg)
  b = 1
  return b
 end
end

obj = Hoge.new
a = obj.method(arg)

これを
class Hoge
 attr_reader :b

 def method(arg)
  @b = 1
 end
end

obj = Hoge.new
obj.method(arg)
a = obj.b
にするみたいなこと?
274デフォルトの名無しさん
垢版 |
2022/09/29(木) 23:10:37.49ID:yzYmCLI1
>>273
Rubyわからんけどそんな感じ
2022/09/29(木) 23:28:24.84ID:oF7kbS+2
もうカオスだなww
2022/09/29(木) 23:36:39.61ID:nA4Nikqb
>>268
んなこたない
そいつがTask<T>を知らないだけ
2022/09/29(木) 23:43:26.70ID:S94uJYpZ
変数Aに何らかの値を代入するのが目的なら
後者を選択する理由が自分には見つからない。
何かありそう?
278デフォルトの名無しさん
垢版 |
2022/09/29(木) 23:50:12.89ID:yzYmCLI1
>>277
単純に覚えているので楽だから
279デフォルトの名無しさん
垢版 |
2022/09/29(木) 23:50:27.04ID:yzYmCLI1
何も弊害がないならこのままで行きたい
2022/09/30(金) 00:02:02.34ID:6qvEDMgz
>>273
まず、def method(arg) の引数argを使っていないので、おかしい

上は単に値を返しているだけで、インスタンスの状態を変えていない。
変数b はローカル変数だから

一方、下は一旦、インスタンス変数に記憶して、それを返しているので、
インスタンスの状態が変わっている

つまり、上と下ではインスタンスの状態が異なる
2022/09/30(金) 00:10:24.60ID:HVJ0/rg+
てかrubyでmethodとか安易に使うなよ
Object#methodが既に存在するのオーバーライドしてるだろ
2022/09/30(金) 00:20:13.14ID:Oln8rmkE
273だけど良かれと思って横からコードでっち上げたけどやらないほうが良かったか。
話ずれてしまったな。
2022/09/30(金) 00:39:44.81ID:xDSUJNnu
正直この板でrubyって見るだけでげんなりする
2022/09/30(金) 00:52:21.47ID:IIgnubfp
>>279
まじか
そんな理由ならやめとけ

必要もなくメソッドとプロパティが密な依存した構造になってるから使いにくいしメンテもしにくい
Task<TResult>調べろよ
2022/09/30(金) 00:54:46.03ID:ogT7+hOz
>>280
>つまり、上と下ではインスタンスの状態が異なる
それが質問者の比較したい事なんだから別にいいんじゃない?
2022/09/30(金) 01:12:19.29ID:1oMlUJQ7
こちとらなるべく状態を持たせないように腐心しているというのに
2022/09/30(金) 01:27:01.26ID:MNhQMAyj
>>272
おそらく何か作りたいものがあってそれを達成するために色々と情報収集をしてるんだろうけど
正直、レベル1でラスボスに向かって一直線に突き進んでるようにしか見えない
もう少しお使いクエストで寄り道しつつレベル上げしてみたら?と思ってみたり
2022/09/30(金) 02:04:15.48ID:HVJ0/rg+
とりあえずプログラミングにおいての「破壊的」「状態」「副作用」の言葉の意味をググっとけ、でなぜこれが増えると良くないのか理解すべし
2022/09/30(金) 02:13:44.17ID:6qvEDMgz
そりゃ、関数型のElixir みたいに状態を持たない方が良い。
でも、それではプログラミングが出来ないので、状態を持ってしまう

例えば、ログイン状態。
ログインしているか、していないかとか
2022/09/30(金) 06:12:32.58ID:RfOZtvxf
なんで極論になるんだよ
アプリケーションから一切の状態を取り除くのは難しいという話と
状態を持たせる必要がないのに手癖で毎回持たせてしまうという話
1と99くらいかけ離れてるだろ
2022/09/30(金) 06:12:59.16ID:RfOZtvxf
無駄に状態を持たせることのデメリットとして状態依存のバグが出やすいことに加えてリエントラントにならないこともあるな
スレッド安全性が低い
2022/09/30(金) 06:17:21.47ID:RfOZtvxf
状態依存のバグってのは例えばメソッドaの次にbを呼ぶと問題ないんだけどbaの順に呼ぶと結果が化けるとかaaと2度呼ぶとおかしな結果が返るとか
そんなミスしないよと思っていても規模や複雑度が増すにつれリスクは上がるしソースレビューで担保するのが線形以上に難しくなっていきがち
293デフォルトの名無しさん
垢版 |
2022/09/30(金) 07:06:46.64ID:+8/hJOWJ
とりあえず基本はreturnで返すようにします
2022/09/30(金) 08:40:48.42ID:h8M2T0X1
もうこのスレにはレス返さなくてもいい
C#やってんのにRubyのコードとか見せられても混乱するだけでしょ
続きはC#のスレで
2022/09/30(金) 08:54:47.02ID:Oln8rmkE
非同期ってむずいよね
2022/09/30(金) 08:57:53.57ID:jNFohT4i
これでもasync/awaitのおかげで随分簡単になったんだがな
2022/09/30(金) 10:40:05.21ID:qjyZys7q
https://agree.5ch.net/test/read.cgi/mango/1664496069/l50

解いて!
2022/09/30(金) 10:43:28.53ID:qjyZys7q
https://agree.5ch.net/test/read.cgi/mango/1664496069/5
こっちやった。おまえら解けるか
2022/09/30(金) 16:12:49.31ID:Uqj5A2v6
本来裏側でロードさせても表側の操作は自由に出来るって高度な技術だったからな
非同期とかいうので僅か経験3か月のヤツでも、お手軽にできるようになってるのが凄い時代になったと思う
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。