スレ立てるまでもない質問はここで 160匹目 at TECH
[2ch|▼Menu]
[前50を表示]
300:デフォルトの名無しさん
22/07/12 14:44:45.71 h7t7toC6.net
>>293
>速度を優先するとグローバル変数も使いたくなりませんか
既に定義済みの変数を利用したいケースは当然あるが
だからといってグローバル変数は使わない
>連続で呼ばれる関数で毎回変数宣言するよりもグローバル変数で一度定義しておけば
>その負担をゼロにできるし
それぞれサンプルコード書いてみたら?
もう少し具体的なアドバイスがもらえると思うよ

301:デフォルトの名無しさん
22/07/12 14:52:24.07 /TLAe8PW.net
>>293
宣言に伴う領域確保時に自動的に内容が初期化されるような処理系だったりポリシーだったりするとそうかもね。
C だと関数呼び出し時にその関数で使用する変数に充分なサイズのスタックフレームを確保するだけだから、コストなんてかからないよ。
スタックポインタを最初に一度ずらすだけだからね。

302:デフォルトの名無しさん
22/07/12 15:09:08.48 e6ywpCu7.net
>>293
グローバル変数は、いつ、どこから、誰が、どのように、アクセスするか不明であり、
一般的にはデータ競合を起こす可能性もあるため、その場合は対策として排他制御が必要となるなど、むしろ遅くなる可能性を招きかねない
グローバル変数はできる限り使わないのが通常のプログラミングの基本である

303:デフォルトの名無しさん
22/07/12 15:10:10.48 /ElrVE0y.net
>>289
命名の省力化よりも設計の質や可読性を高めることに意識を集中させたほうがいいぞ
その意識で1~2年もやれば手抜きというか命名コストを下げる方法も自然と身につく

304:デフォルトの名無しさん
22/07/12 15:17:54.87 ZWwvT0dn.net
速度は別としても、どうしても共有したデータを参照したい時は
グローバル変数も使わざるをえないのでは

305:デフォルトの名無しさん
22/07/12 15:31:37.13 6JujiSX5.net
js幼女だけどfsoやwshをグローバルにしている

306:デフォルトの名無しさん
22/07/12 15:33:54.63 46BVSOic.net
ローカルDBやファイルや設定ファイルなどはグローバル変数だから使うべきでない

307:デフォルトの名無しさん
22/07/12 15:39:37.31 0s4l2w4w.net
>>299
まずデータ共有のためにグローバル変数を用いるのは他に手段がない場合に限定されしかも以下の点に注意する必要か出て来ます
データを多者で共有するということは
その多者の関係によってはデータ競合が発生するため一般的には排他制御を行うことになります

308:デフォルトの名無しさん
22/07/12 15:55:20.39 Lr6lZRed.net
>>301
設定ファイル名は固定ならば変数ではなく定数であるからグローバル変数ではない
変わりうる時は引数や環境変数や設定ファイル等が出自となりこれもグローバル変数てはない
ファイルはファイル等のモジュールのオープン関数にファイル名やパスを指定して扱うからグローバル変数の要素はない
ローカルDBも同様でありグローバル変数を必要としない
まともなコードならばグローバル変数は出て来ない

309:デフォルトの名無しさん
22/07/12 16:11:36.31 XIWH5a4r.net
>>299
どの言語を前提に話してるの?

310:デフォルトの名無しさん
22/07/12 16:17:16.03 cntCnL4D.net
C#やJavaなんかで

311:デフォルトの名無しさん
22/07/12 16:40:13.27 3+lEMrqc.net
>>305
その2つともグローバル変数がそもそも機能的にないやろ
static classのstatic変数使う
C#ならnamespaceを切って、使う側で明示的にインポート

312:デフォルトの名無しさん
22/07/12 17:07:57.77 MOqUyrHS.net
>>289
変数や関数は台帳で管理する
F00001、F00002みたいな名前にしておけば悩む必要はない
なおF00100以下の番号は、前々社長など
会社の偉い人に割り当てられている
その関数は伝説となっており誰も手を付けてはいけないことになっている

313:デフォルトの名無しさん
22/07/12 17:28:55.51 46BVSOic.net
アセンブラとか変数どころかアドレスの番地やろ

314:デフォルトの名無しさん
22/07/12 18:28:32.11 6GTnP78T.net
レジスタ名は変数に含まれますか?

315:デフォルトの名無しさん
22/07/12 18:28:36.82 jEv45P7P.net
10 GOTO 10

316:デフォルトの名無しさん
22/07/12 19:27:13.54 JaplqMKV.net
コンストラクタの引数とフィールド変数は毎回困るわ
this着けて回避してるけど未だに嫌だわ
C#はprivateフィールド変数にアンダースコア付けるように成ったらしいから良くなったけどjavaはコンストラクタだけthis付きだわ

317:デフォルトの名無しさん
22/07/12 21:28:56.55 /TLAe8PW.net
>>305
そんなにパフォーマンスにこだわりたいなら、とりあえず C で書いたら?
なんでもグローバルに置くなんてことをしなくても、変数確保のコストをごっそり下げられるよ。

318:デフォルトの名無しさん
22/07/12 22:36:21.49 pP2wLD3a.net
最近はRustのようにグローバル変数を持たない言語も増えているね

319:デフォルトの名無しさん
22/07/13 02:51:31.38 o1nk5rBa.net
「〇〇の言語では」という話は、既存のコードを直す場合には残念ながら無効
新規のコードだって普通は言語縛りがあったりする
事件は現場で起きている

320:デフォルトの名無しさん
22/07/13 03:10:40.16 dyEYJovX.net
>>307
実際そういうソース見たことあるわ
グローバル変数名がみんなそういう番号なのな
で、関数はほとんど関数ポインタの配列に入ってて、添字頼りで呼び出す、、、
しかもコメントはほぼ皆無、あったとしても「なぜかこうしないと動かない」的な独り言
きっと天才が作ったんだろう、俺には解析できなかったよ

321:デフォルトの名無しさん
22/07/13 21:10:40.45 nyVCJ4Fn.net
OSがLinux・unixでは昔makeを使ってたと思います
今は何が主流なんですか?

322:デフォルトの名無しさん
22/07/13 21:14:50.95 sjYFKueX.net
make

323:蟻人間
22/07/13 21:29:01.08 H8j4+v2o.net
cmake

324:デフォルトの名無しさん
22/07/14 00:38:53.58 rMT+3vzc.net
Makefileなんか使わない
ソースコードはCファイル一つでできている

325:デフォルトの名無しさん
22/07/14 00:54:33 3dKE35ki.net
>>316
最近はCとほぼ同速度が出るのに自動メモリ解放で安全に楽できるRustで書くことが増えたから
makeに相当するのはcargoかな
ライブラリのバージョン管理や自動ダウンロードなど含めて何でもしてくれる

326:デフォルトの名無しさん
22/07/14 02:45:06 o4Ti2hmk.net
ポケモンの交換は途中で電源を消してもポケモンの増殖や消滅が起こりませんが、どのようになってるのでしょうか

327:デフォルトの名無しさん
22/07/14 03:58:54.48 rMT+3vzc.net
起こるようだが?
ちゃんとトランザクション処理してないのか?

328:デフォルトの名無しさん
22/07/14 05:44:56.23 1pn/MEr2.net
>>320
意味わかんねー
それは本当に「主流」か???
cargoでパッケージをインストールするのがデフォルトなディストリなんてあるか?
テメーが覚えたてのこと言いたいだけなんじゃないかと
あとソフトウェア開発の現場では「自動メモリ解放で安全に楽できる」新言語よりもただ単に枯れてるからというだけの理由でC/C++が優先されることが非常に多いということを理解してないように思う
もっと言うとメモリの管理で苦労したくないという浅い浅い動機ならC++でできる限りSTLでプログラミングした方が圧倒的に導入のコストが低く済むという事実
ま、「いや組み込みを想定するとSTLなんて使えないから~」とか訳の分からん擁護に走る奴が出てくるのは目に見えてるがな

329:デフォルトの名無しさん
22/07/14 06:25:21.21 oyqdoYCa.net
>>323
例えばLinux開発陣営も
失敗言語C++を採用しませんでしたが
成功言語Rustは採用したように
言語としての優劣は明確となっています
今までの蓄積の差がC++の優位点です
今後は時間とともにC++が相対的に衰退していくのでしょう

330:デフォルトの名無しさん
22/07/14 06:27:36.20 TLMV+xKA.net
>>314
そのような合理性に乏しい判断が生産性の低下と各リスクの上昇を招く
>>323
URLリンク(foundation.rust-lang.org)
気をつければ問題などと言う認識は時代遅れっすよ

331:デフォルトの名無しさん
22/07/14 08:16:34.89 rMT+3vzc.net
>>323
> cargoでパッケージをインストールするのがデフォルトなディストリなんてあるか?
なんでデフォルトじゃなきゃいかんの?

332:デフォルトの名無しさん
22/07/14 12:11:36.28 LBvA3Hcq.net
Ruby では、Rake, Thor みたいなタスクランナーを使う

333:デフォルトの名無しさん
22/07/14 12:46:07.15 nOsE2mRf.net
>>325
「メモリ管理に苦労したくないだけならSTLを積極的に使うことにすれば済む」というのを「気をつければ問題ない」と読んだなら文盲かSTLが何か知らないということになる
組み込み等のSTLが使えないような背景を勝手に想定してるなら話にならない
「メモリ管理に苦労したくない」以外にも山程Rustに良いところがあるのは当然認めている

>>326
論点のすり替えであって、「Rustのcargoが本当にLinux・UNIXにおけるパッケージ管理の主流か」という問いに何ら答えていない
(もちろんこれはただの反語表現であって、答えるまでもなく>>320は頓珍漢なのだが)

334:デフォルトの名無しさん
22/07/14 14:00:51.16 /zRfdjTa.net
>>323
C++がクソ言語だと理解できていない時点であかんやん
メモリ解放の話に限定したとしてもC++ではプログラマーのミスで解放忘れ、多重解放、解放済みエリア利用などのコードとなってしまってもC++コンパイラはそれらを通してしまう
複雑化すれば人間のミスが入り込むことは避けられないため現実にバグやセキュリティの穴をC++は生んできた
現在はそれらのミスを起こしたコードをコンパイラが検出して通さず指摘してくれるRustが登場したのだからC++は着実に退場していくだろう

335:デフォルトの名無しさん
22/07/14 14:39:49 lnbsEUJQ.net
退場するまでなんとしても生きねば…… ゴホゴホ……

336:デフォルトの名無しさん
22/07/14 14:50:50 nOsE2mRf.net
>>329
自己流あるいはアンチパターンにはまってわけわかんないことしてるくらいなら (問題によっては) STLを使えば良いだろっていう指摘なんだが、
> メモリ解放の話に限定したとしてもC++ではプログラマーのミスで解放忘れ、多重解放、解放済みエリア利用など
なんでこんなことになるのか

337:デフォルトの名無しさん
22/07/14 15:45:39.13 rMT+3vzc.net
>>328
> 論点のすり替えであって、「Rustのcargoが本当にLinux・UNIXにおけるパッケージ管理の主流か」という問いに何ら答えていない
Rustのcargoが本当にLinux・UNIXにおけるパッケージ管理の主流かどうかを聞いてなんの意味があるの?
どうせ主流ではないと言いたいんでしょ?
主流ではないから○○だみたいに、
その先を説明してよ
なんで自分の意見を相手に聞くかな?w
自分の意見は、自分から言えば良いんだよ。

338:デフォルトの名無しさん
22/07/14 15:47:01.75 rMT+3vzc.net
相手に自分の主張を言わせることで
「勝った気になる」というテクニックに名前ついてない?

339:デフォルトの名無しさん
22/07/14 16:35:58.76 31/iZkCN.net
>>331
なぜそれら致命的な欠陥のあるC++を勧めるのか?
他に解決手段が無かった昔はC++が次善手として使われてきたのは仕方ないとしても現在は避けることが可能なのだから

340:デフォルトの名無しさん
22/07/14 19:50:08.27 JGI4j5iF.net
ふう、なんとか致命傷で助かった

341:デフォルトの名無しさん
22/07/14 21:11:03.19 CzfIePPh.net
お前はすでに死んでいる

342:デフォルトの名無しさん
22/07/14 22:27:22 9htlvmL8.net
>>320
>ライブラリのバージョン管理や自動ダウンロード

これ、すごく嫌なんですが、オプションでオフにすることはできますか?

343:デフォルトの名無しさん
22/07/14 22:28:41 9htlvmL8.net
>>329
>解放忘れ、多重解放
これはデバッグ用にラッパをかませれば、すぐにわかりますよ
工夫がたりないんじゃないですか?

344:デフォルトの名無しさん
22/07/14 22:38:35 iypcPR5q.net
>>388
工夫とはPOSIXコマンドだけで何とかすること
依存しているものが使えなくなったら動かなくなる

345:デフォルトの名無しさん
22/07/14 23:58:11.93 U+xK/jUV.net
>>339
あのね、ラッパは自分で書くの
mall


346:oc(), free() をラッパでくるんでおいて、解放忘れや二重解放を検出すればいいわkでしょう? >解放済みエリア利用 すなわち、前世バグは、解放時にラッパで乱数を書き込んでおけばいい 本番ではラッパをはずすように #ifdef しておけばいいだけの話でしょう なんでこんな工夫もできないの?馬鹿なの?



347:デフォルトの名無しさん
22/07/15 01:34:39.13 GD18JH44.net
>>340
そんな前近代的なことをしている人がいて驚く
・まず手間も時間もムダ
・その作業も漏れなくミスなくすることを保証できない
・実行しないと何も判明しない
・レアケースに露見するミスはレアケースが来るまでわからないまま
様々な点で問題が多すぎる
C/C++を捨ててRustへ移行すれば
・コードに問題があればコンパイラが通さず問題点を指摘してくれる
・つまりチェックは人手でやる必要なくコンパイラにより完全自動
・コンパイルが通れば安全性が保証される
・つまり実行前に静的に問題がないことを確定できる
・使われなくなった時点で即座に自動的にメモリ解放されるためC/C++で手動で最善にメモリ解放した時と同様に高速
このようにRustへ移行すれば問題が解決する

348:デフォルトの名無しさん
22/07/15 01:41:41.27 Ck4HswxJ.net
>>340
解放忘れは機械的にはプロセス終了時点まで分からないと思うけど、プロセス終了時にその領域の情報はどうやって報告するの?
未解放メモリの全部のポインタをどこかに覚えておく?
そして、どこからの malloc で確保されたメモリなのかはどうやって管理する?
他にも new や delete はどうするのとか。
そのノウハウは聞いておきたい。

349:デフォルトの名無しさん
22/07/15 04:34:16 H/wtb5p/.net
>>332
> どうせ主流ではないと言いたいんでしょ?
イエス
反語表現の意味を調べよう
(中高で習うそんなに難しくはない概念だし、注意してみると日常生活の中でもよく使われているので、勉強しておくことを勧める)


> 主流ではないから○○だみたいに、
> その先を説明してよ
ホワァイ?
元々>>320が頓珍漢な回答をしているのを指摘しただけなので、そこで終わってる話
頓珍漢に輪をかけたレスがその後も相次いでいるので驚いているが


> なんで自分の意見を相手に聞くかな?w
> 自分の意見は、自分から言えば良いんだよ。
言ってるんだよなあ
まあこの先日本語をもっと勉強することでいずれ理解できるようになると思う
頑張って

350:デフォルトの名無しさん
22/07/15 04:37:28 H/wtb5p/.net
>>334
勧めていません
ただし、低レベルプログラミングが必要な場面でないのに「C++はメモリの解放が~」とか言ってるのは誤謬でしかないし、標準ライブラリで提供されてる範囲内で簡単に解決できると示しているだけ

351:デフォルトの名無しさん
22/07/15 04:40:39 H/wtb5p/.net
>>340はヤバいね
これなら思考停止でRust使ってた方が良い

今自分でmalloc、free、new、deleteしなきゃいけない場面なんて特定の領域を除いて存在しないでしょっていう話だから

352:デフォルトの名無しさん
22/07/15 04:43:52 GD18JH44.net
>>343
その件もmakeでやってた前近代的な方法を根本的に見直し捨て去ることで
全く新たなcargoというエコシステムが作られてそれ単独でmakeやその類似を必要とせずに動作しているわけだから
makeの代わりの新たなものという位置付けも一つの見方であると思われる

353:デフォルトの名無しさん
22/07/15 04:44:34 nNsZOfDm.net
>>343
だから、Rustのcargoが本当にLinux・UNIXにおけるパッケージ管理の主流じゃないから何?
OSの仕事はあくまでOSのパッケージの管理であって
プログラミング環境のライブラリの管理じゃないんだよ
あんたcargoの役目を理解してなさすぎw

354:デフォルトの名無しさん
22/07/15 05:21:48.13 tRnFuWaP.net
>>344
その後半の「標準ライブラリで提供されてる範囲内で簡単に解決できる」は二重にダウト
標準ライブラリの範囲内でも解放忘れや多重解放などは起こり得る
さらに標準ライブラリの範囲内のみで解決できるとはかきらない
したがって標準ライブラリを持ち出すことに何の意味もない

355:デフォルトの名無しさん
22/07/15 05:25:05.82 H/wtb5p/.net
>>346
ていう話なら是
>>347
ええ。ですから>>316に対してcargoとか言い出すのは頓珍漢なのですよ
私と反対のことを言いたいばかりに元々がどんな話だったかすっかりお忘れになられているようで、本当に気の毒ですがもう少し日本語のお勉強に真剣になられた方が良いです

356:デフォルトの名無しさん
22/07/15 05:39:30.79 nNsZOfDm.net
>>349
はぁ(苦笑)
あのねぇ、makeはね、OSのコマンドなの。UNIXの中に含まれてるから。
でね、makeっていうのはビルドツールなわけ。
昔のunixにはパッケージ管理ツールなんてなかったのから
ビルドするしかなかったの
今はビルドツールにOSのコマンドを使わなくなってきてるの
cargoはプログラム専用のパッケージ管理ツール兼ビルドツールなわけ
つまりね、
・パッケージを使う場合はOSのパッケージ管理ツールを使う
・しかしパッケージ管理ツールは、make、ビルドツールのことじゃあない
・今の話はmakeの代わりに何を使うって話
・makeの代わりはcargoや各言語のビルドツールなわけ
おまえはmakeをパッケージ管理ツールだと勘違いしてる
ここまで丁寧に教えないと理解しないんだろうな

357:デフォルトの名無しさん
22/07/15 05:44:04.50 nNsZOfDm.net
makeの代わりに何を使う?って話なんだからcargoは間違いじゃない
makeの話なのにOSのパッケージ管理ツールってなんだよ?とかいいだしてる>>323がアホと言う結論

358:デフォルトの名無しさん
22/07/15 06:06:48 H/wtb5p/.net
>>350
>>346で止めときゃ合ってたのに……(もしかして「是」の意味がわからなかった?)

OSのコマンドとして見るなら尚更cargoを持ち出すのは頓珍漢だろ

359:デフォルトの名無しさん
22/07/15 07:03:07.90 LI/vBnI5.net
とりあえず>>340って実際にどんなことをしてるかちょっとだけ気になるんだけど
よかったら具体的な説明を

360:デフォルトの名無しさん
22/07/15 07:08:23.44 LI/vBnI5.net
と思ったが、あれかな、valgrindとかでやることを自分でやるみたいな?
普通にそういうツールやライブラリに頼った方がいいような

361:デフォルトの名無しさん
22/07/15 07:28:20 45o+VwAU.net
>>352
今どきはOSのコマンドでビルドしないって言ってんだろ
いい加減OSの話忘れろよ
おまえだけだぞ

362:デフォルトの名無しさん
22/07/15 08:15:46 uLC7CBw4.net
Rust Foundation Platinumに日本企業はない。中国企業はいる
日本は中国未満

363:デフォルトの名無しさん
22/07/15 09:59:34.96 TA6nqc+L.net
現時点でRustで構築されてるOSってある?
カーネルはLinuxでもいいけどそれより上の部分で

364:デフォルトの名無しさん
22/07/15 10:57:19.78 lF4sBNwn.net
Rustなんて結局流行らんでしょw
まぁ、スレ違いなのでしょーも無い事を語るなら別のスレにいけ

365:デフォルトの名無しさん
22/07/15 11:39:33.98 YErsqPqr.net
gitでマージしてコンフリクトしなかったファイルとコンフリクトしたファイルがあって
これをコミットする際、コンフリクトせずマージされたコミットとコンフリクト解消したコミットのように2つに分けたいのですが
どうやればいいのでしょうか

366:デフォルトの名無しさん
22/07/15 12:11:03.83 lF4sBNwn.net
単純にマージする前にブランチ切っていれば戻れるし好きに出来るのでは?

367:デフォルトの名無しさん
22/07/15 12:12:45.10 YXwn0a1o.net
>>359
stageに上がった修正だけがcommitされるから、
コンフリクト解消前のstageをcommitした後に
コンフリクト解消してまたcommitすりゃいい

368:デフォルトの名無しさん
22/07/15 12:44:10.41 YErsqPqr.net
>>361
コンフリ解消前のをcommitするとコンフリ解決してないので
committing is not possible because you have unmerged files
とエラーが出てコミットできないんですが
コンフリしたファイルをそのままaddしてコミットしろってことでしょうか?

369:デフォルトの名無しさん
22/07/15 15:05:45.09 oyGbt8u5.net
>>362
merge状態から抜ければcommitできるので、そうしてもいいし
コンフリクトしたファイルだけを元に戻してもいい
でも、どちらにせよビルドできない状態をcommitすることになるだろうから
ちゃんとコンフリクトを解消してからcommitした方がいいと思うけどなぁ
まあ、最初のやりたいことからは外れちゃうけど

370:デフォルトの名無しさん
22/07/15 15:18:15.30 UMF7Eduu.net
>>357
これからは一つの言語で構成されるOSはなくなっていく

371:デフォルトの名無しさん
22/07/15 21:04:15.70 knkavBW6.net
>>341
>・まず手間も時間もムダ
ちょいちょいと 200 ステップくらいで簡単に実現できますよ、一晩で書けちゃいますよ
>・その作業も漏れなくミスなくすることを保証できない
>・実行しないと何も判明しない
何もしないよりはましでしょうね、簡単なラッパを置くだけでケアレスミスは弾けますね、やったことなければわからないでしょうが
>>342
末尾に解放忘れを列挙する関数を置けばいいだけですよ、リリース時には #ifdef で無効にするようなものでね
>>345
私は別に rust を否定しているわけではないですよ
指摘された問題点はちょいちょいとラッパを書くだけで割と簡単に弾けるのに、というだけですね
>>353
ヘッダ:URLリンク(ideone.com)
本体:URLリンク(ideone.com)
一晩で即席に作ったけれども結構今でも役に立っていますね‥‥

372:デフォルトの名無しさん
22/07/15 21:41:31.38 0WMM6JpG.net
リーク検出なんてVCは標準であるけど、他の環境にはないの?

373:デフォルトの名無しさん
22/07/15 21:52:23.36 YErsqPqr.net
>>363
コンフリしたファイルをHEADの内容で更新commitして
コンフリしたファイルを再度修正してそれをコンフリ解決としてコミットすれば
やりたいような感じのことができました
レスありがとうございました

374:365
22/07/16 06:41:19.01 c7EwU+jp.net
>>366
昔の bcc にもありました、ちょっとバグってたけれども
clang ベースの今の bcc にあるかどうかはちょっとわかりませんね

375:デフォルトの名無しさん
22/07/16 11:51:34.05 v3eAMl7Q.net
質問と言うかご意見をお聞かせください
daoパターンを調べていてトップに出てきたのがこれです
URLリンク(kanda-it-school-kensyu.com)
気になったのは
selectIsbnAll、selectTitleAll、selectPriceAllが、内部で使うSQL文以外は全く共通の構造になっているということです
例えば受け取ったSQLを実行して結果を返す関数xxxを別に作る、上の3関数ではSQL文を作ってxxxに渡して呼び出す
そういう構造にするのはダメなんでしょうか
それとも重複させたほうがいい理由が何かあるのでしょうか。よろしくお願いします

376:デフォルトの名無しさん
22/07/16 11:55:03.81 v3eAMl7Q.net
失礼しました。SQL文以外にも取得する列名も関数ごとに別ですね
まぁその場合でもxxxに列名を引数として追加すればいいのではと思いますが

377:デフォルトの名無しさん
22/07/16 12:32:31.14 730D9OZt.net
>>369
>そういう構造にするのはダメなんでしょうか
全く問題ないよ

378:デフォルトの名無しさん
22/07/16 12:37:49.48 730D9OZt.net
しいて言えば
他の開発者が重複させた状態でパターン認識してれば共通処理に切り出すと分かりにくくなるとか
すべてのDAOが依存する共通クラスができるのでその維持管理に少し手間がかかるとか
そういうデメリットはあるかもしれない

379:デフォルトの名無しさん
22/07/16 14:05:36.11 2WLM14wy.net
Java のJDBC って、何十年前の話なの?
Ruby on Rails では、Active Record というO/R マッパーで全自動。
こんなコーディングを見た事がない

380:デフォルトの名無しさん
22/07/16 15:47:30.46 aE5onCgd.net
markdow


381:nってなにが便利なの? 見る人にわざわざViewerをインストールしてもらわなきゃいけないの



382:蟻人間
22/07/16 16:12:32.42 8tacx+39.net
>>374
HTMLよりも文法が簡単で、わかりやすい。
テキストベースでGitと相性が良い。
markdownが書ければ本も出版できる。

383:デフォルトの名無しさん
22/07/16 17:00:15.16 aE5onCgd.net
本を出版できるかどうかは関係ないでしょ
書く内容があれば、markdownがかけなくても出版は出来るでしょうし。
整形されたものを見るためには、ブラウザ側の準備とかも必要ですし
○○をインストールすれば、綺麗に見えますよ
なんていってもそんなの面倒といわれるのがオチですよね

384:デフォルトの名無しさん
22/07/16 17:08:33.25 EqAVTetZ.net
ブラウザ等が必要なのはHTMLやTextileも同じ
それらに比べてプレーンテキストでの視認性は良い

385:デフォルトの名無しさん
22/07/16 20:25:35.05 v3eAMl7Q.net
gitと相性良いってのは本当にでかい
未だにword/excelをSVN管理してるところの多さよ

386:デフォルトの名無しさん
22/07/17 08:58:42.91 Pz/w1EQs.net
音楽を流すプログラムを公開する時、著作権の問題を回避するため、曲データそのものは省いた状態で公開したい。
でもデモというかサンプルとして、そのデータのシーケンスの様子を youtube で公開して、ようするにそれを見ればデータを再現できるわけだけど、
そういう公開の仕方で著作権の問題は出そう?
公開したいものの主体としてはシーケンサの方ではあるけど、その曲を入れたくて作ったという側面がある。
もちろん使う人がお好きなデータを入れられる。

387:デフォルトの名無しさん
22/07/17 18:48:28.79 soXI7jwH.net
仕事中に転職予定のプログラミングの勉強をしたいのだけど
いい方法はないかしら?
今の仕事中はときどきアイドル時間があってわりと勉強できそうだけど
周りにチームリーダーやまじめ君がいてPCをのぞきこまれてそれを見つかるのはまずい。

388:デフォルトの名無しさん
22/07/17 19:38:41.12 9SO4ZDqK.net
スマホPDFでみれば

389:デフォルトの名無しさん
22/07/17 19:51:05.43 soXI7jwH.net
>>381
それもなかなか難しいんですよ。
理想はPCで仕事してるふりしてPCの小領域に勉強のためのWebサイトを開くみたいな。

390:デフォルトの名無しさん
22/07/17 19:53:22.97 9V4W1mRI.net
PC介すと検閲に引っかかるとかないの?

391:デフォルトの名無しさん
22/07/17 20:52:28.23 zSvUsLU3.net
えー要約すると仕事中に仕事と全く関係なくて見つかるのもまずいことしようとしてるんだけどいい方法ありませんか

392:蟻人間
22/07/17 21:13:42.26 Il0xN2QW.net
通信URLが監視されてたら何してもばれる。
それでもやりたいならWin+D

393:蟻人間
22/07/17 21:21:33.73 Il0xN2QW.net
「ボスが来た」で検索すると、そういうツールが見つかるよ。

394:蟻人間
22/07/17 21:22:16.77 Il0xN2QW.net
通信内容も隠蔽したいならテザリングするといいよ。

395:蟻人間
22/07/17 21:26:39.21 Il0xN2QW.net
内部通告は社会の正義だからね。がんばってね。

396:蟻人間
22/07/17 21:41:58.23 Il0xN2QW.net
今ならメガネ型の端末やコンタクトレンズみたいな端末があるって。
それでネットサーフィンできるよ。

397:デフォルトの名無しさん
22/07/17 22:12:12.21 og+Kl2+D.net
などと自宅警備員が言っており

398:デフォルトの名無しさん
22/07/18 02:41:01.00 M8P73NZJ.net
その言語の研修に行かせてもらえば?

399:デフォルトの名無しさん
22/07/18 09:09:17.65 unHGOtJd.net
UMLとかどこ行っても潰しの効く技術を勉強しといたら?
特に最下流なゴミ案件だと設計ドキュメント無かったりするから、それを作ってますと言い訳

400:デフォルトの名無しさん
22/07/18 10:38:54.88 kCD1BPcn.net
OSSのライブラリって設計ドキュメントとかなかったりするよね
OSSの開発には参加できない低レベル人材ということだよね

401:デフォルトの名無しさん
22/07/18 12:40:49.12 VS4KQwYj.net
設計資料の無いプログラムなんて、何の価値も無いでしょ
個人が趣味やってるようなものなら話しは別だけど
会社で仕事としてやってるなら、ソースだけなんてありえない。
そこらに建ってるビルで設計図ないビルなんて無いだろ
犬小屋つくるのとはわけがちがう

402:デフォルトの名無しさん
22/07/18 12:47:50.22 QxUO6Zmj.net
設計図は保守のために必要なのであって開発のための設計図は不要

403:デフォルトの名無しさん
22/07/18 12:49:37.70 VS4KQwYj.net
会社に入れば分かるよ
学生さんがお遊びで書いてるようなおもちゃコードとはダンチレベチだから

404:デフォルトの名無しさん
22/07/18 13:25:28.89 LUyjnnnP.net
OSSはわかる人が参加するものであって
企業内の製品は誰でもわかるようにしなければいけない
設計あるなしは要否によっても決まるもの、という位置付けに変化した

405:デフォルトの名無しさん
22/07/18 13:28:37.05 T3NdTMmH.net
会社でコード書いてるのなんて高卒とか専卒のやつらだろ
大学でちゃんとコード書いてる学生さんの方が上だよ

406:デフォルトの名無しさん
22/07/18 13:34:29.85 VS4KQwYj.net
なぜか学歴の話しになってて草草草
頭の悪い人って物事を別の方向に捉えて勝手に結論付けるよね

407:デフォルトの名無しさん
22/07/18 14:19:10.39 unHGOtJd.net
N□□セキュアとかの仕事ですら、設計ドキュメント無かったぜ

408:デフォルトの名無しさん
22/07/18 14:39:42.97 kCD1BPcn.net
ビルは完全にウォーターフォールでしか開発できないからな
途中で改善点など見つけても後戻りできない
そこがソフトウェア開発と建築との違いで何度でも試行錯誤してブラッシュアップできるのがソフトウェアの良いところなのに
混同して考えているという時点でセンスないし向いてないから別の業界に転職した方が良いよ

409:デフォルトの名無しさん
22/07/18 15:03:52 RNtKt9aH.net
設計ドキュメントの作成・維持・読んで理解するのに要するコスト・時間と
設計ドキュメントなしにコードを読んで設計を理解するのに要するコスト・時間を状況に応じて比較して考えればいいよ

設計するやつとコード書くやつが分かれてたり
コードだけからだと設計を読み取るのに時間がかかったり
そもそもコードを読めない・読まない人が設計を理解する必要があったり
多くのソフトウェアやシステムは後者のコストが著しく高くなる環境のほうが一般的

設計するやつとコード書くやつが同じでユーザーもコードを読む前提のソフトウェアやシステムはどちらかといえば例外的

410:デフォルトの名無しさん
22/07/18 15:52:41 88C78euP.net
>>394
オープンソースのソフトウェアに分厚い設計資料はありますか?

411:デフォルトの名無しさん
22/07/18 16:11:52.15 f70Fl4T+.net
>>403
オープンソースには分かるやつしか参加しないから、ソースコードを別の言葉で書き直したような設計書ならいらないんだよね。
企業は人員の 9割が無能だから、そいつらのための仕事として設計書作成作業を設けてるだけ。
んで 9割の連中がその設計書を見ながら作った動かないコードは、残りの 1割の連中が設計書など見ずに動くように書き直す。
だから設計書と製品が解離する。

412:デフォルトの名無しさん
22/07/18 17:54:35.48 lfKiyV0F.net
>>404
オープンソースに分厚い設計資料がないのだったら、本質的に企業の仕事においても不要でしょうね、偉い人にはどうしてそんなことがわからないのでしょうか?

413:デフォルトの名無しさん
22/07/18 18:01:12.19 LUyjnnnP.net
製作者がいなくなったとき、
オープンソースは引き継げる能力のあるやつが引き継ぐ、いなければいつか消えるのみ
会社は他に能力のあるやつがいなくても、誰かに引き継がせなきゃいけない。放置は許されない

414:デフォルトの名無しさん
22/07/18 18:20:16.09 Vps5Lgrt.net
>>396 せやな。Linuxぐらいの設計書は必要



416:デフォルトの名無しさん
22/07/18 19:30:18.00 iK5pz8lh.net
>>406
製作者がいなくなる状況を生成した、それが会社側の失敗なのでは?
ドキュメントなんて所詮、参考でしかなく、結局はコードを読むしかない、偉い人にはそれがわからないのでは?

417:デフォルトの名無しさん
22/07/18 20:03:26.47 SlCZ8nzK.net
書類なんざ所詮管理手段の一つ。結果が伴わなければ意味ない
書類の作成を目的化するような会社じゃビジネスは上手くいかないだろうね

418:デフォルトの名無しさん
22/07/19 00:29:30.95 KHPjwZjx.net
ダメなプロジェクトや仕事は設計ドキュメントが先にある
良いプロジェクトや仕事は様々なレベルでそれぞれ試しに作っては壊したり比較したりやり直したり
システムアーキテクチャレベルで固まってきてもデータ構造やらAPI相当やらはリファクタリングでどんどん良いものへ変化
そして最後に設計ドキュメントに相当するものをきちんと作る

419:デフォルトの名無しさん
22/07/19 02:32:32.91 u93zEaXd.net
エクセルのデータを読み込んで加工して手元のmysqlに書き込むプログラムがあるのですが
プログラムで書き込むのと sql fileに書き出してコマンドで実行する方式のどっちがいいでしょうか?

420:デフォルトの名無しさん
22/07/19 11:20:13 6ZFnu09m.net
>>411
どういう観点で比較したいの?

421:デフォルトの名無しさん
22/07/21 14:52:16.30 qntGDUHT.net
C,C++の勉強してListの構造を学んで疑問に思ったのですが
Javaなどでメモリ飛び飛びで作られたListが存在するときにGCが発生したら完全整列するのでしょうか?それとも要素毎に空いたメモリに再配置されるのでしょうか?
前者なら遅くなるなぁ?と、後者で動いてる?
まぁわかったところでGCなのでやりようがないかもですが、考え方だけでも知っておきたいです

422:デフォルトの名無しさん
22/07/21 14:59:01.82 cxEc0/aI.net
>>413
後者
GC言語に限らずリンクリストは非常に非効率なデータ構造であり、動的配列よりもリンクリストの方が適している状況は極めて稀である
Cで実装しやすいから教科書に出てくるだけ

423:デフォルトの名無しさん
22/07/21 15:10:02.66 qntGDUHT.net
>>414
ありがとうございます
やはり後者ですか
List使った処理を追加したら遅くなりまして
もう一度コードの見直ししてみます

424:デフォルトの名無しさん
22/07/22 21:00:16.41 coO/VVNr.net
アセンブラスレがなかったのでこちらのスレで失礼します。
学校でH8/300Hのマイコン学習をしています。
どうしてもわからないことがあり質問させてただきます。
HEW 生成ファイル補足説明(H8S、H8/300)
URLリンク(www.renesas.com)
の3ページ目、リセット関数に関してです。
.SECTION PResetPRG,CODE,LOCATE=H'0400
_PowerON_Reset:
SLEEP
.SECTION $VECT0,DATA,LOCATE=H'0000
.DATA.L _PowerON_Reset
.END
上記のコードは実行してもただSLEEPするだけ、ということは理解できています。
コードの読み方を調べているうちに、
上記コードで定義されているPResetPRGのH'0400と、$VECT0のH'0000は、
ディフォで生成される設定に合わせているということは理解できたのですが、
じゃあ、なんでわざわざ宣言するんでしょうか?
ネットや書籍で調べまくっているのですが、掘り下げた説明に出会えず、
これがピンとこないせいか、授業の内容もいまいちピンときません。
まだLEDをピカらせるといった初歩的なことをしているだけですが、
リセット関数はどのコードにも冒頭部分に記述されています。
しかし初期設定部分ということもあってかコピペで済ましており、
学校の人も誰もこの記述の具体的な説明を含む読み方ができません。
どなたか日本語訳的な感じで読み替えてもらえないでしょうか?
よろしくおねがしいます。

425:デフォルトの名無しさん
22/07/22 21:56:20.98 5RjVUBfu.net
アセンブラというかハードの知識が足りてないんじゃね?
ベクタテーブルで調べてごらん。

426:デフォルトの名無しさん
22/07/22 21:57:59.77 JKfbNlr+.net
h8なんて知らん素人だけどさ
このCPUはリセットされると0番地の内容をプログラムカウンタに設定して
そこから実行を開始するっぽい
で、今回はH'0000番地にVECT0という名前をつけて
内容はH'0400
H'0400番地にPResetPRGという名前をつけて
内容はSLEEP命令
この名前とかアドレスはその開発環境のデフォルトなんでしょ

427:デフォルトの名無しさん
22/07/22 22:31:54.54 QLPuwyNz.net
>>416
>じゃあ、なんでわざわざ宣言するんでしょうか?
この回答は「PResetPRGのアドレスは変更可能だから」かな

428:416
22/07/22 23:10:59 coO/VVNr.net
>>417->>419
ありがとうございます。書き込み後も調べ続けておりました。

>>417
一応イメージは掴んでいるつもりですが、改めて勉強してみます。
リセット時や割り込み時の処理の仕方だと認識しています。
自分はたぶんsection宣言の読み方や使い方がわかっていない気がします。

>>418
ありがとうございます。レス読んで思い出しました。
このリセット関数については、最初は先生に質問したのですが、
「0000の中に0400が入っているんだよ」と言われ、その時はわかった気になったのですが、
帰宅後に調べ直したらまたわからなくなり、今回の質問に至ったという経緯でした。

わかる
・このCPUはリセットされると0番地から実行を開始する
・名前とかアドレスはデフォルトのやつをそのまま使っている
・H'0000番地にVECT0という名前をつけている。
・H'0400番地にPResetPRGという名前をつけている。

わからない1
・H'0000番地の中にH'0400が入っているについて、その入れる処理は、どこがそうなっているんですか?
私の理解では「番地に名前をつけて、コードかデータの種類を指定しただけど、入れる処理はしていない」です。

わからない2
・.DATA.L _PowerON_Reset はプログラムを「_PowerON_Reset」からスタートする動作だと
教わりましたが、この記述でなんでそうなるかがわからないです。

>>419
ありがとうございます。そういうもんですか・・・そこは飲み込みます。

429:デフォルトの名無しさん
22/07/22 23:24:37.68 bpOnuI9e.net
CODE Section は、0400 から、
DATA Section は、0000 からとか、
どこのアドレスを使うか、決めるのは自由だろ?

430:デフォルトの名無しさん
22/07/22 23:37:14.09 bpOnuI9e.net
0000 などは、16進数か?
0000〜00ff: 0〜255
0100〜01ff: 256〜511
0200〜02ff: 512〜768
0300〜03ff: 768〜1023
0400〜04ff: 1024〜1279
つまり、0400 は1024のアドレスから始まる

431:デフォルトの名無しさん
22/07/22 23:38:03.71 JKfbNlr+.net
_PowerON_Resetっていうラベルは
SLEEP命令の位置のH'0400を指すんだよ
それで.DATA.Lという疑似命令で
現在位置H'0000にH'0400を出力する

432:デフォルトの名無しさん
22/07/22 23:51:00.22 JKfbNlr+.net
というかマニュアルを読めよ全部書いてあるぞ
たぶんこの2つだろ↓
H8/300H シリーズ プログラミングマニュアル
H8S, H8/300 シリーズ クロスアセンブラ ユーザーズマニュアル

433:デフォルトの名無しさん
22/07/23 00:11:15.01 mkhmVAM0.net
>>424
今回の質問の前に思いつく限りの検索ワードで調べました。
以下の媒体は特に参考になったと思えたページの一部です。
流石に書籍やpdfを全ページ読んだとは言いませんが、
SECTION、PResetPRG、CODE、LOCATE=H'0400、_PowerON_Reset:、$VECT0、DATA
など、コード内にあった主要な記号


434:は全て検索し、 ヒットした箇所の前後の記述を熟読し、それでも理解できなかったので質問しました。 今は >>423 さんのレスにあった疑似命令について調べているる途中です。 プログラムはHTML/CSSしかやったことがなく、そっちの感覚が全く使えないので苦慮しております。 [プログラム](http://www.t-net.ne.jp/~kuu-sky/page090.html) [01_01.EPS](https://nagasm.org/ASL/manual/soft.pdf) [HEW 生成ファイル補足説明(H8S、H8/300)](https://www.renesas.com/us/ja/document/man/735601) [H8プログラミングメモ](https://bluefish.orz.hm/sdoc/h8_prog.html) [たのしくできるH8マイコン制御実験 - 横田一弘 - Google ブックス](https://books.google.co.jp/books?id=hNPVNj4wuOIC&printsec=frontcover&hl=ja#v=onepage&q&f=false) (https://books.google.co.jp/books?id=9dd1xBNFRpAC&printsec=frontcover&hl=ja#v=onepage&q&f=false) [ppkitinside2004.pdf](http://www.robot-triathlon.org/kit/ppkitinside2004.pdf) [H8S H8/300シリーズ クロスアセンブラ ユーザーズマニュアル](https://www.renesas.com/us/ja/support/document-search?keywords=j702038_h8s) [H8/36064グループハードウェアマニュアル](https://www.renesas.com/jp/ja/document/mah/h836064-group-hardware-manual?language=ja&r=1052281) [プログラミング(前編) | Renesas](https://www.renesas.com/jp/ja/support/engineer-school/mcu-programming-peripherals-05) [H8/300H シリーズ プログラミングマニュアル](https://www.renesas.com/jp/ja/document/man/870711) [猫ですが。: H8マイコン-その1](http://konohanaya.blogspot.com/2010/10/h.html)



435:419
22/07/23 00:43:15.10 6LmREh/f.net
>>420
開発時にメモリ上にどのようにデータを配置するかの指定は今は一般的にリンカの仕事
パソコンのプログラムはもちろん、マイコンでも今はリンカに対して配置するアドレスを
指定するのが一般的
ルネサスの場合、現行のRXマイコンやRAマイコンなどもアドレスはリンカに指示する
しかしレガシーな開発環境だとアセンブラコード内にアドレスを直打ち出来たりして
>>416の例はそのケースだと思う。今時の開発環境でこのパターンはレアと
思われるので理解を深める必要はないかも
H8の開発環境はないのでRXマイコン(CS+)の例だけど
RXマイコンのリセットベクタのアドレスは0xFFFFFFFCからの4バイト
リセットが解除されるとこのアドレスの値がPCへロードされる(=書かれているアドレスから実行が始まる)
URLリンク(uploader.purinka.work)
右のメモリダンプを見ると0xFFFFFFFCの値は0000C0FF。リトルエンディアンなので並べ替えると
0xFFC00000となりこのアドレスから実行が開始される
左の逆アセンブルリストで0xFFC00000を見るとPowerON_Reset_PC関数がある
PowerON_Reset_PC関数のソースコードを見ると
URLリンク(uploader.purinka.work)
#pragma sectionでResetPRGセクションへ配置するよう指示されている(91行目~)
Pはセクション種別で2文字目以降がセクション名
そしてリンカの設定を見ると
URLリンク(uploader.purinka.work)
ResetPRGセクションは0xFFC00000が指定されていて上記アドレスと一致する

436:419
22/07/23 00:44:12.83 6LmREh/f.net
>・このCPUはリセットされると0番地から実行を開始する
正確にはこれは間違っている。正しくは0番地に書いてあるアドレスから実行が開始される
リセットベクタというかベクタテーブルには大きく分けて2パターンあって
・該当するアドレスに書いてある命令を実行する
・該当するアドレスにアドレスから実行する
通常はこのどちらか。H8は後者。前者は古い物に多くて、新しめのはほとんど後者
>・H'0000番地の中にH'0400が入っているについて、その入れる処理は、どこがそうなっているんですか?
>.SECTION $VECT0,DATA,LOCATE=H'0000
>.DATA.L _PowerON_Reset ←PowerON_Resetのアドレスが配置される実データ
この部分が該当箇所。最終的なデータを出力しているのはアセンブラ
上にも書いたけどこのような書き方は今の主流ではない
何となくだけど開発ツールの扱いもまだ不慣れなのかな。自分も使いこなせているとは言い難いけど


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

564日前に更新/300 KB
担当:undef