プログラマの雑談部屋 ★83

■ このスレッドは過去ログ倉庫に格納されています
2019/09/24(火) 19:17:50.29
このスレは、プログラマの休憩所。

※前スレ
プログラマの雑談部屋 ★80
https://medaka.5ch.net/test/read.cgi/prog/1565615867/
プログラマの雑談部屋 ★81
https://medaka.5ch.net/test/read.cgi/prog/1566835101/
プログラマの雑談部屋 ★82
https://medaka.5ch.net/test/read.cgi/prog/1568043026/
2019/09/30(月) 23:04:19.89
- バージョン管理は使ったほうがいいね、何においても安全に倒すべき
- テストコードはかけるならそりゃ書いておきたいが、責任が自分にふっかかるわけじゃないなら書かなくてもいいのでは。テスターが別途いる職場なら彼らに投げてしまったほうが彼らの仕事を奪わずにすむ
- 設計書は>>492と同意見
- slackはわからず屋に触らせてはいけない。真夜中でも呼び出してくる。あれはエンジニアの事情が分かってる人同士のためのもの
- 中身はCってのはまぁ内容次第なんでコメント難しい…
494仕様書無しさん
垢版 |
2019/09/30(月) 23:05:05.84
明日から新環境の人いないの?
2019/09/30(月) 23:06:51.22
設計書ってどのくらいの細かさのものみんな言ってるの?
496仕様書無しさん
垢版 |
2019/09/30(月) 23:07:46.15
>>494
はい!3ヶ月更新のワイがおるよ
497仕様書無しさん
垢版 |
2019/09/30(月) 23:11:29.77
あと50分で10月
消費税対応間に合わなかった

どうすればいいですか?

首吊れはなしで
電車に飛び込めもなしで
なにか秘策を教えて下さい!

言語Javaです
よろしくお願いします!
2019/09/30(月) 23:15:23.03
>>490
>バージョン管理ソフトなんか全く使ってない
基本的にソフトウェア開発やってるならあり得ないレベル
使わないデメリットの方が大きいし

>テストコードなんて見たことも無い
これはたまに見かけるけど品質担保するなら必須
テストコード書くと「工数増えるだろ!」っていう話が出るけど
ポカミスの不具合/デグレが起きて対応する工数に比べたら安い
(バージョン管理システムが無いなら常にデグレの心配が発生するし)


つかバージョン管理システム使ってないって今どき本当にありえないぞ
頭が固い企業でも流石にSVNは使ってるし
499仕様書無しさん
垢版 |
2019/09/30(月) 23:16:08.32
生きろ!
2019/09/30(月) 23:19:10.51
バージョン管理ソフトを使ったほうがデグレ多いよ
だからといって使わない理由にならないけど、とにかくバージョン管理ソフトはデグレの温床
2019/09/30(月) 23:19:30.95
>>491
>最先端のことをエレガントにやりたいなら、仕事じゃなくて
>趣味とか研究でやれ。
基幹システムとかで古いシステム使うのは100歩譲って分かるけど(システム移行の費用的に)
開発環境のレガシー化は単純に非効率だし、現場の怠慢だぞ
2019/09/30(月) 23:20:52.20
>>500
デグレってマージミスしなきゃよほど起きなくない?
単体テストも一緒に回せばすぐ分かるし
2019/09/30(月) 23:22:27.84
Publicおじさんかな
504仕様書無しさん
垢版 |
2019/09/30(月) 23:24:07.37
staticおじさんとかpublicおじさんとか色んなのがおるね
他にはどんなのが居るの?
2019/09/30(月) 23:26:47.48
>>500
釣り針デカイわ
2019/09/30(月) 23:31:07.54
逆にバージョン管理ソフトを使わずにデグレって起きる?
2019/09/30(月) 23:31:18.94
>>504
プログラミング能力nullとかいるよ
2019/09/30(月) 23:33:40.56
publicからprivateにする為の工数を考えたら
publicにしてしまうのも1つの手だと思うんだよ

おまえらpublicとget、setの違いを本当に説明できるの?
2019/09/30(月) 23:36:32.09
>>506
そら起きるやろ
・最新ソースの所在が不明
・Git flowみたいなブランチ管理ができない
・複数人でソース修正した時の衝突
書き切れないぐらいあるし
バージョン管理の必要性なんて技術書読んだら大体触れてくるだろうし
2019/09/30(月) 23:37:54.15
C#はよくわからんちん。
2019/09/30(月) 23:40:31.98
参照系のメンバーの場合geterだけ用意してても利用先で中身変えられちゃうけど
あれって毎回newしなおしてコピー返すのが正解なんか
2019/09/30(月) 23:42:58.34
>>508
プログラム自体が短いなら分からんでもないが
結局の所、規模がデカくなればなるほどpublicにしたら影響範囲が無限に広がるし
多人数で開発していくなら周知するよりも最初からprivateにした方が安全
2019/09/30(月) 23:44:03.25
>>496
明日の初見挨拶なんて言うの?
2019/09/30(月) 23:44:54.54
んーpublicおじさん、もしかしてprivateを使ったことがないとかじゃないよね?
だっておかしいじゃん、概念分かってたらそんな質問でないでしょ
2019/09/30(月) 23:45:24.52
深いこと考えずにクラス内部でしか使わない関数は全部privateにしとけばいいじゃん
2019/10/01(火) 00:03:51.75
>>512
set、getしたらpublicとスコープ同じだよね?
2019/10/01(火) 00:06:46.01
>>515
スコープ封じ込めはわかる
それは関数使ったプログラミングのローカル変数と同じだ

スコープが同じならpublicでいいよね?
getする際に何か加工するとしたってそれはgetの中でやることだろうか
何でも1つの関数にまとめるのは悪手
2019/10/01(火) 00:08:51.72
>>514
publicおじさんは釣りだと思うけど、彼の主張を分かりやすく説明してみよう

privateを使うのは、本来アクセスさせる必要のない変数をpublicに晒して想定されていない動作を防ぐため
そしてそれらのクラスを使うのは同じグループの開発者であるから、性善説をベースに、想定されていない使い方をするヤツはいない

規模が大きかったり、変数のアクセス方法が複雑だったときには、間違った使い方して事故が起こりそうだな

カウンタのインクリメントはマルチスレッドで保護するためにアクセッサ経由でと言ったのに、直接アクセスするバカがいる!、みたいな
519仕様書無しさん
垢版 |
2019/10/01(火) 00:11:06.62
請求系システム開発の地獄が始まったな
どこかのばかが0.8と直書きしてるのを気づかずに誤請求祭りじゃ
2019/10/01(火) 00:12:11.22
うえええ、気持ち悪いほどの性善説だな
521仕様書無しさん
垢版 |
2019/10/01(火) 00:12:42.13
>>517
全部publicだったらどれ使えばいいか迷うだろ
utilityくらすじゃねんだよ
2019/10/01(火) 00:12:45.93
>>519
地獄とはこれすなわち特需という
2019/10/01(火) 00:19:27.63
private変数にアクセスする一番簡単な手はprivateという文字列をpublicに書き換える事だ
2019/10/01(火) 00:25:09.56
>>460
それが事実なら能力が無いから地獄を見たと言う事だな
適性を知る努力を怠った結果だ
2019/10/01(火) 00:26:00.94
俺のプライベート知りたいか
2019/10/01(火) 00:27:16.41
>>517
その辺の疑問はこの記事が分かりやすい
https://nagise.hatenablog.jp/entry/20141010/1412930502
2019/10/01(火) 00:28:56.78
0時に消費税対応のリリース作業した奴いる?俺はさっきSQL流した
2019/10/01(火) 00:28:59.57
>>525
パブリックに書き換えてやる!
2019/10/01(火) 00:29:39.47
privateをpublicに書き換えるのは日常的に発生してる
おまえらの職場で発生してないんだったら対策方法教えろ
2019/10/01(火) 00:31:47.07
>>512
何を想定してるのかわからない

ソースコードをいじる人間に対してprivateでガードしようとしてんの?
思いっきり無駄じゃない?
2019/10/01(火) 00:32:21.25
対策って言ってもなぁ、ちゃんと設計してますかって話じゃないの
2019/10/01(火) 00:33:39.23
例えば俺なら
IDEの一斉置換で担当範囲のprivateをpublicに変える
それでprivateだったもんがなんの役に立つって?
2019/10/01(火) 00:35:38.29
>>532
そんなんやったらコードレビューの段階でぶち殺されるだろwwwwwwwww
2019/10/01(火) 00:36:32.11
publicおじさん、レビューしてくれる人いないんじゃないかな
一人エンジニアみたいな
2019/10/01(火) 00:37:04.13
RDSのテーブル名が全部 _WARNING 付きのテーブル名に変わってるんだがなんだこれ?w
2019/10/01(火) 00:38:49.19
実際、全行レビューできる?
2019/10/01(火) 00:39:43.13
postgreSQLの列名に大文字使うとかね
レビューする側の知識が足りてなかったんだろうなって遺産も多い
2019/10/01(火) 00:39:46.47
>>530
一人で開発してるん?
2019/10/01(火) 00:40:41.68
コードレビューしたところでインデントがどうとかカッコの位置がどうとかそんな指摘ばっかり
2019/10/01(火) 00:40:43.30
やっぱり割とまじで一人でやってるっぽいな
世間の大半は一人以上で開発してるんだからオッサン口出すのやめときなって…
2019/10/01(火) 00:41:53.63
>>540
大規模な開発になったらクラス/メソッドが鬼のような数になるしな
それでpublicで宣言されて自由に書き換えが効くとか恐ろしくてたまらん
2019/10/01(火) 00:42:09.57
>>516
スコープは同じだけどラッピングしてる分後から変更や特定が楽だったりする
なんでもかんでも馬鹿の一つ覚えみたいにget、set用意するのは良くないな
2019/10/01(火) 00:43:02.12
>>539
それはレビュワーの質が悪いというか
IDEのコードフォーマット設定してないん?
その辺の指摘って1行で「IDEでコードフォーマットかけてね」で終わるし
2019/10/01(火) 00:44:33.26
>>542
ちょうど良い記事があったわ
http://fukumori.org/oo/why_use_getters_and_setters_j.html
2019/10/01(火) 00:50:07.12
settableとかgettableみたいな属性が指定出来ればいいのにな
既に言語によってはあるかも知れんが
2019/10/01(火) 00:50:44.50
>>529
えええぇ、それは流石に酷すぎる
設計しないでエイやとクラス作ってるんじゃないのか?

publicおじさんじゃないけど、なんでもかんでもprivateにすれば良いって訳じゃないぞ
2019/10/01(火) 00:51:19.09
>>543
業界1位2位の大手のレビューがそんなのばっかりなんだぞ
やつらのKPIが指摘数だったりするせいでそんなことになってる
2019/10/01(火) 00:52:37.96
>>539
Uncrustify使おう
くだらんコードレビューが減る
2019/10/01(火) 00:53:16.93
>>546
もはや「publicは外部からアクセス出来る」を誤解して外からアタックでも食らうと思ってるんじゃないか?w
2019/10/01(火) 00:58:40.97
>>545
C#かな?

class Person
{
public string Name {get; set;}
}
2019/10/01(火) 00:59:09.80
>>541
それっていまだったらIDEで簡単に場所わかるじゃん
本当に問題か?
仕事で当たるようなデカイソースのでかいクラスに当たったら
本当に厄介なのは書いたやつにしか作法のわからないprivateだろ
2019/10/01(火) 01:06:52.86
>>551
もはや逆説的な意味になってるぞw

書いたやつしか作法の分からないpublicはアクセスしたときに問題が発生するからいいってか?

インターフェース条件を満たしてたら、中で何やってようが構わないんだよ
むしろインターフェースにないものをpublicで晒すな
2019/10/01(火) 01:07:03.74
>>538
複数人で開発しての結論だよ
ソースコードをいじる人間に対してprivateでガードしようとしてんの?
思いっきり無駄じゃない?

そもそもさ
作成しなきゃいけない処理なんか
設計書書いた時点で決まってんじゃん
privateだのpublicだの
組みながら意識してるやつって
控えめに言ってプログラマ辞めろよ
使えないよ
2019/10/01(火) 01:08:48.18
>>552
かつて、そんなコードは存在した試しがねーだろ
大抵のクラスでinitメソッド2連発で呼んだら落ちるし
落ちないようにする意味もないんだよ
2019/10/01(火) 01:10:03.29
>>553
お前のチーム、レベル低すぎだろw
2019/10/01(火) 01:12:35.39
>>555
(*゚∀゚)bお前のかーちゃんデベソ!
2019/10/01(火) 01:13:16.82
>>553
素朴な疑問だけど、read onlyの変数作るときどうしてるの?
2019/10/01(火) 01:14:21.71
>>553
オッサン、頼むから脳内で別の人間作り上げて話すのやめて本当のことを喋ってくれ
そしたら皆理解してくれるから

マジで本当に嘘をつくのだけはやめてくれ 皆真面目に答えてんだからさ
2019/10/01(火) 01:23:01.46
どうせゲッター、セッターを作ってアクセスしてるのに
メンバ変数をprivateにする意味が分からん。
結局、実質公開してるワケだからpublicで良くね?
2019/10/01(火) 01:26:07.22
>>559
いや、だからread onlyや、write onlyのメンバーが作れないじゃん
2019/10/01(火) 01:27:49.48
>>559
この書き込み見てやっと違和感に気づいた
getter/setterが必ずセットだと思ってるのか
読み取り専用ならgettetメソッドだけ用意して値が書き変わらないようにするんだぞ

というかgetter/setterメソッドは呼出し先のクラスがあらかじめ用意しておく元で
呼出し元で勝手に作れるわけじゃねーぞ
2019/10/01(火) 01:30:20.68
>>553
マジで言ってるのかこいつ
プログラミングの技術書ちゃんと読んだ事無いんか
まともな開発経験も無いのか
絶望的すぎる
2019/10/01(火) 01:32:29.58
多分新卒で入れてもらった会社に十数年ずっといるから何一つ違和感が無いんじゃないかな…
2019/10/01(火) 01:34:05.28
>>563
日本IT企業って技術共有が下手だよな
悪習でもなんでもずーと続けてるし
2019/10/01(火) 01:42:13.37
>>564
ビジネスロジックとしては正しい
変える必要のないところは変えない
非常識だが困ってないらしいし
2019/10/01(火) 01:44:40.00
存続だけが目的ならそれでいいんだけどね
新しい技術を入れて業務をよりよくする、などの成長があまりないのは今の中小やパッとしない大手SIer見てるとおわかりだと思う
2019/10/01(火) 01:47:10.93
新しいことを勉強するのが嫌なんだろう
2019/10/01(火) 01:47:29.67
>>566
海外市場ボロ負けで内需の取り合いだからなあ
世紀末
2019/10/01(火) 01:48:13.43
>>537
細かすぎるなぁ
ダブルクォートで囲めば問題なく使えるだろ
2019/10/01(火) 02:04:40.82
まだpublicおじさんいたのかよ…
もう引退しろよ
2019/10/01(火) 02:07:12.06
>>566
分かりすぎる
世代交代してくれたら多少良いんだが、若い人はダメだと感じたらすぐ転職しちゃう

せめてバージョン管理はgitでやってくれ
どこかでデグレードしましたとか報告しないでくれ
悲しくなる
2019/10/01(火) 02:40:46.52
零細企業入ったらファイル名に日付付けて管理してたからすぐ辞めた
2019/10/01(火) 05:35:26.89
昔はゲッターロボってのがあってだな...
2019/10/01(火) 07:09:14.07
>>562
んで、一般的な技術書にはなんて書いてあるの?
2019/10/01(火) 07:26:38.08
たまたまできることは無いと玉に書いてある
2019/10/01(火) 07:29:58.21
消費税関連で今日早く出社する奴いないの?
577仕様書無しさん
垢版 |
2019/10/01(火) 07:55:20.67
>>576
そんなヤツは既に呼び出されて現場にいるか、9時10時の開店後に呼び出される

震えて待て!
備えろ!
2019/10/01(火) 08:33:04.98
>>572
それウチだわ
zipファイルの命名規則とかドヤ顔で見せられて、どんな顔していいやらわかんなかった
579仕様書無しさん
垢版 |
2019/10/01(火) 08:50:09.55
「Python」コード400万行を維持--Dropboxに学ぶ秘訣
https://japan.techrepublic.com/article/35143205.htm

ドキュメントはともかく
型チェックは静的型付け言語なら要らないじゃん?
そもそも大規模開発でPython使うのが間違いでは?
2019/10/01(火) 08:55:32.72
集まったエンジニアがPython経験者ばっかりとかだった、みたいなのはあり得ん話でもないな…
581仕様書無しさん
垢版 |
2019/10/01(火) 09:11:47.32
.NET CoreはDropboxが始まった時には無かった
Node.jsもない
残る選択肢はJavaとかRubyとかC++とかPerlとか?
でもどれも微妙じゃん?
2019/10/01(火) 09:38:28.41
現場でぼっち気が向くままに開発してるんだけどgitみたいな管理出来る環境作るべきなんだよね
かなり低レベル小さなとこだからかまともな検証環境すらなくローカルでスクリプト作ってサーバに上げて動かなくてos依存の関数使うライブラリがーとか散発して、サーバ上で修正したりとかしてると一人でも混乱してる
2019/10/01(火) 11:57:20.18
>>582
マ板やム板で低レベルって単語使うとiotとか組み込みって意味なので注意

1. とりあえずソースと環境構築用readmeはバージョン管理。gitでもsvnでもvssでも。
2. ローカルでも本番でもない環境は、デプロイテストする意味であったほうが無難。
3. 稼働済環境のソースデプロイは、git使ってるならsftpではなくgitでリリースがおススメ

ぐらいかなぁ、とりあえず。
2019/10/01(火) 11:59:07.89
あと本番環境直接変更は、環境情報やインフラ情報以外ダメ、ゼッタイレベルで辞めたほうがいい
2019/10/01(火) 13:33:15.52
>>583
別に低レベルに組み込みって意味は無くないか?
高級言語に対するアセンブラのような、何らかの階層において下のことをいうことが多いと思う。
2019/10/01(火) 13:36:17.23
組み込み…うーん低級と呼ぶにはなんとも…
2019/10/01(火) 13:47:52.90
CTC
2019/10/01(火) 14:03:55.70
>>585
マジか。
低級言語でないとスペック上無理ゲーな領域やハードウェアに近い領域も低級だと思ってたわ...
2019/10/01(火) 14:35:10.21
>>588
スペックは関係ないが、ハードウェアに近いレイヤーは上位の論理的なレイヤーに対して低レベルと言うのはあると思う
2019/10/01(火) 15:43:06.95
>>569
SQLを実行するだけならそれでいい
しかし俺らはプログラマだ
プログラム中でSQLを文字列として扱い、文字列の足し算を行う
そういった時にSQL文にダブルクォーテーションとシングルクォーテーションの両方が含まれている
それがどれほどの悪夢がおかわり頂けるだろうか?
2019/10/01(火) 16:10:18.12
エスケープはdbに入れる時点でやっちくり〜
2019/10/01(火) 16:24:08.39
もう1つ付け加えるならPostgreSQLの大文字列なんてフレームワークでも対応してないってこった
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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