4

特定の分野の科学者が使用するソフトウェア ライブラリを設計する際の優れた原則は何ですか? これは、化学、物理学、材料科学、顕微鏡、バイオアッセイ、天文学などの分野を意味します。さまざまな分野をカバーする SciPy、R、Matlab、JAMA などの一般的なライブラリは除外します。データ分析。(現在、私たちの多くは化学のオープン ソース ライブラリの構築に関与しており、他の分野での経験を知ることは価値があります)。

これは野心的な仕事であり、資金を調達するのは容易ではありませんが、再現可能で検証可能な科学にとってますます重要になってきていることを理解しています.

4

4 に答える 4

4
  1. そのユーザー (科学者)が、プログラミングの代わりにその分野で科学を行うことができるようにする必要があります。「ハンドラー」、「コントローラー」、「ポインター」、「メモリーリーク」など、純粋にプログラミングの概念を持つトラクションが少ないほど、エンドユーザーにより適しています。

  2. あなたの lib を放棄した後でも、あなたの lib を興味深いと思う人々がそれを維持できるようにすべきです。要するに、「使い捨てコード」として開発するべきではなく、「良い」ワットで行うべきです。その件については、自分の質問を参照してください。

  3. API を設計するには、このライブラリを使用する専門家が関与する必要があります。彼は、あなたが書いているライブラリから通常の問題解決プログラムが何を必要としているかを知り、あなたが実装しようとしている主な概念を定義する必要があります。API は、自分の見方ではなく、専門家の意見に従って設計してください。あなたも専門家なら、開発に関与していない別の人を招待してください。その理由は、開発者が自然見える方法、実装にとって自然な方法で API を設計する傾向があるためです。それが関与している問題にとっては自然なはずですが。

于 2009-09-05T15:39:53.603 に答える
2

「特定の分野の科学者が使用するソフトウェア ライブラリを設計する際の優れた原則は何ですか?」- 何よりもまず、ドメインの専門家であること、IMO. これらの分野で通常成功する種類のパッケージは、化学者、物理学者、生物学者などによって書かれています。

これらの分野の科学者がプログラミングを学ぶほうが簡単なのか、プログラマーが科学分野を学ぶほうが簡単なのかを自問する必要があります。

言語 X を 21 日間で学習できる本と、同じ時間枠で化学、生物学、または物理学を習得できると主張している本の数から判断すると、科学者は独自のソリューションをプログラムする可能性が高いと思います。

于 2009-09-05T15:14:29.760 に答える
1

ドメイン固有であるかどうかに関係なく、優れた一般的な API 設計について考えるのは良いことです。この google tech talkをチェックしてください。(ジョシュア・ブロック)

于 2009-09-05T14:18:36.633 に答える
0

私のアドバイスは次のとおりです。到達したい科学コミュニティの一般的なプログラミングスキル(おそらくあなたのものです!)を測定し、使用できるものを開発します(または、少しの学習が必要ですが、あまり多くはありません)。シンプルに保つか、内部の深い部分の複雑さを隠します。科学者はプロのプログラマーではありません。

于 2009-10-08T19:09:07.033 に答える