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

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2021/02/20(土) 17:17:54.73ID:56yjs2OO
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。

【前スレ】
スレ立てるまでもない質問はここで 155匹目
https://mevius.5ch.net/test/read.cgi/tech/1606439237/

次スレは>>980が立てること
933デフォルトの名無しさん
垢版 |
2021/06/06(日) 11:23:17.64ID:9mmqAG88
>>920
++
2021/06/06(日) 22:11:28.49ID:dJTGKVPN
デザインパターンとか設計思想とか全く分からないんだけど入門?としてこれ見るといいよってサイトとか書籍あれば教えて
935デフォルトの名無しさん
垢版 |
2021/06/07(月) 10:56:46.23ID:BLDePS2Q
>デザインパターンとか設計思想とか

普通の人は入門が済んでから手をつける
2021/06/07(月) 11:53:04.81ID:TrlL7E54
分かりづらくてすまん
デザインパターンの入門としておすすめの物が知りたい
プログラムはjava silverレベルで書ける
2021/06/07(月) 11:53:34.78ID:pl6618+T
デザインパターンの宝庫は、MVC(Model/View/Controller)のRuby on Rails。
15年ぐらい、ずっと議論してる

MVCの他に、Form オブジェクト・Page オブジェクト・Service オブジェクトとか、
MVCが肥大しないように、どんどん分離していってる

ただし、Railsはプロ用。
自社開発Web 系へ転職する人用

YouTube で有名な、雑食系エンジニア・KENTA のサロンが有名。
Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース

他にも、Udemy の山浦清透も、Railsを推奨している。
AWS Fargate を使うのなら、AWSのくろかわこうへいのサロン
938デフォルトの名無しさん
垢版 |
2021/06/07(月) 13:32:28.41ID:7qZ7vyBh
disp1に入力があればstate=loadedなので
if displ1.get():
__loaded時の処理
みたいなコードがそこそこあるんですが

is_loaded():
return bool(disp1.get())
みたいな関数作るのってどうですか。ダメですか?読みやすくなるけど…
939デフォルトの名無しさん
垢版 |
2021/06/07(月) 15:15:53.66ID:ZOzskMEE
AGPLライセンスのライブラリを使いたいのですがどこまでソースコードを公開すればよいのでしょうか?

1, moduleA.js - AGPLのライブラリを利用
2, moduleB.js - AGPLのライブラリは不使用
3, app.js - ルーティング処理
2021/06/07(月) 15:20:58.75ID:Fq1IXycO
AGPLはその趣旨からいってぜんぶ公開しないとだめだろ
2021/06/07(月) 15:22:58.27ID:TK3hG12A
>>938
disp1.get()に副作用がないならそういうメソッド抽出はありだと思うが
def is_loaded(self):
__return self.state == ‘loaded’
みたいに書ける設計のほうがベターだと思う
942デフォルトの名無しさん
垢版 |
2021/06/07(月) 16:49:27.94ID:ZOzskMEE
>>940
moduleBも公開しないとだめなんですね
ありがとうございます
943デフォルトの名無しさん
垢版 |
2021/06/07(月) 22:40:04.08ID:qUd3zbRZ
ttps://twitter.com/ozuma5119/status/1401851808939606022
これはどういう意味なのでしょうか?
https://twitter.com/5chan_nel (5ch newer account)
2021/06/07(月) 22:52:23.23ID:pXntu6ca
>>943
https://www.yodobashi.com.warui.net
始まりじゃなくて終わりが大事
みたいなことじゃ
2021/06/08(火) 00:53:14.54ID:u53qbkBm
ローカルネットワーク上のWindowsマシン同士でシンプルなTCP通信を行うプログラムを作成しているのですが、
ポート番号はどの範囲を使えばよいのでしょうか?

wikiによると、

0〜1023:一般的なポート番号
1024〜49151:登録済みポート番号
49152〜65535:自由に使用できるポート番号

となっており、49152〜65535を使えば良いかと思ったら
そこはWindowsが動的ポートとして使っているので使えないという情報があり、
それじゃあ全部使えないじゃないか、となっています・・・。
2021/06/08(火) 01:26:00.59ID:TOKjPAZ1
一般には
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml
とか眺めて使うといい

んで、皆さん勝手に使ってて衝突もざら
だから余程のメジャーなサービスが無いなら気にするほどのことじゃないと思う
2021/06/08(火) 06:48:16.57ID:dOMi6vvz
環境変数・コマンドライン引数で渡すとか、YML などの設定ファイルに書いておけば良い

そうすれば、ユーザーが自由に変えられる
948945
垢版 |
2021/06/08(火) 08:32:05.82ID:Ke53ZRWk
>>946-947
そういうことだったんですね!
ありがとうございました!
2021/06/08(火) 17:27:58.53ID:l2BAfpwt
>>945
基本的には>>946の言う通りなんだけど、サーバプログラム側の待ち受けポートに
0-1023は原則的に使ってはいけない
Wellknownポートといってシステムが使う範囲ということになっているので
950945
垢版 |
2021/06/08(火) 21:05:01.68ID:Ke53ZRWk
>>949
ありがとうございます!
さすがにそこは避けようと思ってました^^
951デフォルトの名無しさん
垢版 |
2021/06/08(火) 21:07:05.99ID:/pGHNa0l
既得権益を、、、ぶっ壊す!
2021/06/08(火) 21:14:25.34ID:TOKjPAZ1
そういや、ゾロ目の前後は競争率が高いとか散布図で図示した人って居なかったっけ?
別の話だったか?
2021/06/10(木) 01:48:32.39ID:WxJUiwPc
データベースの物理設計と論理設計ってどう違うんでしょうか?
どちらもテーブル間のリレーション設計するだけだと思うんですが
2021/06/10(木) 09:27:45.31ID:flmyYOFU
物理設計は具体的に何社のどれぐらいの容量のHDDをどこに置くか
もちろん電源容量とかコンセントの数が足りるかとかとか考える

論理設計は具体的にどういう論理的割り振りにするか考える
2021/06/10(木) 10:10:59.52ID:/rzZEgjK
実際明確な違いはないから気にしなくていいよ
基本的に、コピペで工数を水増しするための無意味な重複工程だと思っていい
>>954の言うようにハードウェア構成にまで踏み込むのが本来の物理設計なのだけど、
島猿SIではその辺はだいたいインフラの仕事なんでそこまで厳密にDBの設計との整合性は気にしないで適当に大きなハード買って適当にクォータ設定しちゃうケースが多い
956955
垢版 |
2021/06/10(木) 10:30:46.41ID:/rzZEgjK
ちなみに>>954を読むと物理設計としてハードウェアの枠を予め設計した上でその中身を論理設計するように読めるけど、これがまさに実態を表している
本来は全く逆で、論理設計の結果に基づいて物理設計でそれをどうハードまで落とし込むか決めるんだよ
オラクルとかのベンダーはまず自社の高い製品を買ってそれを前提に考えてほしいから逆にしたがる
2021/06/10(木) 11:50:52.24ID:8j/+Fuuo
>>953
シンプルに言うとどのHDDにデータを置くかって話だ
自作PCでも起動ドライブはSSDでデータはHDDだったりするだろ?
DBだとどこにデータを置いたら高速になるかとか、インデックスがピンと張れる方法だとか
どのドライブに何月のデータを置けばいいのかとかだよ
OracleMasterSilverぐらいの知識があれば多少は何をするのかわかると思う
まずはデータベースのテーブルがどこのHDDにあるのか、テーブルごと、インデックスごとにどういう割り振りに出来るのか
そういうところからはじめてみてはどうか?
2021/06/10(木) 14:33:39.07ID:dKgFtdxH
これが日本の現状なのか
それともこの板だけ異常に低レベルなのか
2021/06/10(木) 14:38:57.39ID:vnbWNdgf
>>953
一般的なプログラマーはDBの論理設計の経験がないから物理設計との違いをよく理解してない

DB板で聞くか自分でググれ
ついでにリレーションの意味もググれ
2021/06/10(木) 20:18:57.75ID:S0Lqp3Qd
>>955
でもお金で解決できるなら何も問題はないのでは?
下手にケチってピーキーに設計すると泣くぞ
2021/06/10(木) 20:21:09.20ID:S0Lqp3Qd
足りなきゃ買えばいいんだよ、それが今のクラウド
しっかりとした物理設計なんて、ほとんど意味のない害悪
2021/06/13(日) 16:57:15.84ID:STYy7gJY
>>881
ちなみに横からなんだけど、
文中のSTYLE) & ~WS_Vにある

) & ~
この部分ってどういう意味?
963デフォルトの名無しさん
垢版 |
2021/06/13(日) 17:05:30.29ID:Ldya/JSY
) and not
2021/06/13(日) 20:56:19.05ID:STYy7gJY
>>963
すまん、ありがとう。
いや、そもそも横からなんだけどって言いかたが間違ってた。
普通に質問でよかった。
880あたりの書き込みは俺なのだが(880で書いてる一連のIDも俺)、
いま全力でCUIアプリからCについて勉強してる。
というより、このあとC++に進んでWINAPIもやらないと881にして頂いた話は何も進めないので、
正直泣きながらだ。
というより挫けてる。
Autohotkeyを使ってもGUI作成や32apiを使う点でつまるところWINAPIとセットでCやC++学んだほうがよさそうということで
はじめてはいるが、試練だなこれは。
よくわからん謎の開発環境?(VSではない)で、ウィンドウだけ出して喜んでるだけで、
その後が進まない。いや進めることができていない。
2021/06/16(水) 19:45:11.88ID:181t9wct
昔のPS3やPS2のオフラインゲームでチートを作りたいから
アセンブラを学ぼうと思ってるのですが
https://gyazo.com/c0df66fb2407b84711fe5b62890f58a2
↑こういうの見て理解が出来るようになるにはx86アセンブラというのを覚えればいいんでしょうか?
2021/06/16(水) 21:37:33.32ID:AzDBz8je
>>965
そもそもアセンブラレベルでパッチあてたりするには相当な理解力が無いと無理だから諦めたほうがいい
2021/06/16(水) 22:17:06.52ID:181t9wct
>>966
オフラインのゲームなので
ollydbgやcheat engineの中身が読めるようになればいいです。
そこまで難しいレベルのことはやろうとしてないです
2021/06/16(水) 22:40:53.92ID:7CrzTbcp
>>965
いわゆるリバースエンジニアリングと呼ばれる分野だが質問内容を見る限り全然足りていないように見える
コンピューター内で計算はどのように行われるのか、データの移動はどうするのか、周辺デバイスやOSの利用は
どうするのかなど低レイヤーの理解が無いと全く歯が立たないと思う
ちなみにCPUだがPS2はMIPS系、PS3はPPC系だ
以前に見たPS3のゲームを解析レポートだと確かIDAにPPCのプラグインを組み合わせて静的解析していたかな
それでもそれでも結構な知識と経験がいると思うが
とりあえずOSやISAの違い無視してもOllyDbgでWinゲームの改造は朝飯前くらいじゃないと話にならないのでは
2021/06/17(木) 07:38:07.73ID:B6QT+gV0
x86アセンブラを覚えるには他のプログラミング言語同様
ハローワールドからやって覚えていくもの?
それともPCのオフラインゲー解析してたら覚えられるんでしょうか。
2021/06/17(木) 07:46:05.74ID:IuszbmHt
アセンブラはCPUごとのレジスタやらメモリマップやらアドレッシングやら命令ごとのフラグへの影響やら、基礎を固めないと何もできない
2021/06/17(木) 07:57:57.58ID:hZaFEnho
>>965
すでにそういうツールやノウハウがあるんだったら
そのツールの解析からはじめたほうがいいと思う
2021/06/17(木) 08:42:16.10ID:B6QT+gV0
>>971
ツールの使い方はググって何とかなるのですが
https://gyazo.com/63c5590c01c304c07ff3a5c17a5d46ac
こういうの全く読めなくて手も足も出ない状況です・・
これに出てきてるのは何系のアセンブラなんでしょうか?
2021/06/17(木) 08:59:56.36ID:MdpjMllh
>>972
ググって答えが見つかることしか分かりませんて状態なら、無理だから諦めろと言いたい
基礎的な知識がまったくない状態だから、遠回りしてでも基礎から地道に積み重ねるしかない
2021/06/17(木) 09:45:33.10ID:hZaFEnho
>>972
SPU Assembly Language Specification
2021/06/17(木) 10:55:12.84ID:B6QT+gV0
>>973
学ぶ意欲はあるので遠回りしてでも習得したいのですが
基礎的な必要知識がなんなのか分かってない状態です
2021/06/17(木) 11:04:32.10ID:MdpjMllh
>>975
必要なところだけピンポイントで足場を固めて積み上げるなんてできないから、広く浅くでコンピュータやプログラミングの全般的なことを学びながら、段々に自分に必要な物が見えて来るようになるからそちらを深掘りしていくようにしたら?
2021/06/17(木) 11:54:29.83ID:hZaFEnho
念のため補足しとくけどドキュメントの名称だからな
ここに全部書いてあるから
2021/06/17(木) 13:47:27.99ID:xNFu7F8M
wikipediaでx86を調べて
そこでわからない単語を片っ端から
wikipediaやググってみたら?
2021/06/17(木) 15:36:52.47ID:rI4RyUy5
PS2やPS3のゲームを改造したいのになぜx86なのか。それが判らない
2021/06/17(木) 17:14:07.40ID:ooZzmu2N
>>972の内容は、まぁexeだしレジスタ名称とかニーモニックからX86だろうけど
アセンブラって基本的な部分はある程度同じなんで、いきなりX86とかMIPSとか
PPCとかフル機能のCPUのアセンブラから勉強しようとするとすぐに詰むよ

アセンブラを眺める程度ならHP拾い読みでも良いけど、開発とかを行うならば
もう少し簡単なPICとかのアセンブラをしっかり勉強してからの方が近道だと思うよ

そして根本的な話でPS2とかPS3とかの開発をしたいならば別にアセンブラを
使わなくてもC++のSDKとか開発されているので、よほど低レベルな部分の
開発を行うのでなければアセンブラ必要ないよ

ps2 sdkとかps3 sdkで検索してみて
981デフォルトの名無しさん
垢版 |
2021/06/17(木) 19:05:41.15ID:JkvBpemd
>>980
コンパイラが吐いたフル機能使いまくりのコードを
逆アセして読み解こうとしている天才がいるんだよ
アセンブラの命令すらマニュアル無しで解読する能力の持ち主なんだ
すごいだろ?
2021/06/17(木) 19:46:46.81ID:mjY/8PfV
チートの程度にもよるけど、やねうらおの書籍「解析魔法少女 美咲ちゃん」は参考になったよ
2021/06/17(木) 20:28:00.57ID:IuszbmHt
その昔の素朴なCPUだと16進ダンプを直読みする強者が
2021/06/18(金) 11:44:25.11ID:DLEaHmmC
日本では、情報処理試験の仮想アセンブラ・CASL2 が基本。
世界では、LLVM のサイトで、仮想アセンブラを学ぶ

x86 なら、OllyDbg・やねうらお・うさぴょんが有名
985デフォルトの名無しさん
垢版 |
2021/06/18(金) 12:03:44.02ID:7Huy+AZL
漏れもやねうらは好きな方だが
初心者ならやねうらより
ISBN 4839909865
2021/06/18(金) 12:32:20.21ID:194Cy0xO
CASLはどうみても68系ベースの簡略版で、68プログラマーでもあった俺はインストラクション眺めただけで楽勝だった
2021/06/18(金) 12:35:29.33ID:/PK0wqbC
gyazoとかいうゴミで画像貼んな
988デフォルトの名無しさん
垢版 |
2021/06/18(金) 13:39:45.56ID:WThQkiL7
func(list):
_if list[0]=a:
__for i in list:
____conv_a(i)
____write(i)

_elif list[1]=b:
__for i in list:
____conv_b(i)
____write(i)

空撃ちしたときと本番で処理違うみたいなので
こう書きがちなんだけど、よくないなっていう自覚があります
配列→微妙に異なる処理→出力 のとき、どう書いたら上手いですか?
2021/06/18(金) 13:46:33.95ID:Jo75oGSb
>>988
仕様がクソならコードもクソにしかならん
そういう状況になるのはたいてい抽象化がヘタクソ
990デフォルトの名無しさん
垢版 |
2021/06/18(金) 14:15:44.89ID:ru+U9KL5
python で代入文は if の条件に描けないぞ
2021/06/18(金) 14:18:50.64ID:H41XlXnl
>>988
Pythonぽいけどdefないし等号も違うから何の言語か分からなかった
Pythonみたいに関数を変数に入れられる言語なら最初に適用する関数を決めるとすっきりしそう

func(list):
 # 適用する処理(conv)を設定
 if list[0] == a:
  conv = conv_a
 elif list[1] == b:
  conv = conv_b

 # リストに処理を適用して出力
 for i in list:
  conv(i)
  write(i)

aとbでlistのインデクスが違うのが気になったけど無視する
2021/06/18(金) 14:22:04.15ID:EhVYURYt
変数名に list 使うな

func(l):
if l[0] != a && l[1] != b: return
f = (conv_a, conv_b)[l[0] != a]
for i in l:
f(i)
write(i)
2021/06/18(金) 14:27:15.83ID:rMpkljNE
>>990
正確には
Pythonでは代入は文なので、条件式には入れられない。
Cなどでは代入が式なので条件式にも入れられる。
2021/06/18(金) 14:40:28.04ID:dSkONN1n
>>988
>配列→微妙に異なる処理→出力 のとき、どう書いたら上手いですか?

高階関数を使う
995デフォルトの名無しさん
垢版 |
2021/06/18(金) 15:01:02.87ID:WThQkiL7
すいませんpythonスレじゃないので曖昧な書き方のがいいのかなと思って…
def func(l):
_if l[0][0] == 0:
__for i in l:
___write(conv_a(i))

_elif[0][0] == 1:
__for i in l:
___write(conv_b(i))

です.ほんとは各処理もうちょっと関数続くんですけど
いずれにせよ途中だけが微妙に違うほぼ同じ処理をきれいに書きたい

>>991
おー.見やすいです
996デフォルトの名無しさん
垢版 |
2021/06/18(金) 15:45:26.03ID:PuJK3NPt
>>991 は仕様(実装)にバグがある
2021/06/18(金) 17:03:01.08ID:194Cy0xO
うん、>>992のようにチェック入れるべきだね
でもreturnより例外吐くべきでは?
2021/06/18(金) 18:04:22.88ID:tKtuqq6N
責務の分離が上手くできてない関数の中身だけいじくり回してもキレイにはならないよ
呼び出し側やデータ構造なんかも含めて考え直さないと
2021/06/18(金) 18:38:56.71ID:9pPslW7o
メインルーチンとサブルーチンを明確に意識して
メインルーチンは処理の流れがわかるように
サブルーチンはテストして結果が出ればよしと分ける
1000デフォルトの名無しさん
垢版 |
2021/06/18(金) 21:22:28.52ID:FdpzvR5V
>>998
もっと具体的に言わないと役に立たないと思うが
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 118日 4時間 4分 34秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況