C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/22(土) 15:36:53.26ID:S+KK7a41
■Visual Studio 2015 Community & Express (無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part92 (実質93)
http://echo.2ch.net/test/read.cgi/tech/1485589613/

■次スレは>>970が建てる事
建てられない場合は他を指定する事。
2017/07/26(水) 22:42:41.57ID:kVXZn+TQ
>>521
2ちゃんは初めてか?
2017/07/26(水) 22:45:27.80ID:ZdFVUMtA
いやーだらだら書くだけなら簡単だよー
思いついたこと片っ端から書いていったらいいんだもん
もちろんいい長文は難しいけどね
2017/07/26(水) 22:51:57.92ID:qHYVpVTl
>>522
あほかこいつ。コテもつけず単発IDのゴキブリが話に入ってくんな。100年ROMってろや。
2017/07/26(水) 22:57:09.38ID:ZdFVUMtA
このスピードで単発煽りとかマジか
2017/07/27(木) 00:05:39.25ID:pBeXUKYV
ここ何のスレだよwww
527デフォルトの名無しさん
垢版 |
2017/07/27(木) 01:02:19.10ID:q1rhXXen
ID:0qyy9e35 = ID:kVXZn+TQ = ID:ZdFVUMtA = ID:pBeXUKYV

分りやすいwww
2017/07/27(木) 02:12:01.71ID:dT7rWBv0
>>524
コテつけろよ
2017/07/27(木) 05:07:47.58ID:8Pl9AOTH
ここの住人よりMS社員の方が信頼できる
2017/07/27(木) 06:41:15.13ID:dT7rWBv0
肩書程度で信じるなよ
2017/07/27(木) 06:42:14.60ID:DHwQ8OYH
ちょまどはMS社員と言っても営業みたいなもんでプロダクト作ってるわけじゃないからなあ
2017/07/27(木) 06:43:39.12ID:DHwQ8OYH
あと、MSの公式な見解としては「VSのデフォルトでは警告」という事実があるわけだし
2017/07/27(木) 12:44:28.47ID:dT7rWBv0
デフォルトで警告でるのか?
2017/07/27(木) 15:14:21.59ID:Z//NMKrJ
>>533
2015でも2017でもそんな記憶がない
2017/07/27(木) 15:43:58.34ID:rNF4SuJb
>>534
IDE0003ね
ちなみに.NET Coreのスタイル規約
https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md
2017/07/27(木) 15:59:54.41ID:dT7rWBv0
つまりthis書いても省いてもデフォルトじゃ警告でないってことだな
2017/07/27(木) 19:12:46.44ID:+34Fnjid
コーディングスタイルなんてどうでもよかねえか
パブリックAPIが標準から逸脱していない
クラス(1ファイル)の中で一貫性がある
これだぇ守ってくれりゃとくに苦もなく読める
それよりまともな構造を追求することに労力を使おう
構造がクソだとスタイルでどう頑張っても読めないよ
2017/07/27(木) 22:06:26.64ID:P8zzUyc0
>>537
お前が読めるかどうかなんてどうでもいい
プロジェクトに参加してるあまり程度の高くない協力会社のコーダーにも読めることが必要
まあコーディングルールの話に構造がぁって言う奴はたぶんうちが使ってる協力会社よりレベルは低そうだが w
2017/07/27(木) 22:11:23.55ID:aAe8+IMH
>>537
読めるかどうかじゃなくて、いろんな書き方されると読むのにいらん苦労するから
書き方のスタイルを決めましょう、って言うのがコーディングルール
いろんなスタイルの大量のファイルやクラス読まされてみ

ちゃんと動いてるコードが読めないようならプログラマ失格だな
540デフォルトの名無しさん
垢版 |
2017/07/27(木) 22:14:31.14ID:8Pl9AOTH
http://channel9.msdn.com/Events/de-code/2017/TL01
17:25〜this戦争
2017/07/27(木) 22:36:28.25ID:lpXAd1IH
C#実践開発手法という本が気になってるんですが、5000円越えと高価なので迷ってます。
この書籍、良書といえますか?
2017/07/27(木) 22:58:14.83ID:+34Fnjid
スタイル規約だけはしっかりしてるスパゲティコードを何度見たことか
構造がスッキリしてればスタイルの違いなんてなんの苦労にもならない
ユニット内で統一感が取れてれば十分
それがユニットというものだ
543デフォルトの名無しさん
垢版 |
2017/07/28(金) 00:44:11.19ID:OXiEJljk
>>542
スパゲティの意味が違うだろ。
2017/07/28(金) 01:22:34.38ID:zJzFrb+p
スパゲティ知らないやついるんだ。
ドン引き。
545デフォルトの名無しさん
垢版 |
2017/07/28(金) 04:25:03.23ID:OXiEJljk
多少わかりにくいレベルでスパゲティというやつがいるから困る。
2017/07/28(金) 04:42:25.21ID:OWwd/o6o
>>541
VSのフォルダに言語仕様書のWord文書が入っているがそれで十分な気がする
547kadesu
垢版 |
2017/07/28(金) 10:39:02.10ID:aEC8q9AI
■概要
HTML・JavaScriptを自動解釈してくれるライブラリやツールを探しています。

■詳細
疑似WEBブラウザを開発中です。

指定したURLへのHTTPリクエストを飛ばして返ってきたレスポンス(HTML・JavaScript)を自動処理して、
後続のHTTPリクエストも飛ばす、というものです。

1回目のクリエストを飛ばしてレスポンスを取得するところまでは開発が完了していますが、
そのレスポンスを自動で解釈して次のHTTPリクエストを発行する機能を作りたいのです。

これを愚直に行うと、
レスポンス内容の中からURLに該当する文字列をピックアップしてURLを抽出して後続のリクエストを飛ばす・・となってしまいますが、
近年JavaScriptが自動的にリクエストを飛ばす処理も多くみられますので、現実的ではありません。

なので、2回目以降のリクエストを自動的に行うために、
HTML・JavaScriptを自動解釈して、2回目以降のリクエストURLを抽出してくれるようなライブラリやツールを探しています。

良いライブラリやツールをご教授下さい。(URLやライブラリ名など)
厳密じゃなくても似たようなものでも結構です。
※ちなみにWEBブラウザのような表示機能は不要です。あくまでHTTPリクエストを飛ばしたいだけです。

■開発環境(本質問とはあまり関係ないですが一応掲載します)
Microsoft Visual Studio Express 2012 for Windows Desktop
C++ CLI(NET Framework)
2017/07/28(金) 11:03:17.06ID:H9Qo6cXw
>>547
どこかで最近見たような内容だな
ここはc#スレなのでc++はスレチ
2017/07/28(金) 11:09:50.96ID:4kYE+X2u
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10177240120
2017/07/28(金) 11:11:01.88ID:epWJgUcs
>>547
要はスクレイピングやWebサイト自動テストの類だろ
Selenium使え
2017/07/28(金) 11:11:29.66ID:4kYE+X2u
stackoverflowにもあるなw
2017/07/28(金) 11:57:07.10ID:H9Qo6cXw
とんでもないマルチポスト野郎なのか
それとも誰かが勝手にやってるのかw
553デフォルトの名無しさん
垢版 |
2017/07/28(金) 16:43:43.52ID:AFEjF9o4
失礼しま〜す
どこかにあるかもしれませんが質問を。

C#を  というか、プログラミングを始めたばかりなんですが、
メイン処理のソースが、ほかのところに回せそうな処理で長くなってしまうのは
格好が悪いとおもうのですが、自力ではどうにもならないです。
なにか、分散させる方法のアドバイスがあれば、どうかご回答をお願いします。
2017/07/28(金) 16:47:10.00ID:6ZUJ6Gan
>自力ではどうにもならないです

の意味がわからん
お前の書いたソースじゃないのか?
555デフォルトの名無しさん
垢版 |
2017/07/28(金) 16:58:23.24ID:AFEjF9o4
私が書きました。
でも、なんかダサい気がします。気がするんですがどう修正したらいいのかがわからなくて…
2017/07/28(金) 16:59:05.44ID:eCIIVBTi
動作を早くしたいのならループ中の余計な動作を減らすようにするとか
保守しやすいコードを書きたいのならデザインパターンなどを勉強するとかあるが
>>553
ソース示さずにそんなこと言っても自分のセンスの問題なんだからどうしようもないから諦めろ
557デフォルトの名無しさん
垢版 |
2017/07/28(金) 17:02:14.71ID:AFEjF9o4
>>556
ソース貼ろうか考えたんですが、ちょっと…

わがままです。ごめんなさい
2017/07/28(金) 17:10:32.68ID:6ZUJ6Gan
C#ならリファクタリングで処理を切り出したりしやすいし
リーダブルコードとか良いコードを書く技術とか読んで
いろいろやってみりゃいい
559デフォルトの名無しさん
垢版 |
2017/07/28(金) 17:17:37.98ID:AFEjF9o4
もっとソースみるなり勉強してきます。
ありがとうございました。
2017/07/28(金) 17:18:42.17ID:4kYE+X2u
短くしなきゃいけないという強迫概念に襲われてるやつ多いけど、別に長くてもいいよ。気にすんな
2017/07/28(金) 17:20:30.90ID:mbT3OJMo
ソースをhttps://ideone.com/みたいなとこに張ったら一発だよ
ここのお兄さんがたが知恵を絞って色々批判してくれるよタダで
そしてそれが、すこしの恥とひきかえにおまいを成長させる
562デフォルトの名無しさん
垢版 |
2017/07/28(金) 18:19:30.49ID:AFEjF9o4
>>560>>561
どうもありがとうございます
2017/07/28(金) 19:57:56.53ID:wfFGjuoD
前略main(引数略)
{
処理a;
処理b;
処理c;
処理d;
リターン
}
564デフォルトの名無しさん
垢版 |
2017/07/28(金) 20:32:00.92ID:AFEjF9o4
なにやら、「Stateパターン」というのを使えばきれいになりそうです
2017/07/28(金) 21:13:19.68ID:/6BVCD/F
Stateはアンチパターン
「状態は明示的かつ最小限に」が今風
566デフォルトの名無しさん
垢版 |
2017/07/28(金) 21:20:18.20ID:AFEjF9o4
へ〜。
じゃあどうするとよいのでしょうか...
2017/07/28(金) 22:10:55.08ID:2VdCpbf6
いいから>>561のサイトにお前の書いたコード貼れ
2017/07/28(金) 22:13:50.04ID:ItR12R6X
ろくにコード書かない初心者ばかりのスレに貼ってもしょうがないな
569デフォルトの名無しさん
垢版 |
2017/07/28(金) 22:42:33.73ID:AFEjF9o4
https://ideone.com/cHsNov

これでどうか。
どなたか優しくご教授になってくださるとうれしいです...
570デフォルトの名無しさん
垢版 |
2017/07/28(金) 22:44:40.17ID:AFEjF9o4
ほんとにはじめたてです。
VisualVasic使ってますが、機能がいまいち使いこなせません。
571デフォルトの名無しさん
垢版 |
2017/07/28(金) 22:49:28.94ID:AFEjF9o4
>>569
のやつ思った通りに動かないやつでした。
また貼りにきます
2017/07/28(金) 22:54:19.21ID:wndodTEE
長い... か?
573デフォルトの名無しさん
垢版 |
2017/07/28(金) 22:54:29.48ID:AFEjF9o4
https://ideone.com/C2DZMv
です。よろしくお願いします。
574デフォルトの名無しさん
垢版 |
2017/07/28(金) 22:55:23.06ID:AFEjF9o4
>>572
これから内容増やしまくるので、
本体から離したいです。
2017/07/28(金) 23:55:21.82ID:ai+ukChT
プロジェクトまるごとどこかにUPした方が口出ししてもらえるかもよ
576デフォルトの名無しさん
垢版 |
2017/07/29(土) 00:21:01.93ID:1x0TX8t+
>>575
そうですね、ありがとうございます
2017/07/29(土) 00:22:42.64ID:flgXEmXz
>>573
分岐条件と処理の対応表作って飛ばすだけじゃだめなの?
2017/07/29(土) 00:29:09.54ID:gp3BUyJn
長い処理は長くていいと思うが保守目的なら、parial使ってソースファイル分けるのがいいかな。
2017/07/29(土) 00:56:00.91ID:kJ48tJGw
これはどうしようもないとまで言えないけど
こんなもんだろ
2017/07/29(土) 02:51:51.63ID:gp3BUyJn
すまん、スペルミス。partial ね。
581デフォルトの名無しさん
垢版 |
2017/07/29(土) 12:30:26.46ID:1x0TX8t+
>>579
こんなもんなんですね!
では気にせず書いていきたいと思います

>>580
partialについて勉強して、良さそうだったら使ってみようかと思います

ありがとうございました
2017/07/29(土) 12:37:15.78ID:oSnm1RVH
長いかどうかというか責務が分割されてるかだよ
責務が分割されてるなら自然と短くなる
ショートコーディングを突き詰めるのはその後
583デフォルトの名無しさん
垢版 |
2017/07/29(土) 12:41:24.13ID:1x0TX8t+
処理を1つ1つのシーンごとに完成させたいんですが、
キーイベントと描画で、一緒に書きたい部分が分けられちゃってるんです。
それを、できたらどうにかしたいと思います。
2017/07/29(土) 18:43:03.15ID:gp3BUyJn
ベースとなるシーンクラスを作る。キーイベントや描画の仮想関数も入れとく。
個々のシーンごとに、継承してクラスを作り、そこにキーイベントと描画を実装する。
ストーリー進行管理クラス作り、そこでシーンクラスの切り替えを行う。
2017/07/29(土) 19:23:12.73ID:TPlqyDtD
キーイベントをコマンドに変換してモデルに投げるクラス
モデルを描画するだけのクラス

これは分けとかないと後で泣くよ
2017/07/29(土) 20:14:15.70ID:C4g3d83/
C♯を触ってるけど、独習C♯をちょっとかじって、作りたい物ちょこちょこ適当に作ってるから綺麗なコードってのがよく分からない
このスレの人達はサンプルソース見たりとかやりやすい作法とかどうやって見つけてますか?
2017/07/29(土) 20:31:18.14ID:TPlqyDtD
>>586
本を読む
コードを書く
レビューする
レビューされる
常に考える
2017/07/29(土) 20:41:15.53ID:C4g3d83/
>>587
レビューする、されるは考えた事なかったですねー
作ってる物が物なだけにあんまり同じ方向でやるような思考が無かったのもありますが・・・
ありがとうございます
2017/07/29(土) 20:41:31.78ID:iH5rcp7M
>>586
GitHubの有名なプロジェクト見てみ
2017/07/29(土) 20:45:58.77ID:C4g3d83/
>>589
あー、そういうところから見るって手もあるんですね
こういう管理系統のモノ入れても使っていませんでしたが、そういう使い方もしたいですね
2017/07/29(土) 21:02:11.91ID:zJVnUUbX
>>589
こういうアドバイスする奴は実は自分でソース見たことない奴だと思うわ
結構癖のあるソース多いし考え方って想像以上にバラバラだから初心者が見たら余計に混乱するだけ
2017/07/29(土) 21:08:27.57ID:nvDf8a0u
本読んで勉強するレベルの奴はきれいなソースなんて考えなくていいよ
まずは動くソースかけるようになれよ
動くの書けたらごっちゃなソースになってるだろうから、そこで余裕があったら考えりゃいい
昨日の質問の奴みたいにその書いたソースに合わせてな
2017/07/29(土) 21:21:04.34ID:AM/Q5FkU
>>586
ブログで成果物のコード公開してみたら?
コメント等で指摘してもらえたりするかもよ?
2017/07/29(土) 21:34:41.88ID:C4g3d83/
>>591
使いたい機能で備忘録とかサンプルみたいなのは見たりするけど、
プロジェクトレベルで無いかなーとかは思ってたので、どんな感じかは興味ありますね

>>592
動くものはそこそこ作ってるんですけど、オブジェクト思考とかまったく勉強してないので、
関数切り貼りとか汎用関数適当にぶち込んだクラス使い回しで、ほぼベタ書きみたいなもんなんですよね
たまーに少し凝って少しずつ汎用度は上げてますが

>>593
やっぱり公開するのが一番手っ取り早い上達方法だとは自分も思います
自分で改善するには、現状の自分のレベルよりも上の人からきっかけ貰わないとそもそも気付けないパターンのが多いですし

基本的にはスクレイピングしてDBにデータを集めて、それを色々と分析するようなプログラム書いてるだけなので、
ベタでも動かすのは大体問題無いんですよね
しかし、こういう作法は効率悪いよとか、こういう書き方すればいいじゃんみたいな参考コードから
自分のコードに付け足したいってイメージでした
2017/07/29(土) 22:32:29.25ID:1IyGodP3
>>594
そういうのはC#よりPythonなどのスクリプト使ったほうがいいんじゃないか?
圧倒的に手っ取り早く作れるよ
2017/07/29(土) 22:42:14.14ID:C4g3d83/
>>595
Rubyでスクレイピングしてる参考書買ってちょっと書いてた時期あるんですが、それが少し動作遅かったのでC♯で移植してからずっとC♯使ってるんですよね
後はC♯のchartクラスとかも少し触ったりしてます

Pythonは触ったこと無いですが、作業内容に合わせてコーディング時間調整できるぐらい色んな言語触れる用になるのは目標ではありますね・・・
2017/07/29(土) 22:50:27.83ID:d/bKk9xj
Pythonだとmatplotlib使えばクソ簡単に高品質なグラフ描けるよ
スクレイピングがスクリプトで遅いのはXPathをうまく使えてないんじゃないかな
スクリプトを使うなら重い処理は極力ライブラリに丸投げするのがコツだ
2017/07/29(土) 23:02:02.11ID:iH5rcp7M
>>591
これがいわゆる井の中の蛙ってやつです
2017/07/29(土) 23:12:38.60ID:TPlqyDtD
スクレイピングはjsだろ
600デフォルトの名無しさん
垢版 |
2017/07/30(日) 03:04:38.72ID:1m5312Xu
>>586
その独習C#とかで書かれてるようなのがいわゆる綺麗なコード。
まあ、有名ライブラリ書いてるコミッタとかでもそんな綺麗じゃない場合もあるので、ぶっちゃけ優秀な成果物作ったもん勝ちってのはある。
勝てば官軍。
行儀のいい無能より、素行不良でも有能な奴が好まれるのはどの業界でもよくある。

勿論、綺麗なコード書けるに越した事はないけど。
2017/07/30(日) 04:38:20.28ID:9ZftmVJd
昔はDr.Dがレクチャーしてくれたのにな。
2017/07/30(日) 04:54:53.83ID:ZiKC4drW
スクレイピングはPowerShellでやってる
603デフォルトの名無しさん
垢版 |
2017/07/30(日) 05:57:53.68ID:1fafOaKT
「きれいなコード」とはまた違うのかもしれないけど、「C#らしい生産性の高いコード」ってなかなか書けないよね
C++やC++/CLIが高機能かつ安全になりすぎたせいもあってC#の優位性が失われた気がするんだよな
VisualStudioやVSCodeの補完機能の効きが違うせいでC++よりC#が使いやすいとか、機能が少ない分C#の方が他人の書いたコードが読みやすいとか、今となってはそれぐらいしかメリットが無い気がする
2017/07/30(日) 06:03:17.61ID:Qmd4c3j+
今のC++ってC#に匹敵するほど生産性高いの?
2017/07/30(日) 06:03:50.53ID:lj6eZdZL
生産性の高いコードは言語と無関係だと思うな
2017/07/30(日) 06:08:48.44ID:ynobldaf
>>598
お前が井戸からでて実際のコード見てから語れよ w
2017/07/30(日) 06:27:12.70ID:9ZftmVJd
生産性と保守性はトレードオフ。
2017/07/30(日) 07:18:45.15ID:hMQywZRx
>>606
見てないわけねーだろカスwww
2017/07/30(日) 07:57:39.53ID:ynobldaf
>>608
どこのソースを読んでどんなところがいいのか具体的に言ってみ
2017/07/30(日) 08:02:02.87ID:6NpzZP8L
さすがC#erはパッパラパーやな
2017/07/30(日) 08:08:37.81ID:lj6eZdZL
人のソース見てもたいていは小手先の表現しか参考にならない
汚いコードとの対比がないからな
人のソース見てそれ以上がわかるやつは相当デキル
2017/07/30(日) 09:04:32.55ID:zdXHYEze
>>609
Cakeでもいいから頭に入れてもらおうか
2017/07/30(日) 09:41:14.51ID:reLfmDHf
綺麗なコードは端的に読みやすくて再利用性が高いってイメージで使ってました
後から機能拡張し易い書き方とかもそうですね
基本的にはオブジェクト指向な感じです
2017/07/30(日) 09:42:29.47ID:ynobldaf
>>612
で、どんなところがいいのか説明してみ
名前だけならソースなんて見れないボンクラでも書けるし w
2017/07/30(日) 19:11:49.81ID:mbPMaYUG
webbrowserコートロールにedgeが使えるようになるのはいつ頃でしょうか?
2017/07/30(日) 19:15:45.46ID:lj6eZdZL
最初から使えるよ・・・
2017/07/30(日) 20:45:25.67ID:dej2VYm/
>>614
よおボンクラ
2017/07/30(日) 20:51:26.25ID:uWnLP08p
>>614にまともな返事がない時点で勝負は決した
敗者は頭を下げるように
2017/07/30(日) 20:58:34.14ID:dej2VYm/
>>618
Cakeって例が上がってるだろ
2017/07/30(日) 21:23:35.05ID:ynobldaf
>>619
日本語が理解できないのかな?

> 名前だけならソースなんて見れないボンクラでも書けるし w
2017/07/30(日) 21:38:52.09ID:hMQywZRx
>>620
うん、ボンクラだから理解力皆無ってことね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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