-3

私はプログラミングを数年間行っており、それ以来、より優れたプログラマーになるためのいくつかの概念とテクニック (つまり、OOP、MVC、正規表現、ハッシュなど) を学びました。また、いくつかの言語 (basic、pascal、C/C++、lisp、prolog、python) を学べたことで、視野が非常に積極的に広がったと感じています。しかし、しばらく前から、新しい良い「トリック」を学んでいないような気がします。学習フローをやり直せるような興味深いコンセプト/テクニック/トリックを提案できますか?

4

19 に答える 19

3

YAGNI (You Ain't Gonna Need It) および DTSTTCPW (可能な限り簡単なことを実行)

エッジケースについて考えるのに多くの時間を費やし、まったく役に立たないものを実装したことに気付くのは簡単です。はるかに優れたアプローチは、単純なプロトタイプをノックアウトし、ドメインを十分に理解して製品コードを作成できるようになるまで、それを突っ込んで開発することだと思います。

ただし、好むと好まざるとにかかわらず、プロトタイプは製品コードに発展することを認識してください。ですから、それを念頭に置いて書いてください。

于 2009-05-15T16:59:37.303 に答える
2

正直なところ、.NETのような優れたフレームワークを使用して学習することで、生産性が大幅に向上しました。

まったく同じ機能がフレームワークにすでに存在していることを知らないために、人々が喜んで再発明することに驚かされることがよくあります。

于 2009-05-15T15:03:19.733 に答える
2

IDEとツールの使用方法を学びます。これにより、生産性が大幅に向上しました。

たとえば:

  • ソースレベルのデバッガーの使用方法を学ぶ
  • purify/boundscheckerなどのツールを使用する
  • fxcop

など。私は自分と付き合っていることに気づきましたが、それは大きな一歩でした。もっとたくさんあります。

以前の作業を元に戻すことなく、問題についての考え方を変えたり、問題を解決したりできるときはいつでも、大きな利益が得られます。プロセス、ツールなどすべてがそれを助けることができます。生産性を向上させるための特効薬のテクニックを見つけることに限定しないでください。

生産的な人々が働いているのを見て、彼らが何をしているのか、そしてその理由を教えてもらうことも非常に貴重です。

于 2009-05-15T14:32:33.023 に答える
1
  1. デザインパターン。実装や継承への依存を断ち切り、代わりにインターフェイス (コントラクト) に依存する方法を学ぶことで、プログラミングに対する考え方が変わりました。

  2. デバッグ。実際にコードをステップ実行して行ごとに進み、基本的な状態を調べる方法を理解すると、コードのトラブルシューティング方法に革命が起こりました。

  3. 練習、練習の練習: 比較的少し前まで、仕事以外で自分のスキルに取り組み続けることの重要性に気づきませんでした。私が家で犯した間違いと解決策は、仕事でより良いプログラマーになり、逆もまた同様です。何かが得意になりたいのであれば、学習を止めるべきではありません。プログラミングも例外ではありません。

于 2009-05-15T15:17:12.960 に答える
1
  1. デザインパターン
  2. スクラムプロセス
  3. DiSC 評価(およびそれが共同ソフトウェア開発にどのように適用されるかについての理解)
  4. StackOverflow.com (もちろん!)
  5. グーグル
  6. ...他のものも、きっと
于 2009-05-15T14:35:56.307 に答える
1

1つだけ選ぶとしたら、TDDとも呼ばれるテスト駆動設計と言えます。つまり、機能を段階的に追加する前に単体テストを作成します(そしてそれらが失敗することを確認します) 。

于 2009-05-15T16:49:52.833 に答える
1

ユーザーの視点から物事を見ることを学ぶようにしてください。例えば:

  • 意味のあるエラー メッセージの書き方を学ぶ
  • 使用可能なアプリケーションを作成する方法を学ぶ
  • いくつかの基本的な速度最適化手法を学ぶ

ユーザーには、コードではなくアプリケーションが表示されることに注意してください。

于 2009-05-15T16:55:51.633 に答える
1

経験を Web プログラミングにまで広げたい場合は、HTTP 要求/応答パラダイムをよく理解するようにしてください。これにより、基礎となるフレームワークを理解できるため、Web アプリの作成がはるかに簡単になります。

(http)://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

于 2009-05-20T22:05:13.310 に答える
1

VIM クイック リファレンス カード. 高度な vim (マクロ、プラグイン) の使用を開始した後、手動でコーディング中に反復的なアクションを行うのをやめました。

それとは別に、スクラムと、誰も邪魔しない夜の作業は、私に最高の利益を与えてくれました。

于 2009-05-16T10:59:44.897 に答える
0

高度な理解、適切な依存関係を備えた優れた抽象化の作成は、長期的に見返りがあります。たとえば、デメテルの法則は重要なガイドラインです。EricEvanのドメイン駆動設計も読むことをお勧めします

于 2009-05-16T11:43:13.950 に答える
0

Smalltalkを学ぶことで、生産性が向上しました。それは学ぶのが簡単な言語であり、物事は非常に迅速に構築することができます。Seasideをチェックしてください。これは、Webアプリケーションを構築するためのフレームワークです。さらに、中括弧の言語にしか慣れていない場合は、Smalltalkもあなたを笑顔にします!

于 2009-05-15T15:22:53.820 に答える
0

次のパラダイムがこの順序で役に立ちました。

1) ボトムアッププログラミング 2) トップダウンプログラミング (C、Pascal) 3) オブジェクト指向プログラミング (Smalltalk、Java) 4) 関数型プログラミング (lisp、Mathematica)

いくつかのロジックプログラミングがスローされます(プロローグ)。

于 2009-05-15T16:21:15.383 に答える
0

nHibernate ハンド ダウン。ビジネス オブジェクトのデータベース機能を記述する必要がないという事実は、非常に便利で時間の節約にもなります。

于 2009-05-15T16:52:52.857 に答える
0

コードジェネレーター。それらは、ソフトウェア エンジニアリングにおける最高のものです。

すべてのプロジェクトを asm で作成しますか? いいえ、C++ から生成しましょう。または、必要なマシンコードを熱心に生成する JVM の上にある何かから。

同じソースコードをいたるところに複製しているのに、回線ノイズを主張する言語に固執していませんか? マクロを使用します。

ラムダを持たない言語でラムダを使いたいですか? 必要な匿名の名前と変数のスコープを偽造する方法を考え出し、ボイラープレートを生成します。

すぐに利用できる言語の中で、あなたの思考パターン、目的の構文、さらにはセマンティクスに完全に適合するものはありませんか? 新しいコンパイラ用のコンパイラを作成します。

より良い言語は素晴らしいです。より良いデザインパターンは素晴らしいです。Emacsは素晴らしいです。しかし、コンパイラーは、私たちの分野ですべての力が存在する場所です。他の回答でそれらが言及されていない唯一の理由は、プログラミングなしでは想像できないからだと思います。

于 2015-06-21T22:25:39.953 に答える