編集:
複数の言語で作業するときに個々のタスクをどのように管理しますか
日常のタスク処理では、いくつの異なるプログラミング言語を使用していますか?
関連:
今日、私はJava、Python、C++、およびSQL(数えられる場合)を書きました。そして、私は2時間未満働いています。
これを定期的に行うと、メンタルシフトは無視できます。マルチタスクとは何の関係もありません。しばらく歩いて、車を運転して、自転車を運転して、水泳をするようなものです。問題はありません。それらは連続しているためです。
いずれにしても、ポイントは次のタスクに進む前に1つのタスクを完了することです。私は具体的な機能、修正などの観点からタスクを定義する傾向があります。多くの場合、そのタスクは1つの言語だけで実行されますが、いくつかの言語が必要になる場合があります。たとえば、 [〜#〜] jni [〜#〜] を使用する場合、通常はJavaとネイティブ側の両方に並行して変更を加えます。
いくつかの答え:
言語/ IDE /環境をシームレスに切り替えながら、各タスクの進捗状況に基づいて段階的にコーディングしますか
IDE、エディター、環境をシームレスに切り替えることができることが重要です。通常、私はそれらすべてを常に開いたままにします。
すべての言語に同じコーディングスタイル/規則を適用していますか(構文ではありません)?
それが2つの言語が話しているインターフェースの場合、はい-変数名などは類似している必要があります。それ以外の場合は、その言語の典型的なコーディングスタイルを適用しようとします。
SK-logicで示されているように、適切に選択されたドメイン固有の言語を使用している場合、mental shiftは問題になりません。ただし、言語を選択できないことが多いため、切り替えに時間がかかることがあります。私の経験では、プログラミングスタイルの切り替えよりも構文の切り替えの方が困難です。私が常に経験する唯一の迷惑なシフトはコメントスタイルシフトです。ファイルを開いてコード行をすばやく変更すると、多くの場合、次のようになります。
# what
// the
; f***
% is
-- the one-line comment character or sequence?
私の最後の仕事で:Java、C++、C#、JavaScript、VBScript。
しかし、ありがたいことに、上記のすべてが非常に異なるコンテキスト(およびいくつかの製品)にありました。そのため、各コードベースを十分に理解すれば、異なるコンテキストへの精神的な切り替えは実際には非常に簡単で論理的でした。
実際、私をさらに悩ませたのは、クライアントサポートの問題による中断でした。内部で別の言語のタスクに切り替えること自体は問題になりませんでした。
毎日使う:
私もPythonを使用していますJavaとXML(それはカウントされますか?))。私の仕事は、さまざまなWebサイトを編集することです。大きく異なるパラダイム/テンプレート(手続き型、MVC、OOPなど))。
質問に答えるために-私は主にNotepad ++を次のように使用しますIDEリストされている最初の5つはVisual Studio for Asp.Netです。
行末にセミコロンが必要かどうか、ループに中かっこがあるかどうかを覚えておくと、各言語をすばやく切り替えるのが面倒になる場合があります。 VBScriptからJScriptへの切り替えは、これにとって絶対的に最悪です。ファイルはどちらも.aspで終わり、一見するとかなり似ているため、エラーが発生する理由を理解するにはしばらく時間がかかります。
私は物事のISP側のアプリケーションを作成します。プログラミングに手を出す多くのネットワークエンジニアによってしばしば書かれる「あなたが快適にできることをする」という文化もあります。私は毎週、本当にすごいものまで、非常によく書かれたプログラムに対処しなければなりません。私がよく遭遇し、取り組むこと...
社内には他の言語(.net、VB、Phyton、Railsなど)もありますが、私はそれらに取り組む必要はありません...まだ。
編集、編集用 ...
言語間で作業するときは、精神的にシフトする必要があります。ほとんどの場合、私が見失ってしまうのは構文です。参考図書のコレクションを用意しています。他の言語の考え方に戻るには、約30分かかります。言語の構文が鈍いほど、シフトは長くなります。 Java= Perlを実行することへの移行は、しばらくPerlに触れていなかった場合、おそらく最も時間がかかります。これを実行すればするほど、簡単になります。
現時点では、Ruby、PHP、Java、C、JavaScriptを作成しており、毎日これらのそれぞれに最低1時間は書き込みます。主な問題は、実際にはすべて関連のないプロジェクトのため、時間を見つけることです。
私の仕事のスタイルは、長い間働きたいと思っています。残念ながら、これは私が単一のものしか持っていない場合、コードの断片を持つメンタルブロックに遭遇すると、それを乗り越えるのに長い時間がかかることを意味します。休憩を取っても役に立たないと思います。他のプロジェクト、特に他の言語を使用して、元の言語に戻るまでに行き詰まったときに切り替えるようにすることで、すぐに解決策が得られます。
したがって、はい、精神的な変化があり、それが私をはるかに生産的にすると思います。
タスクマネージャー(gTasks for Android)を使用しており、プロジェクトごとに個別のToDoリストがあります。プロジェクトで複数の言語が必要な場合は、それらを分離しません。これは通常、何らかの形で強い関連性があるためです。たとえば、JavaScriptとRubyいくつかのAJAXものを行うためのものです。言語が技術的に同じプロジェクト用であるが、プロジェクトが非常に大きいために本質的に無関係である場合それから私はそれらを別々のプロジェクトとして数えるでしょう。
一般に、私の優先順位は「最もタスクが多いリスト」ですが、問題が発生した場合は常に切り替えます。
その少しのミックス:
余談:私にとって最大の課題は、実際にはスタイル言語を切り替えることです。 SASSをRubyと一緒にコーディングしてから、他のものすべてをCSSに戻す必要がある場合、競争することは非常に困難です。程度は低いですが、HAML/HTMLとJSONで同じ問題があります。/XML。
私は2つの言語で作業します:c#とpython。
どちらも同じプロジェクトで使用していますが、明らかに異なるタスクに使用しています。
タスクに取り組んでいるときは、完全な状態になるまで、またはそれ以上集中できなくなるまで、そのタスクに取り組みます。つまり、言語を切り替えなければならない場合でも、最後のタスクを完了すると、どちらの言語でも考えがわからなくなってしまうため、認知的不協和音はほとんどありません。
確かに、私は仕事から出てきたときに短い休憩を取ります。これはおそらく非常に役立ちます。
できるだけ少ない。通常、1。Pythonに加えて、2。HTMLテンプレート、3。HTML + CSS、および4. Javascriptが含まれます。 PythonからJSに切り替えるには、さまざまなツールを使用する必要があるため、間違いなくメンタルシフトが必要です。
HTML + CSSは、それ自体が言語ではないかもしれません(または、宗教に依存する可能性があります)としても、HTMLテンプレートとは別に追加します。これには、メンタルシフトと他のツールの使用も必要ですが、 JavaScript。デザインの観点からHTML + CSSをいじって、ページを必要なモックアップのように見せることは、HTMLテンプレートを作成することとは異なる考え方です。しかし、それはPythonに直角です。つまり、プログラミングの考え方を別のものに切り替える必要があります。:)
私はC(組み込み)、C++(デスクトップ)、Python、Matlab、およびVHDL(ハードウェアプログラミング言語の一種)を頻繁に、多くの場合はすべて同じ日に使用しています。私の環境では、このような言語の器用さは私の考えでは不可欠です。
特定のプロジェクトで必要なすべてを1つの言語で効率的に行うことができないことがよくあります。たとえば、埋め込まれたCとVHDLはどちらもかなり低レベルなので、結果を解析する(またはコードを生成する)ためにPythonを使用することがよくあります。
それらをすばやく切り替えることはしばらくすると問題ではありません。ハンマーからドライバーに切り替えるようなもので、仕事に最適なツールです。
それは実際には作業の定義に依存します...私は毎日Microsoft Surfaceアプリケーションの開発にC#を使用しています。 Java私も毎日Androidアプリケーションに使用しています。しかし、自分自身を教育してRを使い始めましたRubyとObjective-C。時々私はいくつかのSQLを必要とします、そしてあなたが質問にスクリプト言語と他の言語を含めれば、JavaScipt、SPARQLとBeanShellも。
私は各言語のコーディング規約に従うようにしていますが、特にJavaとC#の間)中括弧とC#での大文字のメソッドの命名のためにいくつかの問題があります。
public void test() {
...
}
vs.
public void Test()
{
...
}
1つのプロジェクトで6つ以上の言語をよく使用しています。それらのほとんどは通常、そのプロジェクトにのみ固有のものです。
メンタルシフトは、タスクに適さない言語を使用している場合にのみ必要です。それ以外の場合は、ベストフィットを使用するのが自然です。プロジェクトのさまざまな段階では、さまざまな言語のセットが使用されます。
私はウェブアプリを構築しています。だから現在その:
エディター:Sublime Text(選択不可)、Visual Studio 2010(ASP.Netに関しては他に実行可能な選択肢はありません)
私の仕事では、Java、C、Python、Django、および少量のPHPを使用しています。また、MicrosoftのC++の非常に小さなプロジェクトにも取り組みました。
毎日全部使っているわけではありませんが、何日か使っても問題ないです。典型的な日には、私は1つか2つしか使いません。私が自宅で行うプログラミングには、通常、QtやRuby on Railsのような)の職場で使用するのとは異なるテクノロジーを使用する作業が含まれます。