この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。
【前スレ】
スレ立てるまでもない質問はここで 154匹目
http://mevius.5ch.net/test/read.cgi/tech/1599472611/l50
スレ立てるまでもない質問はここで 155匹目
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/11/27(金) 10:07:17.73ID:d9w49I3I747蟻人間 ◆T6xkBnTXz7B0
2021/02/06(土) 17:41:25.62ID:gG6zzvvp >>742
(function(){
let ary = [];
ary.length = 10000000;
for (let i = 0; i < ary.length; ++i) {
ary[i] = false; // null or false
}
let count = 5, sum = 0;
for (let k = 0; k < count; ++k) {
let time0 = Date.now();
for (let i = 0; i < ary.length; ++i) {
ary[i] = (Math.random() > 0.5);
}
for (let i = 0; i < ary.length; ++i) {
ary[i] = (Math.random() > 0.5);
}
let time1 = Date.now();
sum += time1 - time0;
}
alert(sum * 1.0 / count);
})();
【結果】
null: 738.8
false: 594
(function(){
let ary = [];
ary.length = 10000000;
for (let i = 0; i < ary.length; ++i) {
ary[i] = false; // null or false
}
let count = 5, sum = 0;
for (let k = 0; k < count; ++k) {
let time0 = Date.now();
for (let i = 0; i < ary.length; ++i) {
ary[i] = (Math.random() > 0.5);
}
for (let i = 0; i < ary.length; ++i) {
ary[i] = (Math.random() > 0.5);
}
let time1 = Date.now();
sum += time1 - time0;
}
alert(sum * 1.0 / count);
})();
【結果】
null: 738.8
false: 594
748蟻人間 ◆T6xkBnTXz7B0
2021/02/06(土) 18:24:05.39ID:gG6zzvvp Microsoft Edgeで表示中のウェブページの画像全部ダウンロードできる、凶悪なJavaScriptプログラム配布中。。。
https://github.com/katahiromz/download-all-images.js
試してみてね。
https://github.com/katahiromz/download-all-images.js
試してみてね。
749デフォルトの名無しさん
2021/02/06(土) 18:31:30.57ID:pJAT2BWO またWindowsか・・
750デフォルトの名無しさん
2021/02/06(土) 19:04:02.65ID:do+3t/u8 >>742
True/Falseの値を持つのにbool型じゃなくobject型にしたい理由って?
配列500個というのが1つの配列の要素数が500という意味なら
1回の処理で何度も何度も回さない限り処理速度を気にするようなものじゃないと思うんだが
True/Falseの値を持つのにbool型じゃなくobject型にしたい理由って?
配列500個というのが1つの配列の要素数が500という意味なら
1回の処理で何度も何度も回さない限り処理速度を気にするようなものじゃないと思うんだが
751742
2021/02/06(土) 19:35:20.76ID:PxbGK26v752デフォルトの名無しさん
2021/02/06(土) 20:05:40.24ID:gs+WDl+6753デフォルトの名無しさん
2021/02/06(土) 22:30:40.68ID:IIwiGG/p JavaScriptでは要素の型は宣言できないよ
入れた値によって動的に決まるので考えなくていい
型付き配列といって配列に似たInt8Arrayのようなオブジェクトもある
性能は実装に依るので速くなったり遅くなったりするらしい
入れた値によって動的に決まるので考えなくていい
型付き配列といって配列に似たInt8Arrayのようなオブジェクトもある
性能は実装に依るので速くなったり遅くなったりするらしい
754742
2021/02/07(日) 02:10:03.75ID:Z3KLeyYV レスありがとうございます。
そうだったんですね。
そうだったんですね。
755デフォルトの名無しさん
2021/02/07(日) 12:11:36.54ID:3yLZFTJu Swiftですが、例えばアプリ画面に配列の要素数に対応した値を表示させるとした場合、それぞれの要素数ごとに条件分岐させないとダメなのでしょうか?
756デフォルトの名無しさん
2021/02/07(日) 13:48:54.86ID:hwDwbBnD > 要素数に対応した値
ここが要素数に依存する出力なら条件分岐しなくてもかける
ここが要素数に依存する出力なら条件分岐しなくてもかける
757デフォルトの名無しさん
2021/02/07(日) 15:30:25.27ID:AkpxQPsh e.lastとか
758デフォルトの名無しさん
2021/02/08(月) 03:39:57.39ID:eAvRwRpe 大学生です
遠隔授業のため現在授業の出席確認がGoogleFormで行われております。(urlから番号と名前を入力する形式)
来年以降もおそらくその流れが続きそうなのでそれを自動化したいなと考えています。
今考えているのは以下の流れです。
ラインなどでurl送信→それを感知してurl開き、番号と名前入力、出席送信
どの言語を学べばよいでしょうか?
軽く調べたところソフトウェアとかになるのでpythonとかかなと思ったのですが、いかがでしょうか?
遠隔授業のため現在授業の出席確認がGoogleFormで行われております。(urlから番号と名前を入力する形式)
来年以降もおそらくその流れが続きそうなのでそれを自動化したいなと考えています。
今考えているのは以下の流れです。
ラインなどでurl送信→それを感知してurl開き、番号と名前入力、出席送信
どの言語を学べばよいでしょうか?
軽く調べたところソフトウェアとかになるのでpythonとかかなと思ったのですが、いかがでしょうか?
759(u_・y)
2021/02/08(月) 03:59:21.30ID:tUszODGz (u_・y)文系乙
760デフォルトの名無しさん
2021/02/08(月) 05:07:19.48ID:S+J/M93m 質問に答えられない土方コーダー「文系乙」
761デフォルトの名無しさん
2021/02/08(月) 06:33:50.01ID:4iOoIICx762デフォルトの名無しさん
2021/02/08(月) 07:32:33.23ID:VfivF5wM >>758
素直に単位落として留年しとけ
素直に単位落として留年しとけ
763デフォルトの名無しさん
2021/02/08(月) 15:22:53.20ID:TxCBSk9L764デフォルトの名無しさん
2021/02/08(月) 15:25:22.40ID:XA5gECfn url送信を感知…センサーでもつける気か
765デフォルトの名無しさん
2021/02/08(月) 16:04:37.88ID:mAwBmzXL IntelliJ で go で開発してるんですが、デバッグ実行しようとすると
コンパイルエラーがあっても以前の成功ビルドが勝手に起動するようになってしまいました。
プロジェクトをリポジトリから clone しなおしてみたり、個人設定(%APPDATA%\JetBrains\IntelliJIdea2020.3)を消して
やり直してみたりしましたが変わりません。
どこかに設定があるのでしょうか?ご存じの方いらっしゃいましたら宜しくお願い致します。
バージョンは IntelliJ IDEA 2020.3.1 Build #IU-203.6682.168, built on December 29, 2020 です。
コンパイルエラーがあっても以前の成功ビルドが勝手に起動するようになってしまいました。
プロジェクトをリポジトリから clone しなおしてみたり、個人設定(%APPDATA%\JetBrains\IntelliJIdea2020.3)を消して
やり直してみたりしましたが変わりません。
どこかに設定があるのでしょうか?ご存じの方いらっしゃいましたら宜しくお願い致します。
バージョンは IntelliJ IDEA 2020.3.1 Build #IU-203.6682.168, built on December 29, 2020 です。
766デフォルトの名無しさん
2021/02/08(月) 18:21:00.01ID:lF6Wq/Jt767デフォルトの名無しさん
2021/02/08(月) 18:23:46.69ID:0fSH6U0R NHK Eテレに出てる、Ruby の女神・池澤あやかは、
慶応大学生時代に、そういうツールを作って自動化していた
例えば、Ruby, selenium-webdriver で、yahoo へ自動ログインする。
ひょっとしたら、wget, curl コマンドでも、フォーム送信できるかも
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout
driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym"
element = driver.find_element(:id => "username")
element.send_key "ユーザー名"
driver.find_element(:id => "btnNext").click # ボタンをクリック
element = driver.find_element(:id => "passwd")
element.send_key "パスワード"
driver.find_element(:id => "btnSubmit").click # ボタンをクリック
慶応大学生時代に、そういうツールを作って自動化していた
例えば、Ruby, selenium-webdriver で、yahoo へ自動ログインする。
ひょっとしたら、wget, curl コマンドでも、フォーム送信できるかも
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout
driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym"
element = driver.find_element(:id => "username")
element.send_key "ユーザー名"
driver.find_element(:id => "btnNext").click # ボタンをクリック
element = driver.find_element(:id => "passwd")
element.send_key "パスワード"
driver.find_element(:id => "btnSubmit").click # ボタンをクリック
768765
2021/02/08(月) 18:36:03.43ID:mAwBmzXL 自己解決しました。勘違いでした。
ウェブのロジックを書いてたんですが、対象のファイルを router に書いてなかったから
プロジェクトの依存関係に含まれてなかったみたい。
go のプロジェクトの概念だと、追って行って繋がらない物はそもそも依存関係に含まれないんですね。
ウェブのロジックを書いてたんですが、対象のファイルを router に書いてなかったから
プロジェクトの依存関係に含まれてなかったみたい。
go のプロジェクトの概念だと、追って行って繋がらない物はそもそも依存関係に含まれないんですね。
769デフォルトの名無しさん
2021/02/08(月) 18:45:39.37ID:L1DIPYtE IEの時代はRubyも何も入れないでWSHで無双できた
戻りたいか?と言われたら否と答えるが
戻りたいか?と言われたら否と答えるが
770デフォルトの名無しさん
2021/02/08(月) 19:51:53.33ID:kDZG9/tB 今はWSLがあるからシェルスクリプトで無双できるしね
Windowsはすごく良くなったよ
Windowsはすごく良くなったよ
771デフォルトの名無しさん
2021/02/08(月) 21:19:17.75ID:TxCBSk9L >>766
LINEでメッセージを受信したのを自動で検知するということだと
LINE Botを作って運用するかIFTTTみたいツールで連携する話になるので若干ハードル高め
手動でリンクを開いたり自作のアプリに渡したりするのでよければハードル低いけど
スマホ前提ならPCみたいに自由にはできないので要注意
手動でリンクを開いてブックマークレット(JavaScript)をワンタップして処理するか
iOSならpythonistaにURLスキームで渡すか
素直にOSのAutofill機能を使って手動で数タップするか
LINEでメッセージを受信したのを自動で検知するということだと
LINE Botを作って運用するかIFTTTみたいツールで連携する話になるので若干ハードル高め
手動でリンクを開いたり自作のアプリに渡したりするのでよければハードル低いけど
スマホ前提ならPCみたいに自由にはできないので要注意
手動でリンクを開いてブックマークレット(JavaScript)をワンタップして処理するか
iOSならpythonistaにURLスキームで渡すか
素直にOSのAutofill機能を使って手動で数タップするか
772デフォルトの名無しさん
2021/02/09(火) 00:37:24.87ID:n4fLaJzx LINE Botを作るのが最強っぽいけど、ここは健全に、自前アプリを作ってリンクを踏んだときに開くように紐付けようぜ
ブラウザでは開かず、フォームが毎回同じなら回答先アドレスにHTTP POSTかGETでいきなり回答を送る
違うならHTMLを裏でパースしてから同じように送る
gasが便利に使えそうなら使う
そしてほどほど便利な健全アプリができたら100円くらいでみんなに売ろう
広告アプリでもいい
AndroidならKotlin、iPhoneならSwiftで
ブラウザでは開かず、フォームが毎回同じなら回答先アドレスにHTTP POSTかGETでいきなり回答を送る
違うならHTMLを裏でパースしてから同じように送る
gasが便利に使えそうなら使う
そしてほどほど便利な健全アプリができたら100円くらいでみんなに売ろう
広告アプリでもいい
AndroidならKotlin、iPhoneならSwiftで
773デフォルトの名無しさん
2021/02/09(火) 01:53:52.16ID:n9olesbz そのうち講義を受けてないと答えられない質問が
ランダムに5問くらいずつ出されるようになる
ランダムに5問くらいずつ出されるようになる
774デフォルトの名無しさん
2021/02/09(火) 23:46:10.21ID:jGeSSrjn775デフォルトの名無しさん
2021/02/10(水) 16:48:55.15ID:ljUb2Upc =や式を詰めて書いてましたけど左右に空白を入れた方がいいんですかね?
あと , の後ろの空白一文字も必要ですか?
var=5+ary[3,4]
↓変更
var = 5 + ary[3, 4]
あと , の後ろの空白一文字も必要ですか?
var=5+ary[3,4]
↓変更
var = 5 + ary[3, 4]
776デフォルトの名無しさん
2021/02/10(水) 17:00:28.53ID:DKgAl10f 好み
777デフォルトの名無しさん
2021/02/10(水) 18:51:12.65ID:WeU5fM2j 良くあるルールは演算子の間にスペース入れる
カンマの後にスペース入れる(前には入れない)
カンマの後にスペース入れる(前には入れない)
778デフォルトの名無しさん
2021/02/10(水) 18:59:13.40ID:ApG6WxXu もう全部linterに任せてる
779デフォルトの名無しさん
2021/02/10(水) 21:56:59.24ID:kDXEbzyj どっちでもいい(どうでもいい)ことはlinterに任せるのが正解
趣味ならともかくそんな所に時間を費やする意味はない
どっちでもいいものは、どうせ意見が分かれる
マジどうでもいい
趣味ならともかくそんな所に時間を費やする意味はない
どっちでもいいものは、どうせ意見が分かれる
マジどうでもいい
780デフォルトの名無しさん
2021/02/10(水) 22:10:17.86ID:UvJeGuAM イベントソーシングがわからん
メリットで任意の時点のエンティティを復元可能と言ってる奴が多いんだが…
任意の時点に戻すためにはエンティティのクラス定義も過去の全バージョン残さないと出来ないよね?
メリットで任意の時点のエンティティを復元可能と言ってる奴が多いんだが…
任意の時点に戻すためにはエンティティのクラス定義も過去の全バージョン残さないと出来ないよね?
781デフォルトの名無しさん
2021/02/11(木) 00:23:33.91ID:MYnJXR31 >>780
データベースの更新データみたいなものだよ
スナップショットを溜め込むのではなく、更新操作を蓄積する
排他処理によって更新操作の時系列を保証するのは容易
そして必要に応じてロールフォワードすれば任意の時刻の状態を復元できる
整合性を高めたい場合に使う
データベースの更新データみたいなものだよ
スナップショットを溜め込むのではなく、更新操作を蓄積する
排他処理によって更新操作の時系列を保証するのは容易
そして必要に応じてロールフォワードすれば任意の時刻の状態を復元できる
整合性を高めたい場合に使う
782デフォルトの名無しさん
2021/02/11(木) 00:23:51.33ID:lj0aoxL+ >>775
スペースがほどよく入ったフォーマットの方がいいだろうね
仕様変更やバグ修正を積み重ねるような機会があると、ソースは書きやすいことよりも読みやすいことの方が重要だと痛感する
hoge_piyo-foo_bar(4,300) よりは
hoge_piyo - foo_bar(4, 3000) のほうが視覚→脳がミスなく高速処理しやすい
細則に拘らずオートフォーマッターに任せるべきというのは同感
スペースがほどよく入ったフォーマットの方がいいだろうね
仕様変更やバグ修正を積み重ねるような機会があると、ソースは書きやすいことよりも読みやすいことの方が重要だと痛感する
hoge_piyo-foo_bar(4,300) よりは
hoge_piyo - foo_bar(4, 3000) のほうが視覚→脳がミスなく高速処理しやすい
細則に拘らずオートフォーマッターに任せるべきというのは同感
783デフォルトの名無しさん
2021/02/11(木) 00:31:47.91ID:MYnJXR31784デフォルトの名無しさん
2021/02/11(木) 00:55:49.99ID:S0hZMzMn イベントソーシングは概念はわかるけど実装方法がわからん
時刻=t、ID=idのHogeのエンティティを取得するメソッドのシグネチャはどうなる?
Hoge getHoge(id, t)
Hogeはシステムの保守拡張で型定義が変わっていく
けどこの定義じゃ最新版のHogeしか取れない
任意のtに対してこれを実装したかったら過去のバージョンのHogeもコードに残さないといけない
Object getHoge(id, t)
var h = getHoge(id, t)
if (h is Hoge_V1) ...
if (h is Hoge_V2) ...
...
時刻=t、ID=idのHogeのエンティティを取得するメソッドのシグネチャはどうなる?
Hoge getHoge(id, t)
Hogeはシステムの保守拡張で型定義が変わっていく
けどこの定義じゃ最新版のHogeしか取れない
任意のtに対してこれを実装したかったら過去のバージョンのHogeもコードに残さないといけない
Object getHoge(id, t)
var h = getHoge(id, t)
if (h is Hoge_V1) ...
if (h is Hoge_V2) ...
...
785デフォルトの名無しさん
2021/02/11(木) 01:05:43.36ID:MYnJXR31 >>780
また、デザインパターンでのコマンドパターンにも近しい
コマンドパターンは例えばテキストエディタでのアンドゥリドゥの実現に使われる
記録してある操作を逆再生することで、任意の時点のテキストを復元する機能にお世話にならない人は少なかろう
これなんかは経験からイメージしやすいのではないか?
また、デザインパターンでのコマンドパターンにも近しい
コマンドパターンは例えばテキストエディタでのアンドゥリドゥの実現に使われる
記録してある操作を逆再生することで、任意の時点のテキストを復元する機能にお世話にならない人は少なかろう
これなんかは経験からイメージしやすいのではないか?
786デフォルトの名無しさん
2021/02/11(木) 01:11:01.49ID:MYnJXR31787デフォルトの名無しさん
2021/02/11(木) 01:19:29.62ID:MYnJXR31 >>784
むしろイベントソーシングならばこそ可能になりそうな気もする
オブジェクトのメタ情報に対する更新にアクセスする方法もイベントとして記録出来ればいい
データベースならばDDLの実行もイベントとして記録して、テーブルの構成が変わった時点よりも巻き戻す場合にはDDLも巻き戻す
そんな阿呆なシステムを考えるやつは居ないが
むしろイベントソーシングならばこそ可能になりそうな気もする
オブジェクトのメタ情報に対する更新にアクセスする方法もイベントとして記録出来ればいい
データベースならばDDLの実行もイベントとして記録して、テーブルの構成が変わった時点よりも巻き戻す場合にはDDLも巻き戻す
そんな阿呆なシステムを考えるやつは居ないが
788デフォルトの名無しさん
2021/02/11(木) 01:24:17.17ID:PvN170ep >>784
データベースにカラムを追加する時どうするのか考えればわかるやろ
既存のアプリと互換性のある方法で拡張するか
既存のアプリとは互換性のない方法で拡張するか
後者を選んだら互換性のない過去データはそのまま読めないので
過去データ専用のロジックを残すか過去データを新しい形式に変換するか
データベースにカラムを追加する時どうするのか考えればわかるやろ
既存のアプリと互換性のある方法で拡張するか
既存のアプリとは互換性のない方法で拡張するか
後者を選んだら互換性のない過去データはそのまま読めないので
過去データ専用のロジックを残すか過去データを新しい形式に変換するか
789デフォルトの名無しさん
2021/02/11(木) 12:59:51.92ID:b5KexMPk ようするにシステムを任意の時点に戻せるって嘘だったのか?
790デフォルトの名無しさん
2021/02/11(木) 14:06:06.77ID:MYnJXR31791デフォルトの名無しさん
2021/02/11(木) 14:54:07.70ID:5Dfgfpv3 過去のプログラムがコンテナイメージとかで完全に保全されている前提で
↓みたいにひたすらシステムバージョンアップとイベント再生を繰り返す
foreach e in getAllEvents()
updateSystem(e.SystemVersion)
waitSystemReady()
sendEvent(e)
これで任意の時点にもどせるってことなのかな?
イベントソーシングだけじゃなく完全なIasC化、インフラ構成ファイルの全バージョンの保全まで考えないと任意の時点に復旧はできなそうだね
↓みたいにひたすらシステムバージョンアップとイベント再生を繰り返す
foreach e in getAllEvents()
updateSystem(e.SystemVersion)
waitSystemReady()
sendEvent(e)
これで任意の時点にもどせるってことなのかな?
イベントソーシングだけじゃなく完全なIasC化、インフラ構成ファイルの全バージョンの保全まで考えないと任意の時点に復旧はできなそうだね
792デフォルトの名無しさん
2021/02/11(木) 15:00:43.14ID:5Dfgfpv3 ここまで頑張ってようやっと過去にもどせたとしても
過去に戻せるメリットが正直、微妙だ
デバッグの再現性?
過去のイベントを分析してマーケティングに活かせる、だとか
そういったメリットなら価値がありそうだけど
、戻せたからっていったい何になるんだろ?
イベントソーシングってほんとに現場で役に立ってるのか?
足かせになってない?
過去に戻せるメリットが正直、微妙だ
デバッグの再現性?
過去のイベントを分析してマーケティングに活かせる、だとか
そういったメリットなら価値がありそうだけど
、戻せたからっていったい何になるんだろ?
イベントソーシングってほんとに現場で役に立ってるのか?
足かせになってない?
793デフォルトの名無しさん
2021/02/11(木) 17:01:22.40ID:PvN170ep >>789
イベントソーシングを採用してるシステムは
そのシステムを任意の時点に戻せると聞いたならそれが間違ってる
対象はあくまでアプリケーションが管理してる状態(≒データ)で
任意の時点の状態を再現可能というだけ
DBのトランザクションログと同じ
システム構成やコードをデータとして管理して
任意の時点の状態を再現可能するのはバージョン管理システムの役割
Gitみたいなバージョン管理システムもイベントソーシングと共通した考え方
イベントソーシングを採用してるシステムは
そのシステムを任意の時点に戻せると聞いたならそれが間違ってる
対象はあくまでアプリケーションが管理してる状態(≒データ)で
任意の時点の状態を再現可能というだけ
DBのトランザクションログと同じ
システム構成やコードをデータとして管理して
任意の時点の状態を再現可能するのはバージョン管理システムの役割
Gitみたいなバージョン管理システムもイベントソーシングと共通した考え方
794デフォルトの名無しさん
2021/02/11(木) 17:04:31.69ID:MYnJXR31 お前、ちょっと会社の経理部に行って
「帳簿付けなんて無意味じゃないの?役に立ってるの?」
とか言ってこい
「帳簿付けなんて無意味じゃないの?役に立ってるの?」
とか言ってこい
795デフォルトの名無しさん
2021/02/11(木) 17:15:58.93ID:kEYHl+PL >>793
その任意の時点の状態の再現ってのが、言われてるよりずっと難しいんじゃないのか?
難しい割にメリットが少ないんじゃないか?
というのが俺の疑問ね
イベントストリームだけ残ってても、イベントを再生するプログラムがなければ、状態を再現なんてできない
過去の全てのプログラムやインフラ構成までバージョン管理しないと、タイムマシンにならない
その任意の時点の状態の再現ってのが、言われてるよりずっと難しいんじゃないのか?
難しい割にメリットが少ないんじゃないか?
というのが俺の疑問ね
イベントストリームだけ残ってても、イベントを再生するプログラムがなければ、状態を再現なんてできない
過去の全てのプログラムやインフラ構成までバージョン管理しないと、タイムマシンにならない
796デフォルトの名無しさん
2021/02/11(木) 17:19:58.14ID:kEYHl+PL797デフォルトの名無しさん
2021/02/11(木) 17:27:20.06ID:MYnJXR31798デフォルトの名無しさん
2021/02/11(木) 17:40:01.39ID:MYnJXR31 現実でも(帳簿などで)実績のあるやり方を、俺の目的には合わないから無意味な方法じゃないかとか何様よ
799デフォルトの名無しさん
2021/02/11(木) 17:56:17.77ID:kEYHl+PL800デフォルトの名無しさん
2021/02/11(木) 18:06:26.39ID:lj0aoxL+ メリットデメリットがあるのは当然
フィットするユースケースもあればそうでない場合もある
今回は中途半端な理解に基づいて
おかしなユースケースと紐付けて的外れな分析をした上で
イベントソーシングはきっとデメリットのほうが多いので微妙と思い込んでるのだから独り善がりが過ぎる
これもう先入観によって導かれた結論ありきの思考回路だから、掲示板で皆が説明しても到底伝わらないやつ
フィットするユースケースもあればそうでない場合もある
今回は中途半端な理解に基づいて
おかしなユースケースと紐付けて的外れな分析をした上で
イベントソーシングはきっとデメリットのほうが多いので微妙と思い込んでるのだから独り善がりが過ぎる
これもう先入観によって導かれた結論ありきの思考回路だから、掲示板で皆が説明しても到底伝わらないやつ
801デフォルトの名無しさん
2021/02/11(木) 18:19:22.98ID:UlgLgEFI そもそもの発端は>>780あたりでメリットデメリット以前の問題としてエンティティを任意の時点に巻き戻す処理の実装が難しすぎるという事だった
これに対する実現性と保守性の高い実装方法に関する回答は今のところ1つも無い
実装できないもののメリットを語っても虚しいだけだ
これに対する実現性と保守性の高い実装方法に関する回答は今のところ1つも無い
実装できないもののメリットを語っても虚しいだけだ
802デフォルトの名無しさん
2021/02/11(木) 18:26:01.93ID:MYnJXR31803デフォルトの名無しさん
2021/02/11(木) 18:33:45.62ID:UlgLgEFI804デフォルトの名無しさん
2021/02/11(木) 18:41:56.01ID:MYnJXR31805デフォルトの名無しさん
2021/02/11(木) 18:46:31.54ID:lj0aoxL+ エンティティの型定義が変わるようなケースではイベントソーシングは汎用的な処方箋じゃない
それはそれで問題ない
実際に仕様変更があったとしても個別対応はどうとでもなる
アプリ側はいつだってジャーナルを元に再計算できるんだから、バージョンアップ時に普通に新規フィールドを追加するなりすればいい
古い形式のイベントデータを受け取ったら追加フィールドにはデフォルト値をセットするだけ
クラウドとの親和性と更新トランザクションの高スループットといったスケーラビリティを確保しつつ履歴方向への機能性を高くできるのが売り
RDBMSを使った既存のオンプレミスな開発等が楽になることは主眼としてないし、変なところに無理矢理当てはめて開発者たちが苦労を強いられてるなんてのは妄想
それはそれで問題ない
実際に仕様変更があったとしても個別対応はどうとでもなる
アプリ側はいつだってジャーナルを元に再計算できるんだから、バージョンアップ時に普通に新規フィールドを追加するなりすればいい
古い形式のイベントデータを受け取ったら追加フィールドにはデフォルト値をセットするだけ
クラウドとの親和性と更新トランザクションの高スループットといったスケーラビリティを確保しつつ履歴方向への機能性を高くできるのが売り
RDBMSを使った既存のオンプレミスな開発等が楽になることは主眼としてないし、変なところに無理矢理当てはめて開発者たちが苦労を強いられてるなんてのは妄想
806デフォルトの名無しさん
2021/02/11(木) 19:03:07.50ID:UlgLgEFI >>804
つまりできないと?
つまりできないと?
807デフォルトの名無しさん
2021/02/11(木) 19:08:07.56ID:00tB7xH9 できるって書いてるのにできないことにしたいらしいw
808デフォルトの名無しさん
2021/02/11(木) 19:10:01.59ID:UlgLgEFI >>805
定義(プログラム)を変えて再計算では、任意の時点を再現しているとは言えないかな
それは似て非なるものでしょう
更新のスループットとかなら、わかりやすいメリットなんだけどね
任意の時点を再現可能ってのはイベントソーシングを説明するとき、言わないほうがいいんじゃないかと思う
定義(プログラム)を変えて再計算では、任意の時点を再現しているとは言えないかな
それは似て非なるものでしょう
更新のスループットとかなら、わかりやすいメリットなんだけどね
任意の時点を再現可能ってのはイベントソーシングを説明するとき、言わないほうがいいんじゃないかと思う
809デフォルトの名無しさん
2021/02/11(木) 19:10:32.49ID:UlgLgEFI >>807
サンプル実装書いてみて、どうぞ
サンプル実装書いてみて、どうぞ
810デフォルトの名無しさん
2021/02/11(木) 19:21:36.47ID:MYnJXR31811デフォルトの名無しさん
2021/02/11(木) 19:28:00.09ID:UlgLgEFI812デフォルトの名無しさん
2021/02/11(木) 19:41:44.39ID:lj0aoxL+ >>808
任意の時点を再現って誰がどういう文脈で言ったんだろう
少なくとも俺はそういうこと言ってないよ
任意の時点の預金残高を再現するといったことは可能だと思う
たとえば操作や出来事を全部イベントで記録したレースゲームを作ったら、自由に停止やシークができるリプレイ機能を用意できる
バージョンアップでブースト操作や亀の甲らを投げる機能が増えたとしても、前バージョンのリプレイが再生できなくなるとは限らない
そういうのを見て「任意の時点を再現する機能がある」という人がいても不思議だとは思わないな
任意の時点を再現って誰がどういう文脈で言ったんだろう
少なくとも俺はそういうこと言ってないよ
任意の時点の預金残高を再現するといったことは可能だと思う
たとえば操作や出来事を全部イベントで記録したレースゲームを作ったら、自由に停止やシークができるリプレイ機能を用意できる
バージョンアップでブースト操作や亀の甲らを投げる機能が増えたとしても、前バージョンのリプレイが再生できなくなるとは限らない
そういうのを見て「任意の時点を再現する機能がある」という人がいても不思議だとは思わないな
813デフォルトの名無しさん
2021/02/11(木) 19:50:48.91ID:UlgLgEFI >>812
ググって見つけたイベントソーシングについて説明してる記事ではタイムマシン機能をメリットの1つとして挙げてることが少なくない
どの記事もこの点はサラッと流してあまり深く掘り下げてないけど「なのでデバッグも簡単」まで言っちゃってるサイトがたまにある
当たり前だけどプログラムの内部的な構造までその当時まで巻き戻せないとデバッグはできない
なので自分はそういうのを実現するためのフレームワークやデザインパターンでもあるのかなと思って質問に来た
ググって見つけたイベントソーシングについて説明してる記事ではタイムマシン機能をメリットの1つとして挙げてることが少なくない
どの記事もこの点はサラッと流してあまり深く掘り下げてないけど「なのでデバッグも簡単」まで言っちゃってるサイトがたまにある
当たり前だけどプログラムの内部的な構造までその当時まで巻き戻せないとデバッグはできない
なので自分はそういうのを実現するためのフレームワークやデザインパターンでもあるのかなと思って質問に来た
814デフォルトの名無しさん
2021/02/11(木) 21:27:20.82ID:0qiJ42Ry815デフォルトの名無しさん
2021/02/11(木) 21:29:49.04ID:kEYHl+PL816デフォルトの名無しさん
2021/02/11(木) 21:33:43.91ID:PvN170ep817デフォルトの名無しさん
2021/02/11(木) 21:36:56.57ID:0qiJ42Ry818デフォルトの名無しさん
2021/02/11(木) 21:38:32.93ID:kEYHl+PL ようするにそのビュー(=プログラ厶)ってやつを過去の全バージョン保持し続ければ、過去の任意の時点に戻ってのデバッグはできるだろう
でも明らかにコードがカオスになるんだよね、これ
保守性を犠牲にしないでこれを実装する方法は?というところを知りたいの
でも明らかにコードがカオスになるんだよね、これ
保守性を犠牲にしないでこれを実装する方法は?というところを知りたいの
819デフォルトの名無しさん
2021/02/11(木) 21:45:25.04ID:PvN170ep >>817
それはイベントを発行するプログラムのロジックには関係ないというだけ
発行されたイベントを利用する側のプログラムには大いに関係ある
current_state = events.reduce(reducer, initial_state)
どういう風に畳み込むかはイベントの種類や表現する状態による
つまりreducerにそのロジックが入るということ
口座なら足し算引き算したり、5chのスレならレスを追記したりするロジックが入る
それはイベントを発行するプログラムのロジックには関係ないというだけ
発行されたイベントを利用する側のプログラムには大いに関係ある
current_state = events.reduce(reducer, initial_state)
どういう風に畳み込むかはイベントの種類や表現する状態による
つまりreducerにそのロジックが入るということ
口座なら足し算引き算したり、5chのスレならレスを追記したりするロジックが入る
820デフォルトの名無しさん
2021/02/11(木) 23:48:31.78ID:lj0aoxL+ 過去の全バージョンのプログラムを持つような手法がイベントソーシングであるという勘違いを捨てない限りはモヤモヤは解決しないだろうな
デバッグでググってみた限りでは、大したことを言っている人は見つからなかったよ
データを再現可能なフルセットで持ってるので◯月×日△時に発生した不具合をデバッグ時にすぐ再現できるのが強みですねという程度
そのときだけ表示が不正だったとか性能低下があったとかシステム間連携でエラーログを吐いてたとか
ここでの調査では別にイベントソーシングが全ソース履歴を司っている必要はなくて、Gitでその時点のソースにswitchした上でジャーナルをその時点までたどれば状況が再現すればいい
デバッグでググってみた限りでは、大したことを言っている人は見つからなかったよ
データを再現可能なフルセットで持ってるので◯月×日△時に発生した不具合をデバッグ時にすぐ再現できるのが強みですねという程度
そのときだけ表示が不正だったとか性能低下があったとかシステム間連携でエラーログを吐いてたとか
ここでの調査では別にイベントソーシングが全ソース履歴を司っている必要はなくて、Gitでその時点のソースにswitchした上でジャーナルをその時点までたどれば状況が再現すればいい
821デフォルトの名無しさん
2021/02/12(金) 02:08:50.31ID:9DTGTrCk この手の話なんて現実的でない理想論ばかりだよなぁw
何とかアーキテクチャやらなんとかパターンとかはっきり言ってそんなの習っても
仕事で役に立つことは殆ど無い
というか当たり前の事を言っている事が多すぎなんだよねw
何とかアーキテクチャやらなんとかパターンとかはっきり言ってそんなの習っても
仕事で役に立つことは殆ど無い
というか当たり前の事を言っている事が多すぎなんだよねw
822デフォルトの名無しさん
2021/02/12(金) 02:27:35.06ID:IU5AN8go 当たり前の事も知らん奴が、スレ立てるまでもない質問をするスレなんだから、何を今さら
そして当たり前の事をないがしろにする奴が設計を語るなよ
当たり前の事を知るのは複数の視点を引き出しとして持つこと
役に立たないのは、視点を活用してないだけ
引き出しが無くて、適している適していないをどう評価すんの?
おおむね設計なんて取捨選択だぞ
そして当たり前の事をないがしろにする奴が設計を語るなよ
当たり前の事を知るのは複数の視点を引き出しとして持つこと
役に立たないのは、視点を活用してないだけ
引き出しが無くて、適している適していないをどう評価すんの?
おおむね設計なんて取捨選択だぞ
823デフォルトの名無しさん
2021/02/12(金) 05:04:54.79ID:tz+82o+A >>821
> 何とかアーキテクチャやらなんとかパターンとかはっきり言ってそんなの習っても
> 仕事で役に立つことは殆ど無い
でもそれは言語自体やライブラリやフレームワークで使われてるよ
つまりCPUの仕組みとかと同じように
お前は使わんけど、お前が使ってるソレを実現するために必要なものということ
まああれだ、作る側ではなく使う側の人間には必要ないということ
> 何とかアーキテクチャやらなんとかパターンとかはっきり言ってそんなの習っても
> 仕事で役に立つことは殆ど無い
でもそれは言語自体やライブラリやフレームワークで使われてるよ
つまりCPUの仕組みとかと同じように
お前は使わんけど、お前が使ってるソレを実現するために必要なものということ
まああれだ、作る側ではなく使う側の人間には必要ないということ
824デフォルトの名無しさん
2021/02/12(金) 22:31:17.29ID:NzpT2ZQ6 昔、夢幻っていうCGIとかPHPとかのサンプルコードが
たくさん置いてあったサイトがあったと思うのですが、
いま、ああいうサイトってどこかありませんかね?
他人の書いたソースコードを読んで勉強したいのです
たくさん置いてあったサイトがあったと思うのですが、
いま、ああいうサイトってどこかありませんかね?
他人の書いたソースコードを読んで勉強したいのです
825デフォルトの名無しさん
2021/02/12(金) 22:50:05.21ID:82D6PoJM ギフハブ
826デフォルトの名無しさん
2021/02/12(金) 22:53:57.11ID:0z7QwFq3 CGIなんて死滅してるからなぁ
827デフォルトの名無しさん
2021/02/12(金) 23:32:19.90ID:YzZUcsVq 基本的な質問ですみません。
webで画像を読み込んだときに非表示の場合でもキャッシュに残るでしょうか?
webで画像を読み込んだときに非表示の場合でもキャッシュに残るでしょうか?
828デフォルトの名無しさん
2021/02/12(金) 23:44:31.36ID:0z7QwFq3 ブラウザとその設定次第
829827
2021/02/12(金) 23:51:43.69ID:YzZUcsVq 追記
すみません。
専門的にいうと画像をdisplay:noneで隠した場合でもキャッシュに残るでしょうか?
すみません。
専門的にいうと画像をdisplay:noneで隠した場合でもキャッシュに残るでしょうか?
830デフォルトの名無しさん
2021/02/12(金) 23:53:13.27ID:0z7QwFq3 だからブラウザと設定次第
理解したくなさそうだから具体的に言えば
ブラウザや設定によって
キャッシュに残る場合もあるし残らない場合もある
どちらもあり得る
理解したくなさそうだから具体的に言えば
ブラウザや設定によって
キャッシュに残る場合もあるし残らない場合もある
どちらもあり得る
831827
2021/02/13(土) 00:27:01.04ID:H27pyQq6 >>830
ありがとうございます。
そうなんですね。
やりたい事はwebの監視モニター(1秒更新)でセンサーの情報を取得して該当する100個の画像のいずれかを表示するのですが、そこでできる限りサーバーからでなくキャッシュで読みたい。
そこに行く前のはじめのページで画像100個を表示してキャッシュさせるのは格好が悪い。
それで非表示でキャッシュできないかを考えたのです。
ありがとうございます。
そうなんですね。
やりたい事はwebの監視モニター(1秒更新)でセンサーの情報を取得して該当する100個の画像のいずれかを表示するのですが、そこでできる限りサーバーからでなくキャッシュで読みたい。
そこに行く前のはじめのページで画像100個を表示してキャッシュさせるのは格好が悪い。
それで非表示でキャッシュできないかを考えたのです。
832デフォルトの名無しさん
2021/02/13(土) 16:05:31.51ID:w4B5IcG+ HTML のメタタグのキャッシュ関係のタグとかかな?
それと、各ブラウザの対応状況
HTML・ブラウザの機能は、
この板よりも、web制作管理板で聞いた方が良いかも
それと、各ブラウザの対応状況
HTML・ブラウザの機能は、
この板よりも、web制作管理板で聞いた方が良いかも
833デフォルトの名無しさん
2021/02/13(土) 17:23:54.81ID:OgPA4E5h 技術評論社の本には同じプログラミング言語でも、
パーフェクト〇〇シリーズと本格入門〇〇シリーズがありますが、
これは本のレベルが違うんですか?
初心者はまず本格入門から入って、その後でパーフェクト〇○シリーズを読む、
という順序でしょうか?
それともそんなこと気にしないで、どっちから始めても全然問題ないんでしょうか?
パーフェクト〇〇シリーズと本格入門〇〇シリーズがありますが、
これは本のレベルが違うんですか?
初心者はまず本格入門から入って、その後でパーフェクト〇○シリーズを読む、
という順序でしょうか?
それともそんなこと気にしないで、どっちから始めても全然問題ないんでしょうか?
834デフォルトの名無しさん
2021/02/13(土) 17:38:04.12ID:j0JOetNb835デフォルトの名無しさん
2021/02/14(日) 01:28:01.16ID:pECDa47U ホスト、サイト、ドメイン、オリジン、エンドポイント
意味合いは微妙に異なるんだけど、結構重なる場面も多くて悩む
他の人はどんな場面で使い分けてるかアンケートしたい
意味合いは微妙に異なるんだけど、結構重なる場面も多くて悩む
他の人はどんな場面で使い分けてるかアンケートしたい
836デフォルトの名無しさん
2021/02/14(日) 01:53:55.59ID:pIQ+ADDG 意味はぜんぜん違うだろ
837デフォルトの名無しさん
2021/02/14(日) 02:03:31.78ID:53rIPsFH アプリの通知が来たらその内容を自動ツイートしたいんですけどなにか良い方法ありますか?
例えばスポーツのスコア通知が来たらその内容をツイートするとかです。
例えばスポーツのスコア通知が来たらその内容をツイートするとかです。
838デフォルトの名無しさん
2021/02/14(日) 02:15:59.33ID:pIQ+ADDG 自分で作ればいいだろ
839デフォルトの名無しさん
2021/02/14(日) 02:23:42.90ID:ouLbdUdH >>837
TaskerやIFTTTのような自動化ツールで通知でトリガーする
TaskerやIFTTTのような自動化ツールで通知でトリガーする
840デフォルトの名無しさん
2021/02/14(日) 02:43:19.39ID:ouLbdUdH >>835
全部サーバーの類じゃねーか!って混乱してる?
ホスト、店員、PTA、発言者、どれも人だけど混乱しないでしょ?
何にせよ過度に一般化して捉えたら違いは分からなくなる
基本、英単語のニュアンス通りに理解すればいい
全部サーバーの類じゃねーか!って混乱してる?
ホスト、店員、PTA、発言者、どれも人だけど混乱しないでしょ?
何にせよ過度に一般化して捉えたら違いは分からなくなる
基本、英単語のニュアンス通りに理解すればいい
841デフォルトの名無しさん
2021/02/14(日) 03:51:48.13ID:K2VDjDyL >>833
改訂2版 パーフェクトRuby、2017
パーフェクト Ruby on Rails 【増補改訂版】、2020/7
こういう、パーフェクトは入門用じゃない。
環境構築・ライブラリ・フレームワーク・テストなど、開発の全工程を含んでいる
他言語での全工程を知っているなら、読める
改訂2版 パーフェクトRuby、2017
パーフェクト Ruby on Rails 【増補改訂版】、2020/7
こういう、パーフェクトは入門用じゃない。
環境構築・ライブラリ・フレームワーク・テストなど、開発の全工程を含んでいる
他言語での全工程を知っているなら、読める
842デフォルトの名無しさん
2021/02/15(月) 18:00:05.55ID:KpgzCTw5 外部ファイル群を隠蔽したいのだけど
もう既に色々な形式のファイル作っちゃってて
特殊なアーカイブにするとアクセスが面倒なので
フォルダ構造上手く残したままどうにかフォルダだけ
外部から簡単に見えないように隠蔽出来ないかな?
もう既に色々な形式のファイル作っちゃってて
特殊なアーカイブにするとアクセスが面倒なので
フォルダ構造上手く残したままどうにかフォルダだけ
外部から簡単に見えないように隠蔽出来ないかな?
843デフォルトの名無しさん
2021/02/15(月) 18:06:24.80ID:KpEjrxqs Linuxならドットファイル
Windowsなら隠しファイル属性
でええんじゃないの
Windowsなら隠しファイル属性
でええんじゃないの
844デフォルトの名無しさん
2021/02/15(月) 18:08:22.75ID:jcJa8JQ7 www.example.comがFQDNでwwwがホスト、example.comがドメイン
ITパスポートレベルですな
ITパスポートレベルですな
845デフォルトの名無しさん
2021/02/15(月) 18:14:46.50ID:Y9YOwFs/ 勉強したことないんだろう?使い分けるじゃなくて用語の定義が違ってる
人から聞いた用語を使ってるだけで勉強してない
人から聞いた用語を使ってるだけで勉強してない
846デフォルトの名無しさん
2021/02/15(月) 18:17:51.88ID:KpgzCTw5847デフォルトの名無しさん
2021/02/15(月) 20:05:15.27ID:YmSVN6ap >>842
それやるとEPPからマルウェア判定喰らうから気を付けてな
それやるとEPPからマルウェア判定喰らうから気を付けてな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【沖縄】開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 [ぐれ★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【広島】ペルー女性の国保加入を誤って認め、福山市が医療費484万円を肩代わりするミス…入院して手術を受ける [ぐれ★]
- 山田邦子 ひょうきん族時代の年収は12億円「ただ税金が80%」 [muffin★]
