مبادئ تصميم لإنشاء مكتبة علمية خاصة بالمجال

StackOverflow https://stackoverflow.com/questions/1383381

  •  21-09-2019
  •  | 
  •  

سؤال

ما هي المبادئ الجيدة في تصميم مكتبة برامج لاستخدام العلماء في تخصص معين؟ أعني بهذا المجالات مثل الكيمياء والفيزياء وعلوم المواد والمجهري والاختبارات الحيوية وعلم الفلك وما إلى ذلك تحليل البيانات. (حاليًا يشارك عدد منا في بناء مكتبات مفتوحة المصدر في الكيمياء وسيكون من المهم معرفة الخبرة من المجالات الأخرى).

إنني أقدر أن هذه مهمة طموحة وليس من السهل الحصول على تمويلها ولكنها أصبحت ذات أهمية متزايدة للعلم القابل للتكرار والقابل للتحقق.

هل كانت مفيدة؟

المحلول

  1. يجب أن تسمح لمستخدميها-العلماء-للقيام بذلك علم في هذا المجال بدلاً من برمجة. إن الجر الأقل لديه مفاهيم برمجة بحتة ، كـ "معالجات" ، "وحدات تحكم" ، "مؤشرات" ، "تسرب الذاكرة" ، إلخ ، كلما كان ذلك أفضل من مستخدميك النهائيين ؛

  2. يجب أن يسمح للأشخاص ، الذين يجدون LIB المثير للاهتمام ، الحفاظ عليه بعد التخلي عنه. أقصر ، لا ينبغي تطويره على أنه "رمز مريح" أو يجب أن يتم في وات "جيد". يرى سؤالك الخاص في هذا الشأن.

  3. لتصميم واجهة برمجة تطبيقات خبير ، سيفعل استعمال هذه المكتبة ، يجب أن تشارك. يجب أن يعلم ، ما يتطلبه برنامج حل المشكلات المعتاد من المكتبة التي تكتبها وتحدد المفاهيم الرئيسية التي ستنفذها. صمم واجهة برمجة التطبيقات الخاصة بك بعد ما يقوله الخبير ، وليس بالطريقة التي تراها. إذا كنت الخبير أيضًا ، فهذا ، ادع شخصًا آخر ، من هو ليس تشارك في التنمية. والسبب هو أن المطورين يميلون إلى تصميم واجهة برمجة التطبيقات في الطريق أنهم انظر الطبيعي ، الطريقة الطبيعية للتنفيذ. في حين أنه يجب أن يكون من الطبيعي للمشاكل التي تشارك فيها.

نصائح أخرى

"ما هي المبادئ الجيدة في تصميم مكتبة برامج لاستخدام العلماء في تخصص معين؟" - أولاً وقبل كل شيء هو خبير المجال ، IMO. تتم كتابة أنواع الحزم التي عادة ما تكون ناجحة في تلك المناطق من قبل الكيميائيين والفيزيائيين وعلماء الأحياء ، إلخ.

عليك أن تسأل نفسك عما إذا كان من الأسهل بالنسبة لعالم في أحد تلك المجالات تعلم البرمجة أو المبرمج لتعلم الانضباط العلمي.

إذا حكمنا من خلال عدد الكتب التي أراها لتعلم اللغة X في 21 يومًا مقابل أولئك الذين يدعون منح إتقان في الكيمياء أو البيولوجيا أو الفيزياء في نفس الإطار الزمني ، أعتقد أن العلماء هم أكثر عرضة لبرمجة حلولهم الخاصة.

من الجيد التفكير في تصميم API العام الجيد بغض النظر عن مدى تحديدها للمجال ، لذا تحقق من هذا حديث Google Tech. (كتلة جوشوا)

ستكون نصيحتي هي: قياس مهارات البرمجة الشائعة للمجتمع العلمي الذي تريد الوصول إليه (على الأرجح لك!) وتطوير شيء يمكنهم استخدامه (أو يتطلب القليل من التعلم ، ولكن ليس كثيرًا). اجعل الأمر بسيطًا ، أو إخفاء التعقيد في الأجزاء الداخلية العميقة. العلماء ليسوا مبرمجين محترفين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top