Java入門・初心者質問スレ Part.5©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/09/29(金) 17:53:25.24ID:XnizQSCA
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.4
http://mevius.2ch.net/test/read.cgi/tech/1498828456/
2017/10/02(月) 23:55:56.25ID:Mj5pQT00
>>81-82
そういやFalcom Sound Team jdkは、再来年で結成から30周年を迎えるようだな
2017/10/03(火) 00:01:30.12ID:0liCQr5x
うるせぇよ
2017/10/04(水) 00:41:17.31ID:zeC1HQPz
>>78
巣に帰れ
2017/10/04(水) 15:01:26.75ID:DMSv62cB
>>79
初学者が迷惑するから相手するの辞めてくれ。

知らない人居るの?
◆BrBq2CJg6HGd  は無職の35歳で10ヶ月javaを勉強しています。

職歴、大学後に新卒で入社、28から35まで無職(自称、アセンブラ経験5〜6年)。
就職したいですと発言し、ハロワ行きません。
体力有りませんが、靴が痛むので歩くの嫌です。
失敗するのが嫌です。10ヶ月の期間JAVAを学習しました。
先行投資と言う名目で、無職ですが親に高級ノートPC買わせました。
10ヶ月の間、プログラミングの問題といたら?→時間制限がry 失敗したく無いです。準備ができてからetc
最後は無敵の40歳までに就職します。


私たちは、つい反応したくなる気持ちをぐっとこらえ、彼らに影響されないようにする方法を見つけなくてはなりません。
彼らが私たちに影響を与えることを許してしまったら、絶えずイライラしていなくてはならないでしょう。
今後の皆さんの課題は、超然として反応しないようにすることです。
2017/10/05(木) 08:12:28.96ID:ZnOI5oFl
>>86
誰が誰にレスしようとその人の勝手で外野が喚く事ではない
スルーを求めるなら関連レスすらスルーしておけばいい

知らない人居るの?
真・スルー 何もレスせず本当にスルーする。簡単なようで一番難しい。
偽・スルー みんなにスルーを呼びかける。実はスルーできてない。
予告スルー レスしないと予告してからスルーする。
完全スルー スレに参加すること自体を放棄する。
無理スルー 元の話題がないのに必死でスルーを推奨する。滑稽。
失敗スルー 我慢できずにレスしてしまう。後から「暇だから遊んでやった」などと負け惜しみ。
願いスルー 失敗したレスに対してスルーをお願いする。ある意味3匹目。
激突スルー 話題自体がスルーの話に移行してまう。泥沼状態。
疎開スルー 本スレではスルーできたが、他スレでその話題を出してしまう。見つかると滑稽。
乞食スルー 情報だけもらって雑談はスルーする。
質問スルー 質問をスルーして雑談を続ける。
思い出スルー 攻撃中はスルーして、後日その思い出を語る。
真・自演スルー 議論に負けそうな時、ファビョった後に自演でスルーを呼びかける。
偽・自演スルー 誰も釣られないので、願いスルーのふりをする。狙うは4匹目。
3匹目のスルー 直接的にはスルーしてるが、反応した人に反応してしまう。
4匹目のスルー 3匹目に反応する。以降5匹6匹と続き、激突スルーへ。
2017/10/05(木) 19:58:22.56ID:xjK/Oc+X
質問です。
同一ディレクトリ・同一パッケージ内に、共にpublicで2つのクラス(RenshuA、
RenshuB)を作り、それぞれmethodA、methodBをpublicかつstaticで定義し、
methodB内でRenshuA.methodA();と呼ぶコードを作成したのですが、
コンパイルが通りません。
どなたか原因を教えて頂けないでしょうか。
8988
垢版 |
2017/10/05(木) 20:01:15.37ID:xjK/Oc+X
それとエラーは「シンボルを見つけられません」というものです。
よろしくお願いします。
2017/10/05(木) 20:06:12.40ID:PaSIQ/4V
それだと推測でしか答えられないから
ソースをコピペしてほしい
2017/10/05(木) 20:08:27.60ID:qdkn4E5e
>>89
コンパイルはどのようにしたのか?
9288・89
垢版 |
2017/10/05(木) 20:49:30.26ID:xjK/Oc+X
kenshou2という名前のディレクトリ・パッケージ内に、クラスRenshuA・
RenshuBが入っています。

以下RenshuA.javaのコード
package kenshou2;
public class RenshuA {
public static void methodA() {
System.out.println("A");
}
}

以下RenshuB.javaのコード
package kenshou2;
public class RenshuB {
public static void methodB() {
System.out.println("B");
RenshuA.methodA();
}
}

RenshuAはコンパイル通っています。
コマンドプロンプトにおいて、javac RenshuB.javaと入力しました。
93デフォルトの名無しさん
垢版 |
2017/10/05(木) 22:22:46.50ID:Iw1gUCSC
>>92
javac - Java programming language compiler
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html#searching

| The compiler searches for class files first in the bootstrap and extension classes,
| then in the user class path (which by default is the current directory).
| The user class path is defined by setting the CLASSPATH environment variable
| or by using the -classpath command line option. (For details, see Setting the Class Path).

コンパイラは、まずブートストラップクラスと拡張クラスのクラスファイルを検索し、
次にユーザークラスパス(デフォルトではカレントディレクトリ)を検索します。
ユーザークラスパスは、CLASSPATH環境変数を設定するか、
-classpathコマンドラインオプションを使用して定義します。

クラスパスのオプションが指定されていないのでユーザクラスパスはカレントディレクトリですよと
パッケージ名がついてるときはパッケージ名と同じディレクトリがないといけないですよと
なのでこうかな

javac -cp ..\ RenshuB.java

cd ..
javac kenshou2\RenshuB.java
2017/10/05(木) 22:44:07.57ID:RWFlOlgJ
Java は、実際のフォルダ階層と、

各クラスのパッケージ階層を、同一にしないといけない
9588・89
垢版 |
2017/10/06(金) 04:22:34.25ID:GT9/18A+
>>93 >>94
丁寧にありがとうございました。やってみようと思います。
96デフォルトの名無しさん
垢版 |
2017/10/06(金) 05:37:22.47ID:JP/D7qWJ
JSFを勉強しているのですが、JSF2の参考書は分厚い難しそうなのしかないのですが、JSF1とかの参考書は
Amazonの中古で割と砕けた感じのがありとっつきやすそうなのですが、JSF1と2ではやはりだいぶ違いますか・・?

根幹とかが一緒なら、やってみたいとも思うんですが・・。
2017/10/07(土) 10:28:44.48ID:ao3GcIPR
>>96
俺は1覚えた状態から2を覚えたけど、今なら最初から2の方がいいでしょ。というか、俺は5年前にJSFを捨てた。当時は気に入ってたけど、今時のweb開発とは全く違うから。
内部で使う管理ツール的なアプリならいいけど、普通のアプリはちょっと辛いよ
2017/10/08(日) 01:10:37.77ID:hbsbK/yL
実際の現場で、新入社員等に○○されたら
ブチ切れる……みたいなことありますか?
JAVAか、少しスレちですが開発現場関係で
教えてくださいませ!
2017/10/08(日) 01:49:50.25ID:TOf4XrGv
少しどころではない
2017/10/08(日) 01:58:15.50ID:X3i4AnjM
板違いだな
マ板向きの話題か
2017/10/08(日) 02:05:12.73ID:hbsbK/yL
そうですか……
すみませんでした
2017/10/08(日) 06:48:08.91ID:Iqz4qArZ
プログラマの雑談部屋 ★16
http://medaka.5ch.net/test/read.cgi/prog/1507354689/
2017/10/08(日) 19:12:48.63ID:gbjNFn3Z
変な改行
変な顔文字
10496
垢版 |
2017/10/11(水) 11:38:51.27ID:Ys/lPH2g
だいぶ亀レスですが、ご容赦ください・・。
>>97
やっぱそうですよね・・。どのWebページ見てもJSFは2からやったほうが良いようなことを書いてあります。
JSF1はくだけた解説書があるのですが、JSF2はあんまりないです(´・ω・`)…

Kindle本で評判悪いですが、あるのでやってみようと思います。KindleUnlimtedに加入すると0円らしいです・・・

お礼が遅くなりすみません。どうも体調が悪くて・・・。しかし、今時のWeb開発とは違うんですね・・。

私がやってたころは、Strutsしかなかったのに・・・。
2017/10/11(水) 12:44:18.73ID:uj1SUlbB
保守作業するんでもない限り今からやるならspringのほうが良いだろ
むしろspringがあるからJava使うレベル
106104
垢版 |
2017/10/11(水) 15:33:31.63ID:Ys/lPH2g
>>105 Springってそんなにいいんですね。図書館にSpringの本がたくさんあったので
それやってみようと思います。J2EE関連の本はJSFばっか取り扱っているので、Springなんておまけみたいなものなんだろうと思っていました。それ、やってみます。

どうもありがとう。
2017/10/11(水) 20:30:44.86ID:QnvmwpWa
プログラミング GROOVY、2011

Spring Framework 4 プログラミング入門、掌田津耶乃、2014
Spring Boot プログラミング入門、掌田津耶乃、2016
2017/10/12(木) 02:29:30.72ID:uD/G1fwI
プログラミング速度を上げる方法を教えてください。
バリバリの初心者で、とにかくベタベタ上から書いています。
しかし、先を見据えてないので、書いて消して悩んで……で
時間だけが無駄に過ぎていきます(;;)
(料理の初心者が、あたふた料理している感じ)
何回なアルゴリズムをすぐに思いつく! ではなく……
普通のアルゴリズムの普通のソースコードを、
たんたんと書いていけるようにしたいのです。
(料理人が危なげなく、並列して料理している感じ)

みなさんは、どうやって開発、記述しているのでしょうか?
2017/10/12(木) 02:47:30.24ID:D7OLf+6g
>>108
行き当たりばったりに書かないで
全体から書いていくと良い

具体的にはUML(のクラス図とか)を書く
慣れたらいちいち書かなくてもいいけど
最初のうちは書いて全体の見方を覚える

そうすると料理で言ったら煮込んだり
時間のかかる調理をしながら
下ごしらえをするみたいなことができる

要するにムダがなくなる
2017/10/12(木) 08:39:52.77ID:Qd5qTvbC
>>108
プログラミングで言うソースは
料理で言うレシピみたいなもんだからな
慣れだよ慣れ
111104
垢版 |
2017/10/12(木) 09:00:15.46ID:fTkEvokp
>>107
ありがとう。その2冊は図書館にあったので、見てみます。前から、ちょっとは見てみたいな…と思ってたやつです。
あと掌田津耶乃さんはけっこうSpringとかGroovyとか推してますよね(´・ω・`) JSFでググったときに出てきました。

一度読んでみます。ありがとう。ステマじゃないよw
2017/10/12(木) 09:17:19.57ID:uD/G1fwI
>>109
UMLは全図を勉強しましたが、もっぱらクラス図を見るだけですね。(〜_〜;)
クラス図以外は使っていないので、だんだんと記憶が……。
例えば、下記のような仕様のソースを109様が開発するときは、すらすらとクラス図にできるのでしょうか? もしコツがあるならご教授ください……! 
稚拙な例ですいません(><)

「なんでも計算機」
・基本機能は加減剰余のみ。
・プラグイン形式で数学的計算機能を追加可能。
(開発者が追加していくパターン)
・プラグイン形式でユーザー独自の関数を追加可能。
 ・方法:テキストファイルに決まった形式でユーザーが関数を書き込み、
     それを取り込み、機能を実現。

>>110
慣れ……ですか。(><)
110様の普段のコツは無いのでしょうか?
113109
垢版 |
2017/10/12(木) 09:48:27.62ID:D7OLf+6g
>>112
>「なんでも計算機」
3D描画エンジンとかもそうだけど
そういう専門的なものを作る場合は
UMLとか一般的なOOP手法だけじゃなくて予備知識がいる

例というだけじゃなく本当にその仕様を実現したいなら
インタプリタとか言語処理系の知識が必要
「バリバリの初心者」向きの題材じゃない
2017/10/12(木) 11:06:35.94ID:UV6Mfibu
>>108
設計を学ぶ
2017/10/12(木) 11:18:21.19ID:Qd5qTvbC
>>112
自分用にあったら便利そうな小さなツールから作っていく
次第に「あれとあれ組み合わせたらいいのできるかも?」みたいに思いつくから
段々規模を大きくしていく

でももし趣味とか好きだからじゃなく仕事で仕方なくとかなら思いつきにくいかも

後々土台の変更が必要になったりしてもいいなら
まず単純に加減乗除の式だけテキストから読み込んで実行できるようなのを作ったら
後は機能追加でいいから土台だけでもやってしまうとか

何桁まで扱うようにするのかとか多倍長整数まで扱うのかとかも要検討かな
2017/10/12(木) 11:18:29.49ID:Aq/Tc0l7
>>98 >>108
誰かに怒られたのか?
2017/10/12(木) 11:21:03.26ID:W4Y9jhaF
面白いことに「数式を入力して計算するアプリを作る」よりは「色々な数式ボタンをつけた電卓を作る」ほうがずっと簡単なのだ
テキストパーサの知識はゆくゆくはあったほうがいいが、初心者がやるもんじゃねーな

んで、もし

プログラミング行為自体が遅い(1時間に打つ文字数が少ない、等)と思った場合:
・ 文字列やコレクションが持つメソッドの動作、高度な制御構造の使い方だけは絶対に記憶しておく
(書き方は覚えなくていい。「配列を○○する方法ってそういえばあったな」と気付ける程度でいい)
・ メジャーなデザインパターンを、これまた基本的な動作だけやって納得しておく(書けなくていい)

7割くらい機能ができた時点でかなり消して3割くらいから書き直すが動かない、みたいなことが頻発する場合:
・ gitや、gitや、あとgitのようなバージョン管理システムを利用する
(git類は「ここまでできたので保存しておく」「壊してしまったので保存時点まで戻す」「試しにコピーして改造する」がすぐできる。必須)
・ 上記に関し、メソッド単位で編集保存するという作り方を心掛ける(いきなりあちこち書き換えない)

メソッドAを使うメソッドBを作ったのだがそのまま動くと思ったメソッドAでエラーが出る、みたいな「このメソッドいきなり動かなくなった」が多発する
・ "ユニットテスト"を導入する。小難しい議論が大量にあるが当座「このメソッドはこの引数Aの時戻り値Bを返す、Cのときは実はD」という使い方でいい

UMLやクラス構成図を使っているのにぐちゃぐちゃになるという場合:
・いまのあなたに必要なのはもっと自由ならくがきである可能性が高い。方眼プロジェクトペーパーと書きやすいペンを用意しよう
2017/10/12(木) 11:46:27.97ID:UV6Mfibu
UMLは設計を整理したり人に伝えたりするもので
それ自体が分析設計を生み出すものではない

分析設計を生み出すのは開発手法
RPとかOMT
2017/10/12(木) 14:10:31.81ID:o8TlX9Z0
>>108
大きな問題を小さな問題に段階的に繰り返し分解する
十分に粒度の小さな問題の解法は何度も必要になるのでメモするなりしてすぐ参照できるようにする
>>117が書いてるような文字列操作・コレクション操作・制御構造なんかはこのレベル

少しやってれば上のようなレベルは資料を見なくてもすぐ出来るようになるので
次はそれらの小さな問題を集めたもう少し粒度の大きい問題を解くパターンを認識して
それらをメモするなりしてすぐ参照できるようにする

これを繰り返していけば問題に対する解法をすぐに思いつけるようになる
それぞれの解法に対応したスニペットや汎用的な抽象化コードを用意しておけば
考える速度だけじゃなく書く速度も上がる

小中学校の算数・数学の問題を速く解くための勉強方法と基本的に同じ
2017/10/12(木) 14:27:19.38ID:W4Y9jhaF
もしにひょっとしてIDEを使っていないのならIDEは使ったほうがいいよ
IDEなしにいまどきのJavaなんてタチの悪い修行だよ
書かないと覚えないだろなんてのはその「書くべきこと」が1行で済むような場合だけだ
IDEの使い方(正確には実行設定の仕方)とトラブル対処を覚えないといかんのでちょっとアレなのだけれど、そこをなんとか
121デフォルトの名無しさん
垢版 |
2017/10/12(木) 21:08:07.21ID:chOTaJW5
「あるサブクラスのオブジェクト」から、
「そのスーパークラス」や「スーパーのスーパークラス」の
属性やメソッドを使用するのが苦手です。
サブクラス上から見えないからです。
エディタなどで上手く一覧する機能ありませんか?
importしたライブラリのメソッドや属性もどういう構成になっているか
がわかりません。
2017/10/12(木) 22:53:15.60ID:jZh2ph1X
ide
2017/10/13(金) 00:22:43.72ID:uBikma4h
そもそも実装を継承しないのが良い
「継承より委譲」
124デフォルトの名無しさん
垢版 |
2017/10/13(金) 00:24:47.19ID:24qBoS+k
>>123
継承を委譲に互換できるようにリファクタリング
する方法はありませんか?
2017/10/13(金) 00:39:26.87ID:uBikma4h
普通に継承を委譲(集約)に
置きかえていけばいいんだよ
2017/10/13(金) 08:37:40.23ID:xmEIYn5a
>>113
なんとこの例は専門的なものだったんですね。
思いつきで考えた例なので申し訳ありませんでした。

>>114
設計がうまくなりたいです。
そうすれば眠る時間も増えそうです……。
(z_z)

>>115
小さなツールというのは再利用可能なクラスということでしょうか?
正直、私の作ったクラスはネストと専用処理だらけで再利用できないのです……。

>>116
怒られたというか、注意されました。
上司、先輩に確信を持ってコーディングしろと……。
担当レベルで「バグ0」にして提出と言われたので、今回のような
質問をしたら、「根性で学んでこい、とにかく動けばいい」と……。
根性で何を学んだらいいのか教えてもらえませんでした。
スレのみなさんの意見で、たぶん「設計」を学ぶと良いのかなと思いました。
2017/10/13(金) 08:38:26.90ID:xmEIYn5a
>>117
丁寧に助かります。
GIT調べてみます。
ユニットテストはprintlnでログを確認してます。
私の開発手順は……
・口頭で「xxxなクラスを作ってくれ」と指示を受ける。
・クラス名を考えて、とりあえず必要そうなフィールドを書く。
・ここで手が止まる。(何か書かなきゃ、そうだ! アクセッサ!)
・全フィールドのアクセッサをかく。(焦る。とにかくメソッド書かなきゃ!)
・時価の商品価格を計算するとしたら、メソッド名(calcPrice)を書く。
・とりあえず分岐はするはず! そうだif文の枠だけ書こう!
・(省略)以下、確信なく恐怖でベタベタ書く……
・ifネスト、forネスト、switchネストな恐ろしいメソッドが1つできあがる。
(アクセッサ抜かすと、大抵はpublicメソッドが1〜2個しかない)
・printlnでログみてテスト。一応動くが、確信は無い。
・(そして大抵は)仕様変更、追加のお知らせが届き、デスマーチへ。
(合間に結果としてのエラーも当然でて、ブレークでトレースしてると
あっというまに1時間経ってます……)

>>118
RP、OMT、調べて参考書探してみます。

>>119
その粒度を小さくするという作業が「設計」ということでしょうか?
数学(簡単なもの)ならその分解作業が可能なのですが、
ことシステム設計になると、とっかかりが見つからないのです……。(><)
数学で言えば、計算式は解けるが、文章題から計算式が導けない感じです。

>>120
エクリプス使っています。
といっても、フォルダ管理と構文チェック、結果ログ見る程度です。
2017/10/13(金) 09:32:14.92ID:GrUYgy4I
>・口頭で「xxxなクラスを作ってくれ」と指示を受ける

この時点で既に常識的な開発現場としてありえないんだが
ユニットテストまでやって仕様変更云々って言ってるってことは
もう詳細レベルまで落とし込んだ仕様があるのに口頭でやってとかありえんだろ
詳細設計書あるならどういう作りすればいいか壊滅的な馬鹿でもない限り誰でもわかるし
作り終わったらテスト仕様書作ってテストするから仕様変更やデスマーチも糞もねぇだろっていう
お前のところ色々おかしいかお前が意地悪されてるか敢えて何かを試されてるか何かだと思うわ
2017/10/13(金) 09:44:47.25ID:GrUYgy4I
ネストしまくるような複雑な条件の仕様を口頭で言うとかありえないから
とりあえず実際にどういう指示されたか書いてみ
2017/10/13(金) 09:51:55.46ID:1VCWZvPT
>>128
いやテストしてないと思う
"ユニットテスト"ってきちんと書かれてるのに「プログラムの動きをテストすること」だと思ってる(だからprintlnという頓珍漢な答が)
https://qiita.com/takehiro224/items/a5d4265c4a1b36b0919c
ともあれ最初の業務でやってるのならツール的なアドバイスは無駄かもしらんね
131デフォルトの名無しさん
垢版 |
2017/10/13(金) 10:37:26.01ID:a1m8Fd6w
配列定数はイニシャライザーにおいてのみ使用可能です
これどういう意味ですか?
2017/10/13(金) 11:20:18.34ID:1VCWZvPT
>>131
それ自体はそのまんまの意味だが、配列リテラルを代入し損ねてるときに言われることが多い
その代入の書き方は本当に合ってる? arrじゃなく arr[ ] とかが必要なんじゃない??
2017/10/13(金) 15:38:08.18ID:+zTlsJiZ
>>127
>その粒度を小さくするという作業が「設計」ということでしょうか?
設計の一部だけど全部じゃない
一つの問題に対して解法は一つではないので
複数ある選択肢からどの解法の選択するかが設計の核
問題の分解方法は解法選択の一部


>数学で言えば、計算式は解けるが、文章題から計算式が導けない感じです。
これは問題を明確に定義できてないから
明確に定義されてない問題は解けない

「xxxなクラスを作ってくれ」と指示を受けたらまず以下3点を明確にする
1. なぜそのクラスが必要なのか? クラスの責務は何か?
2. そのクラスに必要なパブリックインターフェースは?
  - 例外を含めた入力・出力の型(メソッドシグニチャ)
3. どういうテストをパスしたら十分なのか?
  - 事前条件、事後条件、不変条件

3点とも指示を出した側に質問する必要がある(嫌がられてもしつこく)
特に3の何ができたら問題を解けたと言えるのかを明確にするのが一番大事


問題の定義と解法の選択、解法の選択の主要な方法として問題の分解がある
算数で考えればものすごく当たり前だよね
2017/10/13(金) 16:00:23.53ID:uBikma4h
>>126
設計を考える上で標準ライブラリを参考にするといい
たとえばどの言語でも日付なんかは標準になってる

そういう共通してて何度もおこなう処理を考えよう
たとえば価格の計算であちこちで何度も
税額を算出してるならメソッドにくくり出すとか

>>127
とりあえずクラス使ってるってだけで手続き的な
オブジェクト指向らしくないコードのようだね

なるべく深いネストは外していこう
メソッドに抽出してその組み合わせで処理する

そうして粒度を細かくすると
クラスやメソッドの数が増えて不安かもしれないが
重複が減るし読み書きしやすいから
その方が全体として作業量は減っていく
2017/10/13(金) 21:11:04.47ID:xmEIYn5a
皆様、いろいろご丁寧にありがとうございます。
指示は先輩が手帳を見ながら口頭で伝えられるので、
それを急いでメモするという感じです。とにかく忙しそうです。
具体的な内容は業務内容に触れてしまうので控えさせてください。

とりあえず、下記のことをやってみようと思います。
・設計の本で良いのがないか本屋で探す。
・仕様詳細をもっと聞く。
・まずクラス図を書いて、責務の粒度を細かくする。
・再利用できるメソッドを作るよう心がける。
 (といっても、どうやればいいのか……)

あとは、みなさんのレスを反芻していきます。
本当にありがとうございました。
最後の質問ですが、設計に関してのおすすめの書籍はありますか?
ぜひ、購入したいと思います。
2017/10/13(金) 21:36:38.72ID:uBikma4h
>>135
>設計に関してのおすすめの書籍

まずJavaやOOP自体に慣れてないなら
『スッキリ Java』が一番やさしい

狭義の設計じゃないけど設計力の土台になるのが
『Javaで学ぶアルゴリズムとデータ構造』

本題の設計は難解な本が多いから
UMLの本とかデザインパターンの本とか個別のテーマで
やさしそうな本から読んでいくのがオススメ

メソッドの抽出とかは『リファクタリング』に
いろんな手法が載ってるから
ある程度JavaやOOに慣れたら読んでみよう
137デフォルトの名無しさん
垢版 |
2017/10/13(金) 23:16:37.77ID:JHJOvcP0
>>127
アクセッサは、アノーテーションを付けるだけだろ

テスト駆動開発(TDD)でやる。
最初は関数で処理を作っていき、だんだん高度になってくると、クラスにする
2017/10/14(土) 03:37:43.62ID:mgPn9dNJ
書いてる内容見る限り、立ち位置的に設計云々とかクラス図とか
考えるレベル以前の問題で職場の奴はそういうのは求めてないように見える
言われて作ったクラスがどういう使われ方してるのかもよくわからんし
書いてる事から想像するに、勉強も兼ねた誰かの手伝いとして適当に使われてるだけだろ
いずれにしても作業指示の仕方が糞すぎるからそこは辞めた方がいいよ
139136
垢版 |
2017/10/14(土) 04:10:51.25ID:ZBYXJflL
>>136
>『Javaで学ぶアルゴリズムとデータ構造』
あっ今検索したら同名の書籍があったけど
望洋の明解シリーズの奴ね
図解が多くて分かりやすいから
2017/10/14(土) 09:07:23.00ID:9JuWfEXp
>>135
> ・再利用できるメソッドを作るよう心がける。
1, これは再利用するだろうなってのをメソッド化
2, この処理は別の所でもやったなってのをメソッド化
3, 機能毎にメソッド化(分割や統合)できそうだなってのをメソッド化
他にもあるだろうけどこんな感じでいいよ
2017/10/14(土) 09:38:10.74ID:5+/c+cYf
自宅で自分用の(自分で勉強するための)プログラムを書いて慣れるというのがいちばんだと思う
業務指令で範囲限定されたコードだけ書いててもまっっっったくメソッド感覚(?)は身につかないよ
だって「そんなことしなくても動く」もの、業務中にやる理由ないよね
2017/10/14(土) 10:59:53.02ID:K4XROtS+
口頭で伝えるのは後から改変するための常套手段
証拠は残さない
2017/10/14(土) 11:03:35.03ID:K4XROtS+
なぜこのクラスが必要なのですかと訊くと
キレ気味にいいから黙ってやれと言われる
別にイヤとかやりたくないとかじゃないんだけど適当な仕様だと文脈背景わからないと間違いの元
他の奴が黙ってやっちゃうから味を占めたんだろうな
また無駄な後戻り工数が生まれて実装のせいにされる
2017/10/14(土) 11:22:15.08ID:+XwGR1nT
わかってないだけだって
人はわからないことを聞かれた時に不機嫌になるってのはわかるだろ
2017/10/14(土) 11:24:26.80ID:+XwGR1nT
>>142
そのせいなのかメールで聞くと返事が返ってこないやつはマジでイラつく
そういう奴は無責任の意気地なしとみなす
2017/10/14(土) 13:23:40.40ID:ZBYXJflL
>>135
>・再利用できるメソッドを作るよう心がける
間違ってもいないんだけど実際には

最初から再利用を目指すより
リファクタリングで重複した処理を
メソッドに切り出す方が簡単なんだけど

「動いた物をいじるな」という職場だと
まあそっちもそっちで難しいよな
2017/10/14(土) 13:24:19.64ID:lMgWewwv
>>145
口頭で聞いた後に

先程の備忘です。
認識齟齬などあれば返信にて訂正願います。

とかなんとか理由付けてこっちからメール送ればいい
一手間かかるけどある程度身を守れる
148デフォルトの名無しさん
垢版 |
2017/10/14(土) 13:44:26.23ID:YpZiBRe4
>>142
じゃあ録音しとけ。
または忘れやすいということにして詳細にメモをする。
2017/10/14(土) 19:47:58.75ID:/I4SGVxg
>>136
書店で推薦書を購入し、
1「スッキリ」の2冊
2「Javaで学ぶアルゴリズムとデータ構造(明快シリーズ)」
の順番が良いかと思いましたので、
本日からスッキリを学んでいこうと思います。
ありがとうございました。

>>138
おっしゃる通り、重要業務は任されていないと思います。
今はとにかくスキルを上げたいと考えています。

>>140
たぶん再利用可能メソッドは標準ライブラリで提供されているような
ものだろうと思っています。
なんとかくくり出せるように考えてみます。

>>146
デザインパターンをマスターすると保守しやすいクラスや
メソッドになると知りました。
デザインパターンとリファクタリングも学んだほうが良いようですね。
2017/10/15(日) 01:07:03.66ID:y0fiNdyH
今から「スッキリ」で勉強を始める、素人か。
そんな奴に、一々説明していたら、数年かかる

オブジェクト指向を知らない奴は、仕事でプログラミングしたら、いけないレベル

少なくとも、Java の本を10冊読んで、資格や数年以上の経験が必要
2017/10/15(日) 01:23:31.23ID:hZRxEBGG
本10冊くらいはそりゃ読む必要あるけど
資格や経験年数はほとんど関係ないよ
本人の素質と努力次第
2017/10/15(日) 01:38:06.25ID:h2ngFzeR
新卒?中途採用?
何歳か知らんけどプログラミングほとんどやったことないなら
普通研修みたいなの1か月ぐらいは与えられるもんだが今がそれなのか?
153デフォルトの名無しさん
垢版 |
2017/10/15(日) 01:56:56.82ID:ZgJv24or
その辺はその会社次第なんじゃないの? 教育やる余裕がない小さい会社とか
大きくてもその辺のこと分かってない会社とか色々あるだろうし。

ま、しかし、基本的にワザは教えて貰うよりは盗んだ方が良いだろうな。
自分で求めてこうだと分かったことなら忘れないが教えて貰ったことは忘れるから。

なんてことをこの前テレビで坊さんが言っているのを聞いてその通りだと思った。
2017/10/15(日) 02:43:30.36ID:XpJLTK+d
Javaの「スッキリ」はRPGで言うと
「ひのきの棒」や「竹のやり」みたいな初期装備だが
丸腰よりはるかにマシ
「明解」でやっと「銅のつるぎ」

ファウラーの「リファクタリング」や
GOFのデザパタやエヴァンスのDDD本は
もっと高級な剣だが
レベルが足りないと装備できない
2017/10/15(日) 08:18:45.28ID:RBDvyi+r
ひのきの棒という役割を演じるゲームか
シュールだな
2017/10/15(日) 15:24:42.40ID:atfl3lAe
>>154
そのスッキリは入門編(黄緑の方)のことですよね?
2017/10/15(日) 18:51:46.03ID:XpJLTK+d
>>156
そうだよ

でもスッキリ2冊読んで終わりとか
それほど甘くはないよ
スッキリは基本的に初心者向け
2017/10/15(日) 18:53:06.03ID:XpJLTK+d
>>155
本が役割ってのがよく分からない
159デフォルトの名無しさん
垢版 |
2017/10/16(月) 16:09:19.43ID:4dXapby2
オブジェクト指向はあまり良くないだろな。
GUIと相性が良かっただけで、その他一般的な問題とは親和性が低い。
2017/10/16(月) 19:04:15.39ID:BLPcXnhp
オブジェクト指向が一番汎用的だと思う
DDDがOOメインなのもそこだし
161156
垢版 |
2017/10/16(月) 20:19:21.78ID:tOLHzrTo
>>157
レスが遅くなってすいません。

そうですよね、ありがとうございます。
でも今の自分には実践編(緑の本)の中盤以降が結構難しいです…。
2017/10/17(火) 14:09:59.12ID:ywtVys1/
オブジェクト指向がマッチしないと言っているのは
設計を構造化とかどやっといて
オブジェクト指向プログラミング使えないと言ってる奴がよくいる
機能とか流れって出てきたら注意
163デフォルトの名無しさん
垢版 |
2017/10/17(火) 14:22:15.60ID:H+HUM8Ad
オブジェクト指向がよくわかってないからマッチさせられないだけではないか?
164デフォルトの名無しさん
垢版 |
2017/10/18(水) 10:19:44.01ID:LGKAL/cG
>>156
リストの頭だけを掻き集めてリスト化したような良書ではある
165デフォルトの名無しさん
垢版 |
2017/10/18(水) 11:33:37.26ID:NAca40Iu
Javaスレ少なくなったなあ。
2017/10/18(水) 12:05:23.13ID:W6T+19ej
ことりんに横取りされちゃう
167デフォルトの名無しさん
垢版 |
2017/10/18(水) 12:11:48.42ID:NAca40Iu
メモリー使用量が個人利用の壁になっているんだろうな。
2017/10/18(水) 18:27:07.39ID:cbmCwNcY
Javaの個人利用が難しいのは
安いレンサバで使えないのが大きいのでは
2017/10/18(水) 22:32:18.55ID:FgeE42WT
大抵PHP.良くてPython.ruby止まりかな
170デフォルトの名無しさん
垢版 |
2017/10/19(木) 03:47:23.04ID:ymhc97rd
何故使えるようにならなかったのか考えないのがJavaユーザぽくていいよね。
2017/10/19(木) 09:32:34.88ID:vpgxLHGK
スクリプト言語はその場で書き直しゃ動くからねぇ
JavaとかC#とかはビルド→デプロイまたは
ビルド→パッケージング→デプロイとか面倒
GAEはどこまでショートカットしてくれるのか知らん
2017/10/19(木) 12:11:01.39ID:gt24D1Vb
俺って大体そこらへんの能無しより2倍ぐらい仕事早いほうなんだけど
金融系の内部管理システムで1画面にボタンが20個ぐらいあって
段階的に5回ぐらい認証する機能で鬼のように状態持ってるから
設計書の相関チェックも凄いことになってて当然こんなレベルの機能だと
設計書にも不備ありまくりで実装してく度に何十回も設計者と確認しないといけないレベルで
外部結合で持ってくる情報も鬼の用にあるからSQLも100行超えるわ
外部ファイルも取り込んだりするわでエビデンスのページ数も余裕で100ページ越えるレベルで
これが最初テスト完了まで2週間ぐらいの線表で
毎日残業して1か月かけて作ったらプロパーが後ろで「こんだけ時間かけられるとは思わなかったわ」とか
嫌味言ってくるのが典型的な能無し無能システム会社なんだよな
2017/10/19(木) 12:22:12.67ID:gjuTpzaj
で?
174デフォルトの名無しさん
垢版 |
2017/10/19(木) 12:24:42.39ID:ScM6nrf0
そういう無理のあるものを断れない立場に居ること事態が既に能のある状態とは言えない
2017/10/19(木) 12:41:04.00ID:gt24D1Vb
過疎ってるから暇つぶしに書いただけだ
プログラムやらず嫌いのプロパーしかいない無能会社の中でも大ハズレの部類
当たりはバグ調査が全然できないプロパーがいるところのバグ調査担当
2017/10/19(木) 12:43:13.55ID:PZ5DzTeM
書かなくていいです
2017/10/19(木) 12:47:12.90ID:q54VEuRQ
JDK 8u151と8u152、2つ出てるけどどっちをインストールすればいいの?
178デフォルトの名無しさん
垢版 |
2017/10/19(木) 12:59:35.28ID:ymhc97rd
リリースノート。
2017/10/19(木) 14:39:13.91ID:wexIKijw
>>171
スクリプトでもバージョン管理してるから他で書いてやっぱりデプロイしてる
個人でも
180デフォルトの名無しさん
垢版 |
2017/10/19(木) 18:18:57.97ID:r3vXhCvd
ストリームバッファについて質問です。どれがいいのでしょうか?

FileInputStream fis=new FileInputStream("file");
0.
InputStreamReader r=new InputStreamReader(fis);
1.
InputStreamReader r=new InputStreamReader(new BufferedInputStream(fis));
2.
BufferedReader r=new BufferedReader(new InputStreamReader(fis));
3.
BufferedReader r=new BufferedReader(new InputStreamReader(new BufferedReader(fis)));

そもそもバッファの効果もよくわかってません
181デフォルトの名無しさん
垢版 |
2017/10/19(木) 18:21:13.65ID:r3vXhCvd
訂正
3.
BufferedReader r=new BufferedReader(new InputStreamReader(new BufferedInputStream(fis)));
2017/10/19(木) 21:44:03.04ID:dFFGzMdP
BufferedReader br = Files.newBufferedReader(path,charset)
■ このスレッドは過去ログ倉庫に格納されています