スレ立てるまでもない ..
83:デフォルトの名無しさん
22/02/18 00:57:02.11 NG7rOjYN.net
古い体質の会社なんでしょ
踏み台にして転職の1手
84:デフォルトの名無しさん
22/02/18 05:37:11.37 YI0dSge1.net
スタティック変数って多いとメモリ食うの?
85:ハノン
22/02/18 05:59:36.30 AKyBDynF.net
>>83
static であろうと auto であろうと
86:デフォルトの名無しさん
22/02/18 06:02:47.93 k4bZDTy8.net
環境のバージョンが古いのはどうしょうもないんだろうけどテストコードは書けばいいだけじゃねーの?
バグには異常に厳しいんならなおさら
87:7
22/02/18 11:01:28.89 tiifqQ9V.net
>>73
に書いたように、
Ruby on Rails の初心者コースには、CI/CD も含まれている。
CircleCI, Github Actions で自動テストして、Heroku へデプロイ。
初心者は皆、この方法。
出来る香具師は、AWS Fargate, Terraform
BDD/TDD のRSpec では、ソースコード自体が仕様書になっている。
自動テストでは、仕様をチェックする
88:デフォルトの名無しさん
22/02/18 13:44:27.70 y8iEh81v.net
クソコードだらけだとテストコードなんて書けないからな
89:デフォルトの名無しさん
22/02/18 17:40:22.12 sHuFzTSW.net
RでCSVファイルからグラフを書こうとしています。
列名に+やー(Hoge-1的な)がある場合にsummariseなどがエラーになってしまいます。
列名を変える以外で正しく列名を認識させる方法はあるでしょうか。
90:デフォルトの名無しさん
22/02/18 19:53:43.34 2yv+zKRk.net
Rエアプだけど列名が数式扱いされてそう
1行目だけ文字列として取得するモードないんか?
91:デフォルトの名無しさん
22/02/18 20:16:11.13 91Y1b9Df.net
読み込むときにcheck.names=FALSEじゃね
92:デフォルトの名無しさん
22/02/18 21:51:42.06 e8a3Yeks.net
Ruby on Railsなんて使ってるの今日日クソシステムしかねえだろ
93:デフォルトの名無しさん
22/02/18 22:52:16.78 10LPkysZ.net
?
94:デフォルトの名無しさん
22/02/19 22:36:43.10 vZO0UwmG.net
友達からプログラマーになったらデータをDBに出し入れすることに人生を注ぐことになるよ
と言われたのですが、そうなのでしょうか?
もっと魔法を扱うような仕事だと思ってたので本当だとしたら少し悲しいです
95:デフォルトの名無しさん
22/02/19 22:51:14.71 x/upE6G9.net
まあ今どき組み込みでもDB使ってたりするから友達の言うことは概ね正しい
魔法を扱うような仕事したいならGoogleとかに就職して人工知能関係の仕事するとかかな
96:デフォルトの名無しさん
22/02/19 22:58:33.01 lqH+muYT.net
>>93
概ね2通りです
DBにデータを出し入れする処理を作る人達
その処理を呼び出すUIを作る人達
それ以外もいますが少数派です
97:デフォルトの名無しさん
22/02/19 23:52:14.83 jpHr6Fw9.net
あとはセキュリティとかグラフィックスとかいいんじゃないかな
センスがあればいける
98:デフォルトの名無しさん
22/02/20 03:34:44.22 X6V97+A2.net
AWSは1年間タダで使えるからAWSの勉強(!?)とLinuxの勉強が併せてできるぞ
ボタンクリックするだけでサーバが立てれるのは感動したもんだ
99:デフォルトの名無しさん
22/02/20 09:31:35.45 TPBxANJB.net
私はこれまでプロパティという概念とメソッドという概念を
クラスの中の変数宣言とクラスの中の関数宣言と理解してきました。
ところがJavaScriptを学ぶ中でこの理解を覆す概念で出くわしました。
それらがデータプロパティとアクセサプロパティです。
アクセサプロパティというのはゲッターとセッターを指すのだそうですね。
ゲッターとセッターはクラスの中の関数であるはずなのに
プロパティと名づけられたことで混乱しています。
私がこれまで理解していたプロパティとメソッドの区別は間違っていたのでしょうか。
100:デフォルトの名無しさん
22/02/20 10:50:48.81 M64rHYnp.net
大きな誤りは「呼び方」に拘ってる点だな
ネーミングなんて細かいこと気にすんな。そんなのどうでもいい
getter=classの中の変数値を取得するための関数
ってなるだろ
101:デフォルトの名無しさん
22/02/20 11:05:45.11 uUEkIMOM.net
>>98
プロパティの読み書き時に何らかの処理をすることができるようになった
って思えばいいんじゃね?
102:デフォルトの名無しさん
22/02/20 13:09:01.63 UatLedwh.net
Javaにプロパティはないよ
クラスのメンバ変数をプロパティと捉えるのは間違い
せいぜい文脈によって広義に許容される程度
Java7の頃に言語仕様に追加する議論があったんだけど、JavaBeans仕様のgetter, setterが長年プロパティ相当の役目を果たしてきたので、もうそれでええやんとお蔵入りになった
プロパティってのはそのオブジェクトの属性
この属性っていうのは実装面での話よりもやや論理的な概念
プロパティの値を聞かれたときに内部の変数の値を返すのが最も一般的なパターンだけど、別の変数の値を演算してから返してもいいし、データベースから値を問い合わせてから返してもいい
値を要求した側から同じようにアクセスできる属性なら何でもよくて、それが変数なのかそうでないのかは内部実装としてカプセル化されることこそがプロパティの特徴
JavaではhashCodeというObjectの属性がメソッドとして提供されているけど、こういうのは本来プロパティがふさわしい
103:デフォルトの名無しさん
22/02/20 13:10:18.43 UatLedwh.net
おっとJavaスレじゃなかったか
104:98
22/02/20 14:30:27.02 TPBxANJB.net
お答えくださった皆様、ありがとう。大変勉強になりました。
>>101
なるほど、そう考えると整合性がとれますね。
105:デフォルトの名無しさん
22/02/20 14:59:19.23 Lu49ev44.net
>>93
いやプログラマーになったらモテるからチンコをマンコに出し入れすることに人生を注ぐことになるよ
106:デフォルトの名無しさん
22/02/20 15:32:02.85 vRC3RkLD.net
DBの仕事は必ず仕事が収束するから精神的に楽なジャンル。わりと計画通りに進行しやすい。仕様変更もたかが知れてる。
いちばんキツいのはGUIギミックなどデザイン分野。ちまちま積み上げたものが全部パァになってやれセンスがないだの遊び心だの固い柔らかいだの抽象的デバッグが永続する。
リリース後もずっと言われ続ける
107:デフォルトの名無しさん
22/02/20 15:49:47.90 jGf7xG/B.net
個人的には後者の方が楽しそうに思えるんだが
108:デフォルトの名無しさん
22/02/20 15:57:15.34 pLdoUJHG.net
楽しいと楽(らく)は字は同じだけどベクトルが違うからね
109:デフォルトの名無しさん
22/02/20 15:57:42.70 YMeF5ZiJ.net
DB系のレビュー「ここの処理はこうした方が負荷が少ないと思うから修正してもらえる?」
画面系のレビュー「うーん、なんか『違う』んだよねぇ〜wちょっとこの辺見やすいように修正してもらえる?」
どっちの仕事がしたい?
110:デフォルトの名無しさん
22/02/20 16:05:45.12 uUEkIMOM.net
ああ~、やっぱり前の方がマシだったな、戻してこの部分の操作をいい感じにして…
う~ん、ここは1週間前のほうが良かったな、全部元に戻して初めから考え直そう…
賽の河原w
111:デフォルトの名無しさん
22/02/20 16:06:31.52 vRC3RkLD.net
デザイン分野は、下っ端のシロートでも全員バラバラに好きな意見を言ってくる。しまいに社長の意見で全部ひっくり返る。
こないだのヒカルの焼肉屋みたいに、空中分解してしまう。
112:デフォルトの名無しさん
22/02/20 16:20:05.56 jGf7xG/B.net
DB系のレビュー「なんか遅いから速くしてくれない?」
これは嫌だw
113:デフォルトの名無しさん
22/02/20 16:38:46.48 uUEkIMOM.net
>>111
そう?
まあどこがどう遅いのかとかどこまで速くすればいいとかを打ち合わせる必要はあるけど、そこら辺が決まれば改善提案はできるだろ
114:デフォルトの名無しさん
22/02/20 16:56:03.62 M64rHYnp.net
DBもUIもそれ以外も同じ
あとからああしろこうしろと変更入ることよくあるし
その対応終わったと思ったら、ひっくり返ってもとに戻すなんてよくある
115:デフォルトの名無しさん
22/02/20 21:13:51.71 7E+ac04f.net
>>110
社長「今運用してるDynamoDBでコレコレをLIKE検索できるようにしてくれや」
「もう顧客にOKしといたから明日までにやっとけ」
116:デフォルトの名無しさん
22/02/20 21:42:13.74 uUEkIMOM.net
>>114
そういうのはまた別な話
117:デフォルトの名無しさん
22/02/20 21:45:47.25 7E+ac04f.net
>>115
社長「は?DBならLIKE検索なんてすぐだろ」
「ついでにカラム増やしてほしいんやインデックスつけて」
118:デフォルトの名無しさん
22/02/20 22:04:23.11 uUEkIMOM.net
>>116
社長/上司/営業とエンジニアの軋轢の話はまた別
119:デフォルトの名無しさん
22/02/20 23:13:47.64 YMeF5ZiJ.net
つーか社長がそこまで技術的な部分に介入してくる会社の時点で地雷だろ
DBとかUI以前の問題
120:デフォルトの名無しさん
22/02/20 23:58:04.82 ws7MjhS+.net
思いつきをいうステークホルダーが一人だけでしかもある程度技術に興味があるなら時間を惜しまず説明すればいけそう
121:デフォルトの名無しさん
22/02/21 07:46:59.41 Gf4lGfIx.net
>>119
> 「ある程度」技術に興味がある
それ最悪やぞ
中身をよくわかってないのに思いつきでこうした方がいいとか言われて内心「それもう検討してダメってわかってるのに…」と思いつつ説明すると、いやこうすればいいだろって頓珍漢な代案出されて…
122:デフォルトの名無しさん
22/02/21 08:37:03.80 yf+sDODq.net
経験豊富なおれがいちばん大変だったのはコレ!って愚痴りたいまつり
123:デフォルトの名無しさん
22/02/21 08:39:06.68 lE+t15Lw.net
>>118
技術的な問題だから変更できない
なんて言う会社は外部から見ると無能の烙印押される
GAFA級にならないと
124:デフォルトの名無しさん
22/02/21 10:20:49.12 1BCnZvzG.net
おまえ(客)が金出さないからできないんだよ、よりも技術的な問題でできないんですの方が話がスムーズに進むんだよ
こっちが悪いと思ってなくてもすみませーんと謝るのと同じ
言葉通りに受け取るなって
125:デフォルトの名無しさん
22/02/21 10:36:05.50 g+AbY5XQ.net
>>120
これから先の世代の日本ではそういうお客様が爆発的に増えるだろうね
義務教育で中途半端に教えちゃうもんだから
126:デフォルトの名無しさん
22/02/21 13:12:10.99 hZ56K44U.net
>>122
いやそういう話じゃねーよ
社長がカラムやらインデックス云々言ってる時点で論外なんだよ
社長がやるべき業務は経営であって、そんな下流工程に気をつかうほど規模が小さい会社にそもそも入るべきじゃないってこと
127:デフォルトの名無しさん
22/02/21 13:20:58.55 hmj3zREZ.net
>>125
社長「実は先週から提携した顧客がいてまあまあ大手なんだがカラム追加して検索できたらうちのサービス利用してもらえるって言われたからすでに契約済みなんだよ」
「経営判断だからよろしく」
128:デフォルトの名無しさん
22/02/21 13:30:17.42 nzHPNFSp.net
検索用の読み取り専用RDB用意するだけだろ?
129:デフォルトの名無しさん
22/02/21 13:55:35.93 hmj3zREZ.net
>>127
社長「明日まで対応だからな。追加予算なんてない。そもそもカラム追加になんで検索用とか必要なんだよ!?俺が知らないと思ってバカにしてんのか!?」
130:デフォルトの名無しさん
22/02/21 14:40:04.74 EnKPT8cD.net
仕様変更、仕様の追加は別予算
これは社内、客にも徹底してもらわないと
131:デフォルトの名無しさん
22/02/21 15:25:09.72 hmj3zREZ.net
社長「そんな細かいことまでやってたら客を逃すんだよ!誰がお前の飯代払ってると思ってんだ!?いいから今すぐやれ!」
132:デフォルトの名無しさん
22/02/21 15:37:24.76 yoPE59bl.net
脳内社長のお人形遊び楽しい!w
133:デフォルトの名無しさん
22/02/21 22:30:28.08 isLiSRno.net
完全に0からゲームを作る場合はRPGツクールのような管理画面的なものから作り始めるのでしょうか?
それとも無の状態から1つずつ積み上げていく感じですか?
134:デフォルトの名無しさん
22/02/21 22:40:28.89 ytqVjd2E.net
開発規模と経験と実績から自明
素人が無から手を出すならとりあえず書き下ろしで駄目になるとこまで書いてみよう
135:デフォルトの名無しさん
22/02/21 23:58:22.13 NNYD5t07.net
動的なウェブサイトを作りたいということもあって、
JavaScriptの入門書(独習 JavaScript 新版とかいう本)を読んでいるのですが、
難しい上に長いから全然読み進められないのですが、
もっと良い感じの本は無いのでしょうか?
あったら教えてほしいです。
あと、やっぱりプログラミングの入門書は、最低一回は全てのページを読み終えた方が良いのでしょうか?
それとも、必要に応じて必要な箇所を見ながら実際にプログラミングをしていくという方が良いのでしょうか?
回答よろしくお願いします。
136:デフォルトの名無しさん
22/02/22 00:55:09.10 gr38xJ4b.net
作るの
137:が目的なら本は検索のためのキーワード抜き出しに使う程度でいい。読む必要なし。ぐぐりながら作れ
138:デフォルトの名無しさん
22/02/22 02:13:21.92 1HzLyYNk.net
何が難しかったのかわからんと答えようがないな
いきなり本買うんじゃなくて立ち読みで狙いに合ってそうか確認しなよ
139:デフォルトの名無しさん
22/02/22 06:38:44.59 am1CpfzL.net
>>134
その本は捨てるか売っていい
どうせ読まないだろ
全て読めば動的サイトが作れるようになるわけではない
やりたいことをググりながら似たことを説明しているサイトを参考にして実現していく
それを繰り返していくこと
140:デフォルトの名無しさん
22/02/22 08:57:53.94 3U05PTVk.net
プログラマーが読むべき本ってリーダブルコード以外にありますか?
技術的な本は専門的なことじゃない限り公式リファレンスとかで十分な気がしてあまり読む気がおきません
141:デフォルトの名無しさん
22/02/22 09:47:20.11 AiPUeoxY.net
読む気が起きないなら読まなきゃいい
142:デフォルトの名無しさん
22/02/22 12:05:41.84 PJNd20tl.net
Code Complete
143:デフォルトの名無しさん
22/02/22 12:34:42.18 ysWljmej.net
>>134
ブラウザを作っているプロなどは、2冊のサイの表紙のサイ本を読む。
プロ用の本だから、Ruby の数倍も難しい。
10年ぐらいの歴史の変遷を追っかけるのが大変
初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発、オライリー、2017
ES3 とか、古い規格には皆、苦しめられてきた。
JavaScript 第6版、2012、David Flanagan
だから、jQuery, Type Script, Coffee Script など、無数のAlt JS が作られた。
JavaScript でプログラミングするのが非常に難しいから
可読性が悪くて、バグが多いから
144:デフォルトの名無しさん
22/02/22 12:51:31.55 hpMnYFXb.net
サイ本は7版が最近出たぞ
145:デフォルトの名無しさん
22/02/22 15:11:04.16 wBV0PE3F.net
継承が良くないとよく聞くが何が良くないんだ?
継承をやめた結果がtypeプロパティによる条件分岐ではむしろ悪化してない?
146:デフォルトの名無しさん
22/02/22 15:16:17.31 UezYZR62.net
>>143
継承は難しいから
階層が深くなるとまた苦しい
最初のクラス設計時に将来の拡張まで考えたカプセル化等のデザインを考えるのも難しい
型で分岐はアホの極み、悪化してる
そうじゃなくてhas-aの委譲や関数型プログラミングで対処する
147:デフォルトの名無しさん
22/02/22 15:26:36.59 wBV0PE3F.net
>>144
継承をhas-aで解決できるとは思えないんだが…
解決できるとしたらそれはモデル設計が最初から間違えていただけでは?
関数型でやろうとするとtypeでの分岐にならん?
似たようなのでパターンマッチというのも最近は目立つようなってきたけどこれもtype分岐が複雑化しただけ
148:デフォルトの名無しさん
22/02/22 16:14:07.81 8ePuCs7J.net
愚痴ってるヒマがあるなら言った仕事をちゃんとやれ
149:デフォルトの名無しさん
22/02/22 16:57:29.98 mb+8cMlg.net
>>145
継承するにしてもオブジェクトを最初に生成するタイミングでは具象クラス名を書く
このときに依存性やストラテジを注入すれば継承に限らず多態性を実現できるよ
150:デフォルトの名無しさん
22/02/22 17:19:43.47 wBV0PE3F.net
>>147
それは仮想関数テーブルを自前実装するようなものでは?
151:デフォルトの名無しさん
22/02/22 18:57:12.23 VUFBPNtu.net
>>148
大仰な仕組みのいらないごくありふれたデザインパターンだよ
152:デフォルトの名無しさん
22/02/22 19:00:06.74 VUFBPNtu.net
書き込むたびにID変わるのなんでだよ楽天さんよぉ
153:デフォルトの名無しさん
22/02/22 19:00:27.47 VUFBPNtu.net
お、変わんなかった
154:デフォルトの名無しさん
22/02/22 19:41:34.73 fgsAKQYY.net
>>149
ストラテジは動的にストラテジを切り替える場合(例 :設定値による切り替え)や
アルゴリズムの枠だけ用意してストラテジを利用者に選ばせる(例:map, filter)場合
に使うパターンであって継承とはまた違うものですね
継承の場合は業務をモデル化したときに静的に関係が決まるのでここにデリゲートをかまして動的にする意味はないです
普通に仮想メソッドでいいでしょう
155:デフォルトの名無しさん
22/02/22 19:43:13.61 qcDIuRpU.net
継承が良くないとよく・・・聞かないぞw
ケースバイケースだろ。なんでそこで使うんだよって良くないのはあるけど
156:デフォルトの名無しさん
22/02/22 19:47:41.41 fgsAKQYY.net
>>153
TypeScriptに関わると継承憎し、クラス憎しな人が結構な率で現れますよ
157:デフォルトの名無しさん
22/02/23 02:58:54.87 2ldPnMFv.net
すいません。初心者です。超初歩的な質問で恐縮です。例えば↓
void draw() {
if(cam.available() == false) {
return;
}
cam.read();
image(cam, 0, 0);
} というプログラムがあるとします。
この{}の次に「改行して書くやり方」が「生理的に受け付けないくらい気持ちが悪い」のです。これを↓
void draw() {if(cam.available() == false)
{return;}
cam.read();
image(cam, 0, 0);}
のように「ギッシリ詰めて書く」という事は可能でしょうか?
詰めて書いても実行に何の問題も無いですか?
生理的な問題で「ギュッ」と纏まってないと落ち着かないのです。
「人に見せる時に読みにくくなる」等の問題もあるでしょうが、動作に支障ないなら独自路線で頑張りたいのですが。
158:デフォルトの名無しさん
22/02/23 03:44:54.50 obqtoF8C.net
言語によるけどその言語(c#?)ならたぶん問題ないよ。改行なんて全部消して一行で書け
159:デフォルトの名無しさん
22/02/23 05:32:59.83 QMvGYxPa.net
良いんじゃね。
Pythonはインデントでたまにがっかりするが。
160:デフォルトの名無しさん
22/02/23 06:01:46.48 KFI2d+fo.net
人に見せる機会があるなら普通の書き方した方がよくね
まぁ仕事じゃなくて趣味の範囲ならどうでもいいけど
161:デフォルトの名無しさん
22/02/23 06:03:32.11 8XUT1BDs.net
趣味の個人開発ならアリだけど業務開発とかideの手助けを受けるなら苦労しそう
162:デフォルトの名無しさん
22/02/23 06:32:30.27 2ldPnMFv.net
>>156
ありがとうございます。丁度C#をやろうと思っていました。
本音を言えば「一行で書きたい」と思っていたので正に思っていたことをおっしゃっていただきありがとうございます。
個人的にゲームを開発し、人に見せる気は無かったのでこれでいこうと思います。
皆さん、ありがとうございました。
163:デフォルトの名無しさん
22/02/23 11:59:23.57 FxZT1eeT.net
8ビットPC時代の一画面プログラムかよw
164:デフォルトの名無しさん
22/02/23 12:23:25.05 PDfOakC2.net
無駄な空白も消してみんなぎゅっとしよう
void draw(){if(!cam.available()){return;}cam.read();image(cam,0,0);}
密だっていいじゃない
文字だもの
165:デフォルトの名無しさん
22/02/23 12:40:34.18 PssNo99E.net
1文で書けるなら改行なしでも違和感ないけどifとかwhileの制御構文が入ってくると可読性がヤバくなるからおすすめしない
どこまでのコード量なら1行に詰めるか自分用のルールは決めといた方がいい
166:デフォルトの名無しさん
22/02/23 13:58:35.34 wKfqGXJ0.net
Ruby on Rails の単一テーブル継承・STI(Single Table Inheritance)は有名。
主に、検索の利便性
例えば、会社・家表に、同じ住所項目がある場合、
住所表を作って、住所表から会社住所表・家住所表を
167:継承させる HomeAddress < Address WorkAddress < Address Railsが裏側で、住所表のtype 列が0 なら家・1なら会社と切り替える。 会社住所表・家住所表という実体はなく、住所表しか存在しない 会社住所または家住所が東京にある、顧客を検索する場合、 住所表1つだけの方が、検索性能が良い
168:デフォルトの名無しさん
22/02/23 15:24:31.88 byGXC1Fx.net
なんかWEBサイトのjsみたい
169:デフォルトの名無しさん
22/02/23 15:33:38.24 wNcLFBxP.net
人に見せるときはフォーマッターを使って
人が見やすいように整形すればいいだけじゃないの
170:デフォルトの名無しさん
22/02/23 15:40:53.71 n4QLtIZ7.net
整形するなら高須クリニックみたいな所に通わないと
171:デフォルトの名無しさん
22/02/24 05:18:58.15 jcAfJg3X.net
新卒2年目のプログラマです
ループ処理を行う場合、基本的にforeachを使っているのですが、カウントが必要な単純なループでforを使った所
先輩からカウント用の変数を用意するかselectメソッド(c#です)を使って全部foreachで統一してと言われました
(コーディング規約にあるわけではないです)
わざわざカウント用の変数を用意するのも、速度的にfor使用時より遅くなるselectメソッドを使用するのもなんだかスッキリしないなあと思っています
他の現場を知らないのですが、これは開発の現場では当たり前の事なのでしょうか?
ちなみに皆さんはどうされていますか?
172:デフォルトの名無しさん
22/02/24 09:31:43.11 ycqMJ20y.net
理不尽なことを押し付けられるのは当たり前によくあること
いちいちなぜなのかとか逆らったりするのは労力の無駄
173:デフォルトの名無しさん
22/02/24 09:43:15.52 pVKiKajR.net
ケチ付けられたらコードを晒してくれなくちゃパイセンの擁護は出来ないな
174:デフォルトの名無しさん
22/02/24 09:57:04.10 5EPKB3Xk.net
思ったならその場で言えば良かったじゃん
何も言えず掲示板で愚痴った時点でこの勝負はお前の負けや
175:デフォルトの名無しさん
22/02/24 12:04:16.87 82W7j8jp.net
Ruby では、繰り返しにindex や、蓄積変数を付けたものがある。
または、each に付ける事もできる
つまり、書き方が決まっている
ary = [ "a", "b" ]
ary.each_with_index do |element, index|
p "#{ index }:#{ element }"
end
出力
"0:a"
"1:b"
ary = [ "a", "b" ]
# 初期値は1
ary.each.with_index( 1 ) do |element, index|
p "#{ index }:#{ element }"
end
出力
"1:a"
"2:b"
同様に、蓄積変数を付けたものもある。
each_with_object( obj ), with_object( obj )
176:デフォルトの名無しさん
22/02/24 12:31:55.94 D9/QhxEj.net
>>168
ここは技術板だから「先輩にどう対応したらいいか。プログラマ業界の他の職場ではどうなのか」って話は板違い。プログラマ板へどうぞ
177:デフォルトの名無しさん
22/02/24 12:33:04.26 2qhRGcQ8.net
>>168
頻出パターンだから拡張メソッドで一般化しておくのがいいと思う
foreachでカウント用の変数を都度用意してたらcontinueとかでバグる可能性もある
forの場合は将来的に要素へのindexアクセスが変な形で拡張されたりリファクタリングの妨げになる可能性がある
(メンテする技術者のレベル次第)
public static IEnumerable<KeyValuePair<int, T>> Enumerate<T>(this IEnumerable<T> collection){
int index=0;
foreach (var item in collection) {
yield return new KeyValuePair<int, T>(index++, item);
}
}
foreach (var (i, v) in foo.Enumerate()){
…
}
↑この拡張メソッドの場合はTがintの場合に(i, v)を(v, i)と勘違いしてバグる可能性はある
178:デフォルトの名無しさん
22/02/24 12:35:41.36 6X2WQPLr.net
SQLに文字列投げる前のバリデーションに使う正規表現で鉄板なの教えてください
英数字記号で、クォーテーションとかSQLだと危ないやつは弾く感じの
179:デフォルトの名無しさん
22/02/24 12:43:46.72 ycqMJ20y.net
sql命令を文字列として作らずパラーメーターとして渡す
180:デフォルトの名無しさん
22/02/24 12:48:01.07 jcAfJg3X.net
自分の書き方が悪くグチを言っているみたいになってしまいすみません
レスの最後の2行は先輩への対応方法を聞いているわけではなく、カウントが必要な単純なループを皆さんはどの様に対応されますかと言う質問でした
>>172
なるほど、Rubyはそうなんですね!
ありがとうございます!!
>>174
拡張メソッド良いですね!
自分なりに保守性を考慮して考えてみたいと思います
めっちゃ参考になりましたありがとうございます!
181:デフォルトの名無しさん
22/02/24 13:03:32.01 5we6KcaS.net
プログラミングは全てケースバイケース
そんな細かい所を統一する意味は全くないからその時に書きやすい方を使うのが正解だよ
182:デフォルトの名無しさん
22/02/24 13:47:22.35 7WoYZRJz.net
自分はforeachではないforが出てくるのは最終手段だと思ってるのでSelectさせる
インデックスを得る手段がもう少しマシな方法ほしいのだが
183:デフォルトの名無しさん
22/02/24 15:38:45.00 1DMGsg19.net
転職の言語要件に
@vb.netとc#ならわかるんですが
Ac#とjavaって書いてある所があり
括りとしてはどっちが正解なんですかね?
個人的には@かと思うんですが
Aの所は避けた方が良いですね?
184:デフォルトの名無しさん
22/02/24 15:46:25.40 5we6KcaS.net
せっかくだから俺はAを選ぶぜ
185:デフォルトの名無しさん
22/02/24 15:51:20.71 ycqMJ20y.net
javaはスマホ開発もするってのが多い
vb.net入ってる方が地雷だと思うぞ
186:デフォルトの名無しさん
22/02/24 17:03:20.09 +aDYy71x.net
foreachの中心的価値の一つはコレクションの最初から最後までもれなく処理対象としていることをアッピルする効果だと思う
forでは先頭の要素や末尾の要素だけ処理していないとき、バグなのか意図的なのか即座に判断できないことがある
foreachで統一的に書く方針には一定の合理性があると思う
俺はIDEの支援込みでfor文使ってた
カウンタの初期化とインクリメント文を書くのだるいなと思ったけど、for文でもカッコ内に同じことが書いてあるのでまあいい気もする
でもブロック末尾のインクリメントは書き忘れるんだよな
-1で始めてすぐインクリメントしてもいいけど微妙
187:デフォルトの名無しさん
22/02/24 17:10:25.79 ycqMJ20y.net
そんなあなたにfinally
188:デフォルトの名無しさん
22/02/24 18:33:43.52 +aDYy71x.net
really?
189:デフォルトの名無しさん
22/02/24 20:18:19.15 MZJU+q2v.net
ジョブ運用管理のOSSって何が有名?
cronが多いのかな
190:デフォルトの名無しさん
22/02/24 20:27:03.32 5we6KcaS.net
sidekiqとか?
191:デフォルトの名無しさん
22/02/24 20:51:05.92 NBv0zeLR.net
命名スレないっぽいのでここで聞きたいんだけど
デスクトップアプリケーション作ってて、ボタンは一箇所にまとめてある
入出力、テストや表示、操作など
app.___.load_btnとかapp.___.test_btnとかいう構造のとき、ボタンウィジェットの親の名前ってなんてつけるのです?
app.console.load_btn? cmdpanel? btns?
192:デフォルトの名無しさん
22/02/24 20:52:39.24 NBv0zeLR.net
あ、ボタンは複数個あって親フレームにひとまとめに配置してある
この親フレーム名 は? という質問です
193:デフォルトの名無しさん
22/02/24 21:02:40.71 iDpw9I/7.net
>>188
> 命名スレないっぽいのでここで聞きたいんだけど
検索能力なさすぎだろ…
クラス名・変数名に迷ったら書き込むスレ。Part29
スレリンク(tech板)
194:デフォルトの名無しさん
22/02/24 21:16:15.58 NBv0zeLR.net
>>190
命名とか設計で検索してたw
失礼した
195:デフォルトの名無しさん
22/02/24 21:36:16.86 sqPOmgLf.net
>>134です。
皆さん、回答ありがとうございます。
動的なサイトというのは、具体的に言うと、巨大画像掲示板群サイトを作ろうとしているのですが、
それを作るために必要な言語などは以下のものだけで良いでしょうか?
HTML、CSS、PHP、JavaScript、MySQL、データベースについて
これ以外にも必要な言語などがあれば教えてください。
あと、やっぱり巨大画像掲示板群サイトを作るとなると、
JavaScriptは避けては通れないですよね?
JavaScript無しで作る事は不可能ですか?
そもそもプログラミングを始める順番は、HTML→CSS・・・の順で良かったのでしょうか?
自分は元々あまりコンピュータとかソフトウェアとかネットワークなどというものに対して
あまり詳しくないので、プログラミングをしたかったらもっと根源的なところから始めるべきなのでしょうか?
そこらへんについてもいろいろ教えてほしいです。
回答よろしくお願いします。
196:デフォルトの名無しさん
22/02/24 21:48:59.13 ydRUnLFS.net
html、PHP
(phpじゃなくてほかのでもいいけど)この二つがあれば作れる。その他は必須じゃない
「php 掲示板 作り方」なんかでぐぐって意味わからなくていいからコピペでまずは文字の掲示板を適当に作るところからかな
197:デフォルトの名無しさん
22/02/24 21:49:45.68 JxtsCxtE.net
巨大画像掲示板は転送量代で月に何十万、何百万もかかるからそのつもりで
198:デフォルトの名無しさん
22/02/24 21:55:35.90 82W7j8jp.net
前スレの、>928
Ruby で作ってみた。
Rubyスクリプト内で、7-zip を実行すると、
7-zipでは解凍する際、同名のフォルダが存在すると、
上書きするかどうかを聞いてくるので、そこで実行が止まる
それを避けるため一旦、現在日時から、
新しいフォルダ・dest_dir を作って、その中に解凍する
7-zipでは、同名のフォルダが存在しても、エラーにすることも出来ない。
そのフォルダ内に解凍しようとするから。
また事前に、アーカイブ内のフォルダ名を取得することも出来ない
dest_dir は、現在日時から作った、新しいフォルダ。
dest_dir内には、アーカイブを解凍した、decomp_root_dir と、
decomp_root_dirの末尾に、_out を加えた、out_dir の2つを作る。
out_dir内には、フォルダ階層を作りながら、処理した画像ファイルを入れていく
デスクトップには、ショートカットを作る。
リンク先には、Rubyの実行パスと、Rubyスクリプトファイルのパスを書く
リンク先
C:\Ruby25-x64\bin\ruby.exe C:/Users/Owner/Documents/Ruby/script.rb
作業フォルダ
C:\Users\Owner\Desktop
そのショートカットに、解凍したいアーカイブ、
C:/Users/Owner/Documents/data/z.zip を、Drag & Drop する
次へ続く
199:195
22/02/24 21:56:18.77 82W7j8jp.net
require 'pathname'
# 7-Zipの実行パス。Program Files には半角空白があるので、要注意!
ZIP7_EXE_PATH = "C:/Program Files/7-Zip/7z.exe"
# expand_path で、Windows のパス区切り \ を、/ に変換する
src_arch_path = Pathname( ARGV[ 0 ] ).expand_path
#=> C:/Users/Owner/Documents/data/z.zip
# 現在時刻からディレクトリ名を作る際、名前が衝突しないように、念のため、1秒進める
sleep 1
# DateTime は非推奨なので、Time を使う
dest_dir = src_arch_path.parent + Time.now.strftime( "%Y%m%d_%H%M%S" )
#=> <Pathname: C:/Users/Owner/Documents/data/20220224_211030>
dest_dir.mkdir( ) # ディレクトリを作る
print "#{ dest_dir.to_s } フォルダを作りました\n\n"
# 7z x -o(解凍先パス) (アーカイブパス)
# 解凍する。Program Files には半角空白があるので、"〜" で囲む
puts %x("#{ ZIP7_EXE_PATH }" x -o#{ dest_dir } #{ src_arch_path })
次へ続く
200:195
22/02/24 21:57:06.88 82W7j8jp.net
# dest_dir の直下には、1つだけ解凍されたディレクトリがあると想定する
decomp_root_path = dest_dir.children[0]
#=> <Pathname: C:/Users/Owner/Documents/data/20220224_211030/z>
decomp_root_dir = decomp_root_path.basename.to_s # ディレクトリ名。z
# 末尾に、_out を加えた、ディレクトリ名。z_out
out_dir = decomp_root_dir + "_out"
# decomp_root_path の末尾に、_out を加えたパス
out_root_path = dest_dir + out_dir
#=> <Pathname: C:/Users/Owner/Documents/data/20220224_211030/z_out>
out_root_path.mkdir( ) # ディレクトリを作る
print "\n#{ out_root_path.to_s } フォルダを作りました\n\n"
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
decomp_root_path.glob( "**/*.{png,jpg,jpeg,gif,bmp,webp}" ) do |full_path|
# decomp_root_dirの部分だけを、_out を加えて、out_dir に変えたもの
out_full_path = out_root_path + full_path.relative_path_from( decomp_root_path )
dir = out_full_path.parent # ディレクトリ
# ディレクトリが存在しなければ、親ディレクトリも含めて作る。mkdir_p
dir.mkpath unless dir.directory?
# ここに、各画像ファイルの変換処理を書く!
end
次へ続く
201:195
22/02/24 21:58:12.15 82W7j8jp.net
# つまり、z フォルダの部分だけを、z_out に変えたものになる
#<Pathname:C:/Users/Owner/Documents/data/20220224_211030/z/zz/a.jpg>
#<Pathname:C:/Users/Owner/Documents/data/20220224_211030/z_out/zz/a.jpg>
# ZIP 形式のアーカイブを作る。-tzip
# 7z a -tzip (アーカイブパス).zip (アーカイブしたいフォルダ)
# 圧縮する。Program Files には半角空白があるので、"〜" で囲む
puts %x("#{ ZIP7_EXE_PATH }" a -tzip #{ out_root_path } #{ out_root_path })
puts "\n#{ out_root_path.to_s }.zip アーカイブを作りました。\n" +
"処理が終了したので、この画面を閉じて下さい"
sleep # 出力したコマンドプロンプト画面を閉じないようにする
以上です!
202:デフォルトの名無しさん
22/02/24 22:03:05.14 82W7j8jp.net
>>175
文字列を連結して、SQL 文を作ると、SQL injection される
だから、Ruby on Rails では、O/R マッパーを使う。
place holder を使って、? の所に、変数を埋め込む
203:デフォルトの名無しさん
22/02/24 22:05:37.73 WpNQdEVr.net
これって触っちゃいけないやつ?
204:デフォルトの名無しさん
22/02/24 22:36:56.77 iDpw9I/7.net
>>200
Ruby を NG
205:デフォルトの名無しさん
22/02/25 01:02:54.98 Eg3DloqN.net
>>192
YouTube で有名な、雑食系エンジニア・KENTA のサロンのRuby on Rails 初心者用コースでは、
基本情報技術者資格、Rails, Linux, Docker, Node.js, Bootstrap,
VSCode, Heroku, CircleCI, Github Actions、データベース
今までは、Dockerまでが初心者用コースだったが、
最近は誰でも、Docker出来るから、
AWS Fargate, Terraform, React, Vue.js, TypeScript も
だから、AWSのくろかわこうへいのサロンにも、入る必要がある。
今では、1年の未経験者が、10年以上のプロよりも技術力が上になってる!
KENTA、2021/4
2021年のWeb系エンジニア転職を成功させる3つの技術要素
URLリンク(www.youtube.com)
2021/2
Web系エンジニアを目指す人のためのプログラミング学習ロードマップ
URLリンク(www.youtube.com)
206:デフォルトの名無しさん
22/02/25 01:13:59.96 kML1EznR.net
句読点の付け方が全く同じだ
207:デフォルトの名無しさん
22/02/25 07:45:38.34 nHsHzaxy.net
>>202
これだけ一生懸命宣伝して見返りはないって笑うなw
208:デフォルトの名無しさん
22/02/25 08:37:45.79 nHsHzaxy.net
>>192
こういうのよく見るけど
なんでいきなり巨大なの作ろうとすんのw
しかも群
209:175
22/02/25 10:56:25.38 cHKC+7di.net
>>175
ワイ175やけど結局みんな手探りなのね
プレースホルダは当然やるけど、予約語のバリデーションは独自でやってるんやね
(出来ればDBにアクセスする前、バインド(prepare)する前に、アプリで弾きたい)
210:デフォルトの名無しさん
22/02/25 11:08:11.28 gEwvZxtg.net
SQLに投げる前にバリデーションなんてしない
バリデーションはプレゼンテーション層〜ドメイン層のどこかでやること
211:デフォルトの名無しさん
22/02/25 11:43:57.59 SuduBg90.net
>>206
どんなGUIか知らないけどフリーキーワードをちまちま入れないといけない時点でもう使いづらい。
動的にチェックボックスや候補ワードが先回りして出るくらいでないと。
キーワードを投げたはいいがヒット0とか、今どきはダサいよ。
212:デフォルトの名無しさん
22/02/25 11:44:18.05 Ttq2k6xT.net
>>206
プレースホルダ使っててなんのためにバリデーションしてるんだ?
変なデータが入るのが嫌と言うならそれは要件次第だろとしか言えないし
213:175
22/02/25 11:59:13.95 cHKC+7di.net
>>208
>>209
問い合わせフォームとか応募フォームなんだけど、
こないだbot投稿に遭ってとりあえずreCapchaは入れて止めた
だけど、いくつかはDBまでSQL文がtextとしてinsertされちゃったんよねw(where〜とかが名前とかのカラムに入った)
じゃあなんかのバリデーションするかってことで普通はどうするかな、て
214:デフォルトの名無しさん
22/02/25 12:08:01.02 GobJHqAk.net
インジェクションできるかチェックされてるか、どこか文字列で直にやってる
215:デフォルトの名無しさん
22/02/25 12:51:38.11 0LOdeZPu.net
問い合わせの内容としてSQL文が必要ならサニタイズして入れとけばいいよね?
prepared statement使ってるのにユーザー入力を保存するカラム以外に
ユーザー入力が保存されてたんならなんか使い方間違ってると思う
216:デフォルトの名無しさん
22/02/25 12:53:33.76 gEwvZxtg.net
>>210
そういうのはWAFの仕事
217:202
22/02/25 12:58:38.12 Eg3DloqN.net
MVC のRuby on Rails では、
Controller のstrong parameter で、更新される列・必須列をチェックする
モデルでも、バリデする。
valid_email2 で、正しい形式のメールアドレスかどうかとか
日本6位の初心者が3千人入っている、KENTA のサロンとか行かないと、ウェブ開発を学べない
Rails以外のフレームワークを選ぶと、勉強の教材がないから、
プロになるのは、まず無理
218:デフォルトの名無しさん
22/02/25 13:59:36.28 isep1BZs.net
>>213
WAF使ったことないでしょw
219:デフォルトの名無しさん
22/02/25 14:21:18.61 gEwvZxtg.net
>>215
あるよ
220:デフォルトの名無しさん
22/02/25 16:15:30.34 xc5sID1o.net
SQSやKinesisはどういう場合に使うのでしょうか?
あと、これを使う場合って送信用サーバと受信用サーバの2つが必要になりますよね?
221:デフォルトの名無しさん
22/02/25 16:30:52.94 VyHl6qUM.net
>>210
これってSQLに値を渡したい場合、文字列結合ではなくプレースホルダだけ書いておいてパラメータとして与えましょうという初歩の話じゃないの?
222:175
22/02/25 16:50:08.00 ilyzPMTz.net
>>218
いやその後のハナシで
バリデーションとかエスケープとかサニタイズしても、
結局文字列としてInsertされるから、それを防ぎたいってハナシ
氏名:selectさんとかそういうデータが出来るのを防ぐのどうしてるのかなて
まあ
223:DBに限るハナシでもないけど
224:デフォルトの名無しさん
22/02/25 17:25:32.08 GobJHqAk.net
175が言う通りの実装してるなら、必要なのは「SQLインジェクション対策」じゃなくて
「不正な名前入力対策」=氏名チェック用の正規表現
日本人限定で組むなら常用漢字な人名用漢字、ひらがな、カタカナだけだから
単純に半角英数字記号が含まれてたら弾くようにすればいい。外国人含むならシラン
225:デフォルトの名無しさん
22/02/25 17:42:11.20 qQXuMGT2.net
selectさんとかを防ぐことで得たいと思っているビジネス的な価値が何なのか知りたい
クオーテーションとか危ない感じのを弾きたいと言うからSQLインジェクション対策かと思ったけど、そういうわけでもないってこと?
でもそれならクオーテーションを弾くのはデメリットしかないし、何か混同しているんだろうか
226:デフォルトの名無しさん
22/02/25 17:44:59.19 qQXuMGT2.net
認証不要のフォームでアタックの痕跡によってゴミが大量に溜まるのが迷惑だから事前にフィルタリングしておきたいってことかな
227:デフォルトの名無しさん
22/02/25 17:54:52.96 +PfgW030.net
>>219
そういうのをバリデーションできてないって言うんだぞ
正規表現教えて君する以前に仕様を決めろ
228:デフォルトの名無しさん
22/02/25 18:17:54.50 qbQTiRzp.net
GoogleスプレッドシートやGoogleMeetの検索ってあの膨大なデータからどうやって検索してるんだ?
とくにMeetのほうは曖昧検索っぽい
GCPでビッグデータの検索関連サービスってあるの?
229:デフォルトの名無しさん
22/02/25 18:26:10.37 Eg3DloqN.net
Ruby on Rails の文字列検索は、Elasticsearch
230:デフォルトの名無しさん
22/02/25 18:33:34.96 Eg3DloqN.net
>>217
Queue は一番昔からある、基本的なサービス
その時に同期処理をすると時間が掛かるので、
一旦、キューに入れて、後から処理する。非同期処理
月3千円ぐらいのくろかわこへいのAWS サロンへ入れば?
Amazon なら、3日で21万円とか高い
231:デフォルトの名無しさん
22/02/25 21:21:26.02 CV/dWopv.net
>>224
inverted index
232:デフォルトの名無しさん
22/02/26 08:12:42.19 vbSsEIAE.net
>>227
それだとものすごい数のレコードを作成してるんだね
例えば、GoogleMeetの1メッセージが300文字あったとして、形態素解析しつつ名詞を分割してそれぞれを行として格納
しかし部分一致とあいまい検索は完璧ではない
と思ったらスプレッドシートはCloud Search使ってると書いてあった
膨大なデータを分解して格納ってすごい技術だ
233:デフォルトの名無しさん
22/02/26 08:23:05.81 wWFTGeHR.net
kakasiの頃よくインデクサを使っていたけど、しょせんテキスト情報なんで大したことないよ
234:デフォルトの名無しさん
22/02/26 08:45:38.69 R1ubXlLS.net
プログラムが何故動くのか?についてわかりやすく解説しているサイトってないですか?
ググっても「プログラムを機械語に翻訳して、機械がわかるように翻訳しているから動く」
的な説明ばかりなんですが、知りたいのはそういうことではなくて、
じゃあ最初から機械語で完璧に書いたとして、なぜそれで動くのかがわからないんです。
別の表現すると、異世界転生で電卓のない世界に行ったとして、
そこで電卓を開発して一儲けしようとしたときに、
どうやって電卓内部で「1+1」の処理をさせるかのイメージがつかないんです。
結局「プログラム」と言う概念が先にないと無理なんじゃないのか?みたいな・・・
鶏と卵の話みたいに感じてしまいます
235:デフォルトの名無しさん
22/02/26 09:09:24.95 e5W/1zqv.net
サイトじゃなくてCPUについて技術解説してる書籍でも漁っとけ
236:デフォルトの名無しさん
22/02/26 09:10:39.17 wWFTGeHR.net
>>230
レジスタ(フリップフロップ)のことは分かるのかね
ハード寄りのことから理解しないとマシン語はわからないよ
237:デフォルトの名無しさん
22/02/26 09:12:33.77 sjesp9D9.net
>>230
コンピュータはなぜ動くのか、読めば?
238:デフォルトの名無しさん
22/02/26 09:33:18.46 GBHX3kX2.net
「1+1」だけなら半加算器あたりが分かればなんとか
239:デフォルトの名無しさん
22/02/26 09:42:33.04 wWFTGeHR.net
>>230
フリップフロップはソロバンの珠と思えばよい。
ソロバンは珠が元の位置か、動いたかをメモリーする装置である。
動いている珠を1、元の位置なら0とみなして、動かすルールによって複雑な計算をする。
フリップフロップの場合は電気によって、今のON/OFFをメモリーできる。
そのON/OFFを1と0にみなして、機械的なルールで計算を行う。
例えばいちばんわかりやすいのがビットシフトである。
二進数01011を左に一桁ずらす「機械的操作」をすると10110となり、これは元の数を二倍する「計算」をしたことになる
逆に右に一桁ずらすと2で割るという「計算」をしたことになる
01011 → 0101(余り1)
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
399日前に更新/281 KB
担当:undef