編集:
複数の言語で作業する場合、個々のタスクをどのように管理しますか
日々のタスク処理では、いくつの異なるプログラミング言語を使用しますか?
- 各言語で作業するとき、あなたは精神的な変化をしますか?
- それらに優先順位を付け、各タスクを言語ごとに個別に保持しますか。
- 言語/ IDE /環境間でシームレスに切り替わる各タスクの進捗に基づいて段階的にコーディングしますか
- 構文ではなく、すべての言語に同じコーディングスタイル/規則を適用していますか?
関連:
編集:
複数の言語で作業する場合、個々のタスクをどのように管理しますか
日々のタスク処理では、いくつの異なるプログラミング言語を使用しますか?
関連:
回答:
今日、Java、Python、C ++、およびSQL(もし必要なら)を書きました。そして、私は2時間未満で仕事をしています。
これを定期的に行うと、精神的な変化は無視できます。マルチタスクとは関係ありません。しばらく歩いてから、車を運転し、自転車を運転し、水泳をするようなものです。問題ありません。それらは連続したものだからです。
とにかく、ポイントは次のタスクに移る前に1つのタスクを完了することです。具体的な機能、修正などの観点からタスクを定義する傾向があります。多くの場合、そのタスクは1つの言語のみで実行されますが、複数の言語が必要になる場合があります。たとえば、JNIを使用する場合、通常はJava側とネイティブ側の両方を同時に変更します。
いくつかの答え:
言語/ IDE /環境間でシームレスに切り替えられる各タスクの進捗に基づいて段階的にコーディングしますか
IDE、エディター、環境をシームレスに切り替えることができることが重要です。通常、私はそれらをすべて開いたままにします。
すべての言語に同じコーディングスタイル/規則を適用しますか(構文ではありません)?
それが2つの言語が話しているインターフェースである場合、はい-変数名などは類似している必要があります。それ以外の場合は、その言語の典型的なコーディングスタイルを適用しようとします。
ここに形成するパターンがあります:
私にとっては、javascript、HTML、CSS、C#、Transact-SQL、およびWindows Powershellです。
いいえ、私は言語の慣習に従ってプログラミングのポイントを作ります。簡単な例:
// C#
int MyFunction()
{
return 0;
}
// Javascript
function myFunction() {
return 0;
}
視覚的に異なるコーディング規則を採用することで、言語間の精神的な変化を起こすことができます。逆に、コードが各言語で同じように見えた場合、コーディングしている言語を忘れてしまうため、構文エラーが発生します。
SK-logicで示されているように、適切に選択されたドメイン固有の言語を使用する場合、メンタルシフトは問題になりません。しかし、多くの場合、言語を選択できないため、切り替えに時間がかかることがあります。私の経験では、プログラミングスタイルの切り替えよりも構文の切り替えの方が困難です。私がいつも経験する唯一の迷惑なシフトは、コメントスタイルのシフトです。コード行をすばやく変更するためにファイルを開くだけの場合、それはよく起こります。
# what
// the
; f***
% is
-- the one-line comment character or sequence?
できるだけ少ない。通常、1。Python、さらに2. HTMLテンプレート、3。HTML + CSS、および4. Javascriptが含まれます。PythonからJSに切り替えるには、さまざまなツールを使用する必要があるため、間違いなく精神的な変化が必要です。
HTML + CSSをHTMLテンプレートとは別に追加しますが、それ自体は言語ではないかもしれません(または、宗教に依存する可能性があります)。 Javascript。設計の観点からHTML + CSSをいじって、必要なモックアップのようにページを表示することは、HTMLテンプレートの作成とは異なる考え方です。しかし、それはJavascriptよりもPythonと直交しているため、プログラミングの考え方を別のものに切り替える必要があります。:)
私が使用する毎日:
また、Python、Java、XMLを時々使用します(それは重要ですか?)。私の仕事はさまざまなウェブサイトを編集することです。これらのウェブサイトは、任意のWeb言語で構築でき(Perlを1回使用したこともあります)、大幅に異なるパラダイム/テンプレート(プロシージャル、MVC、OOPなど)を使用できます。
質問に答えるには、最初にリストされている最初の5つのIDEとしてNotepad ++を使用し、次にVisual Studio for Asp.Netを使用します。
それは、各言語間で素早く切り替わる苦痛になる可能性があります-行末にセミコロンが必要かどうか、またはループにブレースがあるかどうかを思い出してください。VBScriptからJScriptへの切り替えは、これにとって絶対に最悪です-ファイルは両方とも.aspで終わり、一見するとかなり似ているため、エラーが発生する理由を見つけるのに時間がかかります。
現時点では、Ruby、PHP、Java、C、およびJavaScriptを作成しており、毎日これらのそれぞれに最低1時間書き込みます。主な問題は、それらがすべて無関係のプロジェクトのためのものであるため、実際に時間を見つけることの問題です。
私の仕事のスタイルは、私が長時間働くのが好きです。残念なことに、これは、コードが1つしかないメンタルブロックに遭遇したときに、1つしか持っていない場合、それを乗り越えるのに長い時間がかかることを意味します。休憩を取ることも助けになりません。他のプロジェクト、特に他の言語を使用して、元の言語に戻るまでに行き詰まるたびに切り替えることで、すぐに解決策を得ることができます。
したがって、はい、精神的なシフトがあり、私はそれがはるかに生産的になると思います。
タスクマネージャー(gTasks for Android)を使用し、プロジェクトごとに個別のToDoリストを用意しています。プロジェクトに複数の言語が必要な場合、それらを分離しません。これは通常、何らかの形で強く関連しているためです。たとえば、いくつかのAJAXを行うためのJavaScriptとRuby。言語が技術的には同じプロジェクト用であるが、プロジェクトが非常に大きく、本質的に無関係である場合、私はそれらを別々のプロジェクトとして数えるでしょう。
一般的に、優先度は「最もタスクが多いリスト」ですが、問題が発生した場合は常に切り替えます。
ちょっとしたミックス:
余談:私にとって最大の課題は、実際にスタイル言語を切り替えることです。SASSをRubyと一緒にコーディングし、それ以外のすべてをCSSに戻す必要がある場合、競争することは非常に困難です。程度は少ないですが、HAML / HTMLとJSON / XMLでも同じ問題があります。
ISP側のアプリケーションを作成します。また、プログラミングに手を出す多くのネットワークエンジニアによって書かれた「快適なことをする」という文化もあります。本当に恐ろしいことに、非常によく書かれたプログラムを週単位で処理する必要があります。私が頻繁に遭遇し、取り組むもの...
会社には他の言語(.net、VB、Phyton、Railsなど)もありますが、私はそれらに取り組む必要はありませんでした...まだ。
編集、編集のために ...
言語間で作業するときは、精神的にシフトする必要があります。ほとんどの場合、見落とすのは構文です。参考図書のコレクションを準備しています。他の言語の考え方に戻るには約30分かかります。言語の構文が鈍いほど、シフトは長くなります。しばらくPerlに触れなかった場合、JavaからPerlに移行するのにおそらく最も時間がかかることがわかります。これを行うほど、簡単になります。
私は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() {
...
}
対
public void Test()
{
...
}
.equals
、javascriptで文字列と比較しようとするときです。少なくとも==
、Java で使用するのではなく、常にそのようにエラーを出します。