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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/02/20(土) 17:17:54.73ID:56yjs2OO
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。

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

次スレは>>980が立てること
2021/05/14(金) 17:37:59.47ID:hkg2iu74
やりたいことは実はドシンプルではなくもう少し複雑だったというなら相応に手を加えるだけよ
日を跨ぐ時刻の判定にオフセット掛けるのは足し算でできるでしょ
もっと条件があるなら経過時間なり時間帯なりに判定を増やせばいい
2021/05/14(金) 18:39:57.23ID:L5IZjefz
些末な部分はどうでもよくて
何かそれは思いつかなかった的なアイディアがありそうな気がするんだけどな

現状の実装では、更新時刻の1分前になったら更新済みフラグをクリアする
その状態で更新時刻になると更新される
1分間クリアし続けるというのがいかにも汚い
不等号一発ではなくて、時間の幅を持たせて、という処理がどうしても付きまとう
761デフォルトの名無しさん
垢版 |
2021/05/14(金) 19:50:54.89ID:sCsXtIcF
>>758 に答えろよ
2021/05/14(金) 21:03:00.71ID:HZsGTEZ+
仕様を明確にしろと指摘されてるのに
ふわっとした要望だけ次々と追加

そりゃ書けないわな
2021/05/14(金) 21:58:40.24ID:qv+fvLmo
勿体ぶらずにサンプルコード出せよ
2021/05/14(金) 22:11:00.85ID:SGxg0iSp
一日一回データ更新するプログラムで
何が問題になるのか
フラグをクリアしたのにフラグが立ってて
クリアし続けないといけない恐怖話
2021/05/15(土) 00:21:09.70ID:Eqqjc3fM
脱初心者を目指すならフラグ変数を使わずに書けないか意識した方がいい
人のソースを見ているときに boolean execFlag なんて現れるとがっかりする
2021/05/15(土) 02:19:46.64ID:TcBunKlm
だから言ったろ?
シンプルに書けないか以前に「書けない」んだって
2021/05/16(日) 12:24:08.32ID:i0aHhWnL
https://ezoeryou.github.io/cpp-intro/#%E3%82%A4%E3%83%86%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AE%E5%9F%BA%E7%A4%8E

「std::end(v)はvectorの変数vの最後の次の要素を指し示すイテレーターを取得する。
最後の次の要素を指し示すイテレーターに対して、*で要素にアクセスを試みるとエラーになる。
int main()
{
 std::vector<int> v = {1,2,3,4,5} ;
 auto i = std::end(v) ;
 *i ; // エラー
}

と書かれているのですが、そもそもコンパイル時エラー? ランタイムエラー?
C++はrange checkしないはずですが、本当にエラーになるとしたらどういう仕組みですか?
768デフォルトの名無しさん
垢版 |
2021/05/16(日) 19:02:12.07ID:LkZOTUXR
アマグラマーです
プログラマーに聞きたいのですが、こんなコードはクソっていう書くときの指針(反面教師)があれば教えてください
アマなのでプロの経験談から学びたい
2021/05/16(日) 19:26:05.99ID:Hgwjinll
>>768
私のコードがよい反面教師になるでしょう、とくとご覧あれ
https://mevius.5ch.net/test/read.cgi/tech/1434079972/
2021/05/16(日) 19:46:24.28ID:Hgwjinll
>>767
こちらで試した例
https://ideone.com/2WVu4k ……@

@の実行結果は ideone でも、私のローカル環境でも、いろいろ変わりますね

>C++はrange checkしない
これは正しいです。そしてコンパイル時エラーはおこりません。

>最後の次の要素を指し示すイテレーターに対して、*で要素にアクセスを試みるとエラーになる。
は、その文章でいう「エラー」という言葉が具体的に何を表現しているかが曖昧模糊と言う意味で正確ではありません

1)実行時エラー: *p でアクセスしようとすると「Segmentation Falut」等で、実行プロセスが OS により強制終了させられる
2)実行時エラーすら発生せず、シレっと値を読み込むが、その値は書き手のコントロールの外であるから適当かつ予測できない値だったりする
3) その他(どんなパターンがあるかは私にもわからない)

@ではイテレータ p が v.begin() を超えてもしばらくは上記 2) 、おもむろに 1) が発生して終了しました
いろいろ言いましたが、イテレータが意味のある領域を指していることを保証するのはプログラマの責任ということです、それができなかったときのエラーの様態は千差万別で一つに定めることは不可能でしょう
2021/05/16(日) 21:28:38.45ID:59l26Czq
イテレータのendは終端であって内部領域を指してないからアクセスすんなよ!とmanに書いてないか?
772デフォルトの名無しさん
垢版 |
2021/05/17(月) 01:32:17.53ID:GHG/4QhJ
イテレータの話が出たのでちょっと聞きたいんだけど
いつも関数化するときどこまで書いたらいいのか迷います

例えばループ処理で配列xを得るとき
for i in source:
x += myfunc(i)

x = myfunc(source)

なんかコードはできるだけその場に書いてあるべきとも聞くので、あまり隠すのもよくないんでしょうか
2021/05/17(月) 20:10:51.62ID:st/b0vQm
Visual Studio 2019 & C# でWindousアプリを作ったんだが、
これにサブスクを実装したいんだけど検索しても方法がわからず困ってます

Stripeは過去のAPIを使えばサーバー側の実装をせずにexeスタンドアローンで
サブスク機能を実装できたっぽいんだが、現行のStripe.net APIでは不可能で、
どなたか実装方法を知っている方、教えて下さい
774デフォルトの名無しさん
垢版 |
2021/05/17(月) 21:01:46.61ID:243nH9hZ
スタンドアローンのサブスクって…
性善説信じてるの?
2021/05/18(火) 04:03:58.05ID:+FyE0C2M
opamでocamlformatがインストール出来ないんだけどおま環かな?
Bad checksumとか出てきて、ファイルのダウンロードに失敗してるっぽいんだけど…
2021/05/18(火) 09:15:39.42ID:+FyE0C2M
>>775
自己解
直りました、一時的な物だったようです
2021/05/21(金) 02:45:54.58ID:qNmCc5X8
デザインパターンとMVVMではどちらを覚えた方が役に立ちますか?
2021/05/21(金) 06:06:11.26ID:9A/Jin+2
デザインパターンは教養なので一通り目を通しとこうね
詳細まで覚える必要はないと思う
解決策があるパターンについての知識
2021/05/21(金) 11:54:01.77ID:S8JLTe/p
JavaのHttp Clientは今だと何が良いの?
標準のHttpClientでいい?OkHttp?Google?
780デフォルトの名無しさん
垢版 |
2021/05/21(金) 14:37:35.10ID:VGYuthZE
MVVMとは?
2021/05/21(金) 14:46:17.00ID:vIFGBvJ6
V0_0V
2021/05/21(金) 15:06:40.89ID:9A/Jin+2
>>780
マイクロソフトが提唱してるビューモデルを組み込んだMVCの一種
一般にはmodelとviewを明示的に分離する機構の概念
個人的にはVMはGUIスレッドだけどディスパッチを工夫すると単体テストを容易に書けるんで便利
2021/05/22(土) 04:30:03.30ID:pp5tL189
PHPの開発環境(サーバーソフト、PHP、DB)をそろえようとしています。

ApacheのバイナリをDLするところなのですが、
Apache LoungeとApacheHausで配布されているものに
なにか違いはあるのでしょうか?
2021/05/22(土) 06:35:35.35ID:wMryifzt
個別に入れるくらいならそもそもXAMPP入れればいいのでは?
2021/05/22(土) 09:39:06.65ID:2qYnhM4e
質問には答えず自分の意見押し付ける奴ってアスペなの?
2021/05/22(土) 11:58:17.03ID:QJRx2RSn
アシベです
2021/05/22(土) 13:26:56.92ID:Kmk+JOPD
>>778
ありがとうございます。
詳細までは不要とのことですが、どの程度やればいいのでしょうか?
Javaでは結城浩さんの本で演習も含めて一通りやってみたんですけど、
実用するには至っていません。
2021/05/22(土) 13:35:02.58ID:DX4sJHIx
デザパタなんて1冊目を通せば十分だよ
演習とかで手を動かす必要もない
デザパタってかなり古い古典だからな
今あらためて見ると、こんなん逆にメンテ性下がるだろ、みたいなものも少なくない
2021/05/22(土) 14:10:44.57ID:yRhz4OAW
結城浩のデザパタ本はさっさとゴミ箱に捨てたほうがいい
デザインパターンは実装方法じゃなく背景にある考え方を学ぶのが重要だから
2021/05/22(土) 14:15:58.77ID:QJRx2RSn
デザパタ本はささっと目を通せば理解できる人が読むもの
読んでも理解できない人は、まだデザパタを使えるレベルにない
上級者レベルになってから、流し読みするのがデザパタ本
2021/05/22(土) 14:17:10.41ID:wMryifzt
デザインパターンなんて先に知ってから使うものでは無く
色々なものを作っていくうちにこんなのお前らが勝手に名前つけるなよw
ぐらいの感覚の方が本当は自然だよなぁ
2021/05/22(土) 14:18:29.67ID:wMryifzt
>>785
はぁ?分からん奴に説明なんてしてられんやろw
アホかよw
それならお前が一から十まで解説しろよカス
2021/05/22(土) 14:25:02.21ID:1YsSfc50
質問スレですよ上級プログラマーさん
2021/05/22(土) 14:48:17.77ID:ddu3mui0
>>787
こんなかんじの問題は見たなぁ、と漠然に思い出せれば検索できる
どのみちサンプルを丸ごとコピーして解決できるほど甘くないから、その時になってから深く調べても問題ない
2021/05/22(土) 18:33:17.62ID:SsIEQKpS
>>770
試してくれて有難う。
なるほど、まとめると、実際には
・コンパイルエラーにはなら無い。
・実験して見ると、実行時エラーも範囲を少し超えたくらいではならなかった。
・範囲を物凄く超えたところでたまたまメモリアクセス保護例外が起きた。
ということですね。
2021/05/22(土) 18:38:59.22ID:5+25tO+n
プログラム知識ゼロスタートで他人のLua scriptプラグイン2シーズンくらい触って、自分好みに書き直し移植する遊びやってたんだけど
一つも用語分からないからWebサイトのLua用語調べたら専門用語の方が遥かに難しくてナニコレ分からん状態
専門用語という名の日本語の方が難しいわ
2021/05/22(土) 19:38:59.05ID:XT/wolzt
>>789
私は結城は気に入っていますが、何か他にいい本があるのでしょうか?
(結城本+自分で課題設定をして書く+Java のほかC++ でも書く、みたいな工夫はしました、サクッと読んでお仕舞いでは習得は無理かと)
798デフォルトの名無しさん
垢版 |
2021/05/22(土) 23:54:19.73ID:aF1HHEjB
結城浩はウツ病らしいですよ。
1990年代に心の病系ホームページの掲示板に書き込みをよく見た。
2021/05/22(土) 23:58:52.64ID:B4OaYn/w
>>797
QZは何の病気なんですか?
2021/05/23(日) 07:34:45.90ID:zmSGPUw1
C++ でも、Scott Meyers のEffective 本があるけど、
デザインパターンを簡単に書けない、その言語特有のハック。
古臭い技術で、他の言語に転用できないのが欠点

一方、Ruby では、ほとんど実現されているから、背景にある考え方を学ぶ方が大事

例えば、MVC で、モデルに実装したら、モデルが肥大化した(Fat Model)ので、
サービスオブジェクトに分けましたとか

1つの関心事につき、1つのクラスとか
2021/05/23(日) 18:55:47.64ID:cyPeT6Ng
>>799
スキゾフレニア
802デフォルトの名無しさん
垢版 |
2021/05/23(日) 20:26:45.52ID:Wj1m5SX3
これってなんの言語ですか?
パイソン?
https://i.imgur.com/xlefspP.jpg
803デフォルトの名無しさん
垢版 |
2021/05/23(日) 20:53:33.13ID:GSf5lhyc
Yep
2021/05/23(日) 21:01:04.62ID:RNjOm9Rv
ペェソン
2021/05/23(日) 21:39:22.51ID:Te3MIS70
PythonとかJavaとかCとか
なにが違うの?言語によって作れる作れないがあるの?
806デフォルトの名無しさん
垢版 |
2021/05/23(日) 21:42:02.74ID:C7srCdl0
>>803-804
サンキュー
2021/05/23(日) 22:00:15.34ID:w+wJvB0G
>>805
Pythonはインタプリタ言語で、JavaとCはコンパイル言語。Javaは仮想マシンで動作し、C言語は機械語に翻訳されて実行される。
2021/05/23(日) 22:03:22.43ID:w+wJvB0G
簡単で柔軟な処理を書きたいならPython。機械やOSに近い処理をしたいならC言語。実行環境を自由にしたいならJava。
2021/05/23(日) 23:09:32.89ID:Te3MIS70
>>807
はえーよくわかんないけど
教えてくれてありがとう
810デフォルトの名無しさん
垢版 |
2021/05/23(日) 23:21:58.20ID:egmLXi/j
Kotlin もよろしく。
2021/05/24(月) 00:08:07.95ID:gquLa7i5
ttps://pubgmap.io/erangel.html?/v2/30/4ftla8/BLeG
こんな感じのローカルで使えるアプリを作りたいのですが開発も保守もなるべくお手軽に済ませたいです
良さそうなフレームワークとかあったら教えてください
現状ネイティブアプリにするかWebアプリにするかも決まっていません
2021/05/24(月) 03:53:11.11ID:uBa1LY8b
ゲームエンジンなら、Unity
2021/05/25(火) 12:50:06.92ID:eFv7Fs8Z
設計思想とかデザインパターンとかの技術書の種類が豊富な電子書籍サービスありますか?
本当は技術書は紙媒体の方がいいんだろうけど満員電車にスマホで読むつもりなんで電子書籍がいいです
2021/05/25(火) 13:00:39.43ID:wv0vSqE+
cygwinのsetupで、library パッケージをインストールする時、
括弧書きの中にdevelopmentやruntimeと書かれているものが有るけど、
違いは何?
2021/05/25(火) 14:04:06.95ID:L5PEm/bx
>>813
オライリー
2021/05/25(火) 18:03:25.58ID:kHXG2r5z
>>814
runtimeが実行用の本体
developmentは開発用でヘッダーファイル等
コンパイルするのに必要なファイル群
runtimeのファイルを含むかは知らない
2021/05/26(水) 03:13:01.88ID:d9C9piab
>>816
有難う。
ところで、clangがリンク段階でエラーになってしまうのが直らない。
cygwinは64BIT版のみになってしまったけど、clangは32BIT版のライブラリを
必要とするかららしい。
考えてみれば、64BIT版の実行ファイルを作成すればいいのかな。
818デフォルトの名無しさん
垢版 |
2021/05/26(水) 03:24:50.15ID:d9C9piab
>>817
実際は、むしろ逆に64BITの実行ファイルを作成しようとしていて、
cygwin64 で、
$ clang -v t.c
とした時、
/usr/bin/ld: cannot find crtbegin.o: No such file or directory
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: cannot find crtend.o: No such file or directory
と出るので、-v で verbose してみたら、

Target: x86_64-unknown-windows-cygnus

"/usr/bin/ld" -m i386pep --wrap _Znwm --wrap _Znam --wrap _ZnwmRKSt9nothrow_t --wrap _ZnamRKSt9nothrow_t --wrap _ZdlPv --wrap _ZdaPv --wrap _ZdlPvRKSt9nothrow_t --wrap _ZdaPvKSt9nothrow_t -Bdynamic --tsaware -o a.exe /usr/lib/crt0.o crtbegin.o -L/usr/lib/gcc/x86_64-pc-cygwin/9.2.0 -L/usr/x86_64-pc-cygwin/lib -L/usr/lib -L/usr/lib/w32api /tmp/t-c40327.o -lgcc_s -lgcc -lcygwin -ladvapi32 -lshell32 -luser32 -lkernel32 /usr/lib/default-manifest.o crtend.o

と出た。crtbegin.o や、libgcc などがないということらしいけど、どうやったら直るんだろう。
2021/05/26(水) 05:04:07.54ID:d9C9piab
>>818
自己レスだが、その後、調査したら、

/lib/gcc/x86_64-pc-cygwin/10

に crtbegin.o や、libgcc.a があることが分かり、

$ clang -L /lib/gcc/x86_64-pc-cygwin/10 -B /lib/gcc/x86_64-pc-cygwin/10 t.c

とすると直ったわ。
2021/05/26(水) 06:55:25.77ID:XGTO2klA
Windows 10 Home, WSL2, Linux, Docker,
VSCode(拡張機能・Remote WSL, Remote Container)もある。

Windows Home版でも、Dockerを使えるようになった

WSL2 は、本物のLinux サーバーが動く。
ただし、CUI のみ。GUI は無い

メモリは、16GB は欲しい
2021/05/26(水) 12:49:08.85ID:Qr9i9spQ
>>820
サイズがでかすぎてインストールするのが辛い。
というか自分の環境では現実的に不可能。
822820
垢版 |
2021/05/26(水) 21:05:36.83ID:XGTO2klA
YouTube で有名な、雑食系エンジニア・KENTA のサロンでも、
Ruby on Rails で、今の未経験者は、Linux, Docker, VSCode が必須

Docker Compose までが初心者用コース。
各学校のカリキュラムもそう

Dockerできないと採用されない。
それどころか、AWS Fargate, Terraform まで言われている

よって開発用PC のメモリが、
Windows 10 では16GB 以上、Mac で32GB以上になった。
Windowsでも、32GBが推奨

8GBじゃ、Docker Composeがキツイから
823820
垢版 |
2021/05/26(水) 21:13:33.60ID:XGTO2klA
未経験者のRuby on Rails では、

YouTube で有名なKENTA のサロン、
AWS のくろかわこうへいのサロン、
Udemy などで教育革命が起きて、

今の未経験者は、Linux, Docker, VSCode が誰でもできる。
10年以上のプロよりも、技術力が上になってる!

さらに、AWS Fargate, Terraform まで言われている。
この辺が、未経験者の主戦場

米国年収でも、Railsは、1,300万円で、
AWS Solution Architect は、1,400万円でRailsを超えた!

Node.js は900万円だけど、Railsの2倍の求人がある
2021/05/26(水) 22:31:02.16ID:Gw0GQCqH
知ってる!KENT!サロン有名!ユーチューバーサロンKENT!
2021/05/27(木) 15:34:12.18ID:nhyDHcNr
Excelに日々追加されていく発注データをよその部署と共有したい。
データは極力いじってほしくなくて、複数箇所から同時に開くことができて、その部署の人間に有用なデータのみ加工して表示したい。

ということでエクセルデータを読み込んで表示できるhtmlファイルを用意して共有フォルダに入れとくのが良いかもしれんと思ったんですが、やはりhtmlだけじゃなくjavascriptを書く必要がありそうですかね?
2021/05/27(木) 15:41:44.56ID:PvZCRO+r
>>825
GoogleスプレッドシートとGoogleフォームでいいよ
Office365入れてるならそれでもいける
プログラミングなんぞ不要
2021/05/27(木) 16:11:02.44ID:iyj+Su0Y
htmlやcsvでエクスポートしたら?
見るだけでいいならpdf
2021/05/27(木) 16:20:25.70ID:6XTubEPX
その手のはGSuiteやOffice365の他にもSalesforceとかKintoneとか腐るほど選択肢がある
自分で作り込むのは論外として、会社で既に契約してるサービスを使えないかをまずは確認してみては
2021/05/27(木) 17:03:14.36ID:goD1Dj5M
>>825
用件定義が曖昧なので必要な処理が良く分からないけど、表示できるhtml
ファイルって言うのはエクセルファイルのリンクURLを書いたファイルを想定して
いるのかな?
だとしたら何か条件を満たすために書く必要があるのはjavascriptではなくて、
エクセルのマクロとかVBAスクリプトじゃないかな
共有フォルダに入れるならhtmlファイルを用意しなくても読み込み専用なら
エクセルファイル直でも良い気がする

データ極力いじらないっていうのは通達でルール化するとかなら分かるけど、
機械的にやるならいじれる人/いじれない人を明確に定義して、ファイルの
アクセス権設定するのかなって話でスクリプトの話じゃないかなとか、
エクセルファイル共有してみんなでいじると競合が発生しないようにする
必要があるとか

部署の人間に有用なデータのみ加工して表示したいは、それこそエクセルの
中身をいじる話なのでjavascriptではないかなとか

>>828のいうように社内で使っているソリューションとかにエクセルファイルを
読ませて要件に合った処理をしてくれるものを探すのが良いと思うけど、
まずはやりたいことを明確(極力とか有用なみたいはフワっとした感じじゃ
なく)にしないと何が必要か言えないかな
2021/05/27(木) 17:09:43.03ID:lb8CrCgA
GraphQLって関数のサポートってある?
例えば、あるプロパティに文字列が入ってるんだけど、これを大文字に変換して取得、みたいな感じ
もちろん、実際には大文字化どころでなく、もっと複雑な計算が必要になる
GQLで取得したのをJSかTSでまた変換して〜てな感じでやるしかないかな?
2021/05/27(木) 17:40:00.59ID:VvsV/KIv
>>825です。
元の表は外注先・商品名・社内担当者・納品日などなどのデータベースです。データ入力の担当者以外は直接参照しないように言われてます。
進行状況をグラフィカルに知りたい人たちがいたので、この表からガントチャートを作って表示できるVBAマクロを作りましたが、shapeを大量に表示するのでやや重くて不評でしたので簡便に表示できる方法を探していました。
老人たちが多すぎて「ここをダブルクリックすると見られます」以上に複雑な説明は不可能なので、今使ってないサービスを新規に利用するとか、元表の運用方法自体を変えるってのはナシの方向です。
状況が特殊なので、自分で調べてなんとかします。
すみませんでした。
832デフォルトの名無しさん
垢版 |
2021/05/27(木) 18:06:17.50ID:oUYWih0l
だからexcel をhtmlとして保存するだけだろ
2021/05/27(木) 21:25:46.25ID:uWNxEgvG
>>725
リモートワークに対応している企業
F#(38)
Haskell(35)
Purescript(13)
https://github.com/erkmos/haskell-companies
834デフォルトの名無しさん
垢版 |
2021/05/28(金) 20:40:09.32ID:yAnFtbcz
SPAっていうのが流行ってるみたいだから
Vue.jsでやってみたんだけど、v-forでデータ取り出す部分だけ遅くなって不自然になった
これって改善できるの?

あといちいちJSONにしなきゃいけない理由もわからない。
Laravelでそのまま渡せた
2021/05/28(金) 21:46:10.68ID:NBcE/coZ
PHPなんてCGIに毛の生えた化石じゃん
2021/05/29(土) 09:48:03.20ID:nTYZXgcl
PHPはもとからCGIを使わないのが売り
2021/05/29(土) 11:59:05.69ID:T6353Tmf
それ自身がスクリプトを動かすCGIとして書かれてるだろPHPは
そりゃ他のCGIつかわんのは当然
2021/05/29(土) 12:02:51.01ID:DLhoEVoU
他のCGIってなんだよw
2021/05/29(土) 12:07:50.02ID:T6353Tmf
PHPだけで済ませるから他のCGIプログラムをホストしてつかわんという意味だよ
2021/05/29(土) 13:01:47.18ID:nTYZXgcl
>>837
PHPが登場した当初にアピールしていたのは
CGIではなくApacheモジュールを使うから高速であるということ
CGIの仕組み自体を使っていない
2021/05/29(土) 13:15:02.83ID:HJC/ZOcF
CGIに毛の生えた化石という論評の是非はさておき、それに対して、元からCGIを使わないのが売りという反応は噛み合ってないな
2021/05/29(土) 14:27:55.78ID:ehKbAfuY
>>834
日本6位、YouTube で有名な雑食系エンジニア・KENTA のサロンでは、

Ruby on Rails, Linux, Docker, Node.js(Webpack, Babel), Bootstrap,
VSCode(拡張機能・Remote WSL, Remote Container)、データベース、
Heroku, CircleCI までが初級カリキュラム

さらに最近では、AWS Fargate, Terraform, SPA(React, Vue.js), TypeScript も入る

女性1人で、Rails, Heroku, Bootstrapで起業していたのが、
最近では、Fargate, Terraform, SPA も必須になってきた

どこかの学校が新技術を採用したら、転職の競争上、すべての学校も採用せざるを得ない。
今では、1年の未経験者が、10年以上のプロよりも、技術力が上になってる!
843デフォルトの名無しさん
垢版 |
2021/05/29(土) 16:36:36.98ID:eCdX3xcf
cgi.rb : えっ君らこれ本気で使ってるの?
2021/05/29(土) 23:55:16.84ID:nTYZXgcl
>>841
登場時点でCGIを使わないという本質的に違うものに対して
CGIに毛が生えた程度というのはおかしいってことだよ
2021/05/30(日) 00:08:47.75ID:ClvkxSVZ
はいはいCGI2.0ね
2021/05/30(日) 00:24:47.48ID:iekbxZ9w
>>844
CGIを使わない⇒本質的に異なるとな?
自分でも苦しいと思わないのだろうか
ありがちな例文「素人に毛が生えたような役者」の場合でいうと、素人≠役者(プロ)でも使えるのは自明じゃん
CGIとPHPの役割や立ち位置が同じだと元の発言者が思ったならこの表現は成立するし、反論するならそっちの妥当性だろ
2021/05/30(日) 12:47:19.86ID:DbVDrryp
>>846
本人がそう思ったからで成立するなら
CGIとGoogleのクラウドサービスも役割や立ち位置が同じだから
GoogleのクラウドサービスはCGIに毛が生えた程度のものっていう理屈も言えるんだが?

どちらにしろCGIに毛が〜って言ったやつが
技術を何も知らない素人だという証明にしかならん
技術を知っていればCGIとそうでないものを同一視したりしないんだよ
2021/05/30(日) 13:09:31.06ID:ClvkxSVZ
>>847
「ところで、カモノハシが卵を産むのは知っているか?」
2021/05/30(日) 14:03:12.70ID:b5JrJ9vZ
>>847
「反論するならそっちの妥当性だろ」としたとおり
俺はPHP(の用途や役割)がCGIに毛が生えたものという主張が妥当かどうかには興味ないよ
これまでも論旨自体に賛否を一切示してないことをもう一度強調しておくわ
筋違いのズレた反論をしているからズレてると指摘しただけだ
命題が真が偽かということと、CGI≠PHPであるという前提の中で、語の用法が適切で文として成立しているかどうかは別のこと
プログラミングしたことあるなら流石にわかるよな?
いやときどきこういう区別が本当に理解できてるのかあやしいやつ結構いるよな…
2021/05/30(日) 14:34:27.31ID:DbVDrryp
>>848
知ってるけどそれが今の話となにか関係あるの?w
2021/05/30(日) 14:36:11.80ID:DbVDrryp
> 俺はPHP(の用途や役割)がCGIに毛が生えたものという主張が妥当かどうかには興味ないよ
興味がないならお前には関係ないじゃん

PHPの役割がCGIに毛が生えたものじゃないって話をしてるんだから
PHPの役割例・・・wikipedia、wordpress
2021/05/30(日) 14:38:05.79ID:DbVDrryp
そもそもCGIというのがなにかわかってないんだろう
言語じゃないぞ。

ウェブページを表示する仕組みの中で、とても遅い仕組み
だから今では使われていない
2021/05/30(日) 14:49:12.26ID:x7z1bfzn
DI(dependency injection)について質問です
どうも存在価値がわからないのです
世間一般ではよく使われているので、自分の理解が足りていないのは自覚しています。
DIの何が便利なのかを教えてほしいです。

kotlinの以下の記事を使わせて頂きます。
https://qiita.com/klriutsa/items/3989b280ce659df18e2c
この記事には以下の3種類のコードが提示されています。
・1.依存性の注入が無いAndroidのコード例
・2.DIを使わずに書いた場合
・3.DIを使って書く

1番目を2番目にする事は理解出来ます
2番目から3番目にする事が「DI」と呼ぶらしいですが、メリットが分からないです

差分を取ってみました。
https://i.imgur.com/yDX4Pdh.jpg
「ArticleClient().create()」だった部分がDIを使ったコードだと「service」の変数一つになっているのは理解できますが
それ以外にinjectする処理が増えて、トータルではマイナスになっているように見えます。
DIのメリットで「テスト時に処理を差し替え出来る」とも聞きますが、この例ですとDI前も後もArticleServiceクラスに依存していて何も変わっていないように見えます。

インスタンスを呼び出すメソッドを作ってインスタンスを呼び出す事に比べて、DIというのは何が優れているのでしょうか
2021/05/30(日) 15:01:19.37ID:DbVDrryp
>>853
DIを文字通り依存関係を注入するものだと思っているからわからない
下手なやつが使うと日付オブジェクトまで外部から注入しようと考えるからアホらしいw
DIは基本的にビジネスロジックに使うもの

DIを理解する前に前に適切な設計というのを理解しないといけない
適切な設計というのはクラスごとの役割・責務がちゃんと分離されているということ

そういう場合にこのクラスのビジネスロジックは、別のクラスのビジネスロジックを"利用する"という時に、
別のクラスをテスト用のクラスに差し替えられるようにしておけば、別のクラスを使わずに単体テストが可能になる
テストというのはなるべく小さな状態で行うもの。そうしないとどこに原因があるのかわかりづらくなる

テストクラスへの差し替えが簡単にできる言語であればDIは必要ないが
そういう場合でもDIを使っていれば、ここで差し替えてテストすることを意図してるんだなとわかる
2021/05/30(日) 15:07:57.29ID:McAyMcZB
>>853
君の疑問はもっともで、この記事が悪い
ArticleServiceが具象クラスなら特にDIを使って注入する意味はない
DIする場合、普通ArticleServiceはinterfaceにしておいて、場合によってバックエンドAPIからArticleを取得する実装と、テスト用のモック実装とを差し替えたりする
2021/05/30(日) 15:21:52.08ID:x7z1bfzn
>>854-855
うーん、とりあえずわかりました。
テスト(等)時に実装の差し替えを、最低限のコストで行う手段 と、覚えておきます。

確かに現状はテストも何もなく 実装コードを書くだけで満足してますが
ちゃんとテストを書いて、最低限の変更で実装を切り替えするようになれば理解出来る・・かな
2021/05/30(日) 15:28:54.83ID:QVEYwMBG
DIは依存関係を減らすというものだが
実際それが必要なのはテストぐらいだよねってこと
2021/05/30(日) 15:38:52.15ID:XTsG4vqP
DIなんて普通の開発ではまず使わない
そもそもこれって簡単に機能を切り替えられる仕組みってだけだし
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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