多くの場合、アプリケーションに関することを忘れます。私はテーブル名やクエリが何をしたかを覚えておらず、欲しいものを得るために検索します。チームリーダーは、使用するテーブル名を記憶することになっていると言った。
開発者は、データベース内のテーブル名、クラス名などを記憶する必要がありますか?そして、答えが「はい、いつも」である場合、それらのことを覚えておくにはどうすればよいですか?
多くの場合、アプリケーションに関することを忘れます。私はテーブル名やクエリが何をしたかを覚えておらず、欲しいものを得るために検索します。チームリーダーは、使用するテーブル名を記憶することになっていると言った。
開発者は、データベース内のテーブル名、クラス名などを記憶する必要がありますか?そして、答えが「はい、いつも」である場合、それらのことを覚えておくにはどうすればよいですか?
回答:
これらを明示的に記憶する必要はありません。つまり、スペルテストの単語のリストと同じように、座って学習します。最初の場合、名前は覚えやすく発見しやすいものでなければなりません。そうすれば、あまり手間をかけずに名前を見つけることができます。
また、オートコンプリートなどでここで役立つツールにアクセスできる必要があります。
100を超えるテーブルからなる大規模なシステムでは、すべてのテーブル名とすべての列名を覚えることは本当に期待できません。日。
恥ずかしいことに-私はもう30年近くCを使用していますが、関数ポインターの宣言方法を思い出すことはできません-構文をチェックするために常にK&Rを出さなければなりません。
さらに恥ずかしいことに、typedefの仕組みについて本当に一生懸命に考えなければなりません。
typedef foo int;
または
typedef int foo;
これらは私の個人的な死角です。似たようなものがあれば心配しません。
記憶は重要です
確かに、強力な記憶は、開発者が持つことができる最高の才能の1つです。実際に誰でも持つことができます。それは本当に特別なことであり、私はそれに恵まれた人々をen望し、賞賛します。それは間違いなく、人がより強力な開発者、弁護士、整備士になること、または(ここで選択したジョブを挿入する)のに役立ちます。
いくら必要ですか?
しかし、すべてのものの暗記を要求することは公正な要件ではないと思います。私はあなたが物事を行うことの自然な部分として記憶に物事をコミットし始めると信じています。これが、言語に関する本を読んで、それを実稼働環境で使用することが同じではない理由です。毎日何かを使って作業すると(一部では「練習」と呼ばれます)、いくつかのことを第二の性質にするようになります。
他のポスターと同様に、アプリケーションの重要な部分を覚えておくと役立つと思います。ただし、現代のツールでますます一般的になっているインテリセンスなどの機能を利用できる場合、そのすべてを記憶することに投資する価値があるかどうかはわかりません。
どのように改善できますか?
私は記憶の専門家ではありませんが、脳のゲーム(クロスワード、数独、パズルなど)などのメンタルエクササイズによって実際に記憶を改善できると考える人もいます。理論は、あなたの脳は筋肉のようなものであり、それをさまざまな方法で使用して運動させれば、それを強化できるということです。
脳のゲーム、プログラミング、インタラクティブな活動を行うことなどが、時間とともに脳にどのような影響を与えるかについての研究を見るのは興味深いでしょう。そのようなことは、年齢や認知症によって引き起こされる記憶喪失の発症と戦うのに役立つでしょうか?
私がどこから来たのか、「馬鹿は記憶し、賢い人は書き留める」という英語の古い言葉があります。基本的に、あなたの記憶がどれほど良いかは重要ではありません、あなたは忘れます。あなたは人間だけです。そして、これは結果として、人間の記憶に頼ることになります...まあ、信頼できません。それらのテーブル名を覚えていると思っていても、100%確信できますか?テーブル名を検索するのに数秒しか必要ありませんが、スペルミスによって引き起こされるバグを追跡するには、数時間、さらには数日かかることがあります。
結論として、いいえ、特に数千のテーブルとクラスを持つことができる大規模なプロジェクトでは、それはばかげた要件です。
あなたが取り組んでいるものであり、それが長期的な割り当てである場合、はい、学習に向けて努力し、さまざまなテーブルと列の名前、クラス、変数、およびメソッドを覚えることができるはずです。これは、あなたが彼らと一緒に仕事をするにつれて、時とともにやってくるものです。一晩ですべてを学習するわけではありませんが、作業中のシステムについてできる限り詳しく知るように努力する必要があります。また、大規模なシステムでは、すべてを記憶しておくことはできませんが、できる限り多くのことを覚えたり覚えたりしない理由はありません。
常にすべてを調べる必要があるのは、生産性の低下にすぎません。タスクに取り組んでいて、数分ごとに停止して調べる必要がある場合、集中力が失われます。適切なツールを使用して支援し、できることを学習/記憶します。生産性が大幅に向上します。
正確なクラス名を記憶することは重要ですか?そうは思いません。
プロジェクトがクラス名でどのような用語を使用しているのかを知っておく必要があるので、より速く検索できますか?間違いなく。
主要なテーブル名と重要な列名を知ることなく、データベースをいつでもクエリできるかどうかはわかりません(しかし、すべてではありません)。毎回それを把握する必要なくこのことを知っている人々は、組織にとってより価値が高くなり、他の人が行き詰まったときに「行く」人々になります。
多くの場合、人々がこのようなことを学ぼうとしないと、気付かないうちにクエリでエラーが発生します。データベースの構造、テーブルの相互関係、および重要なビジネスルールが何であるかを調べなくても理解できるので、コードレビューですぐに見つかるエラーがよくあります。
個人的には、構造を学習することを気にしない人は、その特定のデータベースを照会する際に初心者レベルに留まることが多いことがわかります。また、レイオフに耐えられない傾向があります。あなたの上司は、あなたにもっと注意を払わせるためにあなたを助けようとしていると思います。
強力なメモリ以上に役立つのは、ドメイン駆動設計であり、テーブル名やクラス名などの簡単な規則に従うことです。ビジネスオーナーが要件について話している場合、そのビジネスオーナーが使用するドメイン固有の用語がコードに含まれている必要があります。この場合、ビジネス用語とコード内の名前との間のマッピングを覚えておく必要はありません。この習慣を理解するにはしばらく時間がかかりますが、ビジネスオーナーと開発者の間で行われる翻訳エラーも減少するため、非常に便利です。
これに加えて、プロジェクトの期間が非常に長い場合、一定の期間コードベースに慣れることは、無意識のうちにメモリを助けます。
domain driven design
何ですか?