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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/11/27(金) 10:07:17.73ID:d9w49I3I
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。
【前スレ】
スレ立てるまでもない質問はここで 154匹目
http://mevius.5ch.net/test/read.cgi/tech/1599472611/l50
2021/01/22(金) 01:05:10.26ID:ZQEfkoyS
メソッドチェーンが無い言語?
513デフォルトの名無しさん
垢版 |
2021/01/22(金) 07:20:16.45ID:J5cef2aH
>>511
Obj-CでPromiseモドキ作るやつとか?
https://github.com/YasufumiMuranaka/promise
2021/01/22(金) 07:36:57.05ID:KQNzVW3z
オブジェクトを持たない言語じゃない?
2021/01/22(金) 08:33:22.48ID:A5Uig14k
メソッドチェーンっていうのはライブラリの設計に過ぎないから
・言語にメソッドチェーンがあるわけではない
・自分でライブラリを作るのは当たり前

ライブラリの再発明は可能ならすべきではないが
自分でライブラリを作らないっていうのは
プログラマとしては未熟だろう
2021/01/22(金) 09:40:16.31ID:JAaKTTQV
デザインパターンを覚えた直後は感動して何でもかんでも適用したがる麻疹のような状態になることがある
頭空っぽにしてあらゆるメソッドをチェーン可能に作る前にちょっと冷静になったほうがいい
YAGNIの法則を心に留めつつ、チェーンが欲しいものとそうでもないものに最初に仕分けるべし
2021/01/22(金) 09:43:19.96ID:JAaKTTQV
メソッドのシグネチャーは利用者との契約
voidにしておけばチェーンの便利さがない代わりに責任もない
後から戻り値を追加設計したくなったとき、破壊的な影響なく仕様変更できる自由がある
2021/01/22(金) 09:49:47.60ID:JAaKTTQV
YAGNIについて補足
jQueryのようなライブラリは一度return thisを書いておけば世界中から1億回使ってもらえる
俺ライブラリのメソッドは3箇所からしか呼び出されずチェーンも利用されないことが常
2021/01/22(金) 11:41:37.48ID:nErdMrP/
無理してチェーンにしなくていいけど自然とチェーンになる
voidって副作用の温床じゃん
2021/01/22(金) 13:30:34.24ID:xLVy+Y7f
チェーンかどうか、コンパイラが最適化しない気がするが
モックアップはvoidと、private以外で作り、
最後に、synchronizedつけたり、privateつけて、一部だけpublicのgettter settter使うように調整するのは、
毎日リファクタリングする段階だとありだよな

object返してチェーンさせるのは、
そのメソッドの中見ないと解読できない

場合によるが、finalな編集不可能オブジェの、
変数いじるクローンだったりするし、


あと、1行ごとに、catchやsynchronizedで囲めないから、
あまりいいと思わないな
2021/01/22(金) 13:36:37.41ID:xLVy+Y7f
>>519のチェーン絶対主義だと、レジスター変数つかえない
cpuにも優しくないし、戻り値全部使っちゃいけないことになるし

お前の仕事いつもはまってるんじゃないの?
2021/01/22(金) 13:58:53.41ID:KQNzVW3z
チェーン絶対主義は戻り値拒否じゃないし、
そもそもレジスタ変数とか歴史に帰れ
2021/01/22(金) 14:03:41.13ID:KQNzVW3z
あとvoid返却じゃなくチェーンでも副作用を期待してるんだから温床に変わりないじゃん頭大丈夫?
2021/01/22(金) 14:06:37.52ID:KQNzVW3z
あ、不変オブジェクト原理主義だったらごめんよ
525デフォルトの名無しさん
垢版 |
2021/01/22(金) 14:09:10.63ID:xLVy+Y7f
話にならないな、何しにきたの?&そうするとどうなるの?
2021/01/22(金) 14:11:25.57ID:KQNzVW3z
メソッドチェーンなんてAPIのスタイルにしか過ぎないから議論なんて意味ないって話だよ
527デフォルトの名無しさん
垢版 |
2021/01/22(金) 14:13:00.00ID:sdt8Ek7M
書き殴る便所の落書きかよ
ちょっとは人の文章よめ

最初からわかりきってたけど
2021/01/22(金) 14:24:02.05ID:ZQEfkoyS
>>519
戻り値voidは「このメソッドは副作用を起こすためのメソッドですよ」という表明

Selfを返してチェーンさせるAPI設計にしたほうがいいかどうかはケースバイケース
2021/01/22(金) 14:55:08.74ID:A5Uig14k
void mainはやめて、int mainにしよう!
関数は副作用をなくすべき!
2021/01/22(金) 15:23:41.81ID:lXDpHddi
int mainは副作用云々はともかく終了コード返すから有用だろ
2021/01/22(金) 16:25:31.48ID:ZqD8WV63
>>521
リソースカツカツの大昔ならともかく現代ではそんなに気にしなくていい

ぜんぜんハマらないどころか快適だよ

あとチェーンは絶対じゃなくてオマケだ
あくまで副作用を最小化した関数重視の書き方が良い
オブジェクト指向言語で関数重視にするとメソッドチェーン的な書き方が自然と導入される
2021/01/22(金) 16:27:33.68ID:ZqD8WV63
>>528
そもそもthisは返さない

クローンしたものあるいはクローンを少し改変したものを返す
メソッド対象そのものはイミュータブルだ
返すのは別のインスタンス
533デフォルトの名無しさん
垢版 |
2021/01/22(金) 16:41:17.18ID:krMW4kbd
この業界できる人から辞めてくんだよな
534デフォルトの名無しさん
垢版 |
2021/01/22(金) 16:46:58.60ID:spT1A/uB
唖然
535デフォルトの名無しさん
垢版 |
2021/01/22(金) 16:53:03.74ID:J5cef2aH
>>533
会社辞めてSESで3倍稼ぐやつw
536デフォルトの名無しさん
垢版 |
2021/01/22(金) 16:53:52.57ID:7PH07t0Z
朝会とかウザ過ぎ、効率落ちる
537デフォルトの名無しさん
垢版 |
2021/01/22(金) 17:05:50.32ID:clpH6KY8
ただの好き嫌いレベルをこうしなければならないとか言って
先人の知恵をおちょくる
挙句、自分様は絶対正しいと主張し新興宗教じみた後出しジャンケンを繰り広げる

こんなのと同じことフロアーいややわー
2021/01/22(金) 17:36:04.00ID:ZQEfkoyS
>>532
それもケースバイケース
言語やそのAPIを使う状況次第

例えばJavaでBuilderパターンを実装するなら
最後に呼ぶbuild()メソッド以外はreturn thisする
2021/01/22(金) 18:20:53.68ID:mS9f9S7L
S3だとかMinioってやつはオブジェクトのメタデータ使って検索するのにはあんまし向いてない?
RDBと組み合わせて使うものなのかな
2021/01/22(金) 21:06:17.89ID:3W/g7okM
>>519
thisを返すメソッドも副作用前提だろ。自分の状態を変化させるんだから。
2021/01/22(金) 21:12:48.64ID:W5xHOOOh
クソコードとかウンコードって英語圏でなんと呼ばれているのですか?
2021/01/22(金) 21:19:12.97ID:YeZLRB5m
リーナス曰わく「shit code」
2021/01/22(金) 21:29:21.53ID:W5xHOOOh
>>542
おーそれっぽい検索結果が出てきました
ありがとうございます
2021/01/22(金) 21:37:24.65ID:i5dURt7P
そのまんまにもほどがある
545デフォルトの名無しさん
垢版 |
2021/01/23(土) 00:30:54.46ID:MUxSQoqh
>>537
因縁レベルのレビューとかするやつ・・
546デフォルトの名無しさん
垢版 |
2021/01/23(土) 01:07:21.78ID:pyPer7vX
>>505
>少数第一位までの数字(例えば15.0〜50.9までの間)をランダムで表示するにはどうすればいい??

Double型で150〜509までの数をランダムで出して10で割ってみてるけど
150.123...みたいな数がランダムに出てしまうようで、それを10で割っても15.0123になってしまう…
どこかおかしいのかな
プログラム初心者ですまん
面倒ならスルーでオッケーです
547デフォルトの名無しさん
垢版 |
2021/01/23(土) 01:18:16.86ID:MUxSQoqh
>>546
なぜdoubleなの?
2021/01/23(土) 01:56:25.92ID:VaEGlU5h
>>546
まず整数にしてから10で割るという簡単なことがすぐ思いつかないの?
人にいちいち聞かないとできないのならもうやめたら
549デフォルトの名無しさん
垢版 |
2021/01/23(土) 07:14:56.27ID:MUxSQoqh
整数にするのは当たり前として、もっとプログラマーに大切なのはコンピュータの気持ちになって考えてみる事だ。
この場合、0〜359の乱数を生成して150足して10で割る。10かけて四捨五入ならroundしてから10で割る。
0からにすることでコード量はかなり減らすことができる。
2021/01/23(土) 07:34:28.23ID:wDWcI13m
>>546
>>508に「150から509の間の整数乱数を作って1/10しろ」って書いてある日本語が読めない人は日本語わかるようになってから来てね
2021/01/23(土) 11:27:15.89ID:5S3f8ehS
>>549
> 整数にするのは当たり前として、もっとプログラマーに大切なのはコンピュータの気持ちになって考えてみる事だ。
ふむ

0〜1 0110 0111の乱数を生成して1001 0110足して1010で割る。1010かけて0100捨0101入ならroundしてから1010で割る。
2021/01/23(土) 11:29:27.64ID:DkrnWP3c
次のような表から
3項目、A合計180以上、B合計200以上を満たして
なおかつC+D合計がなるべく小さくなる組み合わせを探す方法

自分で試して見ましたが最適と思う答え(01,02,09)にたどり着かない…

名前| A| B| C| D|
-------------------------
  01| 59| 70| 15| 20|
  02| 74| 64| 15| 20|
  03| 49| 45| 15| 20|
  04| 49| 44| 15| 20|
  05| 51| 46| 15| 20|
  06| 62| 59| 15| 20|
  07| 54| 77| 20| 25|
  08| 54| 74| 20| 25|
  09| 58| 84| 15| 25|
2021/01/23(土) 11:32:03.49ID:5S3f8ehS
コンピュータの気持ちになって考えてみると・・・
2021/01/23(土) 11:43:13.51ID:A1DCo63z
>>552
ループして計算するだけやん?
2021/01/23(土) 11:46:47.59ID:5S3f8ehS
>>554
提出日は月曜なので明日中にお願いします
2021/01/23(土) 11:55:01.39ID:sAz3YI3t
宿題は自分でやれ
できないなら素直に単位落とせ
2021/01/23(土) 11:59:47.16ID:5S3f8ehS
自分で試したのにそんな事言うんですか?
試したって書いてあるでしょ
2021/01/23(土) 12:26:31.71ID:Migm0viT
>>552
コードをアップロードしたらみんな添削してくれると思うよ
あと正解は一つじゃない、念のため
2021/01/23(土) 12:35:32.61ID:fA0JjYru
重複ありなら1つに決まる
560デフォルトの名無しさん
垢版 |
2021/01/23(土) 12:50:55.51ID:f2Vc7d50
答えてあげたとしても
バレたら除籍が当たり前なんですけど

なんで入学しちゃったの?
2021/01/23(土) 13:12:32.84ID:q1SxwlIa
>>552
一般化しようとすると結構難しいね
計算をどこで止めるか
どうやって速度を出すか
まあ頑張って
2021/01/23(土) 13:38:21.43ID:hIt2ZLZ6
ふつうに動的計画法だろ
2021/01/23(土) 13:58:57.30ID:tpiREuz3
この程度なら総当りでいいだろ
2021/01/23(土) 14:09:23.46ID:BBAp0+Kx
んだね9*8*7の500パターン程度だから
そこからAB条件に合うものをC+Dでソートするのが一番手っ取り早い
100万くらいあっても多分
565デフォルトの名無しさん
垢版 |
2021/01/23(土) 15:28:59.91ID:f2Vc7d50
>>559
お前優しいな
問題が不完全なんだよね、つまり

日本語からやり直しね
566デフォルトの名無しさん
垢版 |
2021/01/23(土) 16:03:10.41ID:s8PlSkaV
プログラミングを始めてからXAMPPでやってるんだけど
youtubeとかで勧められてる
docker、AWS、CircleCI のセットがわからない
これらってXAMPPで例えたらどの部分になるの?
2021/01/23(土) 16:09:52.52ID:dilIonj4
どの部分にもならない
568デフォルトの名無しさん
垢版 |
2021/01/23(土) 16:43:57.72ID:s8PlSkaV
>>567
どういうこと?
繋がりがわからん
2021/01/23(土) 16:53:14.35ID:dilIonj4
いやだからそれらはxamppのどれにも当てはまらんって言ってんの
質問の回答のままなんだが
2021/01/23(土) 16:53:27.81ID:A1DCo63z
>>566
個人でやるだけならそもそも要らないしな
Dockerもいらんよ
普通に仮想環境のほうが分かりやすい
virtualboxとvagrantなど
awsは個人でも無料枠があるので使ってみるのはありかと
circleCIなんかまじでいらん
jenkinsとかなら触ってみてもいいとは思うけど案外導入が面倒だしいらんかと
2021/01/23(土) 17:05:14.39ID:BBAp0+Kx
>>566
Docker はコンテナ技術と言う、仮想マシンの従兄弟のアプリ
AWS はコンテナやら仮想マシンやら諸々をホストするクラウドサービス
CircleCI は Jenkins などのビルド用の商用版サービス

といっても CircleCI なんて貧乏人だから知らなかった
Jenkins で不満に感じてないし
2021/01/23(土) 17:08:50.93ID:BBAp0+Kx
>>570
でもPython環境とかだったとしたら、一々セットアップするよりコンテナダウンロードしたほうが楽じゃね?
まぁPythonやるのか知らんけど
2021/01/23(土) 17:27:22.48ID:5S3f8ehS
>>570
> 個人でやるだけならそもそも要らないしな
> Dockerもいらんよ
> 普通に仮想環境のほうが分かりやすい

Dockerは他の人に配布したり
サーバーにアプリをデプロイする時に使うから
個人でやるだけならいないってだけ

仮想環境=物理マシンとほぼ同じなんだから
仮想環境があればDockerがいらなくなるわけじゃない
配布orデプロイするなら、仮想環境があったとしてもDockerは必要
2021/01/23(土) 17:28:06.67ID:5S3f8ehS
> といっても CircleCI なんて貧乏人だから知らなかった
貧乏じゃなくて知識がないから知らなかっただけ
認めよう
2021/01/23(土) 17:28:57.57ID:5S3f8ehS
> Jenkins で不満に感じてないし

自分でメンテナンスしてないから
不満がないんだろう?
会社で誰かが作ったのを使ってるだけ
2021/01/23(土) 17:30:37.48ID:5S3f8ehS
> でもPython環境とかだったとしたら、一々セットアップするよりコンテナダウンロードしたほうが楽じゃね?

DockerはPython環境を作るためのものじゃない
Pythonで作ったなにかを、他の環境で簡単に動かすためのもの
他人に配布した時の話だから、個人レベルで必要ないと思うのは当然
577デフォルトの名無しさん
垢版 |
2021/01/23(土) 17:33:50.73ID:s8PlSkaV
みんなありがとう
AWSがサーバーで補助的にDockerやCircleCIが挟まってる感じなんだな
2021/01/23(土) 17:43:07.75ID:BBAp0+Kx
>>576
いや、DockerHUB に Python コンテナ色々あるやん?
自前で環境整えなくていいやつ
2021/01/23(土) 17:48:12.09ID:5S3f8ehS
Docker hubにあるいろんなコンテナのほとんどは
開発者が自分のために作ったものであって
他人が使うために用意されていません
2021/01/23(土) 17:55:53.71ID:BBAp0+Kx
>>575
もちろん!
んで、不都合ないんだから別に良いじゃない
subversionとGitくらい違うの?
見てみたけどパフォーマンスはともかく、ビルド毎にSDKとか変えられるってのは、それこそ商用の複数ターゲット向けの機能じゃない
2021/01/23(土) 18:02:06.88ID:5S3f8ehS
複数のバージョンに対応するときに
Dockerを使うとしたらテストする時に使うものなんだが
ビルド毎にSDK変えるってpyenvで十分な話でもしてんのか?


配布するときは特定のバージョンを入れて配布すればいいのだから
複数のSDKに対応する必要があるのはライブラリとかオープンソースアプリの開発者だけだな

自社で運営してるサービスとかでは
複数のバージョンに対応する必要がなくなるのがDockerのメリット
2021/01/23(土) 18:04:47.21ID:BBAp0+Kx
>>579
python
Docker Official Images
https://hub.docker.com/_/python?tab=description

公式イメージね
2021/01/23(土) 18:07:34.06ID:BBAp0+Kx
>>581
CircleCI の話の方
個人なら別にJenkinsでいいじゃんという
2021/01/23(土) 18:08:53.49ID:5S3f8ehS
>>582
そんなもん堂々と挙げられても、

それはベースイメージであってそれを直接使って開発するものではありません。
開発(デバッグ)用など、必要なパッケージが何も含まれてないからです。
それはPythonを使って作ったアプリを動かすためのベースイメージであって
その中でアプリを作るためのものではありません

で終わりなんだがw
2021/01/23(土) 18:10:57.19ID:5S3f8ehS
>>583
CircleCIを知らなかったのにJenkinsでいいじゃんって思うほうがおかしいね
CircleCIは個人で無料で使えるプランが有るのに
わざわざ自分でJenkins用のサーバーを立ててセットアップするのはなぜ?
比較検討もしないでJenkinsでいいじゃんって言ってるだけでしょ
2021/01/23(土) 18:15:39.66ID:BBAp0+Kx
>>585
無料があるのか済まん
2021/01/23(土) 18:25:46.87ID:5S3f8ehS
普通はね、無料プランぐらいあろうだろ?って思うんだよ
なぜなら、ほとんどのCIサービスは無料プランがあるから
CircleCIだけじゃなくて、他のCIサービスのことも知らないってバレてるよ
2021/01/23(土) 18:46:52.57ID:Uvgn17t1
Ruby on Rails では、AWS, Docker, CircleCI が多い。
GitHub Actions と言うのも出来たらしいが

>>552
Ruby で作った

https://paiza.io/projects/QzI3H6n6cr4p_ZMMgtOCgA
2021/01/23(土) 18:49:32.60ID:3u/wIwRA
dockerをサービス運用でしか使ってない奴って損してるよな
開発時にも便利に使えるのにもったいねー
2021/01/23(土) 18:54:01.24ID:Uvgn17t1
簡単に開発する人は、Docker Compose

その中に、web/app, db 用の2つのコンテナを入れる
591デフォルトの名無しさん
垢版 |
2021/01/23(土) 19:58:34.91ID:f2Vc7d50
>>552

ループ回してみたあってるかどうかはしらんけど、落第一直線おめでとう!

重複なしなら、01,02,09の組み合わせで110点だな
重複ありなら、01,01,02で105点だな

https://ux.getuploader.com/dialogues_txt/download/386
2021/01/23(土) 20:10:16.23ID:5S3f8ehS
>>589
開発でも使うよね。ホストで開発(ソースコード修正)したものを動かしてテストしたり
仮想マシンの代わりとしてログインしてそこでサービス起動したりするのは
想定されてない使い方だから茨の道になるけど
2021/01/23(土) 20:17:52.72ID:3u/wIwRA
>>592
vscodeでコンテナに入って開発すんだよ
2021/01/23(土) 20:24:18.65ID:5S3f8ehS
>>593
つまりコンテナの外にあるvscodeで開発してるわけですね
595デフォルトの名無しさん
垢版 |
2021/01/23(土) 20:29:28.81ID:f2Vc7d50
>>552

期限に間に合うか間に合わないか心配してたみたいだが、

実際は食っていけるか?生きるか死ぬか?

だからな。

今までのぶん、、30日で取り戻す覚悟がないと、
冷たいアスファルトで朝を迎える生活がまってるぞ。
596デフォルトの名無しさん
垢版 |
2021/01/23(土) 21:38:24.93ID:rKTsdTjy
https://www.youtube.com/watch?v=mt4woV9fiDI
の動画と同じようなものを作ろうをしているのですが、
private int[][] field = {{0,0,0},{1,1,1},{0,0,0}};
のように定義した配列からどうやって疑似3dみたいにするのかが動画を見てもよく分かりません。
なにかほかに参考になるものあるでしょうか?
2021/01/23(土) 23:14:25.53ID:3u/wIwRA
>>594
もちろんCodeServerでもいいよ
2021/01/24(日) 11:00:20.63ID:UMwPj/ms
smtpサーバ mx1.phx.paypal.com [66.211.168.231]から送られてきたメールがいまいちフィッシングメールか本物か判断が付きません
おそらくは本物と思うのですが、実際はどうでしょうか
2021/01/24(日) 12:05:08.86ID:gsEGxkN1
>>598
“SPF, DKIM, DMARC”でググって
心配なら別チャネルでpaypalにコンタクトすればはっきりする
2021/01/24(日) 15:22:11.11ID:fqIkv1VV
600
601デフォルトの名無しさん
垢版 |
2021/01/24(日) 15:47:31.18ID:5JJAlISZ
>>552
> 3項目、A合計180以上、B合計200以上を満たして
3項目ってどこ?
2021/01/24(日) 18:33:42.39ID:5uhuun5Z
>>601
01から09の中から3行選ぶんだろうな
603デフォルトの名無しさん
垢版 |
2021/01/24(日) 20:27:21.83ID:xub3kObq
今使っている24インチディスプレイはプログラム開発で使い辛いので
34か35インチくらいの曲面のウルトラワイド(3440×1440)モニター
を買おうかなと思うんですが、曲面の画面ってゲームするなどの用途なら
適しているかと思うんですが、プログラミングには平面型のほうが良いでしょうかね?
604デフォルトの名無しさん
垢版 |
2021/01/24(日) 20:53:10.70ID:5JJAlISZ
>>602
他人の分を集計するのか・・
605デフォルトの名無しさん
垢版 |
2021/01/24(日) 20:55:19.75ID:5JJAlISZ
>>603
Android 4K TV 50インチ 快適すぎるw
2021/01/24(日) 21:00:08.60ID:AOGJoLGP
>プログラミングには平面型のほうが良いでしょうかね?
そんなことはないよ
曲面ですら角の方は見づらいからもっと曲がっててほしいと感じるくらい

ウルトラワイドの欠点は思いの外、縦が狭く感じることなので
普通の比率のでかいモニタ買ってドキュメント用に24インチを縦置きセカンダリモニタにしたほうが使い勝手が上る可能性もある

ここらへんは実物がないとイメージわかないので
モニタサイズにダンボール切って目の前においてみて
どんな感じか試してみると良いよ
2021/01/24(日) 21:41:19.02ID:aTcymI9U
ディスプレイは大きすぎても駄目なんだよな
難しい
2021/01/24(日) 21:46:32.01ID:jSIhK5mV
老眼入ってくるとこれが理想になる
https://i.imgur.com/zxWlpMC.jpg
2021/01/24(日) 21:53:51.82ID:cnVtakd4
首疲れそうw
ここまで来たらプロジェクターかな
2021/01/24(日) 22:02:48.35ID:nKIyAycX
画面近すぎて老眼にはきついよ
2021/01/24(日) 22:34:54.53ID:pBS+E12j
HDDの寿命を効率的に減らすプログラムって例えばどういう物が考えられる?
■ このスレッドは過去ログ倉庫に格納されています