この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。
次スレは>>980が立てること
【前スレ】
スレ立てるまでもない質問はここで 160匹目
https://mevius.5ch.net/test/read.cgi/tech/1652160275/
スレ立てるまでもない質問はここで 161匹目
■ このスレッドは過去ログ倉庫に格納されています
2022/08/27(土) 16:03:56.00ID:5336PvZW
222デフォルトの名無しさん
2022/09/28(水) 11:41:06.54ID:RLf9Yg7w >>219
Cookie について知りたいのか、パスワード管理について知りたいのか、どっちだ?
Cookie について知りたいのか、パスワード管理について知りたいのか、どっちだ?
223デフォルトの名無しさん
2022/09/28(水) 11:44:30.97ID:Vg6XXWWJ >>219 一般的には認証通ったらあとはセッションIDだけ保存すんじゃない?
224デフォルトの名無しさん
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をまるっと全部どこかに送信するようなことができたとしても、
イマドキのちゃんとしたサイトであれば、そのせいで不正ログインやその他悪いことに使われる恐れはあまり無いということですか?
両方です。
一般的なサイトで、ログイン状態が保存されている場合、
ブラウザ側のどこにどういう形で保存されているのか知りたかったということです。
たとえばyahoo.co.jpのクッキーと値一覧を表示してみても、IDやPWらしきものは見えないので。
つまり、>>223のおっしゃる通り、別のもっと難読化された文字列として保存されているということなのですね。
たとえばですが、投稿型のwebシステムで不正なJavascriptを投稿し、閲覧者に実行させることができてしまうセキュリティーホールがあったとして、
それを悪用して、そのサイト用にブラウザに保存されているCookieをまるっと全部どこかに送信するようなことができたとしても、
イマドキのちゃんとしたサイトであれば、そのせいで不正ログインやその他悪いことに使われる恐れはあまり無いということですか?
226デフォルトの名無しさん
2022/09/28(水) 13:41:58.90ID:ZxjDXT+r >別のもっと難読化された文字列として保存されているということなのですね。
ここが危ういな
パスワードが平文で保存されてないから安全、と捉えてないだろうか
ここが危ういな
パスワードが平文で保存されてないから安全、と捉えてないだろうか
227デフォルトの名無しさん
2022/09/28(水) 15:40:10.03ID:Jk2txA1W サーバー側でユーザー名とパスワードが一致した場合に
そのユーザー用のセッションキーを生成しそれをクッキーに設定するというのが一般的かと
だからそのクッキーに保存されたセッションキーだけを見たところで何の意味も無いという事
サーバー側でクッキーにセッションキーがあれば、セッションキーから誰かが分かるので
ログイン後のそのユーザーの処理のためのデータ保存等をしたりも出来る
ログアウト時にセッションキーを破棄すれば、その後は再ログインしないとそのユーザーとしてアクセスは出来ない
そのユーザー用のセッションキーを生成しそれをクッキーに設定するというのが一般的かと
だからそのクッキーに保存されたセッションキーだけを見たところで何の意味も無いという事
サーバー側でクッキーにセッションキーがあれば、セッションキーから誰かが分かるので
ログイン後のそのユーザーの処理のためのデータ保存等をしたりも出来る
ログアウト時にセッションキーを破棄すれば、その後は再ログインしないとそのユーザーとしてアクセスは出来ない
228デフォルトの名無しさん
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以外の追加の対策を講じてない限りセッションハイジャックにつながる
https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#security
Set-Cookie時にHttpOnlyとSameSiteを指定しておけば
ブラウザの脆弱性でも無い限りXSSでCookieを丸っとどこかに送信されるということはない
丸っと送信された場合は単純なセッションID以外の追加の対策を講じてない限りセッションハイジャックにつながる
229デフォルトの名無しさん
2022/09/28(水) 18:30:52.56ID:RIdEQsh/ >>225
>投稿型のwebシステムで不正なJavascriptを投稿し、閲覧者に実行させることができてしまうセキュリティーホールがあったとして
この時点でもうイマドキのちゃんとしたサイトじゃねーよ!というのは
ツッコんではいけないのかな・・・
>投稿型のwebシステムで不正なJavascriptを投稿し、閲覧者に実行させることができてしまうセキュリティーホールがあったとして
この時点でもうイマドキのちゃんとしたサイトじゃねーよ!というのは
ツッコんではいけないのかな・・・
230デフォルトの名無しさん
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 に全面移行した。
C言語だと、
if (1) {y=xxx;・・・} でも同じように振舞うから、ためしにRubyでも
if true
y = xxx;
・・・
end
とやってみたら、駄目で、endの後ろでyを参照できてしまった。
それと複数行コメントが書きにくいこともあって node.js に全面移行した。
231デフォルトの名無しさん
2022/09/28(水) 18:59:38.20ID:ToxcoP+T PythonもRubyと同じでダメなの?
232デフォルトの名無しさん
2022/09/28(水) 20:23:08.25ID:6R9dYwhj JavaScriptのプログラムを書くと逮捕されるってマヂですか?
233デフォルトの名無しさん
2022/09/28(水) 21:49:58.73ID:J5u4MZBt >>230
お疲れ様www
お疲れ様www
234デフォルトの名無しさん
2022/09/28(水) 22:17:26.26ID:4YWmzJ6I TXTファイルをCSVに変換して操作したいのですがダブルクォーテーションを区切り文字としないやり方ありますでしょうか?
235デフォルトの名無しさん
2022/09/28(水) 22:38:33.00ID:2jO0elT5 あるよ
なんの言語でやりたいの?
なんの言語でやりたいの?
236デフォルトの名無しさん
2022/09/28(水) 22:40:17.26ID:2jO0elT5 言語や環境について何も書かない場合はRubyの例だけが垂れ流されるのがこの板のデフォルトになるがよろしいか?
237デフォルトの名無しさん
2022/09/28(水) 22:43:06.56ID:Jk2txA1W 自分でデコードなど書くなら好きにやればいいけど普通は""みたいな形でエスケープするのが流儀かと
なので、"だけのデータなら""""みたいな形にした方が良さそう
なので、"だけのデータなら""""みたいな形にした方が良さそう
238デフォルトの名無しさん
2022/09/28(水) 23:09:36.85ID:0sCmeNkX239デフォルトの名無しさん
2022/09/28(水) 23:14:01.17ID:8tA0YY3G 素直にRFC4180準拠にしとくのが吉
240デフォルトの名無しさん
2022/09/29(木) 00:25:20.96ID:SEBL/pbJ すみません234です。質問が不正でした。txtファイルをCSV形式で操作する際、ダブルクォーテーションにより囲まれた文字列を値とするのではなく、ダブルクォーテーション自体を文字としてJAVAで操作したいです。
241デフォルトの名無しさん
2022/09/29(木) 06:27:37.00ID:mQhfaXoY >>240
だーかーらー
> カンマ自体や改行をデータに含めたいとか要件を書いた方が良いかと
そういうのを含まないなら単にカンマで分割すればダブルクォーテーションもデータの一部になるだろ
てか、自分で処理するんじゃなくて何かライブラリ的なもの使おうと思ってるのか?
だーかーらー
> カンマ自体や改行をデータに含めたいとか要件を書いた方が良いかと
そういうのを含まないなら単にカンマで分割すればダブルクォーテーションもデータの一部になるだろ
てか、自分で処理するんじゃなくて何かライブラリ的なもの使おうと思ってるのか?
242デフォルトの名無しさん
2022/09/29(木) 07:50:17.17ID:p0DTtsl5243デフォルトの名無しさん
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 できる
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=クラス.プロパティ
にしてるんだけど異端か?
なんか遅くなるとかの弊害ある?
クラス=ニュークラス
変数A=クラス.メソッド(引数)
で他のクラスでメソッドで作った変数Bを変数Aに代入したいとき
returnで返すのが一般的なんかな?
俺他のクラスでプロパティ作ってメソッド内で作った変数Bをプロパティに入れて
クラス=ニュークラス
クラス.メソッド(引数)
変数A=クラス.プロパティ
にしてるんだけど異端か?
なんか遅くなるとかの弊害ある?
245デフォルトの名無しさん
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"
列区切り文字・カンマ、行区切り文字・改行を入れられる
クォート文字は、要素を"〜" で囲んで、その中に"" と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"
246デフォルトの名無しさん
2022/09/29(木) 10:36:41.16ID:DUgkcSyO247デフォルトの名無しさん
2022/09/29(木) 10:40:08.80ID:yzYmCLI1248デフォルトの名無しさん
2022/09/29(木) 16:19:49.10ID:tJn82MVG249デフォルトの名無しさん
2022/09/29(木) 17:56:54.06ID:vOlJ4Qt9250デフォルトの名無しさん
2022/09/29(木) 18:48:34.15ID:p0DTtsl5 「他のクラスでメソッドで作った変数Bを変数Aに代入したいとき」というところでどっと疲れるw
ミュータブルやステートフルのほうが便利じゃん!って初心者はまず飛び付くんだけど、経験を経て逆だったことに気付くんだよなあ
ミュータブルやステートフルのほうが便利じゃん!って初心者はまず飛び付くんだけど、経験を経て逆だったことに気付くんだよなあ
251デフォルトの名無しさん
2022/09/29(木) 19:03:40.63ID:nA4Nikqb そりゃミュータブルから教えるからだよ
i=i+1を教えられて「なんでや!iが0なら0=1になるやんけ!わけわからん!」という段階を経て変数というものは書き換えるものと刷り込まれていく
つまりだいたいC言語のせい
i=i+1を教えられて「なんでや!iが0なら0=1になるやんけ!わけわからん!」という段階を経て変数というものは書き換えるものと刷り込まれていく
つまりだいたいC言語のせい
252デフォルトの名無しさん
2022/09/29(木) 19:14:21.35ID:98MCpLln >>244
データを保持して他のメソッドで使うかどうかで決めるべきじゃない?
データを保持して他のメソッドで使うかどうかで決めるべきじゃない?
253デフォルトの名無しさん
2022/09/29(木) 19:16:34.09ID:p0DTtsl5 いやローカル変数は別にミュータブルでもいいよ
さほど問題にならない
さほど問題にならない
254デフォルトの名無しさん
2022/09/29(木) 19:17:20.00ID:vOlJ4Qt9 デザパタとかアンチパターンとかOOPとか
既存の教えをぶっちぎるつもりなら上位0.1%目指すってこと
そういう気がないなら言われた通りに書きなさい
既存の教えをぶっちぎるつもりなら上位0.1%目指すってこと
そういう気がないなら言われた通りに書きなさい
255デフォルトの名無しさん
2022/09/29(木) 19:17:23.56ID:yzYmCLI1 >>250
別クラスのメソッド内で作った変数Bをメインクラスの変数Aに入れたいときってことなんだが…
まぁなんか見た感じ言語特有らしいのでその言語のスレで聞きましたわ
なんか色々考えてくれてありがとうございます
別クラスのメソッド内で作った変数Bをメインクラスの変数Aに入れたいときってことなんだが…
まぁなんか見た感じ言語特有らしいのでその言語のスレで聞きましたわ
なんか色々考えてくれてありがとうございます
256デフォルトの名無しさん
2022/09/29(木) 19:30:02.95ID:xLGmAerI インスタンスの解放を自前でやる言語でなければ好みの問題の範囲だと思うが
257デフォルトの名無しさん
2022/09/29(木) 19:53:42.86ID:UH+Zd6DV258デフォルトの名無しさん
2022/09/29(木) 19:59:10.32ID:ZjyFu9Pk259デフォルトの名無しさん
2022/09/29(木) 20:55:09.45ID:HxLzcltj >>244
クラスインスタンスをフィールドやシングルトンなりで長期間保持するならプロパティにする
短期間保持(メソッドやブロック)ならリターンにする
たまにパターンによって複数のメソッド呼び出しをif文で変えてる場合はプロパティにしてるのコードを見かける
個人的には必要な情報をコンストラクタで渡すからリターンで書くけどね
クラスインスタンスをフィールドやシングルトンなりで長期間保持するならプロパティにする
短期間保持(メソッドやブロック)ならリターンにする
たまにパターンによって複数のメソッド呼び出しをif文で変えてる場合はプロパティにしてるのコードを見かける
個人的には必要な情報をコンストラクタで渡すからリターンで書くけどね
260デフォルトの名無しさん
2022/09/29(木) 20:57:03.64ID:D9meFc20 >>244が宇宙人みたいに見えるw
実際のコードでも提示した方が良いのでは?
実際のコードでも提示した方が良いのでは?
261デフォルトの名無しさん
2022/09/29(木) 21:25:54.77ID:5k0MXCr/ バックグラウンドスレッドで数秒毎にメソッドを実行して結果をプロパティに保存
プロパティが変更されたらそれをオブザーブしてるスレッドがプロパティを読んで画面を更新
みたいなのはよくある話
プロパティが変更されたらそれをオブザーブしてるスレッドがプロパティを読んで画面を更新
みたいなのはよくある話
262デフォルトの名無しさん
2022/09/29(木) 21:38:34.72ID:nA4Nikqb >>260
MAUI Highschoolていう動画を公開してるやつだぞ
最新の動画がまさにそういう戻り値の変な渡し方をしてたから
class Aにメソッドとプロパティがありメソッドの戻り値はvoidで呼び出すと返すべき値をプロパティにセットする
呼び出し側はclass Aのインスタンスを作成してメソッドを呼び出した後にプロパティを参照する
そのプロパティはclass A側で保持する意味のないものでもう使わない
MAUI Highschoolていう動画を公開してるやつだぞ
最新の動画がまさにそういう戻り値の変な渡し方をしてたから
class Aにメソッドとプロパティがありメソッドの戻り値はvoidで呼び出すと返すべき値をプロパティにセットする
呼び出し側はclass Aのインスタンスを作成してメソッドを呼び出した後にプロパティを参照する
そのプロパティはclass A側で保持する意味のないものでもう使わない
263デフォルトの名無しさん
2022/09/29(木) 22:01:24.93ID:C9z6YVIX >>261
それスレッド間共有メモリの悪手
それスレッド間共有メモリの悪手
264デフォルトの名無しさん
2022/09/29(木) 22:17:10.38ID:mQhfaXoY クラス名や変数名にカナや漢字が使える時代だから
> 変数A=クラス.メソッド(引数)
や
> 変数A=クラス.プロパティ
ぐらいはいいけど
> クラス=ニュークラス
は違和感あり過ぎ
> 変数A=クラス.メソッド(引数)
や
> 変数A=クラス.プロパティ
ぐらいはいいけど
> クラス=ニュークラス
は違和感あり過ぎ
265デフォルトの名無しさん
2022/09/29(木) 22:23:12.52ID:o1s2vCU9 パース処理を非破壊的に書こうとすると一度しか使っていない似たような名前が増える
266デフォルトの名無しさん
2022/09/29(木) 22:27:41.28ID:yzYmCLI1 >>262
そうするとreturnで返したほうがいいんですかね?
副作用的なやつがあるのかなと
処理スピードが遅くなるとか
今まだ3ヶ月しかプログラミングやってないのでそういう基本的なことができてない
そうするとreturnで返したほうがいいんですかね?
副作用的なやつがあるのかなと
処理スピードが遅くなるとか
今まだ3ヶ月しかプログラミングやってないのでそういう基本的なことができてない
267デフォルトの名無しさん
2022/09/29(木) 22:31:02.94ID:yzYmCLI1 awit asyncの処理だとタスクしか戻らないので変数がタスク以外のときはプロパティを渡すしがないのかなってのはありますね
その感じで覚えちゃってるので
その感じで覚えちゃってるので
268デフォルトの名無しさん
2022/09/29(木) 22:34:36.22ID:+nkVuy43 >>267
そんな欠陥言語があるのか?
そんな欠陥言語があるのか?
269デフォルトの名無しさん
2022/09/29(木) 22:35:40.90ID:kOL/SO6R270デフォルトの名無しさん
2022/09/29(木) 22:44:36.45ID:yzYmCLI1271デフォルトの名無しさん
2022/09/29(木) 22:56:36.86ID:vOlJ4Qt9 3か月の段階で非同期処理扱うの早い
それなりに設計もコーディングも能力あげないと同期・非同期は自分自身の手で複雑な構造作る事になるものだから
2~3年後くらいでもいいよそれ
それなりに設計もコーディングも能力あげないと同期・非同期は自分自身の手で複雑な構造作る事になるものだから
2~3年後くらいでもいいよそれ
272デフォルトの名無しさん
2022/09/29(木) 23:04:27.06ID:yzYmCLI1 >>271
でもTask.Delayとか非同期処理じゃないとできない処理がたくさんあるんです!
HttpRequestとかも同期処理用のメソッドを書くとVSがこれは古い記述方法ですって言ってくるので非同期処理のメソッド使わにゃならんのです!
ただまぁreturnで値が取れること知れたので良かったですわ
returnとかほぼ使ったこと無い…
でもTask.Delayとか非同期処理じゃないとできない処理がたくさんあるんです!
HttpRequestとかも同期処理用のメソッドを書くとVSがこれは古い記述方法ですって言ってくるので非同期処理のメソッド使わにゃならんのです!
ただまぁreturnで値が取れること知れたので良かったですわ
returnとかほぼ使ったこと無い…
273デフォルトの名無しさん
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
にするみたいなこと?
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わからんけどそんな感じ
Rubyわからんけどそんな感じ
275デフォルトの名無しさん
2022/09/29(木) 23:28:24.84ID:oF7kbS+2 もうカオスだなww
276デフォルトの名無しさん
2022/09/29(木) 23:36:39.61ID:nA4Nikqb277デフォルトの名無しさん
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 何も弊害がないならこのままで行きたい
280デフォルトの名無しさん
2022/09/30(金) 00:02:02.34ID:6qvEDMgz >>273
まず、def method(arg) の引数argを使っていないので、おかしい
上は単に値を返しているだけで、インスタンスの状態を変えていない。
変数b はローカル変数だから
一方、下は一旦、インスタンス変数に記憶して、それを返しているので、
インスタンスの状態が変わっている
つまり、上と下ではインスタンスの状態が異なる
まず、def method(arg) の引数argを使っていないので、おかしい
上は単に値を返しているだけで、インスタンスの状態を変えていない。
変数b はローカル変数だから
一方、下は一旦、インスタンス変数に記憶して、それを返しているので、
インスタンスの状態が変わっている
つまり、上と下ではインスタンスの状態が異なる
281デフォルトの名無しさん
2022/09/30(金) 00:10:24.60ID:HVJ0/rg+ てかrubyでmethodとか安易に使うなよ
Object#methodが既に存在するのオーバーライドしてるだろ
Object#methodが既に存在するのオーバーライドしてるだろ
282デフォルトの名無しさん
2022/09/30(金) 00:20:13.14ID:Oln8rmkE 273だけど良かれと思って横からコードでっち上げたけどやらないほうが良かったか。
話ずれてしまったな。
話ずれてしまったな。
283デフォルトの名無しさん
2022/09/30(金) 00:39:44.81ID:xDSUJNnu 正直この板でrubyって見るだけでげんなりする
284デフォルトの名無しさん
2022/09/30(金) 00:52:21.47ID:IIgnubfp285デフォルトの名無しさん
2022/09/30(金) 00:54:46.03ID:ogT7+hOz286デフォルトの名無しさん
2022/09/30(金) 01:12:19.29ID:1oMlUJQ7 こちとらなるべく状態を持たせないように腐心しているというのに
287デフォルトの名無しさん
2022/09/30(金) 01:27:01.26ID:MNhQMAyj >>272
おそらく何か作りたいものがあってそれを達成するために色々と情報収集をしてるんだろうけど
正直、レベル1でラスボスに向かって一直線に突き進んでるようにしか見えない
もう少しお使いクエストで寄り道しつつレベル上げしてみたら?と思ってみたり
おそらく何か作りたいものがあってそれを達成するために色々と情報収集をしてるんだろうけど
正直、レベル1でラスボスに向かって一直線に突き進んでるようにしか見えない
もう少しお使いクエストで寄り道しつつレベル上げしてみたら?と思ってみたり
288デフォルトの名無しさん
2022/09/30(金) 02:04:15.48ID:HVJ0/rg+ とりあえずプログラミングにおいての「破壊的」「状態」「副作用」の言葉の意味をググっとけ、でなぜこれが増えると良くないのか理解すべし
289デフォルトの名無しさん
2022/09/30(金) 02:13:44.17ID:6qvEDMgz そりゃ、関数型のElixir みたいに状態を持たない方が良い。
でも、それではプログラミングが出来ないので、状態を持ってしまう
例えば、ログイン状態。
ログインしているか、していないかとか
でも、それではプログラミングが出来ないので、状態を持ってしまう
例えば、ログイン状態。
ログインしているか、していないかとか
290デフォルトの名無しさん
2022/09/30(金) 06:12:32.58ID:RfOZtvxf なんで極論になるんだよ
アプリケーションから一切の状態を取り除くのは難しいという話と
状態を持たせる必要がないのに手癖で毎回持たせてしまうという話
1と99くらいかけ離れてるだろ
アプリケーションから一切の状態を取り除くのは難しいという話と
状態を持たせる必要がないのに手癖で毎回持たせてしまうという話
1と99くらいかけ離れてるだろ
291デフォルトの名無しさん
2022/09/30(金) 06:12:59.16ID:RfOZtvxf 無駄に状態を持たせることのデメリットとして状態依存のバグが出やすいことに加えてリエントラントにならないこともあるな
スレッド安全性が低い
スレッド安全性が低い
292デフォルトの名無しさん
2022/09/30(金) 06:17:21.47ID:RfOZtvxf 状態依存のバグってのは例えばメソッドaの次にbを呼ぶと問題ないんだけどbaの順に呼ぶと結果が化けるとかaaと2度呼ぶとおかしな結果が返るとか
そんなミスしないよと思っていても規模や複雑度が増すにつれリスクは上がるしソースレビューで担保するのが線形以上に難しくなっていきがち
そんなミスしないよと思っていても規模や複雑度が増すにつれリスクは上がるしソースレビューで担保するのが線形以上に難しくなっていきがち
293デフォルトの名無しさん
2022/09/30(金) 07:06:46.64ID:+8/hJOWJ とりあえず基本はreturnで返すようにします
294デフォルトの名無しさん
2022/09/30(金) 08:40:48.42ID:h8M2T0X1 もうこのスレにはレス返さなくてもいい
C#やってんのにRubyのコードとか見せられても混乱するだけでしょ
続きはC#のスレで
C#やってんのにRubyのコードとか見せられても混乱するだけでしょ
続きはC#のスレで
295デフォルトの名無しさん
2022/09/30(金) 08:54:47.02ID:Oln8rmkE 非同期ってむずいよね
296デフォルトの名無しさん
2022/09/30(金) 08:57:53.57ID:jNFohT4i これでもasync/awaitのおかげで随分簡単になったんだがな
297デフォルトの名無しさん
2022/09/30(金) 10:40:05.21ID:qjyZys7q298デフォルトの名無しさん
2022/09/30(金) 10:43:28.53ID:qjyZys7q https://agree.5ch.net/test/read.cgi/mango/1664496069/5
こっちやった。おまえら解けるか
こっちやった。おまえら解けるか
299デフォルトの名無しさん
2022/09/30(金) 16:12:49.31ID:Uqj5A2v6 本来裏側でロードさせても表側の操作は自由に出来るって高度な技術だったからな
非同期とかいうので僅か経験3か月のヤツでも、お手軽にできるようになってるのが凄い時代になったと思う
非同期とかいうので僅か経験3か月のヤツでも、お手軽にできるようになってるのが凄い時代になったと思う
300デフォルトの名無しさん
2022/09/30(金) 16:55:56.16ID:jNFohT4i >>299
スレッド作成して走らせてミューテックスでタイミング合わせて裏スレッドが終わったかどうかをスレッドオブジェクトでチェックしてまだならタイマーセットして再入してっていうコードを関係しそうな関数毎に一々書いて
非同期関数を一つ作るだけでコードがあちこち散らかって異様に見づらくなることもあったからasync/awaitは偉大
スレッド作成して走らせてミューテックスでタイミング合わせて裏スレッドが終わったかどうかをスレッドオブジェクトでチェックしてまだならタイマーセットして再入してっていうコードを関係しそうな関数毎に一々書いて
非同期関数を一つ作るだけでコードがあちこち散らかって異様に見づらくなることもあったからasync/awaitは偉大
301デフォルトの名無しさん
2022/10/01(土) 14:55:09.73ID:OpILS/7a MySQLなどのトランザクションで、BEGINしてから、COMMITするまでに
なんらかの事故でアプリがダウンした場合、どうなる?
ほとんど同じことかも知れないが、MySQLとアプリがTCP/IP通信中に通信が
切断されるとどうなる?
なんらかの事故でアプリがダウンした場合、どうなる?
ほとんど同じことかも知れないが、MySQLとアプリがTCP/IP通信中に通信が
切断されるとどうなる?
302デフォルトの名無しさん
2022/10/01(土) 15:03:24.83ID:OpILS/7a >>301
これかな。
https://stackoverflow.com/questions/4896479/what-happens-if-you-dont-commit-a-transaction-to-a-database-say-sql-server
[Q]トランザクションをデータベース (SQL Server など) にコミットしないとどうなりますか?
クエリがあるとします。
begin tran
-- some other sql code
そして、コミットまたはロールバックするのを忘れます。
別のクライアントがクエリを実行しようとすると、どうなりますか?
[A]
トランザクションをコミットまたはロールバックしない限り、トランザクションはまだ「実行中」であり、ロックを保持している可能性があります。
クライアント (アプリケーションまたはユーザー) がコミット前にデータベースへの接続を閉じると、実行中のトランザクションはロールバックされて終了します。
これかな。
https://stackoverflow.com/questions/4896479/what-happens-if-you-dont-commit-a-transaction-to-a-database-say-sql-server
[Q]トランザクションをデータベース (SQL Server など) にコミットしないとどうなりますか?
クエリがあるとします。
begin tran
-- some other sql code
そして、コミットまたはロールバックするのを忘れます。
別のクライアントがクエリを実行しようとすると、どうなりますか?
[A]
トランザクションをコミットまたはロールバックしない限り、トランザクションはまだ「実行中」であり、ロックを保持している可能性があります。
クライアント (アプリケーションまたはユーザー) がコミット前にデータベースへの接続を閉じると、実行中のトランザクションはロールバックされて終了します。
303デフォルトの名無しさん
2022/10/01(土) 15:18:27.68ID:+X1R3SPo トランザクションタイムアウトがあるから放置されたら一定時間でロールバックする
304デフォルトの名無しさん
2022/10/01(土) 16:11:59.97ID:b3YOgUhU >>303
詳しく。
トランザクションに関するタイムアウトといえば、他の誰かがトランザクションを
実行中に、BEGINしようとすると待機することがあるが、その時に待つ時間の最大値
を指定できる、と書いてあったような。
それとは別の話?
詳しく。
トランザクションに関するタイムアウトといえば、他の誰かがトランザクションを
実行中に、BEGINしようとすると待機することがあるが、その時に待つ時間の最大値
を指定できる、と書いてあったような。
それとは別の話?
305デフォルトの名無しさん
2022/10/01(土) 18:18:34.32ID:+X1R3SPo そらロックタイムアウトだな
タイムアウトもいろいろある
ググれ
タイムアウトもいろいろある
ググれ
306デフォルトの名無しさん
2022/10/01(土) 22:18:52.51ID:WF3iEAg3 無限に表ロックされたら、システムが動かない。
クラッカーは、そういう攻撃をするはず
0.1 秒でもロックされたら、大変
クラッカーは、そういう攻撃をするはず
0.1 秒でもロックされたら、大変
307デフォルトの名無しさん
2022/10/01(土) 23:26:07.14ID:M80TOT3i ****で通信の開始要求だけやって、送った側が意図的に受け取らないようにして、サーバーが勝手にタイムアウトするまで待たせる
そうするとタイムアウトまでkillされないスレッドが溜まりまくってサーバーは死ぬ
今の時代サーバー負荷かける攻撃手段なんて無限にあってよっぽどデカいところじゃなければ狙われたら終わり
そうするとタイムアウトまでkillされないスレッドが溜まりまくってサーバーは死ぬ
今の時代サーバー負荷かける攻撃手段なんて無限にあってよっぽどデカいところじゃなければ狙われたら終わり
308デフォルトの名無しさん
2022/10/02(日) 00:02:13.36ID:ZWlCDBNf データベースサーバーに直アクセスされてる時点で終わってるやん
309デフォルトの名無しさん
2022/10/02(日) 00:04:48.18ID:451ZFC4H310デフォルトの名無しさん
2022/10/02(日) 05:30:13.17ID:2Rps0pJb 値型の変数では、その変数に対応するメモリ上の場所に値が直接入るとのことですが、その値の表現はどこで規定されているのでしょうか?
例えばテキトウですが、「"あ"という文字はメモリに入っている状態としては"0001"である」みたいなマッピングはどのレイヤーで決まっているのか知りたいです
例えばテキトウですが、「"あ"という文字はメモリに入っている状態としては"0001"である」みたいなマッピングはどのレイヤーで決まっているのか知りたいです
311デフォルトの名無しさん
2022/10/02(日) 11:02:43.84ID:OMFycnXw 文書のアウトラインの構造って
H1 プロジェクト名
H2
H3
H2
...
と
H1 プロジェクト名
H1
H2
H1
...
ってどっちがいいの?
前者の方が一貫性はあるが
後者の方が階層が深くならないから無駄がない気がする
H1 プロジェクト名
H2
H3
H2
...
と
H1 プロジェクト名
H1
H2
H1
...
ってどっちがいいの?
前者の方が一貫性はあるが
後者の方が階層が深くならないから無駄がない気がする
312デフォルトの名無しさん
2022/10/02(日) 13:19:56.55ID:D5S18uSu 前者がいい
https://developer.mozilla.org/ja/docs/Web/HTML/Element/Heading_Elements
> 複数の <h1> を使用することは HTML の仕様では認められていますが、ベストプラクティスとは見なされていません。<h1> を 1 つだけ使用することは、スクリーンリーダーの利用者にとって有益です。
https://developer.mozilla.org/ja/docs/Web/HTML/Element/Heading_Elements
> 複数の <h1> を使用することは HTML の仕様では認められていますが、ベストプラクティスとは見なされていません。<h1> を 1 つだけ使用することは、スクリーンリーダーの利用者にとって有益です。
313デフォルトの名無しさん
2022/10/02(日) 13:31:18.93ID:w76y/xOG >>310
文字コードの話?
今でこそUTF8が普及しているけど、昔は色んな文字コードが使われていた
「あ」はUTF8だと3バイトで0xE3 0x81 0x82のように定義されている
ググれば文字コード表が見付かると思う
文字コードの話?
今でこそUTF8が普及しているけど、昔は色んな文字コードが使われていた
「あ」はUTF8だと3バイトで0xE3 0x81 0x82のように定義されている
ググれば文字コード表が見付かると思う
314デフォルトの名無しさん
2022/10/02(日) 13:59:58.47ID:D5S18uSu >>310
言語による
たとえばJavaなら言語仕様とStringクラスの仕様で内部でUTF-16(またはコンパクト文字列)が使用されることが決められてる
Unicodeの文字セットにおける「あ」のコードポイントは16進数で 30 42 と決められてる
これをメモリやディスクに置くときのエンコーディング方式としてUTF-16を適用すると、同じく 30 42 になる(UTF-16LEなら 42 30)
言語による
たとえばJavaなら言語仕様とStringクラスの仕様で内部でUTF-16(またはコンパクト文字列)が使用されることが決められてる
Unicodeの文字セットにおける「あ」のコードポイントは16進数で 30 42 と決められてる
これをメモリやディスクに置くときのエンコーディング方式としてUTF-16を適用すると、同じく 30 42 になる(UTF-16LEなら 42 30)
315デフォルトの名無しさん
2022/10/02(日) 14:32:06.87ID:9LI4ZhW2 >>311-312
分かるけどHTMLの場合意味的に<body>と<title>がh1相当とも見なせるから<body>の子レベルから複数の同レベル見出しタグ作りたくなるなぁ
個人で持ってる人の目に触れない系のMarkdownは#を複数並べちゃったりしてるな body->h1->なになにってやるとルートが2個あるように感じる
分かるけどHTMLの場合意味的に<body>と<title>がh1相当とも見なせるから<body>の子レベルから複数の同レベル見出しタグ作りたくなるなぁ
個人で持ってる人の目に触れない系のMarkdownは#を複数並べちゃったりしてるな body->h1->なになにってやるとルートが2個あるように感じる
316デフォルトの名無しさん
2022/10/02(日) 14:40:54.56ID:V2KGQQGK 値型の変数の話じゃなくなってない?
まず>>310の変数とメモリに関する理解があやふやな点を正してやった方がいい気がするが
まず>>310の変数とメモリに関する理解があやふやな点を正してやった方がいい気がするが
317デフォルトの名無しさん
2022/10/02(日) 15:03:26.77ID:D5S18uSu >>315
titleなんてブラウザのタイトルバーとかにしか出ないしコンテンツじゃないからh1と内容がほぼ同じになるページがあってもいいよ
おまけにtitleにはサイト名やサービス名が入ったりするので常に同じとはならないし
機械との対話に慣れすぎると冗長=悪という感覚が身に付きがちだけど、HTMLを含めて人間向けのドキュメントって読みやすさのためにある程度の冗長性は許容されるべきものだと思う
bodyの子としてnavとかもあるわけで、ルートが一つというのもちょっと違うかな
titleなんてブラウザのタイトルバーとかにしか出ないしコンテンツじゃないからh1と内容がほぼ同じになるページがあってもいいよ
おまけにtitleにはサイト名やサービス名が入ったりするので常に同じとはならないし
機械との対話に慣れすぎると冗長=悪という感覚が身に付きがちだけど、HTMLを含めて人間向けのドキュメントって読みやすさのためにある程度の冗長性は許容されるべきものだと思う
bodyの子としてnavとかもあるわけで、ルートが一つというのもちょっと違うかな
318デフォルトの名無しさん
2022/10/02(日) 15:34:32.23ID:snmXSWNi319デフォルトの名無しさん
2022/10/02(日) 18:36:02.22ID:2Rps0pJb 310です
ありがとうございます
プログラミング言語ごとにどの文字コードを使うかが決まっていているということですね
ではビルド後の実行ファイルにどの文字コードを採用しているかみたいな情報も書き込まれているのでしょうか?
ありがとうございます
プログラミング言語ごとにどの文字コードを使うかが決まっていているということですね
ではビルド後の実行ファイルにどの文字コードを採用しているかみたいな情報も書き込まれているのでしょうか?
320デフォルトの名無しさん
2022/10/02(日) 19:07:27.83ID:fl0K/H95 もちろん今はコードとしてはユニコード一択
ユニコード以外の過去の呪縛に囚われたままのダメな言語に手を出してはいけない
焦点はユニコードのデータ表現
外部データ表現はすなわちネットやファイルなどで用いるデータ表現は現在はUTF8一択
UTF8以外の過去の呪縛に囚われたままのダメな環境に手を出してはいけない
内部データ表現すなわちメモリ上で扱うユニコードのデータ表現は2通り考えられる
一つはUTF32つまりユニコードを固定長で扱えるメリットが非常に大きい
もう一つは外部データ表現と同じUTF8をそのまま変換せずに用いるメリットと引き換えに可変長コストを払う
変換コストと可変長コストの両方を払うUTF16を用いる場合もある
ユニコード以外の過去の呪縛に囚われたままのダメな言語に手を出してはいけない
焦点はユニコードのデータ表現
外部データ表現はすなわちネットやファイルなどで用いるデータ表現は現在はUTF8一択
UTF8以外の過去の呪縛に囚われたままのダメな環境に手を出してはいけない
内部データ表現すなわちメモリ上で扱うユニコードのデータ表現は2通り考えられる
一つはUTF32つまりユニコードを固定長で扱えるメリットが非常に大きい
もう一つは外部データ表現と同じUTF8をそのまま変換せずに用いるメリットと引き換えに可変長コストを払う
変換コストと可変長コストの両方を払うUTF16を用いる場合もある
321デフォルトの名無しさん
2022/10/02(日) 19:07:39.94ID:YWol7Cp2 一応釘刺しとくけど一般的に文字列変数は値型じゃなくて参照型
文字型をもつ言語ならそれは値型の可能性はあるけども
そもそもなんで最初に「値型の変数では」って話を切り出したの?
文字型をもつ言語ならそれは値型の可能性はあるけども
そもそもなんで最初に「値型の変数では」って話を切り出したの?
322デフォルトの名無しさん
2022/10/02(日) 19:50:08.91ID:gRPXDi67 >>321
知りたかったのはaとか1とかtrue/falseみたいな値がどのようなレイヤーで決まっているかについてで、参照型の場合は参照先のポインタを持っているため知りたいこととは関係なかったからです
書いてて気づきましたが、文字の場合はどの文字コードを採用するかで決まるとのことでしたが、true/falseなどは言語レベルではなくより基礎的なところでどの2進表現として扱うかという取り決めが決められているのでしょうか?それとも言語レベルで決まっているのでしょうか?
知りたかったのはaとか1とかtrue/falseみたいな値がどのようなレイヤーで決まっているかについてで、参照型の場合は参照先のポインタを持っているため知りたいこととは関係なかったからです
書いてて気づきましたが、文字の場合はどの文字コードを採用するかで決まるとのことでしたが、true/falseなどは言語レベルではなくより基礎的なところでどの2進表現として扱うかという取り決めが決められているのでしょうか?それとも言語レベルで決まっているのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
