質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • JavaScript

    17079questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Java

    14153questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • HTML

    9327questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • jQuery

    6953questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

次のような内容の経験を積みたい場合、どのようなことを勉強すればいいか

解決済

回答 3

投稿

  • 評価
  • クリップ 2
  • VIEW 693

k499778

score 504

言語:Java、HTML、JavaScript(jQuery)、CSS
IDE:Eclipse
FW:Seasar2(SAStruts/Doma)
OS:Windows

のような環境でWebアプリケーションを作っています。


私自身まだまだ開発経験が浅く、勉強したいと思っているのですが、
次のような部分の知識・経験を積むためにはどういったこと・何を勉強したらいいでしょうか?
書籍名、サイトのURL、考え方(デザインパターンといった類)を教えて頂けると助かります。


その足りない部分は以下です。

初期設定のユーザーのパスワード登録画面を作っていました。
パスワード、確認パスワードを入力するテキストボックスがあり、それを保存するためのボタンがある簡単な入力フォーム画面です。
すでにDBにそのパスワード情報がある場合は、テキストボックスに6文字のマスク文字で表示するという仕様です。

経験の少ない私はDBに登録されているハッシュ化された文字列を取得し、前から6文字にカットし、それをマスク文字化して表示していました。
ただ後から先輩社員に、DBにあるかどうかを判断し、あればダミーデータを6文字表示すればいい。というアドバイスを頂きました。


そのような長年開発を行っていればわかる常套手段のようなものが経験値の低い私にはありません。

経験を積めばわかると言ってしまえばそれまでですが、何か効率良く勉強する手段はないものかと考えております。

そこでこのような常套手段を勉強する方法、書籍、サイト、考え方があれば教えて頂きたいです。

デザインパターンがそれにあたるのかなあとも思って少し勉強しているのですが、他にもアドバイスあればいただきたいです。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+2

常套手段の様なものを知るには、OSSのコードを読むのが良いと思います。
Apache Foundationなんかには、多くの人に使われているだけあって、参考になる内容が多くあります。

エンジニアのスキルアップにとっては、コードリーディングがかなり有効な学習方法です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/03 17:37

    shanxiaさん
    回答ありがとうございます。
    やはりOSSのコードを読むと力になりますよね。
    GitHubのソースは時々見ています。
    コードリーディングします。

    キャンセル

+2

shanxiaさんやtakitoさんの仰る通りで
  • 優れたソースのコードリーディング
  • 身近な所からのノウハウを貪欲に吸収
  • 積極的にアウトプットしレビューしてもらう
これらは生きたスキルを培う上で極めて有用な方法です。
体系的に学ぶ上で教科書も欠かせませんが、それだけでは、学んだ知識が実際に使える程にはなかなか消化されません。消化出来なければ、血となり肉となるという域には達しません。

さて、自分はちょっと別の観点から少し。

実は私自身もそうなのですが、自信のなさ故に直ぐに聞いたり調べたりしてしまいがちです。

もちろん、知らないのですからそうする事は正しいです。しかし、時にはちょっと立ち止まり、まず自分で考えてみるという習慣(というかある種の勇気)を身に着けることも極めて重要です。

DBに登録されているハッシュ化された文字列を取得し、前から6文字にカットし、それをマスク文字化して表示
という例について考えてみてください。

確かに新人は、先輩が使った 常套手段 (いつもの使い慣れたやり方)は知らないし思い付かないかも知れません。
でも、これって本当にプログラミング上の技術なんでしょうか?それとももっと身近な普通の感覚なんでしょうか?

例えばドラマに出てくるアタッシュケース一杯の札束、これって一番上の表だけしか印刷されていないって小学生でも知っていますよね?特に深く考えもしません。なぜなら全部印刷されているかどうかなんて関係ないし興味も無いから。

6文字のマスク文字だって、値が入力済みかどうかを示したいだけであって、そもそも文字数自体にも深い意味が有るわけではありません。(もし本当の文字数を示しているとすればある種の情報漏洩です。)
またハッシュ値って何かを知っていれば、その一部を切り取ったものに、情報としては何の意味もない事は一目瞭然です。

もちろん、そんな事にさえ気付かないのが新人です。

が、しかし、それでもちょっと立ち止まり頑張って考えてみる。それでも気付かず先輩に聞いて少なからずショックを受ける。

実はこれこそ、脳学者の茂木健一郎先生が提唱されているアハッ!体験そのものですよね!?

こんな些細な事の積み重ねでさえ、ある種のを乗り越えて飛躍するのに欠かせないのではないかと思う今日この頃です。

長文、失礼致しました

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/04 09:36

    pi-chanさん
    回答ありがとうございます。
    長文感謝いたします。
    もちろん考えるようにしていますし、私の場合、周りにもう少し早く聞くように。と注意を受けてしまうタイプです。
    なかなかやはり気づけない部分はあると思いますが、一度自分で考えてみるというのはもちろん正解だと思います。
    これからもpi-chanさんの言ったようにその考えを大切にしていきたいと思います。
    ありがとうございました。

    キャンセル

+1

書籍やどこかのサイトで勉強することも個人的な技術力の向上にはとても大事だと思いますが、「私が開発しようとしているシステムではどうあるべきか」ということについては、なかなか答えを見つけることができないのではと思います

会社の文化、開発システムの背景、コストや品質の問題があるからです

外部から得ることだけでなく身近なところから、先人たちが会社内に蓄えたノウハウ(開発物、ソースコード、ドキュメントなど)を見て読んで考えて、自分の考えやコードを先輩や同僚に「これってこういうことでいいのかな」とレビューをお願いし、そうして自分の糧にする、ということの繰り返しも肝要かなと思います

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/04 09:30

    takitoさん
    回答ありがとうございます。
    最近SlideShareでパワポを見ていてレビューの大切さを肌で感じました。
    コードリーディングもいいなと思います。
    あとは先輩方の時間を使ってしまうのでそこをどううまくできるかになってくると思います。
    ありがとうございました。

    キャンセル

関連した質問

同じタグがついた質問を見る

  • JavaScript

    17079questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Java

    14153questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • HTML

    9327questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • jQuery

    6953questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。